diff --git a/.factorypath b/.factorypath index 64aa78395684cdf667988ff5f0a9d23a40f8ff19..d2a264809b58dcdc44078350cbb1f15fa76deac4 100644 --- a/.factorypath +++ b/.factorypath @@ -1,4 +1,4 @@ - - + + diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..13566b81b018ad684f3a35fee301741b2734c8f4 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000000000000000000000000000000000000..e8a62c9b6cd1054f54260a4eb732a6fba285883e --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000000000000000000000000000000000000..aa00ffab7828f4818589659c804ec2cfd99baed3 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000000000000000000000000000000000000..255688240a3c7dea8ab5ad402b7e20ed6095e7ad --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000000000000000000000000000000000000..4b8acaf5a553ea862835d74e9d6202d9ebe2c8a2 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..35eb1ddfbbc029bcab630581847471d7f238ec53 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 51dad97394ee08a2a949747e2339d997ee7eb08e..85354aa49f094d53ed5692287325a72dc920c416 100644 --- a/pom.xml +++ b/pom.xml @@ -437,6 +437,12 @@ org.apache.maven.plugins maven-surefire-plugin 3.2.5 + + + none + alphabetical + 1 + org.jacoco @@ -458,11 +464,6 @@ - - org.apache.maven.plugins - maven-surefire-plugin - 3.2.5 - org.jacoco jacoco-maven-plugin diff --git a/src/main/java/org/etsi/osl/tmf/BootstrapResources.java b/src/main/java/org/etsi/osl/tmf/BootstrapResources.java index dacfb02b6c0f9c82d758949409ef662b163cadaf..9fdf7d78bef6387c0785fa72049565c20b547ef8 100644 --- a/src/main/java/org/etsi/osl/tmf/BootstrapResources.java +++ b/src/main/java/org/etsi/osl/tmf/BootstrapResources.java @@ -22,8 +22,10 @@ package org.etsi.osl.tmf; import com.fasterxml.jackson.databind.ObjectMapper; import org.etsi.osl.domain.model.kubernetes.KubernetesCRDV1; import org.etsi.osl.domain.model.kubernetes.KubernetesCRV1; +import org.etsi.osl.domain.model.kubernetes.KubernetesConfigMap; import org.etsi.osl.domain.model.kubernetes.KubernetesContextDefinition; import org.etsi.osl.domain.model.kubernetes.KubernetesSecret; +import org.etsi.osl.domain.model.kubernetes.KubernetesService; import org.etsi.osl.tmf.rcm634.model.ResourceCandidateUpdate; import org.etsi.osl.tmf.rcm634.model.ResourceCatalog; import org.etsi.osl.tmf.rcm634.model.ResourceCatalogCreate; @@ -207,19 +209,42 @@ public class BootstrapResources { this.addToCategory( scategoryInfra, rspecKubCRV1 ); } - resourceSpecificationObj = this.resourceSpecRepoService.findByNameAndVersion( - KubernetesSecret.OSL_KUBSECRET_RSPEC_NAME , - KubernetesSecret.OSL_KUBSECRET_RSPEC_VERSION); + 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 ); - } + 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 ); + } + resourceSpecificationObj = this.resourceSpecRepoService.findByNameAndVersion( + KubernetesService.OSL_KUBSERVICE_RSPEC_NAME , + KubernetesService.OSL_KUBSERVICE_RSPEC_VERSION); + + if ( ( scategoryInfra != null ) && ( resourceSpecificationObj == null )) + { + ResourceSpecification rspecKubServ = + this.resourceSpecRepoService.addResourceSpecification( KubernetesService.builder().build().toRSpecCreate_InitRepo() ); + KubernetesService.builder().build().fromRSpec(rspecKubServ);//to update any details + this.addToCategory( scategoryInfra, rspecKubServ ); + } + + resourceSpecificationObj = this.resourceSpecRepoService.findByNameAndVersion( + KubernetesConfigMap.OSL_KUBCMAP_RSPEC_NAME , + KubernetesConfigMap.OSL_KUBCMAP_RSPEC_VERSION); + + if ( ( scategoryInfra != null ) && ( resourceSpecificationObj == null )) + { + ResourceSpecification rspecKubCMap = + this.resourceSpecRepoService.addResourceSpecification( KubernetesConfigMap.builder().build().toRSpecCreate_InitRepo() ); + KubernetesConfigMap.builder().build().fromRSpec( rspecKubCMap );//to update any details + this.addToCategory( scategoryInfra, rspecKubCMap ); + } } diff --git a/src/main/java/org/etsi/osl/tmf/pm628/.openapi-generator-ignore b/src/main/java/org/etsi/osl/tmf/pm628/.openapi-generator-ignore new file mode 100644 index 0000000000000000000000000000000000000000..7484ee590a3894506cf063799b885428f95a71be --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/.openapi-generator-ignore @@ -0,0 +1,23 @@ +# OpenAPI Generator Ignore +# Generated by openapi-generator https://github.com/openapitools/openapi-generator + +# Use this file to prevent files from being overwritten by the generator. +# The patterns follow closely to .gitignore or .dockerignore. + +# As an example, the C# client generator defines ApiClient.cs. +# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line: +#ApiClient.cs + +# You can match any string of characters against a directory, file or extension with a single asterisk (*): +#foo/*/qux +# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux + +# You can recursively match patterns against a directory, file or extension with a double asterisk (**): +#foo/**/qux +# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux + +# You can also negate patterns with an exclamation (!). +# For example, you can ignore all files in a docs folder with the file extension .md: +#docs/*.md +# Then explicitly reverse the ignore rule for a single file: +#!docs/README.md diff --git a/src/main/java/org/etsi/osl/tmf/pm628/.openapi-generator/FILES b/src/main/java/org/etsi/osl/tmf/pm628/.openapi-generator/FILES new file mode 100644 index 0000000000000000000000000000000000000000..ae03fb4831d7febdc4b07205b72f48d445e16768 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/.openapi-generator/FILES @@ -0,0 +1,219 @@ +.openapi-generator-ignore +README.md +pom.xml +src/main/java/org/openapitools/OpenApiGeneratorApplication.java +src/main/java/org/openapitools/RFC3339DateFormat.java +src/main/java/org/openapitools/api/ApiUtil.java +src/main/java/org/openapitools/api/DataAccessEndpointApi.java +src/main/java/org/openapitools/api/DataAccessEndpointApiController.java +src/main/java/org/openapitools/api/HubApi.java +src/main/java/org/openapitools/api/HubApiController.java +src/main/java/org/openapitools/api/ListenerApi.java +src/main/java/org/openapitools/api/ListenerApiController.java +src/main/java/org/openapitools/api/MeasurementCollectionJobApi.java +src/main/java/org/openapitools/api/MeasurementCollectionJobApiController.java +src/main/java/org/openapitools/api/PerformanceIndicatorGroupSpecificationApi.java +src/main/java/org/openapitools/api/PerformanceIndicatorGroupSpecificationApiController.java +src/main/java/org/openapitools/api/PerformanceIndicatorSpecificationApi.java +src/main/java/org/openapitools/api/PerformanceIndicatorSpecificationApiController.java +src/main/java/org/openapitools/api/PerformanceMeasurementApi.java +src/main/java/org/openapitools/api/PerformanceMeasurementApiController.java +src/main/java/org/openapitools/api/TrackingRecordApi.java +src/main/java/org/openapitools/api/TrackingRecordApiController.java +src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java +src/main/java/org/openapitools/configuration/HomeController.java +src/main/java/org/openapitools/configuration/SpringDocConfiguration.java +src/main/java/org/openapitools/model/Addressable.java +src/main/java/org/openapitools/model/AddressableMVO.java +src/main/java/org/openapitools/model/AdministrativeState.java +src/main/java/org/openapitools/model/AttachmentRef.java +src/main/java/org/openapitools/model/AttachmentRefFVO.java +src/main/java/org/openapitools/model/AttachmentRefMVO.java +src/main/java/org/openapitools/model/BaseEvent.java +src/main/java/org/openapitools/model/Characteristic.java +src/main/java/org/openapitools/model/CharacteristicFVO.java +src/main/java/org/openapitools/model/CharacteristicMVO.java +src/main/java/org/openapitools/model/CharacteristicRelationship.java +src/main/java/org/openapitools/model/CharacteristicRelationshipFVO.java +src/main/java/org/openapitools/model/CharacteristicRelationshipMVO.java +src/main/java/org/openapitools/model/CollectionType.java +src/main/java/org/openapitools/model/CompressionEnumType.java +src/main/java/org/openapitools/model/CompressionType.java +src/main/java/org/openapitools/model/DataAccessEndpoint.java +src/main/java/org/openapitools/model/DataAccessEndpointFVO.java +src/main/java/org/openapitools/model/DataAccessEndpointMVO.java +src/main/java/org/openapitools/model/DataFilterAttribute.java +src/main/java/org/openapitools/model/DataFilterAttributeStringArray.java +src/main/java/org/openapitools/model/DataFilterMap.java +src/main/java/org/openapitools/model/DataFilterMapFVO.java +src/main/java/org/openapitools/model/DataFilterMapItem.java +src/main/java/org/openapitools/model/DataFilterMapItemFVO.java +src/main/java/org/openapitools/model/DataFilterMapItemMVO.java +src/main/java/org/openapitools/model/DataFilterMapMVO.java +src/main/java/org/openapitools/model/DataFilterTemplate.java +src/main/java/org/openapitools/model/DataFilterTemplateFVO.java +src/main/java/org/openapitools/model/DataFilterTemplateMVO.java +src/main/java/org/openapitools/model/DayOfMonthRecurrence.java +src/main/java/org/openapitools/model/DayOfMonthRecurrenceFVO.java +src/main/java/org/openapitools/model/DayOfMonthRecurrenceMVO.java +src/main/java/org/openapitools/model/DayOfWeekRecurrence.java +src/main/java/org/openapitools/model/DayOfWeekRecurrenceFVO.java +src/main/java/org/openapitools/model/DayOfWeekRecurrenceMVO.java +src/main/java/org/openapitools/model/Duration.java +src/main/java/org/openapitools/model/Entity.java +src/main/java/org/openapitools/model/EntityMVO.java +src/main/java/org/openapitools/model/EntityRef.java +src/main/java/org/openapitools/model/EntityRefFVO.java +src/main/java/org/openapitools/model/EntityRefMVO.java +src/main/java/org/openapitools/model/Error.java +src/main/java/org/openapitools/model/Event.java +src/main/java/org/openapitools/model/ExecutionStateType.java +src/main/java/org/openapitools/model/Extensible.java +src/main/java/org/openapitools/model/ExtensibleFVO.java +src/main/java/org/openapitools/model/ExternalIdentifier.java +src/main/java/org/openapitools/model/ExternalIdentifierFVO.java +src/main/java/org/openapitools/model/ExternalIdentifierMVO.java +src/main/java/org/openapitools/model/Feature.java +src/main/java/org/openapitools/model/FeatureFVO.java +src/main/java/org/openapitools/model/FeatureMVO.java +src/main/java/org/openapitools/model/FeatureRelationship.java +src/main/java/org/openapitools/model/FeatureRelationshipFVO.java +src/main/java/org/openapitools/model/FeatureRelationshipMVO.java +src/main/java/org/openapitools/model/FileTransferData.java +src/main/java/org/openapitools/model/FileTransferDataFVO.java +src/main/java/org/openapitools/model/FileTransferDataMVO.java +src/main/java/org/openapitools/model/Granularity.java +src/main/java/org/openapitools/model/Hub.java +src/main/java/org/openapitools/model/HubFVO.java +src/main/java/org/openapitools/model/IndicatorType.java +src/main/java/org/openapitools/model/IntentRef.java +src/main/java/org/openapitools/model/IntentRefFVO.java +src/main/java/org/openapitools/model/IntentRefMVO.java +src/main/java/org/openapitools/model/JsonPatch.java +src/main/java/org/openapitools/model/LogicalResource.java +src/main/java/org/openapitools/model/LogicalResourceFVO.java +src/main/java/org/openapitools/model/LogicalResourceMVO.java +src/main/java/org/openapitools/model/ManagementJob.java +src/main/java/org/openapitools/model/ManagementJobFVO.java +src/main/java/org/openapitools/model/ManagementJobMVO.java +src/main/java/org/openapitools/model/MeasurementCollectionJob.java +src/main/java/org/openapitools/model/MeasurementCollectionJobAttributeValueChangeEvent.java +src/main/java/org/openapitools/model/MeasurementCollectionJobAttributeValueChangeEventPayload.java +src/main/java/org/openapitools/model/MeasurementCollectionJobCreateEvent.java +src/main/java/org/openapitools/model/MeasurementCollectionJobCreateEventPayload.java +src/main/java/org/openapitools/model/MeasurementCollectionJobDeleteEvent.java +src/main/java/org/openapitools/model/MeasurementCollectionJobDeleteEventPayload.java +src/main/java/org/openapitools/model/MeasurementCollectionJobExecutionStateChangeEvent.java +src/main/java/org/openapitools/model/MeasurementCollectionJobExecutionStateChangeEventPayload.java +src/main/java/org/openapitools/model/MeasurementCollectionJobFVO.java +src/main/java/org/openapitools/model/MeasurementCollectionJobFilesPreparationErrorEvent.java +src/main/java/org/openapitools/model/MeasurementCollectionJobFilesPreparationErrorEventPayload.java +src/main/java/org/openapitools/model/MeasurementCollectionJobFilesReadyEvent.java +src/main/java/org/openapitools/model/MeasurementCollectionJobFilesReadyEventPayload.java +src/main/java/org/openapitools/model/MeasurementCollectionJobMVO.java +src/main/java/org/openapitools/model/MeasurementCollectionJobRef.java +src/main/java/org/openapitools/model/MeasurementJob.java +src/main/java/org/openapitools/model/MeasurementJobFVO.java +src/main/java/org/openapitools/model/MeasurementJobMVO.java +src/main/java/org/openapitools/model/MonitoredClassCriteria.java +src/main/java/org/openapitools/model/MonitoredClassCriteriaFVO.java +src/main/java/org/openapitools/model/MonitoredInstancesCriteria.java +src/main/java/org/openapitools/model/MonitoredInstancesCriteriaFVO.java +src/main/java/org/openapitools/model/MonthlyScheduleDayOfWeekDefinition.java +src/main/java/org/openapitools/model/MonthlyScheduleDayOfWeekDefinitionFVO.java +src/main/java/org/openapitools/model/MonthlyScheduleDayOfWeekDefinitionMVO.java +src/main/java/org/openapitools/model/Note.java +src/main/java/org/openapitools/model/NoteFVO.java +src/main/java/org/openapitools/model/NoteMVO.java +src/main/java/org/openapitools/model/OrderItemActionType.java +src/main/java/org/openapitools/model/PackingEnumType.java +src/main/java/org/openapitools/model/PackingType.java +src/main/java/org/openapitools/model/PartyRef.java +src/main/java/org/openapitools/model/PartyRefFVO.java +src/main/java/org/openapitools/model/PartyRefMVO.java +src/main/java/org/openapitools/model/PartyRefOrPartyRoleRef.java +src/main/java/org/openapitools/model/PartyRefOrPartyRoleRefFVO.java +src/main/java/org/openapitools/model/PartyRefOrPartyRoleRefMVO.java +src/main/java/org/openapitools/model/PartyRoleRef.java +src/main/java/org/openapitools/model/PartyRoleRefFVO.java +src/main/java/org/openapitools/model/PartyRoleRefMVO.java +src/main/java/org/openapitools/model/PatchMeasurementCollectionJob200Response.java +src/main/java/org/openapitools/model/PatchPerformanceIndicatorGroupSpecification200Response.java +src/main/java/org/openapitools/model/PatchPerformanceIndicatorSpecification200Response.java +src/main/java/org/openapitools/model/PerformanceIndicatorGroupSpecification.java +src/main/java/org/openapitools/model/PerformanceIndicatorGroupSpecificationFVO.java +src/main/java/org/openapitools/model/PerformanceIndicatorGroupSpecificationMVO.java +src/main/java/org/openapitools/model/PerformanceIndicatorGroupSpecificationRef.java +src/main/java/org/openapitools/model/PerformanceIndicatorGroupSpecificationRefOrValue.java +src/main/java/org/openapitools/model/PerformanceIndicatorGroupValue.java +src/main/java/org/openapitools/model/PerformanceIndicatorSpecRelationship.java +src/main/java/org/openapitools/model/PerformanceIndicatorSpecRelationshipFVO.java +src/main/java/org/openapitools/model/PerformanceIndicatorSpecRelationshipMVO.java +src/main/java/org/openapitools/model/PerformanceIndicatorSpecification.java +src/main/java/org/openapitools/model/PerformanceIndicatorSpecificationFVO.java +src/main/java/org/openapitools/model/PerformanceIndicatorSpecificationMVO.java +src/main/java/org/openapitools/model/PerformanceIndicatorSpecificationRef.java +src/main/java/org/openapitools/model/PerformanceIndicatorSpecificationRefFVO.java +src/main/java/org/openapitools/model/PerformanceIndicatorSpecificationRefMVO.java +src/main/java/org/openapitools/model/PerformanceIndicatorSpecificationRefOrValue.java +src/main/java/org/openapitools/model/PerformanceIndicatorSpecificationRefOrValueFVO.java +src/main/java/org/openapitools/model/PerformanceIndicatorSpecificationRefOrValueMVO.java +src/main/java/org/openapitools/model/PerformanceIndicatorValue.java +src/main/java/org/openapitools/model/PerformanceMeasurement.java +src/main/java/org/openapitools/model/PerformanceMeasurementAtomic.java +src/main/java/org/openapitools/model/PerformanceMeasurementCollectionReadyEvent.java +src/main/java/org/openapitools/model/PerformanceMeasurementCollectionReadyEventPayload.java +src/main/java/org/openapitools/model/PerformanceMeasurementCreateEvent.java +src/main/java/org/openapitools/model/PerformanceMeasurementCreateEventPayload.java +src/main/java/org/openapitools/model/PerformanceMeasurementGroup.java +src/main/java/org/openapitools/model/PerformanceMeasurementRef.java +src/main/java/org/openapitools/model/PerformanceMeasurementRefOrValue.java +src/main/java/org/openapitools/model/PerformanceMeasurementRelationship.java +src/main/java/org/openapitools/model/PlaceRef.java +src/main/java/org/openapitools/model/PlaceRefFVO.java +src/main/java/org/openapitools/model/PlaceRefMVO.java +src/main/java/org/openapitools/model/PolicyRef.java +src/main/java/org/openapitools/model/PolicyRefFVO.java +src/main/java/org/openapitools/model/PolicyRefMVO.java +src/main/java/org/openapitools/model/ProtocolTransferData.java +src/main/java/org/openapitools/model/ProtocolTransferDataFVO.java +src/main/java/org/openapitools/model/ProtocolTransferDataMVO.java +src/main/java/org/openapitools/model/RelatedPartyRefOrPartyRoleRef.java +src/main/java/org/openapitools/model/RelatedPartyRefOrPartyRoleRefFVO.java +src/main/java/org/openapitools/model/RelatedPartyRefOrPartyRoleRefMVO.java +src/main/java/org/openapitools/model/RelatedPlaceRef.java +src/main/java/org/openapitools/model/RelatedPlaceRefFVO.java +src/main/java/org/openapitools/model/RelatedPlaceRefMVO.java +src/main/java/org/openapitools/model/RelatedResourceOrderItem.java +src/main/java/org/openapitools/model/RelatedResourceOrderItemFVO.java +src/main/java/org/openapitools/model/RelatedResourceOrderItemMVO.java +src/main/java/org/openapitools/model/ReportingPeriod.java +src/main/java/org/openapitools/model/Resource.java +src/main/java/org/openapitools/model/ResourceAdministrativeStateType.java +src/main/java/org/openapitools/model/ResourceFVO.java +src/main/java/org/openapitools/model/ResourceMVO.java +src/main/java/org/openapitools/model/ResourceOperationalStateType.java +src/main/java/org/openapitools/model/ResourceRef.java +src/main/java/org/openapitools/model/ResourceRefFVO.java +src/main/java/org/openapitools/model/ResourceRefMVO.java +src/main/java/org/openapitools/model/ResourceRefOrValue.java +src/main/java/org/openapitools/model/ResourceRefOrValueFVO.java +src/main/java/org/openapitools/model/ResourceRefOrValueMVO.java +src/main/java/org/openapitools/model/ResourceRelationship.java +src/main/java/org/openapitools/model/ResourceRelationshipFVO.java +src/main/java/org/openapitools/model/ResourceRelationshipMVO.java +src/main/java/org/openapitools/model/ResourceSpecificationRef.java +src/main/java/org/openapitools/model/ResourceSpecificationRefFVO.java +src/main/java/org/openapitools/model/ResourceSpecificationRefMVO.java +src/main/java/org/openapitools/model/ResourceStatusType.java +src/main/java/org/openapitools/model/ResourceUsageStateType.java +src/main/java/org/openapitools/model/ScheduleDefinition.java +src/main/java/org/openapitools/model/ScheduleDefinitionFVO.java +src/main/java/org/openapitools/model/ScheduleDefinitionMVO.java +src/main/java/org/openapitools/model/TimePeriod.java +src/main/java/org/openapitools/model/TrackingRecord.java +src/main/java/org/openapitools/model/TrackingRecordFVO.java +src/main/java/org/openapitools/model/TrackingRecordMVO.java +src/main/resources/application.properties +src/main/resources/openapi.yaml +src/test/java/org/openapitools/OpenApiGeneratorApplicationTests.java diff --git a/src/main/java/org/etsi/osl/tmf/pm628/.openapi-generator/TMF628_Performance_Management_API_v5.0.0.oas.yaml b/src/main/java/org/etsi/osl/tmf/pm628/.openapi-generator/TMF628_Performance_Management_API_v5.0.0.oas.yaml new file mode 100644 index 0000000000000000000000000000000000000000..f12f384efd6f9d0201d3e4562b77d461dd3213f8 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/.openapi-generator/TMF628_Performance_Management_API_v5.0.0.oas.yaml @@ -0,0 +1,8903 @@ +openapi: 3.0.1 +info: + title: Performance + description: TMF628 Performance Management API + version: 5.0.0 +servers: + - url: '{apiRoot}/tmf-api/performance/v5/' + variables: + apiRoot: + default: 'https://serverRoot' + enum: + - 'https://serverRoot' +tags: + - name: measurementCollectionJob + description: Operations for MeasurementCollectionJob Resource + - name: performanceIndicatorGroupSpecification + description: Operations for PerformanceIndicatorGroupSpecification Resource + - name: performanceIndicatorSpecification + description: Operations for PerformanceIndicatorSpecification Resource + - name: trackingRecord + description: Operations for TrackingRecord Resource + - name: performanceMeasurement + description: Operations for PerformanceMeasurement Resource + - name: dataAccessEndpoint + description: Operations for DataAccessEndpoint Resource + - name: notification listener + description: Notifications for Resource Lifecycle and event notifications + - name: events subscription + description: Endpoints to register and terminate an Event Listener +paths: + /dataAccessEndpoint: + get: + tags: + - dataAccessEndpoint + summary: List or find DataAccessEndpoint objects + description: List or find DataAccessEndpoint objects + operationId: listDataAccessEndpoint + parameters: + - $ref: '#/components/parameters/Fields' + - $ref: '#/components/parameters/Offset' + - $ref: '#/components/parameters/Limit' + responses: + '200': + $ref: '#/components/responses/200DataAccessEndpointArray' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '405': + $ref: '#/components/responses/405' + '500': + $ref: '#/components/responses/500' + '501': + $ref: '#/components/responses/501' + '503': + $ref: '#/components/responses/503' + '/dataAccessEndpoint/{id}': + get: + tags: + - dataAccessEndpoint + summary: Retrieves a DataAccessEndpoint by ID + description: >- + This operation retrieves a DataAccessEndpoint entity. Attribute selection enabled for all + first level attributes. + operationId: retrieveDataAccessEndpoint + parameters: + - $ref: '#/components/parameters/Id' + - $ref: '#/components/parameters/Fields' + responses: + '200': + $ref: '#/components/responses/200DataAccessEndpoint_Get' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '405': + $ref: '#/components/responses/405' + '500': + $ref: '#/components/responses/500' + '501': + $ref: '#/components/responses/501' + '503': + $ref: '#/components/responses/503' + /hub: + post: + operationId: createHub + summary: Create a subscription (hub) to receive Events + description: Sets the communication endpoint to receive Events. + tags: + - events subscription + requestBody: + $ref: '#/components/requestBodies/Hub_FVO' + responses: + '201': + $ref: '#/components/responses/Hub' + default: + $ref: '#/components/responses/Error' + '/hub/{id}': + delete: + operationId: hubDelete + summary: Remove a subscription (hub) to receive Events + description: '' + tags: + - events subscription + parameters: + - $ref: '#/components/parameters/Id' + responses: + '204': + description: Deleted + default: + $ref: '#/components/responses/Error' + /listener/measurementCollectionJobAttributeValueChangeEvent: + post: + tags: + - notification listener + summary: Client listener for entity MeasurementCollectionJobAttributeValueChangeEvent + description: >- + Example of a client listener for receiving the notification + MeasurementCollectionJobAttributeValueChangeEvent + operationId: measurementCollectionJobAttributeValueChangeEvent + requestBody: + $ref: '#/components/requestBodies/MeasurementCollectionJobAttributeValueChangeEvent' + responses: + '204': + description: Notified + default: + $ref: '#/components/responses/Error' + /listener/measurementCollectionJobCreateEvent: + post: + tags: + - notification listener + summary: Client listener for entity MeasurementCollectionJobCreateEvent + description: >- + Example of a client listener for receiving the notification + MeasurementCollectionJobCreateEvent + operationId: measurementCollectionJobCreateEvent + requestBody: + $ref: '#/components/requestBodies/MeasurementCollectionJobCreateEvent' + responses: + '204': + description: Notified + default: + $ref: '#/components/responses/Error' + /listener/measurementCollectionJobDeleteEvent: + post: + tags: + - notification listener + summary: Client listener for entity MeasurementCollectionJobDeleteEvent + description: >- + Example of a client listener for receiving the notification + MeasurementCollectionJobDeleteEvent + operationId: measurementCollectionJobDeleteEvent + requestBody: + $ref: '#/components/requestBodies/MeasurementCollectionJobDeleteEvent' + responses: + '204': + description: Notified + default: + $ref: '#/components/responses/Error' + /listener/measurementCollectionJobExecutionStateChangeEvent: + post: + tags: + - notification listener + summary: Client listener for entity MeasurementCollectionJobExecutionStateChangeEvent + description: >- + Example of a client listener for receiving the notification + MeasurementCollectionJobExecutionStateChangeEvent + operationId: measurementCollectionJobExecutionStateChangeEvent + requestBody: + $ref: '#/components/requestBodies/MeasurementCollectionJobExecutionStateChangeEvent' + responses: + '204': + description: Notified + default: + $ref: '#/components/responses/Error' + /listener/measurementCollectionJobFilesPreparationErrorEvent: + post: + tags: + - notification listener + summary: Client listener for entity MeasurementCollectionJobFilesPreparationErrorEvent + description: >- + Example of a client listener for receiving the notification + MeasurementCollectionJobFilesPreparationErrorEvent + operationId: measurementCollectionJobFilesPreparationErrorEvent + requestBody: + $ref: '#/components/requestBodies/MeasurementCollectionJobFilesPreparationErrorEvent' + responses: + '204': + description: Notified + default: + $ref: '#/components/responses/Error' + /listener/measurementCollectionJobFilesReadyEvent: + post: + tags: + - notification listener + summary: Client listener for entity MeasurementCollectionJobFilesReadyEvent + description: >- + Example of a client listener for receiving the notification + MeasurementCollectionJobFilesReadyEvent + operationId: measurementCollectionJobFilesReadyEvent + requestBody: + $ref: '#/components/requestBodies/MeasurementCollectionJobFilesReadyEvent' + responses: + '204': + description: Notified + default: + $ref: '#/components/responses/Error' + /listener/performanceMeasurementCollectionReadyEvent: + post: + tags: + - notification listener + summary: Client listener for entity PerformanceMeasurementCollectionReadyEvent + description: >- + Example of a client listener for receiving the notification + PerformanceMeasurementCollectionReadyEvent + operationId: performanceMeasurementCollectionReadyEvent + requestBody: + $ref: '#/components/requestBodies/PerformanceMeasurementCollectionReadyEvent' + responses: + '204': + description: Notified + default: + $ref: '#/components/responses/Error' + /listener/performanceMeasurementCreateEvent: + post: + tags: + - notification listener + summary: Client listener for entity PerformanceMeasurementCreateEvent + description: >- + Example of a client listener for receiving the notification + PerformanceMeasurementCreateEvent + operationId: performanceMeasurementCreateEvent + requestBody: + $ref: '#/components/requestBodies/PerformanceMeasurementCreateEvent' + responses: + '204': + description: Notified + default: + $ref: '#/components/responses/Error' + /measurementCollectionJob: + get: + tags: + - measurementCollectionJob + summary: List or find MeasurementCollectionJob objects + description: List or find MeasurementCollectionJob objects + operationId: listMeasurementCollectionJob + parameters: + - $ref: '#/components/parameters/Fields' + - $ref: '#/components/parameters/Offset' + - $ref: '#/components/parameters/Limit' + responses: + '200': + $ref: '#/components/responses/200MeasurementCollectionJobArray' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '405': + $ref: '#/components/responses/405' + '500': + $ref: '#/components/responses/500' + '501': + $ref: '#/components/responses/501' + '503': + $ref: '#/components/responses/503' + post: + tags: + - measurementCollectionJob + summary: Creates a MeasurementCollectionJob + description: This operation creates a MeasurementCollectionJob entity. + operationId: createMeasurementCollectionJob + parameters: + - $ref: '#/components/parameters/Fields' + requestBody: + $ref: '#/components/requestBodies/MeasurementCollectionJob_FVO' + responses: + '201': + $ref: '#/components/responses/201MeasurementCollectionJob' + '202': + description: Accepted + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '405': + $ref: '#/components/responses/405' + '409': + $ref: '#/components/responses/409' + '500': + $ref: '#/components/responses/500' + '501': + $ref: '#/components/responses/501' + '503': + $ref: '#/components/responses/503' + '/measurementCollectionJob/{id}': + get: + tags: + - measurementCollectionJob + summary: Retrieves a MeasurementCollectionJob by ID + description: >- + This operation retrieves a MeasurementCollectionJob entity. Attribute selection enabled for + all first level attributes. + operationId: retrieveMeasurementCollectionJob + parameters: + - $ref: '#/components/parameters/Id' + - $ref: '#/components/parameters/Fields' + responses: + '200': + $ref: '#/components/responses/200MeasurementCollectionJob_Get' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '405': + $ref: '#/components/responses/405' + '500': + $ref: '#/components/responses/500' + '501': + $ref: '#/components/responses/501' + '503': + $ref: '#/components/responses/503' + patch: + tags: + - measurementCollectionJob + summary: Updates partially a MeasurementCollectionJob + description: This operation updates partially a MeasurementCollectionJob entity. + operationId: patchMeasurementCollectionJob + parameters: + - $ref: '#/components/parameters/Id' + - $ref: '#/components/parameters/Fields' + requestBody: + $ref: '#/components/requestBodies/MeasurementCollectionJob_MVO' + responses: + '200': + $ref: '#/components/responses/200MeasurementCollectionJob_Patch' + '202': + description: Accepted + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '405': + $ref: '#/components/responses/405' + '409': + $ref: '#/components/responses/409' + '500': + $ref: '#/components/responses/500' + '501': + $ref: '#/components/responses/501' + '503': + $ref: '#/components/responses/503' + delete: + tags: + - measurementCollectionJob + summary: Deletes a MeasurementCollectionJob + description: This operation deletes a MeasurementCollectionJob entity. + operationId: deleteMeasurementCollectionJob + parameters: + - $ref: '#/components/parameters/Id' + responses: + '202': + $ref: '#/components/responses/202' + '204': + $ref: '#/components/responses/204' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '405': + $ref: '#/components/responses/405' + '409': + $ref: '#/components/responses/409' + '500': + $ref: '#/components/responses/500' + '501': + $ref: '#/components/responses/501' + '503': + $ref: '#/components/responses/503' + /performanceIndicatorGroupSpecification: + get: + tags: + - performanceIndicatorGroupSpecification + summary: List or find PerformanceIndicatorGroupSpecification objects + description: List or find PerformanceIndicatorGroupSpecification objects + operationId: listPerformanceIndicatorGroupSpecification + parameters: + - $ref: '#/components/parameters/Fields' + - $ref: '#/components/parameters/Offset' + - $ref: '#/components/parameters/Limit' + responses: + '200': + $ref: '#/components/responses/200PerformanceIndicatorGroupSpecificationArray' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '405': + $ref: '#/components/responses/405' + '500': + $ref: '#/components/responses/500' + '501': + $ref: '#/components/responses/501' + '503': + $ref: '#/components/responses/503' + post: + tags: + - performanceIndicatorGroupSpecification + summary: Creates a PerformanceIndicatorGroupSpecification + description: This operation creates a PerformanceIndicatorGroupSpecification entity. + operationId: createPerformanceIndicatorGroupSpecification + parameters: + - $ref: '#/components/parameters/Fields' + requestBody: + $ref: '#/components/requestBodies/PerformanceIndicatorGroupSpecification_FVO' + responses: + '201': + $ref: '#/components/responses/201PerformanceIndicatorGroupSpecification' + '202': + description: Accepted + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '405': + $ref: '#/components/responses/405' + '409': + $ref: '#/components/responses/409' + '500': + $ref: '#/components/responses/500' + '501': + $ref: '#/components/responses/501' + '503': + $ref: '#/components/responses/503' + '/performanceIndicatorGroupSpecification/{id}': + get: + tags: + - performanceIndicatorGroupSpecification + summary: Retrieves a PerformanceIndicatorGroupSpecification by ID + description: >- + This operation retrieves a PerformanceIndicatorGroupSpecification entity. Attribute + selection enabled for all first level attributes. + operationId: retrievePerformanceIndicatorGroupSpecification + parameters: + - $ref: '#/components/parameters/Id' + - $ref: '#/components/parameters/Fields' + responses: + '200': + $ref: '#/components/responses/200PerformanceIndicatorGroupSpecification_Get' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '405': + $ref: '#/components/responses/405' + '500': + $ref: '#/components/responses/500' + '501': + $ref: '#/components/responses/501' + '503': + $ref: '#/components/responses/503' + patch: + tags: + - performanceIndicatorGroupSpecification + summary: Updates partially a PerformanceIndicatorGroupSpecification + description: This operation updates partially a PerformanceIndicatorGroupSpecification entity. + operationId: patchPerformanceIndicatorGroupSpecification + parameters: + - $ref: '#/components/parameters/Id' + - $ref: '#/components/parameters/Fields' + requestBody: + $ref: '#/components/requestBodies/PerformanceIndicatorGroupSpecification_MVO' + responses: + '200': + $ref: '#/components/responses/200PerformanceIndicatorGroupSpecification_Patch' + '202': + description: Accepted + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '405': + $ref: '#/components/responses/405' + '409': + $ref: '#/components/responses/409' + '500': + $ref: '#/components/responses/500' + '501': + $ref: '#/components/responses/501' + '503': + $ref: '#/components/responses/503' + delete: + tags: + - performanceIndicatorGroupSpecification + summary: Deletes a PerformanceIndicatorGroupSpecification + description: This operation deletes a PerformanceIndicatorGroupSpecification entity. + operationId: deletePerformanceIndicatorGroupSpecification + parameters: + - $ref: '#/components/parameters/Id' + responses: + '202': + $ref: '#/components/responses/202' + '204': + $ref: '#/components/responses/204' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '405': + $ref: '#/components/responses/405' + '409': + $ref: '#/components/responses/409' + '500': + $ref: '#/components/responses/500' + '501': + $ref: '#/components/responses/501' + '503': + $ref: '#/components/responses/503' + /performanceIndicatorSpecification: + get: + tags: + - performanceIndicatorSpecification + summary: List or find PerformanceIndicatorSpecification objects + description: List or find PerformanceIndicatorSpecification objects + operationId: listPerformanceIndicatorSpecification + parameters: + - $ref: '#/components/parameters/Fields' + - $ref: '#/components/parameters/Offset' + - $ref: '#/components/parameters/Limit' + responses: + '200': + $ref: '#/components/responses/200PerformanceIndicatorSpecificationArray' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '405': + $ref: '#/components/responses/405' + '500': + $ref: '#/components/responses/500' + '501': + $ref: '#/components/responses/501' + '503': + $ref: '#/components/responses/503' + post: + tags: + - performanceIndicatorSpecification + summary: Creates a PerformanceIndicatorSpecification + description: This operation creates a PerformanceIndicatorSpecification entity. + operationId: createPerformanceIndicatorSpecification + parameters: + - $ref: '#/components/parameters/Fields' + requestBody: + $ref: '#/components/requestBodies/PerformanceIndicatorSpecification_FVO' + responses: + '201': + $ref: '#/components/responses/201PerformanceIndicatorSpecification' + '202': + description: Accepted + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '405': + $ref: '#/components/responses/405' + '409': + $ref: '#/components/responses/409' + '500': + $ref: '#/components/responses/500' + '501': + $ref: '#/components/responses/501' + '503': + $ref: '#/components/responses/503' + '/performanceIndicatorSpecification/{id}': + get: + tags: + - performanceIndicatorSpecification + summary: Retrieves a PerformanceIndicatorSpecification by ID + description: >- + This operation retrieves a PerformanceIndicatorSpecification entity. Attribute selection + enabled for all first level attributes. + operationId: retrievePerformanceIndicatorSpecification + parameters: + - $ref: '#/components/parameters/Id' + - $ref: '#/components/parameters/Fields' + responses: + '200': + $ref: '#/components/responses/200PerformanceIndicatorSpecification_Get' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '405': + $ref: '#/components/responses/405' + '500': + $ref: '#/components/responses/500' + '501': + $ref: '#/components/responses/501' + '503': + $ref: '#/components/responses/503' + patch: + tags: + - performanceIndicatorSpecification + summary: Updates partially a PerformanceIndicatorSpecification + description: This operation updates partially a PerformanceIndicatorSpecification entity. + operationId: patchPerformanceIndicatorSpecification + parameters: + - $ref: '#/components/parameters/Id' + - $ref: '#/components/parameters/Fields' + requestBody: + $ref: '#/components/requestBodies/PerformanceIndicatorSpecification_MVO' + responses: + '200': + $ref: '#/components/responses/200PerformanceIndicatorSpecification_Patch' + '202': + description: Accepted + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '405': + $ref: '#/components/responses/405' + '409': + $ref: '#/components/responses/409' + '500': + $ref: '#/components/responses/500' + '501': + $ref: '#/components/responses/501' + '503': + $ref: '#/components/responses/503' + delete: + tags: + - performanceIndicatorSpecification + summary: Deletes a PerformanceIndicatorSpecification + description: This operation deletes a PerformanceIndicatorSpecification entity. + operationId: deletePerformanceIndicatorSpecification + parameters: + - $ref: '#/components/parameters/Id' + responses: + '202': + $ref: '#/components/responses/202' + '204': + $ref: '#/components/responses/204' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '405': + $ref: '#/components/responses/405' + '409': + $ref: '#/components/responses/409' + '500': + $ref: '#/components/responses/500' + '501': + $ref: '#/components/responses/501' + '503': + $ref: '#/components/responses/503' + /performanceMeasurement: + get: + tags: + - performanceMeasurement + summary: List or find PerformanceMeasurement objects + description: List or find PerformanceMeasurement objects + operationId: listPerformanceMeasurement + parameters: + - $ref: '#/components/parameters/Fields' + - $ref: '#/components/parameters/Offset' + - $ref: '#/components/parameters/Limit' + responses: + '200': + $ref: '#/components/responses/200PerformanceMeasurementArray' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '405': + $ref: '#/components/responses/405' + '500': + $ref: '#/components/responses/500' + '501': + $ref: '#/components/responses/501' + '503': + $ref: '#/components/responses/503' + '/performanceMeasurement/{id}': + get: + tags: + - performanceMeasurement + summary: Retrieves a PerformanceMeasurement by ID + description: >- + This operation retrieves a PerformanceMeasurement entity. Attribute selection enabled for + all first level attributes. + operationId: retrievePerformanceMeasurement + parameters: + - $ref: '#/components/parameters/Id' + - $ref: '#/components/parameters/Fields' + responses: + '200': + $ref: '#/components/responses/200PerformanceMeasurement_Get' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '405': + $ref: '#/components/responses/405' + '500': + $ref: '#/components/responses/500' + '501': + $ref: '#/components/responses/501' + '503': + $ref: '#/components/responses/503' + /trackingRecord: + get: + tags: + - trackingRecord + summary: List or find TrackingRecord objects + description: List or find TrackingRecord objects + operationId: listTrackingRecord + parameters: + - $ref: '#/components/parameters/Fields' + - $ref: '#/components/parameters/Offset' + - $ref: '#/components/parameters/Limit' + responses: + '200': + $ref: '#/components/responses/200TrackingRecordArray' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '405': + $ref: '#/components/responses/405' + '500': + $ref: '#/components/responses/500' + '501': + $ref: '#/components/responses/501' + '503': + $ref: '#/components/responses/503' + '/trackingRecord/{id}': + get: + tags: + - trackingRecord + summary: Retrieves a TrackingRecord by ID + description: >- + This operation retrieves a TrackingRecord entity. Attribute selection enabled for all first + level attributes. + operationId: retrieveTrackingRecord + parameters: + - $ref: '#/components/parameters/Id' + - $ref: '#/components/parameters/Fields' + responses: + '200': + $ref: '#/components/responses/200TrackingRecord_Get' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '405': + $ref: '#/components/responses/405' + '500': + $ref: '#/components/responses/500' + '501': + $ref: '#/components/responses/501' + '503': + $ref: '#/components/responses/503' +components: + schemas: + Addressable: + type: object + description: Base schema for addressable entities + properties: + href: + type: string + description: Hyperlink reference + id: + type: string + description: unique identifier + Addressable_FVO: + type: object + description: Base schema for addressable entities + Addressable_MVO: + type: object + description: Base schema for addressable entities + properties: + id: + type: string + description: unique identifier + AdministrativeState: + enum: + - locked + - unlocked + type: string + description: This is enumeration for Administrative state + AttachmentRef: + allOf: + - $ref: '#/components/schemas/EntityRef' + - type: object + description: >- + Attachment reference. An attachment complements the description of an element (for + instance a product) through video, pictures + properties: + description: + type: string + description: A narrative text describing the content of the attachment + url: + description: Link to the attachment media/content + type: string + discriminator: + propertyName: '@type' + mapping: + AttachmentRef: '#/components/schemas/AttachmentRef' + AttachmentRef_FVO: + allOf: + - $ref: '#/components/schemas/EntityRef_FVO' + - type: object + description: >- + Attachment reference. An attachment complements the description of an element (for + instance a product) through video, pictures + properties: + description: + type: string + description: A narrative text describing the content of the attachment + url: + description: Link to the attachment media/content + type: string + discriminator: + propertyName: '@type' + mapping: + AttachmentRef: '#/components/schemas/AttachmentRef_FVO' + AttachmentRef_MVO: + allOf: + - $ref: '#/components/schemas/EntityRef_MVO' + - type: object + description: >- + Attachment reference. An attachment complements the description of an element (for + instance a product) through video, pictures + properties: + description: + type: string + description: A narrative text describing the content of the attachment + url: + description: Link to the attachment media/content + type: string + discriminator: + propertyName: '@type' + mapping: + AttachmentRef: '#/components/schemas/AttachmentRef_MVO' + BaseEvent: + allOf: + - $ref: '#/components/schemas/Entity' + - type: object + description: Base event with common attributes. + properties: + event: + type: object + description: The event linked to the involved resource object + eventId: + type: string + description: The identifier of the notification. + eventTime: + type: string + format: date-time + description: Time of the event occurrence. + eventType: + type: string + description: The type of the notification. + correlationId: + type: string + description: The correlation id for this event. + domain: + type: string + description: The domain of the event. + title: + type: string + description: The title of the event. + description: + type: string + description: An explanatory of the event. + priority: + type: string + description: A priority. + timeOcurred: + type: string + format: date-time + description: The time the event occurred. + discriminator: + propertyName: '@type' + mapping: + BaseEvent: '#/components/schemas/BaseEvent' + Characteristic: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: >- + Describes a given characteristic of an object or entity through a name/value pair. This + is an abstract base class, the actual value is in one of the strongly-typed subclasses : + StringCharacteristic, ObjectCharacteristic, FloatCharacteristic, BooleanCharacteristic, + NumberCharacteristic, IntegerCharacteristic, StringArrayCharacteristic, + ObjectArrayCharacteristic, BooleanArrayCharacteristic, NumberArrayCharacteristic, + IntegerArrayCharacteristic... + properties: + id: + type: string + description: Unique identifier of the characteristic + name: + type: string + description: Name of the characteristic + valueType: + type: string + description: Data type of the value of the characteristic + characteristicRelationship: + type: array + description: Collection of characteristic relationships + items: + $ref: '#/components/schemas/CharacteristicRelationship' + discriminator: + propertyName: '@type' + mapping: + Characteristic: '#/components/schemas/Characteristic' + CharacteristicRelationship: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: Another Characteristic that is related to the current Characteristic; + properties: + id: + type: string + description: Unique identifier of the characteristic + relationshipType: + type: string + description: The type of relationship + discriminator: + propertyName: '@type' + mapping: + CharacteristicRelationship: '#/components/schemas/CharacteristicRelationship' + CharacteristicRelationship_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - type: object + description: Another Characteristic that is related to the current Characteristic; + properties: + id: + type: string + description: Unique identifier of the characteristic + relationshipType: + type: string + description: The type of relationship + required: + - id + - relationshipType + discriminator: + propertyName: '@type' + mapping: + CharacteristicRelationship: '#/components/schemas/CharacteristicRelationship_FVO' + CharacteristicRelationship_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: Another Characteristic that is related to the current Characteristic; + properties: + id: + type: string + description: Unique identifier of the characteristic + relationshipType: + type: string + description: The type of relationship + discriminator: + propertyName: '@type' + mapping: + CharacteristicRelationship: '#/components/schemas/CharacteristicRelationship_MVO' + Characteristic_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - type: object + description: >- + Describes a given characteristic of an object or entity through a name/value pair. This + is an abstract base class, the actual value is in one of the strongly-typed subclasses : + StringCharacteristic, ObjectCharacteristic, FloatCharacteristic, BooleanCharacteristic, + NumberCharacteristic, IntegerCharacteristic, StringArrayCharacteristic, + ObjectArrayCharacteristic, BooleanArrayCharacteristic, NumberArrayCharacteristic, + IntegerArrayCharacteristic... + properties: + name: + type: string + description: Name of the characteristic + valueType: + type: string + description: Data type of the value of the characteristic + characteristicRelationship: + type: array + description: Collection of characteristic relationships + items: + $ref: '#/components/schemas/CharacteristicRelationship_FVO' + discriminator: + propertyName: '@type' + mapping: + Characteristic: '#/components/schemas/Characteristic_FVO' + Characteristic_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: >- + Describes a given characteristic of an object or entity through a name/value pair. This + is an abstract base class, the actual value is in one of the strongly-typed subclasses : + StringCharacteristic, ObjectCharacteristic, FloatCharacteristic, BooleanCharacteristic, + NumberCharacteristic, IntegerCharacteristic, StringArrayCharacteristic, + ObjectArrayCharacteristic, BooleanArrayCharacteristic, NumberArrayCharacteristic, + IntegerArrayCharacteristic... + properties: + id: + type: string + description: Unique identifier of the characteristic + name: + type: string + description: Name of the characteristic + valueType: + type: string + description: Data type of the value of the characteristic + characteristicRelationship: + type: array + description: Collection of characteristic relationships + items: + $ref: '#/components/schemas/CharacteristicRelationship_MVO' + discriminator: + propertyName: '@type' + mapping: + Characteristic: '#/components/schemas/Characteristic_MVO' + CollectionType: + enum: + - cumulative + - delta + - discrete_event + - gauge + - status_inspection + type: string + description: This is enumeration for CollectionType state + CompressionEnumType: + enum: + - no_compression + - gzip + - vendor_ext + - minor_ext + type: string + description: Enumeration of supported compressions. All extensions allowed. + CompressionType: + type: object + description: File compression type. + properties: + compressionEnumType: + $ref: '#/components/schemas/CompressionEnumType' + DataAccessEndpoint: + allOf: + - $ref: '#/components/schemas/LogicalResource' + - type: object + description: This is the endpoint exposed by the IoT Device to authorized users. + properties: + uri: + type: string + format: uri + description: URI for using the data access API + uriQueryFilter: + $ref: '#/components/schemas/DataFilterMap' + apiType: + type: string + DataAccessEndpoint_FVO: + allOf: + - $ref: '#/components/schemas/LogicalResource_FVO' + - type: object + description: This is the endpoint exposed by the IoT Device to authorized users. + properties: + uri: + type: string + format: uri + description: URI for using the data access API + uriQueryFilter: + $ref: '#/components/schemas/DataFilterMap_FVO' + apiType: + type: string + DataAccessEndpoint_MVO: + allOf: + - $ref: '#/components/schemas/LogicalResource_MVO' + - type: object + description: This is the endpoint exposed by the IoT Device to authorized users. + properties: + uri: + type: string + format: uri + description: URI for using the data access API + uriQueryFilter: + $ref: '#/components/schemas/DataFilterMap_MVO' + apiType: + type: string + DataFilterAttribute: + type: object + description: give an attribute used for filtering + properties: + valueType: + type: string + description: Data type of the value of the attribute + discriminator: + propertyName: '@type' + mapping: + DataFilterAttributeStringArray: '#/components/schemas/DataFilterAttributeStringArray' + DataFilterAttributeStringArray: + allOf: + - $ref: '#/components/schemas/DataFilterAttribute' + - type: object + description: An array of attribute names for filtering + properties: + value: + type: array + items: + type: string + description: a field/attribute name + example: City + description: an array of field names + example: + - Dallas + - Houston + - Paris + DataFilterMap: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: >- + entity to Describe a given filter attributes/fields set using a mapping by + type/template. + properties: + mappings: + type: array + items: + $ref: '#/components/schemas/DataFilterMapItem' + discriminator: + propertyName: '@type' + mapping: + DataFilterMap: '#/components/schemas/DataFilterMap' + DataFilterMapItem: + type: object + description: definition of a field used for filtering template with the associated attributes. + properties: + filterTemplate: + $ref: '#/components/schemas/DataFilterTemplate' + stringArray: + $ref: '#/components/schemas/DataFilterAttributeStringArray' + DataFilterMapItem_FVO: + type: object + description: definition of a field used for filtering template with the associated attributes. + properties: + filterTemplate: + $ref: '#/components/schemas/DataFilterTemplate_FVO' + stringArray: + $ref: '#/components/schemas/DataFilterAttributeStringArray' + DataFilterMapItem_MVO: + type: object + description: definition of a field used for filtering template with the associated attributes. + properties: + filterTemplate: + $ref: '#/components/schemas/DataFilterTemplate_MVO' + stringArray: + $ref: '#/components/schemas/DataFilterAttributeStringArray' + DataFilterMap_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - type: object + description: >- + entity to Describe a given filter attributes/fields set using a mapping by + type/template. + properties: + mappings: + type: array + items: + $ref: '#/components/schemas/DataFilterMapItem_FVO' + discriminator: + propertyName: '@type' + mapping: + DataFilterMap: '#/components/schemas/DataFilterMap_FVO' + DataFilterMap_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: >- + entity to Describe a given filter attributes/fields set using a mapping by + type/template. + properties: + mappings: + type: array + items: + $ref: '#/components/schemas/DataFilterMapItem_MVO' + discriminator: + propertyName: '@type' + mapping: + DataFilterMap: '#/components/schemas/DataFilterMap_MVO' + DataFilterTemplate: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: |- + Abstract entity to Describe a given filter template, + a filter template can be used in two ways: + 1) as a straight filter definition + 2) as a way to specify the acceptable value for a field for filtering + properties: + id: + type: string + description: Unique identifier of this DataFilterTemplate + example: 6c088cf7f1bc + href: + type: string + format: uri + description: Hyperlink reference to this DataFilterTemplate + example: 'https://host/dataFilerTemplate/6c088cf7f1bc' + name: + type: string + description: Name given to this DataFilterTemplate + description: + type: string + description: Description of this DataFilterTemplate + discriminator: + propertyName: '@type' + mapping: + DataFilterTemplate: '#/components/schemas/DataFilterTemplate' + DataFilterTemplate_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - type: object + description: |- + Abstract entity to Describe a given filter template, + a filter template can be used in two ways: + 1) as a straight filter definition + 2) as a way to specify the acceptable value for a field for filtering + properties: + name: + type: string + description: Name given to this DataFilterTemplate + description: + type: string + description: Description of this DataFilterTemplate + discriminator: + propertyName: '@type' + mapping: + DataFilterTemplate: '#/components/schemas/DataFilterTemplate_FVO' + DataFilterTemplate_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: |- + Abstract entity to Describe a given filter template, + a filter template can be used in two ways: + 1) as a straight filter definition + 2) as a way to specify the acceptable value for a field for filtering + properties: + id: + type: string + description: Unique identifier of this DataFilterTemplate + example: 6c088cf7f1bc + name: + type: string + description: Name given to this DataFilterTemplate + description: + type: string + description: Description of this DataFilterTemplate + discriminator: + propertyName: '@type' + mapping: + DataFilterTemplate: '#/components/schemas/DataFilterTemplate_MVO' + DayOfMonthRecurrence: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: '' + properties: + dates: + type: string + format: date-time + discriminator: + propertyName: '@type' + mapping: + DayOfMonthRecurrence: '#/components/schemas/DayOfMonthRecurrence' + DayOfMonthRecurrence_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - type: object + description: '' + properties: + dates: + type: string + format: date-time + discriminator: + propertyName: '@type' + mapping: + DayOfMonthRecurrence: '#/components/schemas/DayOfMonthRecurrence_FVO' + DayOfMonthRecurrence_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: '' + properties: + dates: + type: string + format: date-time + discriminator: + propertyName: '@type' + mapping: + DayOfMonthRecurrence: '#/components/schemas/DayOfMonthRecurrence_MVO' + DayOfWeekRecurrence: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: '' + properties: + dates: + type: string + format: date-time + discriminator: + propertyName: '@type' + mapping: + DayOfWeekRecurrence: '#/components/schemas/DayOfWeekRecurrence' + DayOfWeekRecurrence_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - type: object + description: '' + properties: + dates: + type: string + format: date-time + discriminator: + propertyName: '@type' + mapping: + DayOfWeekRecurrence: '#/components/schemas/DayOfWeekRecurrence_FVO' + DayOfWeekRecurrence_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: '' + properties: + dates: + type: string + format: date-time + discriminator: + propertyName: '@type' + mapping: + DayOfWeekRecurrence: '#/components/schemas/DayOfWeekRecurrence_MVO' + Duration: + type: object + description: A time interval in a given unit of time + properties: + amount: + type: integer + description: 'Time interval (number of seconds, minutes, hours, etc.)' + units: + type: string + description: 'Unit of time (seconds, minutes, hours, etc.)' + Entity: + type: object + description: Base entity schema for use in TMForum Open-APIs. Property. + allOf: + - $ref: '#/components/schemas/Extensible' + - $ref: '#/components/schemas/Addressable' + EntityRef: + allOf: + - $ref: '#/components/schemas/Extensible' + - $ref: '#/components/schemas/Addressable' + - type: object + description: Entity reference schema to be use for all entityRef class. + properties: + id: + type: string + description: The identifier of the referred entity. + href: + type: string + description: The URI of the referred entity. + name: + type: string + description: Name of the referred entity. + '@referredType': + type: string + description: The actual type of the target instance when needed for disambiguation. + required: + - id + EntityRef_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - $ref: '#/components/schemas/Addressable' + - type: object + description: Entity reference schema to be use for all entityRef class. + properties: + name: + type: string + description: Name of the referred entity. + '@referredType': + type: string + description: The actual type of the target instance when needed for disambiguation. + EntityRef_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - $ref: '#/components/schemas/Addressable' + - type: object + description: Entity reference schema to be use for all entityRef class. + properties: + id: + type: string + description: The identifier of the referred entity. + name: + type: string + description: Name of the referred entity. + '@referredType': + type: string + description: The actual type of the target instance when needed for disambiguation. + Entity_MVO: + type: object + description: Base entity schema for use in TMForum Open-APIs. Property. + allOf: + - $ref: '#/components/schemas/Extensible' + Event: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: event with common attributes. + properties: + href: + type: string + description: Hyperlink reference + id: + type: string + description: unique identifier + correlationId: + type: string + description: The correlation id for this event. + domain: + type: string + description: The domain of the event. + title: + type: string + description: The title of the event. + description: + type: string + description: An explanation of the event. + priority: + type: string + description: A priority. + timeOccurred: + type: string + format: date-time + description: The time the event occurred. + source: + $ref: '#/components/schemas/EntityRef' + reportingSystem: + $ref: '#/components/schemas/EntityRef' + relatedParty: + type: array + description: Collection of related parties + items: + $ref: '#/components/schemas/RelatedPartyRefOrPartyRoleRef' + analyticCharacteristic: + type: array + description: Collection of analytic characteristics + items: + $ref: '#/components/schemas/Characteristic' + eventId: + type: string + description: The identifier of the notification. + eventTime: + type: string + format: date-time + description: Time of the event occurrence. + eventType: + type: string + description: The type of the notification. + event: + description: The event linked to the involved resource object + type: object + ExecutionStateType: + enum: + - acknowledged + - rejected + - pending + - inProgress + - cancelled + - completed + - failed + type: string + description: Possible values for the state of the execution + Extensible: + type: object + description: >- + Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means + that the Entity described by the schema MUST be extended with the @type + properties: + '@type': + type: string + description: 'When sub-classing, this defines the sub-class Extensible name' + '@baseType': + type: string + description: 'When sub-classing, this defines the super-class' + '@schemaLocation': + type: string + description: A URI to a JSON-Schema file that defines additional attributes and relationships + required: + - '@type' + Extensible_FVO: + type: object + description: >- + Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means + that the Entity described by the schema MUST be extended with the @type + properties: + '@type': + type: string + description: 'When sub-classing, this defines the sub-class Extensible name' + '@baseType': + type: string + description: 'When sub-classing, this defines the super-class' + '@schemaLocation': + type: string + description: A URI to a JSON-Schema file that defines additional attributes and relationships + required: + - '@type' + ExternalIdentifier: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + 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. + properties: + owner: + type: string + description: Name of the external system that owns the entity. + example: MagentoCommerce + externalIdentifierType: + type: string + description: >- + Type of the identification, typically would be the type of the entity within the + external system + example: ProductOrder + id: + type: string + description: identification of the entity within the external system. + discriminator: + propertyName: '@type' + mapping: + ExternalIdentifier: '#/components/schemas/ExternalIdentifier' + ExternalIdentifier_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - type: object + 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. + properties: + owner: + type: string + description: Name of the external system that owns the entity. + example: MagentoCommerce + externalIdentifierType: + type: string + description: >- + Type of the identification, typically would be the type of the entity within the + external system + example: ProductOrder + discriminator: + propertyName: '@type' + mapping: + ExternalIdentifier: '#/components/schemas/ExternalIdentifier_FVO' + ExternalIdentifier_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + 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. + properties: + owner: + type: string + description: Name of the external system that owns the entity. + example: MagentoCommerce + externalIdentifierType: + type: string + description: >- + Type of the identification, typically would be the type of the entity within the + external system + example: ProductOrder + id: + type: string + description: identification of the entity within the external system. + discriminator: + propertyName: '@type' + mapping: + ExternalIdentifier: '#/components/schemas/ExternalIdentifier_MVO' + Feature: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: Configuration feature. + properties: + isBundle: + description: True if this is a feature group. Default is false. + type: boolean + featureRelationship: + type: array + description: Collection of feature relationships + items: + $ref: '#/components/schemas/FeatureRelationship' + featureCharacteristic: + description: This is a list of Characteristics for a particular feature. + type: array + items: + $ref: '#/components/schemas/Characteristic' + policyConstraint: + description: Reference to manage a list of feature specification policy constraints + type: array + items: + $ref: '#/components/schemas/PolicyRef' + isEnabled: + description: True if this feature is enabled. Default is true. + type: boolean + id: + type: string + description: unique identifier + name: + description: This is the name for the feature. + type: string + discriminator: + propertyName: '@type' + mapping: + Feature: '#/components/schemas/Feature' + FeatureRelationship: + allOf: + - $ref: '#/components/schemas/EntityRef' + - type: object + description: Configuration feature + properties: + relationshipType: + description: This is the type of the feature relationship. + type: string + enum: + - excluded + - includes + - may include + - requires + name: + description: This is the name of the target feature. + type: string + validFor: + $ref: '#/components/schemas/TimePeriod' + discriminator: + propertyName: '@type' + mapping: + FeatureRelationship: '#/components/schemas/FeatureRelationship' + FeatureRelationship_FVO: + allOf: + - $ref: '#/components/schemas/EntityRef_FVO' + - type: object + description: Configuration feature + properties: + relationshipType: + description: This is the type of the feature relationship. + type: string + enum: + - excluded + - includes + - may include + - requires + name: + description: This is the name of the target feature. + type: string + validFor: + $ref: '#/components/schemas/TimePeriod' + required: + - relationshipType + - id + discriminator: + propertyName: '@type' + mapping: + FeatureRelationship: '#/components/schemas/FeatureRelationship_FVO' + FeatureRelationship_MVO: + allOf: + - $ref: '#/components/schemas/EntityRef_MVO' + - type: object + description: Configuration feature + properties: + relationshipType: + description: This is the type of the feature relationship. + type: string + enum: + - excluded + - includes + - may include + - requires + name: + description: This is the name of the target feature. + type: string + validFor: + $ref: '#/components/schemas/TimePeriod' + required: + - relationshipType + - id + discriminator: + propertyName: '@type' + mapping: + FeatureRelationship: '#/components/schemas/FeatureRelationship_MVO' + Feature_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - type: object + description: Configuration feature. + properties: + isBundle: + description: True if this is a feature group. Default is false. + type: boolean + featureRelationship: + type: array + description: Collection of feature relationships + items: + $ref: '#/components/schemas/FeatureRelationship_FVO' + featureCharacteristic: + description: This is a list of Characteristics for a particular feature. + type: array + items: + $ref: '#/components/schemas/Characteristic_FVO' + policyConstraint: + description: Reference to manage a list of feature specification policy constraints + type: array + items: + $ref: '#/components/schemas/PolicyRef_FVO' + isEnabled: + description: True if this feature is enabled. Default is true. + type: boolean + name: + description: This is the name for the feature. + type: string + discriminator: + propertyName: '@type' + mapping: + Feature: '#/components/schemas/Feature_FVO' + Feature_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: Configuration feature. + properties: + isBundle: + description: True if this is a feature group. Default is false. + type: boolean + featureRelationship: + type: array + description: Collection of feature relationships + items: + $ref: '#/components/schemas/FeatureRelationship_MVO' + featureCharacteristic: + description: This is a list of Characteristics for a particular feature. + type: array + items: + $ref: '#/components/schemas/Characteristic_MVO' + policyConstraint: + description: Reference to manage a list of feature specification policy constraints + type: array + items: + $ref: '#/components/schemas/PolicyRef_MVO' + isEnabled: + description: True if this feature is enabled. Default is true. + type: boolean + id: + type: string + description: unique identifier + name: + description: This is the name for the feature. + type: string + required: + - name + discriminator: + propertyName: '@type' + mapping: + Feature: '#/components/schemas/Feature_MVO' + FileTransferData: + allOf: + - $ref: '#/components/schemas/ProtocolTransferData' + - $ref: '#/components/schemas/Extensible' + - type: object + description: '' + properties: + fileLocation: + type: string + format: uri + fileFormat: + type: string + compressionType: + $ref: '#/components/schemas/CompressionType' + retentionPeriod: + $ref: '#/components/schemas/Duration' + packingType: + $ref: '#/components/schemas/PackingType' + discriminator: + propertyName: '@type' + mapping: + FileTransferData: '#/components/schemas/FileTransferData' + FileTransferData_FVO: + allOf: + - $ref: '#/components/schemas/ProtocolTransferData_FVO' + - $ref: '#/components/schemas/Extensible_FVO' + - type: object + description: '' + properties: + fileLocation: + type: string + format: uri + fileFormat: + type: string + compressionType: + $ref: '#/components/schemas/CompressionType' + retentionPeriod: + $ref: '#/components/schemas/Duration' + packingType: + $ref: '#/components/schemas/PackingType' + discriminator: + propertyName: '@type' + mapping: + FileTransferData: '#/components/schemas/FileTransferData_FVO' + FileTransferData_MVO: + allOf: + - $ref: '#/components/schemas/ProtocolTransferData' + - $ref: '#/components/schemas/Extensible' + - type: object + description: '' + properties: + fileLocation: + type: string + format: uri + fileFormat: + type: string + compressionType: + $ref: '#/components/schemas/CompressionType' + retentionPeriod: + $ref: '#/components/schemas/Duration' + packingType: + $ref: '#/components/schemas/PackingType' + discriminator: + propertyName: '@type' + mapping: + FileTransferData: '#/components/schemas/FileTransferData_MVO' + Granularity: + enum: + - g_1mn + - g_5mn + - g_15mn + - g_30mn + - g_1h + - g_24h + - g_1m + - g_1y + - na + type: string + description: Sampling rate of the collection or production of performance indicators. + IndicatorType: + enum: + - string + - int + - float + - double + type: string + description: This is enumeration for Indicator Type + IntentRef: + type: object + description: 'Intent reference, for when Intent is used by other entities' + allOf: + - $ref: '#/components/schemas/EntityRef' + discriminator: + propertyName: '@type' + mapping: + IntentRef: '#/components/schemas/IntentRef' + IntentRef_FVO: + type: object + description: 'Intent reference, for when Intent is used by other entities' + allOf: + - $ref: '#/components/schemas/EntityRef_FVO' + discriminator: + propertyName: '@type' + mapping: + IntentRef: '#/components/schemas/IntentRef_FVO' + IntentRef_MVO: + type: object + description: 'Intent reference, for when Intent is used by other entities' + allOf: + - $ref: '#/components/schemas/EntityRef_MVO' + discriminator: + propertyName: '@type' + mapping: + IntentRef: '#/components/schemas/IntentRef_MVO' + LogicalResource: + allOf: + - $ref: '#/components/schemas/Resource' + - type: object + 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. + properties: + value: + type: string + description: the value of the logical resource. E.g '0746712345' for MSISDN's + discriminator: + propertyName: '@type' + mapping: + DataAccessEndpoint: '#/components/schemas/DataAccessEndpoint' + LogicalResource_FVO: + allOf: + - $ref: '#/components/schemas/Resource_FVO' + - type: object + 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. + properties: + value: + type: string + description: the value of the logical resource. E.g '0746712345' for MSISDN's + discriminator: + propertyName: '@type' + mapping: + DataAccessEndpoint: '#/components/schemas/DataAccessEndpoint_FVO' + LogicalResource_MVO: + allOf: + - $ref: '#/components/schemas/Resource_MVO' + - type: object + 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. + properties: + value: + type: string + description: the value of the logical resource. E.g '0746712345' for MSISDN's + discriminator: + propertyName: '@type' + mapping: + DataAccessEndpoint: '#/components/schemas/DataAccessEndpoint_MVO' + ManagementJob: + allOf: + - $ref: '#/components/schemas/Entity' + - type: object + description: '' + properties: + adminState: + $ref: '#/components/schemas/AdministrativeState' + creationTime: + type: string + format: date-time + description: The measurement job creation time. + executionState: + $ref: '#/components/schemas/ExecutionStateType' + fileTransferData: + type: array + items: + $ref: '#/components/schemas/FileTransferData' + minItems: 0 + dataAccessEndpoint: + type: array + items: + $ref: '#/components/schemas/DataAccessEndpoint' + minItems: 0 + jobId: + type: string + description: The ID of the management job. + jobPriority: + type: integer + minimum: 1 + maximum: 10 + default: 5 + description: >- + The priority of the management job. The way the management application will use the + JobPriority to schedule job execution is application specific and outside the scope. + Integer, limited to a range of 1 to 10. + lastModifiedTime: + type: string + format: date-time + description: The last time that a measurement job was modified. + scheduleDefinition: + type: array + items: + $ref: '#/components/schemas/ScheduleDefinition' + maxItems: 1 + discriminator: + propertyName: '@type' + mapping: + ManagementJob: '#/components/schemas/ManagementJob' + MeasurementJob: '#/components/schemas/MeasurementJob' + MeasurementCollectionJob: '#/components/schemas/MeasurementCollectionJob' + ManagementJob_FVO: + allOf: + - $ref: '#/components/schemas/Entity' + - type: object + description: '' + properties: + adminState: + $ref: '#/components/schemas/AdministrativeState' + creationTime: + type: string + format: date-time + description: The measurement job creation time. + executionState: + $ref: '#/components/schemas/ExecutionStateType' + fileTransferData: + type: array + items: + $ref: '#/components/schemas/FileTransferData_FVO' + minItems: 0 + dataAccessEndpoint: + type: array + items: + $ref: '#/components/schemas/DataAccessEndpoint_FVO' + minItems: 0 + jobId: + type: string + description: The ID of the management job. + jobPriority: + type: integer + minimum: 1 + maximum: 10 + default: 5 + description: >- + The priority of the management job. The way the management application will use the + JobPriority to schedule job execution is application specific and outside the scope. + Integer, limited to a range of 1 to 10. + lastModifiedTime: + type: string + format: date-time + description: The last time that a measurement job was modified. + scheduleDefinition: + type: array + items: + $ref: '#/components/schemas/ScheduleDefinition_FVO' + maxItems: 1 + discriminator: + propertyName: '@type' + mapping: + ManagementJob: '#/components/schemas/ManagementJob_FVO' + MeasurementJob: '#/components/schemas/MeasurementJob_FVO' + MeasurementCollectionJob: '#/components/schemas/MeasurementCollectionJob_FVO' + ManagementJob_MVO: + allOf: + - $ref: '#/components/schemas/Entity' + - type: object + description: '' + properties: + fileTransferData: + type: array + items: + $ref: '#/components/schemas/FileTransferData_MVO' + minItems: 0 + dataAccessEndpoint: + type: array + items: + $ref: '#/components/schemas/DataAccessEndpoint_MVO' + minItems: 0 + scheduleDefinition: + type: array + items: + $ref: '#/components/schemas/ScheduleDefinition_MVO' + maxItems: 1 + discriminator: + propertyName: '@type' + mapping: + ManagementJob: '#/components/schemas/ManagementJob_MVO' + MeasurementJob: '#/components/schemas/MeasurementJob_MVO' + MeasurementCollectionJob: '#/components/schemas/MeasurementCollectionJob_MVO' + MeasurementCollectionJob: + allOf: + - $ref: '#/components/schemas/MeasurementJob' + - type: object + description: >- + Used to control the periodic collection of performance indicators, implemented as a + sub-entity of the PM Measurement Job. + properties: + outputFormat: + type: string + reportingPeriod: + $ref: '#/components/schemas/ReportingPeriod' + jobCollectionFilter: + $ref: '#/components/schemas/DataFilterMap' + searchTaskFilter: + $ref: '#/components/schemas/DataFilterMap' + jobOnDemand: + type: boolean + default: false + description: >- + True if the job is a single job to be executed immediately in which case the + reportingPeriod and scheduleDefinition would not be applicable, false otherwise + MeasurementCollectionJobAttributeValueChangeEvent: + allOf: + - $ref: '#/components/schemas/Event' + - type: object + description: MeasurementCollectionJobAttributeValueChangeEvent generic structure + properties: + event: + $ref: '#/components/schemas/MeasurementCollectionJobAttributeValueChangeEventPayload' + discriminator: + propertyName: '@type' + mapping: + MeasurementCollectionJobAttributeValueChangeEvent: '#/components/schemas/MeasurementCollectionJobAttributeValueChangeEvent' + MeasurementCollectionJobAttributeValueChangeEventPayload: + type: object + description: MeasurementCollectionJobAttributeValueChangeEventPayload generic structure + properties: + measurementCollectionJob: + $ref: '#/components/schemas/MeasurementCollectionJob' + MeasurementCollectionJobCreateEvent: + allOf: + - $ref: '#/components/schemas/Event' + - type: object + description: MeasurementCollectionJobCreateEvent generic structure + properties: + event: + $ref: '#/components/schemas/MeasurementCollectionJobCreateEventPayload' + discriminator: + propertyName: '@type' + mapping: + MeasurementCollectionJobCreateEvent: '#/components/schemas/MeasurementCollectionJobCreateEvent' + MeasurementCollectionJobCreateEventPayload: + type: object + description: MeasurementCollectionJobCreateEventPayload generic structure + properties: + measurementCollectionJob: + $ref: '#/components/schemas/MeasurementCollectionJobRef' + MeasurementCollectionJobDeleteEvent: + allOf: + - $ref: '#/components/schemas/Event' + - type: object + description: MeasurementCollectionJobDeleteEvent generic structure + properties: + event: + $ref: '#/components/schemas/MeasurementCollectionJobDeleteEventPayload' + discriminator: + propertyName: '@type' + mapping: + MeasurementCollectionJobDeleteEvent: '#/components/schemas/MeasurementCollectionJobDeleteEvent' + MeasurementCollectionJobDeleteEventPayload: + type: object + description: MeasurementCollectionJobDeleteEventPayload generic structure + properties: + measurementCollectionJob: + $ref: '#/components/schemas/MeasurementCollectionJob' + MeasurementCollectionJobExecutionStateChangeEvent: + allOf: + - $ref: '#/components/schemas/Event' + - type: object + description: MeasurementCollectionJobExecutionStateChangeEvent generic structure + properties: + event: + $ref: '#/components/schemas/MeasurementCollectionJobExecutionStateChangeEventPayload' + discriminator: + propertyName: '@type' + mapping: + MeasurementCollectionJobExecutionStateChangeEvent: '#/components/schemas/MeasurementCollectionJobExecutionStateChangeEvent' + MeasurementCollectionJobExecutionStateChangeEventPayload: + type: object + description: MeasurementCollectionJobExecutionStateChangeEventPayload generic structure + properties: + measurementCollectionJob: + $ref: '#/components/schemas/MeasurementCollectionJob' + MeasurementCollectionJobFilesPreparationErrorEvent: + allOf: + - $ref: '#/components/schemas/Event' + - type: object + description: MeasurementCollectionJobFilesPreparationErrorEvent generic structure + properties: + event: + $ref: '#/components/schemas/MeasurementCollectionJobFilesPreparationErrorEventPayload' + discriminator: + propertyName: '@type' + mapping: + MeasurementCollectionJobFilesPreparationErrorEvent: '#/components/schemas/MeasurementCollectionJobFilesPreparationErrorEvent' + MeasurementCollectionJobFilesPreparationErrorEventPayload: + type: object + description: MeasurementCollectionJobFilesPreparationErrorEventPayload generic structure + properties: + measurementCollectionJob: + $ref: '#/components/schemas/MeasurementCollectionJob' + MeasurementCollectionJobFilesReadyEvent: + allOf: + - $ref: '#/components/schemas/Event' + - type: object + description: MeasurementCollectionJobFilesReadyEvent generic structure + properties: + event: + $ref: '#/components/schemas/MeasurementCollectionJobFilesReadyEventPayload' + discriminator: + propertyName: '@type' + mapping: + MeasurementCollectionJobFilesReadyEvent: '#/components/schemas/MeasurementCollectionJobFilesReadyEvent' + MeasurementCollectionJobFilesReadyEventPayload: + type: object + description: MeasurementCollectionJobFilesReadyEventPayload generic structure + properties: + measurementCollectionJob: + $ref: '#/components/schemas/MeasurementCollectionJob' + MeasurementCollectionJobRef: + type: object + description: Reference to a MeasurementCollectionJob + allOf: + - $ref: '#/components/schemas/EntityRef' + discriminator: + propertyName: '@type' + mapping: + MeasurementCollectionJobRef: '#/components/schemas/MeasurementCollectionJobRef' + MeasurementCollectionJob_FVO: + allOf: + - $ref: '#/components/schemas/MeasurementJob_FVO' + - type: object + description: >- + Used to control the periodic collection of performance indicators, implemented as a + sub-entity of the PM Measurement Job. + properties: + outputFormat: + type: string + reportingPeriod: + $ref: '#/components/schemas/ReportingPeriod' + jobCollectionFilter: + $ref: '#/components/schemas/DataFilterMap_FVO' + searchTaskFilter: + $ref: '#/components/schemas/DataFilterMap_FVO' + jobOnDemand: + type: boolean + default: false + description: >- + True if the job is a single job to be executed immediately in which case the + reportingPeriod and scheduleDefinition would not be applicable, false otherwise + MeasurementCollectionJob_MVO: + allOf: + - $ref: '#/components/schemas/MeasurementJob_MVO' + - type: object + description: >- + Used to control the periodic collection of performance indicators, implemented as a + sub-entity of the PM Measurement Job. + properties: + outputFormat: + type: string + reportingPeriod: + $ref: '#/components/schemas/ReportingPeriod' + jobCollectionFilter: + $ref: '#/components/schemas/DataFilterMap_MVO' + searchTaskFilter: + $ref: '#/components/schemas/DataFilterMap_MVO' + jobOnDemand: + type: boolean + default: false + description: >- + True if the job is a single job to be executed immediately in which case the + reportingPeriod and scheduleDefinition would not be applicable, false otherwise + MeasurementJob: + allOf: + - $ref: '#/components/schemas/ManagementJob' + - type: object + description: >- + A PM measurement job is the administrative entity defined by a client application to + perform a periodic activity related to PM data. The PM activities may be production of + measurements, collection of measurements or PM objective monitoring (scheduled + evaluation of thresholds). + properties: + consumingApplicationId: + description: The identifier of the application that consumes performance indicators. + type: string + producingApplicationId: + description: The identifier of the application that produces performance indicators. + type: string + granularity: + $ref: '#/components/schemas/Granularity' + performanceIndicatorGroupSpecification: + type: array + items: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification' + minItems: 0 + performanceIndicatorSpecification: + type: array + items: + $ref: '#/components/schemas/PerformanceIndicatorSpecificationRefOrValue' + minItems: 0 + trackingRecord: + type: array + items: + $ref: '#/components/schemas/TrackingRecord' + minItems: 0 + monitoredInstancesCriteria: + $ref: '#/components/schemas/MonitoredInstancesCriteria' + monitoredClassCriteria: + $ref: '#/components/schemas/MonitoredClassCriteria' + discriminator: + propertyName: '@type' + mapping: + MeasurementCollectionJob: '#/components/schemas/MeasurementCollectionJob' + MeasurementJob_FVO: + allOf: + - $ref: '#/components/schemas/ManagementJob_FVO' + - type: object + description: >- + A PM measurement job is the administrative entity defined by a client application to + perform a periodic activity related to PM data. The PM activities may be production of + measurements, collection of measurements or PM objective monitoring (scheduled + evaluation of thresholds). + properties: + consumingApplicationId: + description: The identifier of the application that consumes performance indicators. + type: string + producingApplicationId: + description: The identifier of the application that produces performance indicators. + type: string + granularity: + $ref: '#/components/schemas/Granularity' + performanceIndicatorGroupSpecification: + type: array + items: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification_FVO' + minItems: 0 + performanceIndicatorSpecification: + type: array + items: + $ref: '#/components/schemas/PerformanceIndicatorSpecificationRefOrValue_FVO' + minItems: 0 + trackingRecord: + type: array + items: + $ref: '#/components/schemas/TrackingRecord_FVO' + minItems: 0 + monitoredInstancesCriteria: + $ref: '#/components/schemas/MonitoredInstancesCriteria_FVO' + monitoredClassCriteria: + $ref: '#/components/schemas/MonitoredClassCriteria_FVO' + required: + - consumingApplicationId + - producingApplicationId + - performanceIndicatorSpecification + discriminator: + propertyName: '@type' + mapping: + MeasurementCollectionJob: '#/components/schemas/MeasurementCollectionJob_FVO' + MeasurementJob_MVO: + allOf: + - $ref: '#/components/schemas/ManagementJob_MVO' + - type: object + description: >- + A PM measurement job is the administrative entity defined by a client application to + perform a periodic activity related to PM data. The PM activities may be production of + measurements, collection of measurements or PM objective monitoring (scheduled + evaluation of thresholds). + properties: + consumingApplicationId: + description: The identifier of the application that consumes performance indicators. + type: string + producingApplicationId: + description: The identifier of the application that produces performance indicators. + type: string + granularity: + $ref: '#/components/schemas/Granularity' + performanceIndicatorGroupSpecification: + type: array + items: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification_MVO' + minItems: 0 + performanceIndicatorSpecification: + type: array + items: + $ref: '#/components/schemas/PerformanceIndicatorSpecificationRefOrValue_MVO' + minItems: 0 + trackingRecord: + type: array + items: + $ref: '#/components/schemas/TrackingRecord_MVO' + minItems: 0 + discriminator: + propertyName: '@type' + mapping: + MeasurementCollectionJob: '#/components/schemas/MeasurementCollectionJob_MVO' + MonitoredClassCriteria: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: Specifies a monitored object class (a string) in conjunction with a filter object. + properties: + monitoredObjectClass: + type: string + description: >- + A monitored object class for specifying the set of instances that are referenced by + a PM query. + objectInstanceFilter: + type: string + description: >- + A filter that can be used in conjunction with the monitored object class for + specifying the set of instances that are referenced by a PM query. + discriminator: + propertyName: '@type' + mapping: + MonitoredClassCriteria: '#/components/schemas/MonitoredClassCriteria' + MonitoredClassCriteria_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - type: object + description: Specifies a monitored object class (a string) in conjunction with a filter object. + properties: + monitoredObjectClass: + type: string + description: >- + A monitored object class for specifying the set of instances that are referenced by + a PM query. + objectInstanceFilter: + type: string + description: >- + A filter that can be used in conjunction with the monitored object class for + specifying the set of instances that are referenced by a PM query. + discriminator: + propertyName: '@type' + mapping: + MonitoredClassCriteria: '#/components/schemas/MonitoredClassCriteria_FVO' + MonitoredInstancesCriteria: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: List of monitored instances + properties: + monitoredObjectInstances: + type: array + items: + type: string + minItems: 0 + discriminator: + propertyName: '@type' + mapping: + MonitoredInstancesCriteria: '#/components/schemas/MonitoredInstancesCriteria' + MonitoredInstancesCriteria_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - type: object + description: List of monitored instances + properties: + monitoredObjectInstances: + type: array + items: + type: string + minItems: 0 + discriminator: + propertyName: '@type' + mapping: + MonitoredInstancesCriteria: '#/components/schemas/MonitoredInstancesCriteria_FVO' + MonthlyScheduleDayOfWeekDefinition: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + properties: + dayOfMonthRecurrence: + type: array + items: + $ref: '#/components/schemas/DayOfMonthRecurrence' + recurringDaySequence: + type: string + discriminator: + propertyName: '@type' + mapping: + MonthlyScheduleDayOfWeekDefinition: '#/components/schemas/MonthlyScheduleDayOfWeekDefinition' + MonthlyScheduleDayOfWeekDefinition_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - type: object + properties: + dayOfMonthRecurrence: + type: array + items: + $ref: '#/components/schemas/DayOfMonthRecurrence_FVO' + recurringDaySequence: + type: string + discriminator: + propertyName: '@type' + mapping: + MonthlyScheduleDayOfWeekDefinition: '#/components/schemas/MonthlyScheduleDayOfWeekDefinition_FVO' + MonthlyScheduleDayOfWeekDefinition_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + properties: + dayOfMonthRecurrence: + type: array + items: + $ref: '#/components/schemas/DayOfMonthRecurrence_MVO' + recurringDaySequence: + type: string + discriminator: + propertyName: '@type' + mapping: + MonthlyScheduleDayOfWeekDefinition: '#/components/schemas/MonthlyScheduleDayOfWeekDefinition_MVO' + Note: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: Extra information about a given entity + properties: + id: + type: string + description: Identifier of the note within its containing entity + example: afa9-3d90aaa8da0f + author: + type: string + description: Author of the note + example: Mr. N. Bene + date: + type: string + format: date-time + description: Date of the note + example: '2020-11-20T08:00:00Z' + text: + type: string + description: Text of the note + example: This is important + discriminator: + propertyName: '@type' + mapping: + Note: '#/components/schemas/Note' + Note_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - type: object + description: Extra information about a given entity + properties: + author: + type: string + description: Author of the note + example: Mr. N. Bene + date: + type: string + format: date-time + description: Date of the note + example: '2020-11-20T08:00:00Z' + text: + type: string + description: Text of the note + example: This is important + discriminator: + propertyName: '@type' + mapping: + Note: '#/components/schemas/Note_FVO' + Note_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: Extra information about a given entity + properties: + id: + type: string + description: Identifier of the note within its containing entity + example: afa9-3d90aaa8da0f + author: + type: string + description: Author of the note + example: Mr. N. Bene + date: + type: string + format: date-time + description: Date of the note + example: '2020-11-20T08:00:00Z' + text: + type: string + description: Text of the note + example: This is important + discriminator: + propertyName: '@type' + mapping: + Note: '#/components/schemas/Note_MVO' + OrderItemActionType: + enum: + - add + - modify + - delete + - noChange + type: string + description: action to be performed on the product + PackingEnumType: + enum: + - NO_PACKING + - GZIP + - TAR + - VENDOR_EXT + - MINOR_EXT + type: string + description: Enumeration of supported packing/packaging. All extensions allowed. + PackingType: + type: object + description: Specify if the output file(s) are to be packed. + properties: + packingEnumType: + $ref: '#/components/schemas/PackingEnumType' + PartyRef: + type: object + description: A Party reference + allOf: + - $ref: '#/components/schemas/EntityRef' + discriminator: + propertyName: '@type' + mapping: + PartyRef: '#/components/schemas/PartyRef' + PartyRefOrPartyRoleRef: + type: object + description: '' + oneOf: + - $ref: '#/components/schemas/PartyRef' + - $ref: '#/components/schemas/PartyRoleRef' + discriminator: + propertyName: '@type' + mapping: + PartyRef: '#/components/schemas/PartyRef' + PartyRoleRef: '#/components/schemas/PartyRoleRef' + PartyRefOrPartyRoleRef_FVO: + type: object + description: '' + oneOf: + - $ref: '#/components/schemas/PartyRef_FVO' + - $ref: '#/components/schemas/PartyRoleRef_FVO' + discriminator: + propertyName: '@type' + mapping: + PartyRef: '#/components/schemas/PartyRef_FVO' + PartyRoleRef: '#/components/schemas/PartyRoleRef_FVO' + PartyRefOrPartyRoleRef_MVO: + type: object + description: '' + oneOf: + - $ref: '#/components/schemas/PartyRef_MVO' + - $ref: '#/components/schemas/PartyRoleRef_MVO' + discriminator: + propertyName: '@type' + mapping: + PartyRef: '#/components/schemas/PartyRef_MVO' + PartyRoleRef: '#/components/schemas/PartyRoleRef_MVO' + PartyRef_FVO: + type: object + description: A Party reference + allOf: + - $ref: '#/components/schemas/EntityRef_FVO' + discriminator: + propertyName: '@type' + mapping: + PartyRef: '#/components/schemas/PartyRef_FVO' + PartyRef_MVO: + type: object + description: A Party reference + allOf: + - $ref: '#/components/schemas/EntityRef_MVO' + discriminator: + propertyName: '@type' + mapping: + PartyRef: '#/components/schemas/PartyRef_MVO' + PartyRoleRef: + allOf: + - $ref: '#/components/schemas/EntityRef' + - type: object + description: >- + Party role reference. A party role represents the part played by a party in a given + context. + properties: + partyId: + type: string + description: The identifier of the engaged party that is linked to the PartyRole object. + partyName: + type: string + description: The name of the engaged party that is linked to the PartyRole object. + discriminator: + propertyName: '@type' + mapping: + PartyRoleRef: '#/components/schemas/PartyRoleRef' + PartyRoleRef_FVO: + allOf: + - $ref: '#/components/schemas/EntityRef_FVO' + - type: object + description: >- + Party role reference. A party role represents the part played by a party in a given + context. + properties: + partyId: + type: string + description: The identifier of the engaged party that is linked to the PartyRole object. + partyName: + type: string + description: The name of the engaged party that is linked to the PartyRole object. + discriminator: + propertyName: '@type' + mapping: + PartyRoleRef: '#/components/schemas/PartyRoleRef_FVO' + PartyRoleRef_MVO: + allOf: + - $ref: '#/components/schemas/EntityRef_MVO' + - type: object + description: >- + Party role reference. A party role represents the part played by a party in a given + context. + properties: + partyId: + type: string + description: The identifier of the engaged party that is linked to the PartyRole object. + partyName: + type: string + description: The name of the engaged party that is linked to the PartyRole object. + discriminator: + propertyName: '@type' + mapping: + PartyRoleRef: '#/components/schemas/PartyRoleRef_MVO' + PerformanceIndicatorGroupSpecification: + allOf: + - $ref: '#/components/schemas/Extensible' + - $ref: '#/components/schemas/Addressable' + - type: object + description: '' + properties: + name: + description: 'A word, term, or phrase by which a PerformanceIndicatorGroupSpecification is tagged.' + type: string + groupCategory: + description: >- + A grouping or set of PerformanceIndicatorGroupSpecifications that are classified + together because of common characteristics, such as technology specific, service + specific, or technology/service independent. + type: string + performanceIndicatorSpecification: + type: array + items: + $ref: '#/components/schemas/PerformanceIndicatorSpecificationRefOrValue' + minItems: 1 + discriminator: + propertyName: '@type' + mapping: + PerformanceIndicatorGroupSpecification: '#/components/schemas/PerformanceIndicatorGroupSpecification' + PerformanceIndicatorGroupSpecificationRef: + allOf: + - $ref: '#/components/schemas/EntityRef' + - type: object + description: >- + PerformanceIndicatorGroupSpecification reference: A + PerformanceIndicatorGroupSpecification is a group of detailed description of a tangible + or intangible object made available externally in the form of a + PerformanceIndicatorGroupSpecification to customers or other parties playing a party + role. + properties: + version: + type: string + description: Version of the performance indicator group specification + discriminator: + propertyName: '@type' + mapping: + PerformanceIndicatorGroupSpecificationRef: '#/components/schemas/PerformanceIndicatorGroupSpecificationRef' + PerformanceIndicatorGroupSpecificationRefOrValue: + type: object + 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 + oneOf: + - $ref: '#/components/schemas/PerformanceIndicatorGroupSpecificationRef' + - $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification' + discriminator: + propertyName: '@type' + mapping: + PerformanceIndicatorGroupSpecificationRef: '#/components/schemas/PerformanceIndicatorGroupSpecificationRef' + PerformanceIndicatorGroupSpecification: '#/components/schemas/PerformanceIndicatorGroupSpecification' + PerformanceIndicatorGroupSpecification_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - $ref: '#/components/schemas/Addressable_FVO' + - type: object + description: '' + properties: + name: + description: 'A word, term, or phrase by which a PerformanceIndicatorGroupSpecification is tagged.' + type: string + groupCategory: + description: >- + A grouping or set of PerformanceIndicatorGroupSpecifications that are classified + together because of common characteristics, such as technology specific, service + specific, or technology/service independent. + type: string + performanceIndicatorSpecification: + type: array + items: + $ref: '#/components/schemas/PerformanceIndicatorSpecificationRefOrValue_FVO' + minItems: 1 + required: + - name + - groupCategory + discriminator: + propertyName: '@type' + mapping: + PerformanceIndicatorGroupSpecification: '#/components/schemas/PerformanceIndicatorGroupSpecification_FVO' + PerformanceIndicatorGroupSpecification_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - $ref: '#/components/schemas/Addressable_MVO' + - type: object + description: '' + properties: + name: + description: 'A word, term, or phrase by which a PerformanceIndicatorGroupSpecification is tagged.' + type: string + groupCategory: + description: >- + A grouping or set of PerformanceIndicatorGroupSpecifications that are classified + together because of common characteristics, such as technology specific, service + specific, or technology/service independent. + type: string + performanceIndicatorSpecification: + type: array + items: + $ref: '#/components/schemas/PerformanceIndicatorSpecificationRefOrValue_MVO' + minItems: 1 + discriminator: + propertyName: '@type' + mapping: + PerformanceIndicatorGroupSpecification: '#/components/schemas/PerformanceIndicatorGroupSpecification_MVO' + PerformanceIndicatorGroupValue: + type: object + description: A value of a performance indicator. + properties: + performanceIndicatorGroupSpecification: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecificationRefOrValue' + observedGroupValue: + type: array + items: + $ref: '#/components/schemas/PerformanceIndicatorValue' + minItems: 1 + description: The measurement group (array) values + tag: + description: The optional tag object attached to this observed group value + type: object + PerformanceIndicatorSpecRelationship: + allOf: + - $ref: '#/components/schemas/Entity' + - type: object + description: >- + Type of relationship such as aggregation, migration, substitution, dependency, + exclusivity + properties: + relationshipType: + description: '' + type: string + role: + type: string + description: The association role for this service specification + validFor: + $ref: '#/components/schemas/TimePeriod' + discriminator: + propertyName: '@type' + mapping: + PerformanceIndicatorSpecRelationship: '#/components/schemas/PerformanceIndicatorSpecRelationship' + PerformanceIndicatorSpecRelationship_FVO: + allOf: + - $ref: '#/components/schemas/Entity' + - type: object + description: >- + Type of relationship such as aggregation, migration, substitution, dependency, + exclusivity + properties: + relationshipType: + description: '' + type: string + role: + type: string + description: The association role for this service specification + validFor: + $ref: '#/components/schemas/TimePeriod' + required: + - relationshipType + - validFor + discriminator: + propertyName: '@type' + mapping: + PerformanceIndicatorSpecRelationship: '#/components/schemas/PerformanceIndicatorSpecRelationship_FVO' + PerformanceIndicatorSpecRelationship_MVO: + allOf: + - $ref: '#/components/schemas/Entity' + - type: object + description: >- + Type of relationship such as aggregation, migration, substitution, dependency, + exclusivity + properties: + relationshipType: + description: '' + type: string + role: + type: string + description: The association role for this service specification + validFor: + $ref: '#/components/schemas/TimePeriod' + discriminator: + propertyName: '@type' + mapping: + PerformanceIndicatorSpecRelationship: '#/components/schemas/PerformanceIndicatorSpecRelationship_MVO' + PerformanceIndicatorSpecification: + allOf: + - $ref: '#/components/schemas/Entity' + - type: object + description: >- + Holds the definition of the requested Performance indicator including: its name, value + type, collection type, description and units. + properties: + name: + description: >- + A word, term, or phrase by which a PerformanceIndicatorSpecification is known and + distinguished from other PerformanceIndicatorSpecifications. + type: string + description: + description: A narrative that explains in detail what the PerformanceIndicatorSpecification is. + type: string + perspective: + description: >- + The point of view for the PerformanceIndicatorSpecification, such as a single user + instance or aggregation. + type: string + indicatorCategory: + description: >- + A grouping or set of PerformanceIndicatorSpecifications that are classified together + because of common characteristics, such as technology specific, service specific, or + technology/service independent. + type: string + indicatorType: + $ref: '#/components/schemas/IndicatorType' + derivationAlgorithm: + description: A step-by-step procedure used to calculate the value of PerformanceIndicator. + type: string + derivationMethod: + description: >- + For simple calculations, the method used to calculate the value of a + PerformanceIndicator, such as average, minimum, maximum, sum and so forth. + type: string + validFor: + $ref: '#/components/schemas/TimePeriod' + collectionType: + $ref: '#/components/schemas/CollectionType' + indicatorUnit: + description: >- + The unit by which the indicator is measured. For example, seconds, KBs, rate per + second, etc. + type: string + performanceIndicatorSpecRelationship: + type: array + items: + $ref: '#/components/schemas/PerformanceIndicatorSpecRelationship' + minItems: 0 + discriminator: + propertyName: '@type' + mapping: + PerformanceIndicatorSpecification: '#/components/schemas/PerformanceIndicatorSpecification' + PerformanceIndicatorSpecificationRef: + allOf: + - $ref: '#/components/schemas/EntityRef' + - type: object + description: >- + PerformanceIndicatorSpecification reference: A PerformanceIndicatorSpecification is a + detailed description of a tangible or intangible object made available externally in the + form of a PerformanceIndicatorSpecification to customers or other parties playing a + party role. + properties: + version: + type: string + description: Version of the performance indicator specification + discriminator: + propertyName: '@type' + mapping: + PerformanceIndicatorSpecificationRef: '#/components/schemas/PerformanceIndicatorSpecificationRef' + PerformanceIndicatorSpecificationRefOrValue: + type: object + 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 + oneOf: + - $ref: '#/components/schemas/PerformanceIndicatorSpecificationRef' + - $ref: '#/components/schemas/PerformanceIndicatorSpecification' + discriminator: + propertyName: '@type' + mapping: + PerformanceIndicatorSpecificationRef: '#/components/schemas/PerformanceIndicatorSpecificationRef' + PerformanceIndicatorSpecification: '#/components/schemas/PerformanceIndicatorSpecification' + PerformanceIndicatorSpecificationRefOrValue_FVO: + type: object + 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 + oneOf: + - $ref: '#/components/schemas/PerformanceIndicatorSpecificationRef_FVO' + - $ref: '#/components/schemas/PerformanceIndicatorSpecification_FVO' + discriminator: + propertyName: '@type' + mapping: + PerformanceIndicatorSpecificationRef: '#/components/schemas/PerformanceIndicatorSpecificationRef_FVO' + PerformanceIndicatorSpecification: '#/components/schemas/PerformanceIndicatorSpecification_FVO' + PerformanceIndicatorSpecificationRefOrValue_MVO: + type: object + 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 + oneOf: + - $ref: '#/components/schemas/PerformanceIndicatorSpecificationRef_MVO' + - $ref: '#/components/schemas/PerformanceIndicatorSpecification_MVO' + discriminator: + propertyName: '@type' + mapping: + PerformanceIndicatorSpecificationRef: '#/components/schemas/PerformanceIndicatorSpecificationRef_MVO' + PerformanceIndicatorSpecification: '#/components/schemas/PerformanceIndicatorSpecification_MVO' + PerformanceIndicatorSpecificationRef_FVO: + allOf: + - $ref: '#/components/schemas/EntityRef_FVO' + - type: object + description: >- + PerformanceIndicatorSpecification reference: A PerformanceIndicatorSpecification is a + detailed description of a tangible or intangible object made available externally in the + form of a PerformanceIndicatorSpecification to customers or other parties playing a + party role. + properties: + version: + type: string + description: Version of the performance indicator specification + discriminator: + propertyName: '@type' + mapping: + PerformanceIndicatorSpecificationRef: '#/components/schemas/PerformanceIndicatorSpecificationRef_FVO' + PerformanceIndicatorSpecificationRef_MVO: + allOf: + - $ref: '#/components/schemas/EntityRef_MVO' + - type: object + description: >- + PerformanceIndicatorSpecification reference: A PerformanceIndicatorSpecification is a + detailed description of a tangible or intangible object made available externally in the + form of a PerformanceIndicatorSpecification to customers or other parties playing a + party role. + properties: + version: + type: string + description: Version of the performance indicator specification + discriminator: + propertyName: '@type' + mapping: + PerformanceIndicatorSpecificationRef: '#/components/schemas/PerformanceIndicatorSpecificationRef_MVO' + PerformanceIndicatorSpecification_FVO: + allOf: + - $ref: '#/components/schemas/Entity' + - type: object + description: >- + Holds the definition of the requested Performance indicator including: its name, value + type, collection type, description and units. + properties: + name: + description: >- + A word, term, or phrase by which a PerformanceIndicatorSpecification is known and + distinguished from other PerformanceIndicatorSpecifications. + type: string + description: + description: A narrative that explains in detail what the PerformanceIndicatorSpecification is. + type: string + perspective: + description: >- + The point of view for the PerformanceIndicatorSpecification, such as a single user + instance or aggregation. + type: string + indicatorCategory: + description: >- + A grouping or set of PerformanceIndicatorSpecifications that are classified together + because of common characteristics, such as technology specific, service specific, or + technology/service independent. + type: string + indicatorType: + $ref: '#/components/schemas/IndicatorType' + derivationAlgorithm: + description: A step-by-step procedure used to calculate the value of PerformanceIndicator. + type: string + derivationMethod: + description: >- + For simple calculations, the method used to calculate the value of a + PerformanceIndicator, such as average, minimum, maximum, sum and so forth. + type: string + validFor: + $ref: '#/components/schemas/TimePeriod' + collectionType: + $ref: '#/components/schemas/CollectionType' + indicatorUnit: + description: >- + The unit by which the indicator is measured. For example, seconds, KBs, rate per + second, etc. + type: string + performanceIndicatorSpecRelationship: + type: array + items: + $ref: '#/components/schemas/PerformanceIndicatorSpecRelationship_FVO' + minItems: 0 + required: + - indicatorCategory + - indicatorUnit + - indicatorType + - collectionType + - name + discriminator: + propertyName: '@type' + mapping: + PerformanceIndicatorSpecification: '#/components/schemas/PerformanceIndicatorSpecification_FVO' + PerformanceIndicatorSpecification_MVO: + allOf: + - $ref: '#/components/schemas/Entity' + - type: object + description: >- + Holds the definition of the requested Performance indicator including: its name, value + type, collection type, description and units. + properties: + name: + description: >- + A word, term, or phrase by which a PerformanceIndicatorSpecification is known and + distinguished from other PerformanceIndicatorSpecifications. + type: string + description: + description: A narrative that explains in detail what the PerformanceIndicatorSpecification is. + type: string + perspective: + description: >- + The point of view for the PerformanceIndicatorSpecification, such as a single user + instance or aggregation. + type: string + indicatorCategory: + description: >- + A grouping or set of PerformanceIndicatorSpecifications that are classified together + because of common characteristics, such as technology specific, service specific, or + technology/service independent. + type: string + indicatorType: + $ref: '#/components/schemas/IndicatorType' + derivationAlgorithm: + description: A step-by-step procedure used to calculate the value of PerformanceIndicator. + type: string + derivationMethod: + description: >- + For simple calculations, the method used to calculate the value of a + PerformanceIndicator, such as average, minimum, maximum, sum and so forth. + type: string + validFor: + $ref: '#/components/schemas/TimePeriod' + collectionType: + $ref: '#/components/schemas/CollectionType' + indicatorUnit: + description: >- + The unit by which the indicator is measured. For example, seconds, KBs, rate per + second, etc. + type: string + performanceIndicatorSpecRelationship: + type: array + items: + $ref: '#/components/schemas/PerformanceIndicatorSpecRelationship_MVO' + minItems: 0 + discriminator: + propertyName: '@type' + mapping: + PerformanceIndicatorSpecification: '#/components/schemas/PerformanceIndicatorSpecification_MVO' + PerformanceIndicatorValue: + type: object + description: A value of a performance indicator. + properties: + performanceIndicatorSpecification: + $ref: '#/components/schemas/PerformanceIndicatorSpecificationRefOrValue' + observedValue: + type: string + description: The measurement value + tag: + description: The optional tag object attached to this observed value + type: object + PerformanceMeasurement: + allOf: + - $ref: '#/components/schemas/Entity' + - type: object + description: A measurement of a performance indicator or performance group indicator. + properties: + description: + type: string + description: A free-text description of the performance measurement + measurementCollectionJob: + $ref: '#/components/schemas/MeasurementCollectionJobRef' + validFor: + $ref: '#/components/schemas/TimePeriod' + relatedMeasurement: + type: array + items: + $ref: '#/components/schemas/PerformanceMeasurementRelationship' + description: related Performance measurements array + minItems: 0 + tag: + description: The optional tag object attached to this entire measurement + type: object + discriminator: + propertyName: '@type' + mapping: + PerformanceMeasurement: '#/components/schemas/PerformanceMeasurement' + PerformanceMeasurementAtomic: '#/components/schemas/PerformanceMeasurementAtomic' + PerformanceMeasurementGroup: '#/components/schemas/PerformanceMeasurementGroup' + PerformanceMeasurementAtomic: + allOf: + - $ref: '#/components/schemas/PerformanceMeasurement' + - type: object + description: A measurement of a single performance indicator. + properties: + performanceIndicatorValue: + type: array + items: + $ref: '#/components/schemas/PerformanceIndicatorValue' + minItems: 1 + PerformanceMeasurementCollectionReadyEvent: + allOf: + - $ref: '#/components/schemas/Event' + - type: object + description: PerformanceMeasurementCollectionReadyEvent generic structure + properties: + event: + $ref: '#/components/schemas/PerformanceMeasurementCollectionReadyEventPayload' + discriminator: + propertyName: '@type' + mapping: + PerformanceMeasurementCollectionReadyEvent: '#/components/schemas/PerformanceMeasurementCollectionReadyEvent' + PerformanceMeasurementCollectionReadyEventPayload: + type: object + description: PerformanceMeasurementCollectionReadyEventPayload generic structure + properties: + performanceMeasurement: + $ref: '#/components/schemas/PerformanceMeasurement' + PerformanceMeasurementCreateEvent: + allOf: + - $ref: '#/components/schemas/Event' + - type: object + description: PerformanceMeasurementCreateEvent generic structure + properties: + event: + $ref: '#/components/schemas/PerformanceMeasurementCreateEventPayload' + discriminator: + propertyName: '@type' + mapping: + PerformanceMeasurementCreateEvent: '#/components/schemas/PerformanceMeasurementCreateEvent' + PerformanceMeasurementCreateEventPayload: + type: object + description: PerformanceMeasurementCreateEventPayload generic structure + properties: + performanceMeasurement: + $ref: '#/components/schemas/PerformanceMeasurement' + PerformanceMeasurementGroup: + allOf: + - $ref: '#/components/schemas/PerformanceMeasurement' + - type: object + description: A measurement of a performance group indicator. + properties: + performanceIndicatorGroupValue: + type: array + items: + $ref: '#/components/schemas/PerformanceIndicatorGroupValue' + minItems: 1 + PerformanceMeasurementRef: + allOf: + - $ref: '#/components/schemas/EntityRef' + - type: object + description: >- + PerformanceMeasurement reference: A PerformanceMeasurement is the observed value(s) of + some PerformanceIndicatorSpecification. + properties: + version: + type: string + description: Version of the PerformanceMeasurement + discriminator: + propertyName: '@type' + mapping: + PerformanceMeasurementRef: '#/components/schemas/PerformanceMeasurementRef' + PerformanceMeasurementRefOrValue: + type: object + description: >- + A PerformanceMeasurement 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 + oneOf: + - $ref: '#/components/schemas/PerformanceMeasurementRef' + - $ref: '#/components/schemas/PerformanceMeasurement' + discriminator: + propertyName: '@type' + mapping: + PerformanceMeasurementRef: '#/components/schemas/PerformanceMeasurementRef' + PerformanceMeasurement: '#/components/schemas/PerformanceMeasurement' + PerformanceMeasurementGroup: '#/components/schemas/PerformanceMeasurementGroup' + PerformanceMeasurementAtomic: '#/components/schemas/PerformanceMeasurementAtomic' + PerformanceMeasurementRelationship: + allOf: + - $ref: '#/components/schemas/Entity' + - type: object + description: >- + Type of relationship such as aggregation, migration, substitution, dependency, + exclusivity + properties: + relationshipType: + description: '' + type: string + relatedMeasurement: + $ref: '#/components/schemas/PerformanceMeasurementRefOrValue' + role: + type: string + description: The association role for this PerformanceMeasurement + validFor: + $ref: '#/components/schemas/TimePeriod' + discriminator: + propertyName: '@type' + mapping: + PerformanceMeasurementRelationship: '#/components/schemas/PerformanceMeasurementRelationship' + PlaceRef: + type: object + description: Place reference. + allOf: + - $ref: '#/components/schemas/Extensible' + - $ref: '#/components/schemas/EntityRef' + discriminator: + propertyName: '@type' + mapping: + PlaceRef: '#/components/schemas/PlaceRef' + PlaceRef_FVO: + type: object + description: Place reference. + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - $ref: '#/components/schemas/EntityRef_FVO' + discriminator: + propertyName: '@type' + mapping: + PlaceRef: '#/components/schemas/PlaceRef_FVO' + PlaceRef_MVO: + type: object + description: Place reference. + allOf: + - $ref: '#/components/schemas/Extensible' + - $ref: '#/components/schemas/EntityRef_MVO' + discriminator: + propertyName: '@type' + mapping: + PlaceRef: '#/components/schemas/PlaceRef_MVO' + PolicyRef: + allOf: + - $ref: '#/components/schemas/EntityRef' + - type: object + description: Reference to managed Policy object + properties: + id: + type: string + description: unique identifier + href: + type: string + description: Hyperlink reference + version: + type: string + '@type': + type: string + description: 'When sub-classing, this defines the sub-class Extensible name' + '@baseType': + type: string + description: 'When sub-classing, this defines the super-class' + '@schemaLocation': + type: string + description: A URI to a JSON-Schema file that defines additional attributes and relationships + discriminator: + propertyName: '@type' + mapping: + PolicyRef: '#/components/schemas/PolicyRef' + PolicyRef_FVO: + allOf: + - $ref: '#/components/schemas/EntityRef_FVO' + - type: object + description: Reference to managed Policy object + properties: + id: + type: string + description: unique identifier + version: + type: string + '@type': + type: string + description: 'When sub-classing, this defines the sub-class Extensible name' + '@baseType': + type: string + description: 'When sub-classing, this defines the super-class' + '@schemaLocation': + type: string + description: A URI to a JSON-Schema file that defines additional attributes and relationships + required: + - '@type' + discriminator: + propertyName: '@type' + mapping: + PolicyRef: '#/components/schemas/PolicyRef_FVO' + PolicyRef_MVO: + allOf: + - $ref: '#/components/schemas/EntityRef_MVO' + - type: object + description: Reference to managed Policy object + properties: + id: + type: string + description: unique identifier + version: + type: string + '@type': + type: string + description: 'When sub-classing, this defines the sub-class Extensible name' + '@baseType': + type: string + description: 'When sub-classing, this defines the super-class' + '@schemaLocation': + type: string + description: A URI to a JSON-Schema file that defines additional attributes and relationships + discriminator: + propertyName: '@type' + mapping: + PolicyRef: '#/components/schemas/PolicyRef_MVO' + ProtocolTransferData: + type: object + properties: + transportProtocol: + type: string + discriminator: + propertyName: '@type' + mapping: + FileTransferData: '#/components/schemas/FileTransferData' + ProtocolTransferData_FVO: + type: object + properties: + transportProtocol: + type: string + discriminator: + propertyName: '@type' + mapping: + FileTransferData: '#/components/schemas/FileTransferData_FVO' + ProtocolTransferData_MVO: + type: object + properties: + transportProtocol: + type: string + discriminator: + propertyName: '@type' + mapping: + FileTransferData: '#/components/schemas/FileTransferData_MVO' + RelatedPartyRefOrPartyRoleRef: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: >- + RelatedParty reference. A related party defines party or party role or its reference, + linked to a specific entity + properties: + role: + description: >- + Role played by the related party or party role in the context of the specific entity + it is linked to. Such as 'initiator', 'customer', 'salesAgent', 'user' + type: string + partyOrPartyRole: + $ref: '#/components/schemas/PartyRefOrPartyRoleRef' + discriminator: + propertyName: '@type' + mapping: + RelatedPartyRefOrPartyRoleRef: '#/components/schemas/RelatedPartyRefOrPartyRoleRef' + RelatedPartyRefOrPartyRoleRef_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - type: object + description: >- + RelatedParty reference. A related party defines party or party role or its reference, + linked to a specific entity + properties: + role: + description: >- + Role played by the related party or party role in the context of the specific entity + it is linked to. Such as 'initiator', 'customer', 'salesAgent', 'user' + type: string + partyOrPartyRole: + $ref: '#/components/schemas/PartyRefOrPartyRoleRef_FVO' + required: + - role + discriminator: + propertyName: '@type' + mapping: + RelatedPartyRefOrPartyRoleRef: '#/components/schemas/RelatedPartyRefOrPartyRoleRef_FVO' + RelatedPartyRefOrPartyRoleRef_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: >- + RelatedParty reference. A related party defines party or party role or its reference, + linked to a specific entity + properties: + role: + description: >- + Role played by the related party or party role in the context of the specific entity + it is linked to. Such as 'initiator', 'customer', 'salesAgent', 'user' + type: string + partyOrPartyRole: + $ref: '#/components/schemas/PartyRefOrPartyRoleRef_MVO' + required: + - role + discriminator: + propertyName: '@type' + mapping: + RelatedPartyRefOrPartyRoleRef: '#/components/schemas/RelatedPartyRefOrPartyRoleRef_MVO' + RelatedPlaceRef: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: >- + Entity reference. The polymorphic attributes @type, @schemaLocation & @referredType are + related to the RelatedPlace entity and not the RelatedPlaceRef class itself + properties: + role: + type: string + place: + $ref: '#/components/schemas/PlaceRef' + discriminator: + propertyName: '@type' + mapping: + RelatedPlaceRef: '#/components/schemas/RelatedPlaceRef' + RelatedPlaceRef_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - type: object + description: >- + Entity reference. The polymorphic attributes @type, @schemaLocation & @referredType are + related to the RelatedPlace entity and not the RelatedPlaceRef class itself + properties: + role: + type: string + place: + $ref: '#/components/schemas/PlaceRef_FVO' + required: + - role + - place + discriminator: + propertyName: '@type' + mapping: + RelatedPlaceRef: '#/components/schemas/RelatedPlaceRef_FVO' + RelatedPlaceRef_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: >- + Entity reference. The polymorphic attributes @type, @schemaLocation & @referredType are + related to the RelatedPlace entity and not the RelatedPlaceRef class itself + properties: + role: + type: string + place: + $ref: '#/components/schemas/PlaceRef_MVO' + required: + - role + - place + discriminator: + propertyName: '@type' + mapping: + RelatedPlaceRef: '#/components/schemas/RelatedPlaceRef_MVO' + RelatedResourceOrderItem: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: >- + RelatedResourceOrderItem (a ResourceOrder item) .The resource order item which triggered + resource creation/change/termination. + properties: + '@referredType': + type: string + description: The actual type of the target instance when needed for disambiguation. + resourceOrderHref: + type: string + description: Reference of the related entity. + resourceOrderId: + type: string + description: Unique identifier of a related entity. + itemAction: + $ref: '#/components/schemas/OrderItemActionType' + itemId: + type: string + description: Identifier of the order item where the resource was managed + role: + type: string + description: role of the resource order item for this resource + discriminator: + propertyName: '@type' + mapping: + RelatedResourceOrderItem: '#/components/schemas/RelatedResourceOrderItem' + RelatedResourceOrderItem_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - type: object + description: >- + RelatedResourceOrderItem (a ResourceOrder item) .The resource order item which triggered + resource creation/change/termination. + properties: + '@referredType': + type: string + description: The actual type of the target instance when needed for disambiguation. + resourceOrderHref: + type: string + description: Reference of the related entity. + resourceOrderId: + type: string + description: Unique identifier of a related entity. + itemAction: + $ref: '#/components/schemas/OrderItemActionType' + itemId: + type: string + description: Identifier of the order item where the resource was managed + role: + type: string + description: role of the resource order item for this resource + discriminator: + propertyName: '@type' + mapping: + RelatedResourceOrderItem: '#/components/schemas/RelatedResourceOrderItem_FVO' + RelatedResourceOrderItem_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: >- + RelatedResourceOrderItem (a ResourceOrder item) .The resource order item which triggered + resource creation/change/termination. + properties: + '@referredType': + type: string + description: The actual type of the target instance when needed for disambiguation. + resourceOrderHref: + type: string + description: Reference of the related entity. + resourceOrderId: + type: string + description: Unique identifier of a related entity. + itemAction: + $ref: '#/components/schemas/OrderItemActionType' + itemId: + type: string + description: Identifier of the order item where the resource was managed + role: + type: string + description: role of the resource order item for this resource + discriminator: + propertyName: '@type' + mapping: + RelatedResourceOrderItem: '#/components/schemas/RelatedResourceOrderItem_MVO' + ReportingPeriod: + enum: + - r_1mn + - r_5mn + - r_15mn + - r_30mn + - r_1h + - r_24h + - na + type: string + description: Possible values for the reporting period + Resource: + allOf: + - $ref: '#/components/schemas/Entity' + - type: object + 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. + properties: + category: + type: string + description: 'Category of the concrete resource. e.g Gold, Silver for MSISDN concrete resource' + description: + type: string + description: free-text description of the resource + name: + type: string + description: the name of the resource + endOperatingDate: + type: string + format: date-time + description: A date time( DateTime). The date till the resource is operating + administrativeState: + $ref: '#/components/schemas/ResourceAdministrativeStateType' + operationalState: + $ref: '#/components/schemas/ResourceOperationalStateType' + resourceStatus: + $ref: '#/components/schemas/ResourceStatusType' + usageState: + $ref: '#/components/schemas/ResourceUsageStateType' + validFor: + $ref: '#/components/schemas/TimePeriod' + note: + type: array + items: + $ref: '#/components/schemas/Note' + resourceOrderItem: + type: array + description: A list of resource order items related to this resource + items: + $ref: '#/components/schemas/RelatedResourceOrderItem' + place: + type: array + items: + $ref: '#/components/schemas/RelatedPlaceRef' + relatedParty: + type: array + items: + $ref: '#/components/schemas/RelatedPartyRefOrPartyRoleRef' + resourceRelationship: + type: array + items: + $ref: '#/components/schemas/ResourceRelationship' + resourceCharacteristic: + type: array + items: + $ref: '#/components/schemas/Characteristic' + attachment: + type: array + items: + $ref: '#/components/schemas/AttachmentRef' + resourceSpecification: + $ref: '#/components/schemas/ResourceSpecificationRef' + startOperatingDate: + type: string + format: date-time + description: A date time( DateTime). The date from which the resource is operating + resourceVersion: + type: string + description: A field that identifies the specific version of an instance of a resource. + activationFeature: + description: Configuration features + type: array + items: + $ref: '#/components/schemas/Feature' + intent: + $ref: '#/components/schemas/IntentRef' + externalIdentifier: + type: array + description: >- + An identification of this resource that is owned by or originates in a software + system different from the current system. The structure identifies the system + itself, the nature of the resource within the system and the unique ID of the + resource within the system. It is anticipated that multiple external IDs can be held + for a single resource, e.g. if the resource passed through multiple systems on the + way to the current system. + items: + $ref: '#/components/schemas/ExternalIdentifier' + discriminator: + propertyName: '@type' + mapping: + Resource: '#/components/schemas/Resource' + LogicalResource: '#/components/schemas/LogicalResource' + DataAccessEndpoint: '#/components/schemas/DataAccessEndpoint' + ResourceAdministrativeStateType: + enum: + - locked + - unlocked + - shutdown + type: string + description: ResourceAdministrativeStateType enumerations + ResourceOperationalStateType: + enum: + - enable + - disable + type: string + description: ResourceOperationalStateType enumerations + ResourceRef: + type: object + description: 'Resource reference, for when Resource is used by other entities.' + allOf: + - $ref: '#/components/schemas/EntityRef' + discriminator: + propertyName: '@type' + mapping: + ResourceRef: '#/components/schemas/ResourceRef' + ResourceRefOrValue: + type: object + description: >- + The polymorphic attributes @type, @schemaLocation & @referredType are related to the + Resource entity and not the ResourceRefOrValue class itself + oneOf: + - $ref: '#/components/schemas/Resource' + - $ref: '#/components/schemas/ResourceRef' + discriminator: + propertyName: '@type' + mapping: + Resource: '#/components/schemas/Resource' + ResourceRef: '#/components/schemas/ResourceRef' + LogicalResource: '#/components/schemas/LogicalResource' + DataAccessEndpoint: '#/components/schemas/DataAccessEndpoint' + ResourceRefOrValue_FVO: + type: object + description: >- + The polymorphic attributes @type, @schemaLocation & @referredType are related to the + Resource entity and not the ResourceRefOrValue class itself + oneOf: + - $ref: '#/components/schemas/Resource_FVO' + - $ref: '#/components/schemas/ResourceRef_FVO' + discriminator: + propertyName: '@type' + mapping: + Resource: '#/components/schemas/Resource_FVO' + ResourceRef: '#/components/schemas/ResourceRef_FVO' + LogicalResource: '#/components/schemas/LogicalResource_FVO' + DataAccessEndpoint: '#/components/schemas/DataAccessEndpoint_FVO' + ResourceRefOrValue_MVO: + type: object + description: >- + The polymorphic attributes @type, @schemaLocation & @referredType are related to the + Resource entity and not the ResourceRefOrValue class itself + oneOf: + - $ref: '#/components/schemas/Resource_MVO' + - $ref: '#/components/schemas/ResourceRef_MVO' + discriminator: + propertyName: '@type' + mapping: + Resource: '#/components/schemas/Resource_MVO' + ResourceRef: '#/components/schemas/ResourceRef_MVO' + LogicalResource: '#/components/schemas/LogicalResource_MVO' + DataAccessEndpoint: '#/components/schemas/DataAccessEndpoint_MVO' + ResourceRef_FVO: + type: object + description: 'Resource reference, for when Resource is used by other entities.' + allOf: + - $ref: '#/components/schemas/EntityRef_FVO' + discriminator: + propertyName: '@type' + mapping: + ResourceRef: '#/components/schemas/ResourceRef_FVO' + ResourceRef_MVO: + type: object + description: 'Resource reference, for when Resource is used by other entities.' + allOf: + - $ref: '#/components/schemas/EntityRef_MVO' + discriminator: + propertyName: '@type' + mapping: + ResourceRef: '#/components/schemas/ResourceRef_MVO' + ResourceRelationship: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + 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 + properties: + resourceRelationshipCharacteristic: + type: array + items: + $ref: '#/components/schemas/Characteristic' + resource: + $ref: '#/components/schemas/ResourceRefOrValue' + relationshipType: + type: string + 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 + discriminator: + propertyName: '@type' + mapping: + ResourceRelationship: '#/components/schemas/ResourceRelationship' + ResourceRelationship_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - type: object + 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 + properties: + resourceRelationshipCharacteristic: + type: array + items: + $ref: '#/components/schemas/Characteristic_FVO' + resource: + $ref: '#/components/schemas/ResourceRefOrValue_FVO' + relationshipType: + type: string + 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 + required: + - relationshipType + - resource + discriminator: + propertyName: '@type' + mapping: + ResourceRelationship: '#/components/schemas/ResourceRelationship_FVO' + ResourceRelationship_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + 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 + properties: + resourceRelationshipCharacteristic: + type: array + items: + $ref: '#/components/schemas/Characteristic_MVO' + resource: + $ref: '#/components/schemas/ResourceRefOrValue_MVO' + relationshipType: + type: string + 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 + required: + - relationshipType + - resource + discriminator: + propertyName: '@type' + mapping: + ResourceRelationship: '#/components/schemas/ResourceRelationship_MVO' + ResourceSpecificationRef: + allOf: + - $ref: '#/components/schemas/EntityRef' + - type: object + 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. + properties: + version: + type: string + description: Resource Specification version + discriminator: + propertyName: '@type' + mapping: + ResourceSpecificationRef: '#/components/schemas/ResourceSpecificationRef' + ResourceSpecificationRef_FVO: + allOf: + - $ref: '#/components/schemas/EntityRef_FVO' + - type: object + 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. + properties: + version: + type: string + description: Resource Specification version + discriminator: + propertyName: '@type' + mapping: + ResourceSpecificationRef: '#/components/schemas/ResourceSpecificationRef_FVO' + ResourceSpecificationRef_MVO: + allOf: + - $ref: '#/components/schemas/EntityRef_MVO' + - type: object + 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. + properties: + version: + type: string + description: Resource Specification version + discriminator: + propertyName: '@type' + mapping: + ResourceSpecificationRef: '#/components/schemas/ResourceSpecificationRef_MVO' + ResourceStatusType: + enum: + - alarm + - available + - installed + - not exists + - pendingRemoval + - planned + - reserved + - standby + - suspended + - unknown + type: string + description: ResourceStatusType enumerations + ResourceUsageStateType: + enum: + - idle + - active + - busy + type: string + description: ResourceUsageStateType enumerations + Resource_FVO: + allOf: + - $ref: '#/components/schemas/Entity' + - type: object + 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. + properties: + category: + type: string + description: 'Category of the concrete resource. e.g Gold, Silver for MSISDN concrete resource' + description: + type: string + description: free-text description of the resource + name: + type: string + description: the name of the resource + endOperatingDate: + type: string + format: date-time + description: A date time( DateTime). The date till the resource is operating + administrativeState: + $ref: '#/components/schemas/ResourceAdministrativeStateType' + operationalState: + $ref: '#/components/schemas/ResourceOperationalStateType' + resourceStatus: + $ref: '#/components/schemas/ResourceStatusType' + usageState: + $ref: '#/components/schemas/ResourceUsageStateType' + validFor: + $ref: '#/components/schemas/TimePeriod' + note: + type: array + items: + $ref: '#/components/schemas/Note_FVO' + resourceOrderItem: + type: array + description: A list of resource order items related to this resource + items: + $ref: '#/components/schemas/RelatedResourceOrderItem_FVO' + place: + type: array + items: + $ref: '#/components/schemas/RelatedPlaceRef_FVO' + relatedParty: + type: array + items: + $ref: '#/components/schemas/RelatedPartyRefOrPartyRoleRef_FVO' + resourceRelationship: + type: array + items: + $ref: '#/components/schemas/ResourceRelationship_FVO' + resourceCharacteristic: + type: array + items: + $ref: '#/components/schemas/Characteristic_FVO' + attachment: + type: array + items: + $ref: '#/components/schemas/AttachmentRef_FVO' + resourceSpecification: + $ref: '#/components/schemas/ResourceSpecificationRef_FVO' + startOperatingDate: + type: string + format: date-time + description: A date time( DateTime). The date from which the resource is operating + resourceVersion: + type: string + description: A field that identifies the specific version of an instance of a resource. + activationFeature: + description: Configuration features + type: array + items: + $ref: '#/components/schemas/Feature_FVO' + intent: + $ref: '#/components/schemas/IntentRef_FVO' + externalIdentifier: + type: array + description: >- + An identification of this resource that is owned by or originates in a software + system different from the current system. The structure identifies the system + itself, the nature of the resource within the system and the unique ID of the + resource within the system. It is anticipated that multiple external IDs can be held + for a single resource, e.g. if the resource passed through multiple systems on the + way to the current system. + items: + $ref: '#/components/schemas/ExternalIdentifier_FVO' + discriminator: + propertyName: '@type' + mapping: + Resource: '#/components/schemas/Resource_FVO' + LogicalResource: '#/components/schemas/LogicalResource_FVO' + DataAccessEndpoint: '#/components/schemas/DataAccessEndpoint_FVO' + Resource_MVO: + allOf: + - $ref: '#/components/schemas/Entity' + - type: object + 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. + properties: + category: + type: string + description: 'Category of the concrete resource. e.g Gold, Silver for MSISDN concrete resource' + description: + type: string + description: free-text description of the resource + name: + type: string + description: the name of the resource + endOperatingDate: + type: string + format: date-time + description: A date time( DateTime). The date till the resource is operating + administrativeState: + $ref: '#/components/schemas/ResourceAdministrativeStateType' + operationalState: + $ref: '#/components/schemas/ResourceOperationalStateType' + resourceStatus: + $ref: '#/components/schemas/ResourceStatusType' + usageState: + $ref: '#/components/schemas/ResourceUsageStateType' + validFor: + $ref: '#/components/schemas/TimePeriod' + note: + type: array + items: + $ref: '#/components/schemas/Note_MVO' + resourceOrderItem: + type: array + description: A list of resource order items related to this resource + items: + $ref: '#/components/schemas/RelatedResourceOrderItem_MVO' + place: + type: array + items: + $ref: '#/components/schemas/RelatedPlaceRef_MVO' + relatedParty: + type: array + items: + $ref: '#/components/schemas/RelatedPartyRefOrPartyRoleRef_MVO' + resourceRelationship: + type: array + items: + $ref: '#/components/schemas/ResourceRelationship_MVO' + resourceCharacteristic: + type: array + items: + $ref: '#/components/schemas/Characteristic_MVO' + attachment: + type: array + items: + $ref: '#/components/schemas/AttachmentRef_MVO' + resourceSpecification: + $ref: '#/components/schemas/ResourceSpecificationRef_MVO' + startOperatingDate: + type: string + format: date-time + description: A date time( DateTime). The date from which the resource is operating + resourceVersion: + type: string + description: A field that identifies the specific version of an instance of a resource. + activationFeature: + description: Configuration features + type: array + items: + $ref: '#/components/schemas/Feature_MVO' + intent: + $ref: '#/components/schemas/IntentRef_MVO' + externalIdentifier: + type: array + description: >- + An identification of this resource that is owned by or originates in a software + system different from the current system. The structure identifies the system + itself, the nature of the resource within the system and the unique ID of the + resource within the system. It is anticipated that multiple external IDs can be held + for a single resource, e.g. if the resource passed through multiple systems on the + way to the current system. + items: + $ref: '#/components/schemas/ExternalIdentifier_MVO' + discriminator: + propertyName: '@type' + mapping: + Resource: '#/components/schemas/Resource_MVO' + LogicalResource: '#/components/schemas/LogicalResource_MVO' + DataAccessEndpoint: '#/components/schemas/DataAccessEndpoint_MVO' + ScheduleDefinition: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: The schedule definition for running jobs. + properties: + id: + type: string + description: Identifier of the schedule definition + scheduleDefinitionStartTime: + description: The Start time of the Schedule Definition + type: string + format: date-time + scheduleDefinitionEndTime: + description: >- + The End time of the Schedule Definition. If the attribute is empty the Schedule run + forever, not having a time constraint. + type: string + format: date-time + recurringFrequency: + description: >- + A recurring frequency to run a job within day that is included in schedule + definition, for example: every 5 minutes, 15 minute, 30 minutes, 1 hour + type: string + excludedDate: + description: A list of specific dates that should be excluded from the Schedule Definition. + type: array + items: + type: string + format: date-time + scheduleDefinitionHourRange: + description: >- + A list of time ranges within a specific day that the schedule will be active on, for + example 08:00-12:00, 16:00-19:00. + type: string + WeeklyScheduledDefinition: + description: >- + The weekly schedule is used to define a schedule that is based on the days of the + week, e.g. a schedule that will be active only on Monday and Tuesday. + type: array + items: + $ref: '#/components/schemas/DayOfWeekRecurrence' + monthlyScheduleDayOfMonthDefinition: + description: The schedule definition for running the threshold job + type: array + items: + type: string + format: date-time + MonthlyScheduleDayOfWeekDefinition: + $ref: '#/components/schemas/MonthlyScheduleDayOfWeekDefinition' + dateScheduleDefintion: + description: >- + The date schedule is used to define a schedule that is based on specific dates, such + as December 31st 2015, February 28th 2013 + type: array + items: + type: string + format: date-time + discriminator: + propertyName: '@type' + mapping: + ScheduleDefinition: '#/components/schemas/ScheduleDefinition' + ScheduleDefinition_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - type: object + description: The schedule definition for running jobs. + properties: + scheduleDefinitionStartTime: + description: The Start time of the Schedule Definition + type: string + format: date-time + scheduleDefinitionEndTime: + description: >- + The End time of the Schedule Definition. If the attribute is empty the Schedule run + forever, not having a time constraint. + type: string + format: date-time + recurringFrequency: + description: >- + A recurring frequency to run a job within day that is included in schedule + definition, for example: every 5 minutes, 15 minute, 30 minutes, 1 hour + type: string + excludedDate: + description: A list of specific dates that should be excluded from the Schedule Definition. + type: array + items: + type: string + format: date-time + scheduleDefinitionHourRange: + description: >- + A list of time ranges within a specific day that the schedule will be active on, for + example 08:00-12:00, 16:00-19:00. + type: string + WeeklyScheduledDefinition: + description: >- + The weekly schedule is used to define a schedule that is based on the days of the + week, e.g. a schedule that will be active only on Monday and Tuesday. + type: array + items: + $ref: '#/components/schemas/DayOfWeekRecurrence_FVO' + monthlyScheduleDayOfMonthDefinition: + description: The schedule definition for running the threshold job + type: array + items: + type: string + format: date-time + MonthlyScheduleDayOfWeekDefinition: + $ref: '#/components/schemas/MonthlyScheduleDayOfWeekDefinition_FVO' + dateScheduleDefintion: + description: >- + The date schedule is used to define a schedule that is based on specific dates, such + as December 31st 2015, February 28th 2013 + type: array + items: + type: string + format: date-time + discriminator: + propertyName: '@type' + mapping: + ScheduleDefinition: '#/components/schemas/ScheduleDefinition_FVO' + ScheduleDefinition_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: The schedule definition for running jobs. + properties: + id: + type: string + description: Identifier of the schedule definition + scheduleDefinitionStartTime: + description: The Start time of the Schedule Definition + type: string + format: date-time + scheduleDefinitionEndTime: + description: >- + The End time of the Schedule Definition. If the attribute is empty the Schedule run + forever, not having a time constraint. + type: string + format: date-time + recurringFrequency: + description: >- + A recurring frequency to run a job within day that is included in schedule + definition, for example: every 5 minutes, 15 minute, 30 minutes, 1 hour + type: string + excludedDate: + description: A list of specific dates that should be excluded from the Schedule Definition. + type: array + items: + type: string + format: date-time + scheduleDefinitionHourRange: + description: >- + A list of time ranges within a specific day that the schedule will be active on, for + example 08:00-12:00, 16:00-19:00. + type: string + WeeklyScheduledDefinition: + description: >- + The weekly schedule is used to define a schedule that is based on the days of the + week, e.g. a schedule that will be active only on Monday and Tuesday. + type: array + items: + $ref: '#/components/schemas/DayOfWeekRecurrence_MVO' + monthlyScheduleDayOfMonthDefinition: + description: The schedule definition for running the threshold job + type: array + items: + type: string + format: date-time + MonthlyScheduleDayOfWeekDefinition: + $ref: '#/components/schemas/MonthlyScheduleDayOfWeekDefinition_MVO' + dateScheduleDefintion: + description: >- + The date schedule is used to define a schedule that is based on specific dates, such + as December 31st 2015, February 28th 2013 + type: array + items: + type: string + format: date-time + discriminator: + propertyName: '@type' + mapping: + ScheduleDefinition: '#/components/schemas/ScheduleDefinition_MVO' + TimePeriod: + type: object + description: 'A period of time, either as a deadline (endDateTime only) a startDateTime only, or both' + properties: + startDateTime: + description: 'Start of the time period, using IETC-RFC-3339 format' + type: string + format: date-time + example: '1985-04-12T23:20:50.52Z' + endDateTime: + description: 'End of the time period, using IETC-RFC-3339 format' + type: string + format: date-time + example: '1985-04-12T23:20:50.52Z' + TrackingRecord: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: >- + Tracking records allow the tracking of modifications on the problem. The tracking + records should not be embedded in the problem to allow retrieving the problem without + the tracking records + properties: + description: + type: string + description: 'Describes the action being done, such as: ack, clear' + example: + - acknowledge + - clear + characteristic: + type: array + items: + $ref: '#/components/schemas/Characteristic' + description: >- + A generic list of any type of elements. Used for vendor Extensions or loose element + encapsulation from other namespaces + systemId: + type: string + description: Describes the system Id from which the action was done + time: + type: string + format: date-time + description: Describes the time at which the action was done + user: + type: string + description: Describes the user doing the action + id: + type: string + description: Identifier of the TrackingRecord. + discriminator: + propertyName: '@type' + mapping: + TrackingRecord: '#/components/schemas/TrackingRecord' + TrackingRecord_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - type: object + description: >- + Tracking records allow the tracking of modifications on the problem. The tracking + records should not be embedded in the problem to allow retrieving the problem without + the tracking records + properties: + description: + type: string + description: 'Describes the action being done, such as: ack, clear' + example: + - acknowledge + - clear + characteristic: + type: array + items: + $ref: '#/components/schemas/Characteristic_FVO' + description: >- + A generic list of any type of elements. Used for vendor Extensions or loose element + encapsulation from other namespaces + systemId: + type: string + description: Describes the system Id from which the action was done + time: + type: string + format: date-time + description: Describes the time at which the action was done + user: + type: string + description: Describes the user doing the action + discriminator: + propertyName: '@type' + mapping: + TrackingRecord: '#/components/schemas/TrackingRecord_FVO' + TrackingRecord_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + description: >- + Tracking records allow the tracking of modifications on the problem. The tracking + records should not be embedded in the problem to allow retrieving the problem without + the tracking records + properties: + description: + type: string + description: 'Describes the action being done, such as: ack, clear' + example: + - acknowledge + - clear + characteristic: + type: array + items: + $ref: '#/components/schemas/Characteristic_MVO' + description: >- + A generic list of any type of elements. Used for vendor Extensions or loose element + encapsulation from other namespaces + systemId: + type: string + description: Describes the system Id from which the action was done + time: + type: string + format: date-time + description: Describes the time at which the action was done + user: + type: string + description: Describes the user doing the action + id: + type: string + description: Identifier of the TrackingRecord. + discriminator: + propertyName: '@type' + mapping: + TrackingRecord: '#/components/schemas/TrackingRecord_MVO' + Error: + discriminator: + propertyName: '@type' + mapping: + Error: '#/components/schemas/Error' + allOf: + - $ref: '#/components/schemas/Extensible' + - type: object + required: + - code + - reason + properties: + code: + type: string + description: 'Application relevant detail, defined in the API or a common list.' + reason: + type: string + description: Explanation of the reason for the error which can be shown to a client user. + message: + type: string + description: >- + More details and corrective actions related to the error which can be shown to a + client user. + status: + type: string + description: HTTP Error code extension + referenceError: + type: string + description: URI of documentation describing the error. + description: 'Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)' + Hub_FVO: + type: object + description: >- + Sets the communication endpoint address the service instance must use to deliver + notification information + required: + - callback + allOf: + - $ref: '#/components/schemas/Extensible' + - properties: + callback: + type: string + description: The callback being registered. + query: + type: string + description: additional data to be passed + Hub: + type: object + description: >- + Sets the communication endpoint address the service instance must use to deliver + notification information + allOf: + - $ref: '#/components/schemas/Entity' + - properties: + id: + type: string + description: Id of the listener + callback: + type: string + description: The callback being registered. + query: + type: string + description: additional data to be passed + required: + - callback + JsonPatch: + type: object + description: A JSONPatch document as defined by RFC 6902 + required: + - op + - path + properties: + op: + type: string + description: The operation to be performed + enum: + - add + - remove + - replace + - move + - copy + - test + path: + type: string + description: A JSON-Pointer + value: + description: The value to be used within the operations. + from: + type: string + description: A string containing a JSON Pointer value. + JsonPatchOperations: + description: JSONPatch Operations document as defined by RFC 6902 + type: array + items: + $ref: '#/components/schemas/JsonPatch' + parameters: + Id: + name: id + required: true + schema: + type: string + in: path + description: Identifier of the Resource + Fields: + name: fields + in: query + description: Comma-separated properties to be provided in response + schema: + type: string + Offset: + name: offset + in: query + description: Requested index for start of resources to be provided in response + schema: + type: integer + Limit: + name: limit + in: query + description: Requested number of resources to be provided in response + schema: + type: integer + requestBodies: + MeasurementCollectionJob_FVO: + description: The MeasurementCollectionJob to be created + content: + application/json: + schema: + $ref: '#/components/schemas/MeasurementCollectionJob_FVO' + examples: + MeasurementCollectionJobCreate: + $ref: '#/components/examples/MeasurementCollectionJobCreate_request' + required: true + MeasurementCollectionJob_MVO: + description: The MeasurementCollectionJob to be patched + content: + application/json: + schema: + $ref: '#/components/schemas/MeasurementCollectionJob_MVO' + examples: + updateMeasurementCollectionJob_using_json: + $ref: '#/components/examples/updateMeasurementCollectionJob_using_json_request' + application/merge-patch+json: + schema: + $ref: '#/components/schemas/MeasurementCollectionJob_MVO' + examples: + updateMeasurementCollectionJob_using_merge-patch_json: + $ref: '#/components/examples/updateMeasurementCollectionJob_using_merge-patch_json_request' + application/json-patch+json: + schema: + $ref: '#/components/schemas/JsonPatchOperations' + examples: + updateMeasurementCollectionJob_using_json-patch_json: + $ref: '#/components/examples/updateMeasurementCollectionJob_using_json-patch_json_request' + application/json-patch-query+json: + schema: + $ref: '#/components/schemas/JsonPatchOperations' + examples: + updateMeasurementCollectionJob_using_json-patch-query_json: + $ref: >- + #/components/examples/updateMeasurementCollectionJob_using_json-patch-query_json_request + required: true + MeasurementCollectionJobCreateEvent: + description: MeasurementCollectionJob create Event payload + content: + application/json: + schema: + $ref: '#/components/schemas/MeasurementCollectionJobCreateEvent' + examples: + MeasurementCollectionJobCreateEvent: + $ref: '#/components/examples/MeasurementCollectionJobCreateEvent_request' + required: true + MeasurementCollectionJobExecutionStateChangeEvent: + description: MeasurementCollectionJob executionStateChange Event payload + content: + application/json: + schema: + $ref: '#/components/schemas/MeasurementCollectionJobExecutionStateChangeEvent' + examples: + MeasurementCollectionJobExecutionStateChangeEvent: + $ref: '#/components/examples/MeasurementCollectionJobExecutionStateChangeEvent_request' + required: true + MeasurementCollectionJobDeleteEvent: + description: MeasurementCollectionJob delete Event payload + content: + application/json: + schema: + $ref: '#/components/schemas/MeasurementCollectionJobDeleteEvent' + examples: + MeasurementCollectionJobDeleteEvent: + $ref: '#/components/examples/MeasurementCollectionJobDeleteEvent_request' + required: true + MeasurementCollectionJobAttributeValueChangeEvent: + description: MeasurementCollectionJob attributeValueChange Event payload + content: + application/json: + schema: + $ref: '#/components/schemas/MeasurementCollectionJobAttributeValueChangeEvent' + examples: + MeasurementCollectionJobAttributeValueChangeEvent: + $ref: '#/components/examples/MeasurementCollectionJobAttributeValueChangeEvent_request' + required: true + MeasurementCollectionJobFilesReadyEvent: + description: MeasurementCollectionJob filesReady Event payload + content: + application/json: + schema: + $ref: '#/components/schemas/MeasurementCollectionJobFilesReadyEvent' + examples: + MeasurementCollectionJobFilesReadyEvent: + $ref: '#/components/examples/MeasurementCollectionJobFilesReadyEvent_request' + required: true + MeasurementCollectionJobFilesPreparationErrorEvent: + description: MeasurementCollectionJob filesPreparationError Event payload + content: + application/json: + schema: + $ref: '#/components/schemas/MeasurementCollectionJobFilesPreparationErrorEvent' + examples: + MeasurementCollectionJobFilesPreparationErrorEvent: + $ref: '#/components/examples/MeasurementCollectionJobFilesPreparationErrorEvent_request' + required: true + PerformanceIndicatorGroupSpecification_FVO: + description: The PerformanceIndicatorGroupSpecification to be created + content: + application/json: + schema: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification_FVO' + examples: + PerformanceIndicatorGroupSpecification_create_example_: + $ref: '#/components/examples/PerformanceIndicatorGroupSpecification_create_example__request' + required: true + PerformanceIndicatorGroupSpecification_MVO: + description: The PerformanceIndicatorGroupSpecification to be patched + content: + application/json: + schema: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification_MVO' + examples: + updatePerformanceIndicatorGroupSpecification_using_json: + $ref: >- + #/components/examples/updatePerformanceIndicatorGroupSpecification_using_json_request + application/merge-patch+json: + schema: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification_MVO' + examples: + updatePerformanceIndicatorGroupSpecification_using_merge-patch_json: + $ref: >- + #/components/examples/updatePerformanceIndicatorGroupSpecification_using_merge-patch_json_request + application/json-patch+json: + schema: + $ref: '#/components/schemas/JsonPatchOperations' + examples: + updatePerformanceIndicatorGroupSpecification_using_json-patch_json: + $ref: >- + #/components/examples/updatePerformanceIndicatorGroupSpecification_using_json-patch_json_request + application/json-patch-query+json: + schema: + $ref: '#/components/schemas/JsonPatchOperations' + examples: + updatePerformanceIndicatorGroupSpecification_using_json-patch-query_json: + $ref: >- + #/components/examples/updatePerformanceIndicatorGroupSpecification_using_json-patch-query_json_request + required: true + PerformanceIndicatorSpecification_FVO: + description: The PerformanceIndicatorSpecification to be created + content: + application/json: + schema: + $ref: '#/components/schemas/PerformanceIndicatorSpecification_FVO' + examples: + PerformanceIndicatorSpecification_create_example_: + $ref: '#/components/examples/PerformanceIndicatorSpecification_create_example__request' + required: true + PerformanceIndicatorSpecification_MVO: + description: The PerformanceIndicatorSpecification to be patched + content: + application/json: + schema: + $ref: '#/components/schemas/PerformanceIndicatorSpecification_MVO' + examples: + updatePerformanceIndicatorSpecification_using_json: + $ref: '#/components/examples/updatePerformanceIndicatorSpecification_using_json_request' + application/merge-patch+json: + schema: + $ref: '#/components/schemas/PerformanceIndicatorSpecification_MVO' + examples: + updatePerformanceIndicatorSpecification_using_merge-patch_json: + $ref: >- + #/components/examples/updatePerformanceIndicatorSpecification_using_merge-patch_json_request + application/json-patch+json: + schema: + $ref: '#/components/schemas/JsonPatchOperations' + examples: + updatePerformanceIndicatorSpecification_using_json-patch_json: + $ref: >- + #/components/examples/updatePerformanceIndicatorSpecification_using_json-patch_json_request + application/json-patch-query+json: + schema: + $ref: '#/components/schemas/JsonPatchOperations' + examples: + updatePerformanceIndicatorSpecification_using_json-patch-query_json: + $ref: >- + #/components/examples/updatePerformanceIndicatorSpecification_using_json-patch-query_json_request + required: true + PerformanceMeasurementCreateEvent: + description: PerformanceMeasurement create Event payload + content: + application/json: + schema: + $ref: '#/components/schemas/PerformanceMeasurementCreateEvent' + examples: + PerformanceMeasurementCreateEvent: + $ref: '#/components/examples/PerformanceMeasurementCreateEvent_request' + required: true + PerformanceMeasurementCollectionReadyEvent: + description: PerformanceMeasurement collectionReady Event payload + content: + application/json: + schema: + $ref: '#/components/schemas/PerformanceMeasurementCollectionReadyEvent' + examples: + PerformanceMeasurementCollectionReady: + $ref: '#/components/examples/PerformanceMeasurementCollectionReady_request' + required: true + Hub_FVO: + description: Data containing the callback endpoint to deliver the information + content: + application/json: + schema: + $ref: '#/components/schemas/Hub_FVO' + required: true + responses: + '200': + description: OK + '202': + description: Accepted + '204': + description: Deleted + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '405': + description: Method Not allowed + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '409': + description: Conflict + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '501': + description: Not Implemented + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '503': + description: Service Unavailable + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + 200MeasurementCollectionJobArray: + description: Success + headers: + X-Total-Count: + $ref: '#/components/headers/X-Total-Count' + X-Result-Count: + $ref: '#/components/headers/X-Result-Count' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/MeasurementCollectionJob' + examples: + MeasurementCollectionJobList: + $ref: '#/components/examples/MeasurementCollectionJobList_response' + 200MeasurementCollectionJob_Get: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/MeasurementCollectionJob' + examples: + MeasurementCollectionJobRetrieve: + $ref: '#/components/examples/MeasurementCollectionJobRetrieve_response' + 200MeasurementCollectionJob_Patch: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/MeasurementCollectionJob' + examples: + updateMeasurementCollectionJob_using_json: + $ref: '#/components/examples/updateMeasurementCollectionJob_using_json_response' + application/merge-patch+json: + schema: + $ref: '#/components/schemas/MeasurementCollectionJob' + examples: + updateMeasurementCollectionJob_using_merge-patch_json: + $ref: '#/components/examples/updateMeasurementCollectionJob_using_merge-patch_json_response' + application/json-patch+json: + schema: + oneOf: + - $ref: '#/components/schemas/MeasurementCollectionJob' + - type: array + items: + $ref: '#/components/schemas/MeasurementCollectionJob' + - type: string + nullable: true + examples: + updateMeasurementCollectionJob_using_json-patch_json: + $ref: '#/components/examples/updateMeasurementCollectionJob_using_json-patch_json_response' + application/json-patch-query+json: + schema: + oneOf: + - $ref: '#/components/schemas/MeasurementCollectionJob' + - type: array + items: + $ref: '#/components/schemas/MeasurementCollectionJob' + - type: string + nullable: true + examples: + updateMeasurementCollectionJob_using_json-patch-query_json: + $ref: >- + #/components/examples/updateMeasurementCollectionJob_using_json-patch-query_json_response + 201MeasurementCollectionJob: + description: OK/Created + content: + application/json: + schema: + $ref: '#/components/schemas/MeasurementCollectionJob' + examples: + MeasurementCollectionJobCreate: + $ref: '#/components/examples/MeasurementCollectionJobCreate_response' + 200PerformanceIndicatorGroupSpecificationArray: + description: Success + headers: + X-Total-Count: + $ref: '#/components/headers/X-Total-Count' + X-Result-Count: + $ref: '#/components/headers/X-Result-Count' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification' + examples: + PerformanceIndicatorGroupSpecificationList: + $ref: '#/components/examples/PerformanceIndicatorGroupSpecificationList_response' + 200PerformanceIndicatorGroupSpecification_Get: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification' + examples: + PerformanceIndicatorGroupSpecificationRetrieve: + $ref: '#/components/examples/PerformanceIndicatorGroupSpecificationRetrieve_response' + 200PerformanceIndicatorGroupSpecification_Patch: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification' + examples: + updatePerformanceIndicatorGroupSpecification_using_json: + $ref: >- + #/components/examples/updatePerformanceIndicatorGroupSpecification_using_json_response + application/merge-patch+json: + schema: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification' + examples: + updatePerformanceIndicatorGroupSpecification_using_merge-patch_json: + $ref: >- + #/components/examples/updatePerformanceIndicatorGroupSpecification_using_merge-patch_json_response + application/json-patch+json: + schema: + oneOf: + - $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification' + - type: array + items: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification' + - type: string + nullable: true + examples: + updatePerformanceIndicatorGroupSpecification_using_json-patch_json: + $ref: >- + #/components/examples/updatePerformanceIndicatorGroupSpecification_using_json-patch_json_response + application/json-patch-query+json: + schema: + oneOf: + - $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification' + - type: array + items: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification' + - type: string + nullable: true + examples: + updatePerformanceIndicatorGroupSpecification_using_json-patch-query_json: + $ref: >- + #/components/examples/updatePerformanceIndicatorGroupSpecification_using_json-patch-query_json_response + 201PerformanceIndicatorGroupSpecification: + description: OK/Created + content: + application/json: + schema: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification' + examples: + PerformanceIndicatorGroupSpecification_create_example_: + $ref: >- + #/components/examples/PerformanceIndicatorGroupSpecification_create_example__response + 200PerformanceIndicatorSpecificationArray: + description: Success + headers: + X-Total-Count: + $ref: '#/components/headers/X-Total-Count' + X-Result-Count: + $ref: '#/components/headers/X-Result-Count' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/PerformanceIndicatorSpecification' + examples: + PerformanceIndicatorSpecificationList: + $ref: '#/components/examples/PerformanceIndicatorSpecificationList_response' + 200PerformanceIndicatorSpecification_Get: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/PerformanceIndicatorSpecification' + examples: + PerformanceIndicatorSpecificationRetrieve: + $ref: '#/components/examples/PerformanceIndicatorSpecificationRetrieve_response' + 200PerformanceIndicatorSpecification_Patch: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/PerformanceIndicatorSpecification' + examples: + updatePerformanceIndicatorSpecification_using_json: + $ref: '#/components/examples/updatePerformanceIndicatorSpecification_using_json_response' + application/merge-patch+json: + schema: + $ref: '#/components/schemas/PerformanceIndicatorSpecification' + examples: + updatePerformanceIndicatorSpecification_using_merge-patch_json: + $ref: >- + #/components/examples/updatePerformanceIndicatorSpecification_using_merge-patch_json_response + application/json-patch+json: + schema: + oneOf: + - $ref: '#/components/schemas/PerformanceIndicatorSpecification' + - type: array + items: + $ref: '#/components/schemas/PerformanceIndicatorSpecification' + - type: string + nullable: true + examples: + updatePerformanceIndicatorSpecification_using_json-patch_json: + $ref: >- + #/components/examples/updatePerformanceIndicatorSpecification_using_json-patch_json_response + application/json-patch-query+json: + schema: + oneOf: + - $ref: '#/components/schemas/PerformanceIndicatorSpecification' + - type: array + items: + $ref: '#/components/schemas/PerformanceIndicatorSpecification' + - type: string + nullable: true + examples: + updatePerformanceIndicatorSpecification_using_json-patch-query_json: + $ref: >- + #/components/examples/updatePerformanceIndicatorSpecification_using_json-patch-query_json_response + 201PerformanceIndicatorSpecification: + description: OK/Created + content: + application/json: + schema: + $ref: '#/components/schemas/PerformanceIndicatorSpecification' + examples: + PerformanceIndicatorSpecification_create_example_: + $ref: '#/components/examples/PerformanceIndicatorSpecification_create_example__response' + 200TrackingRecordArray: + description: Success + headers: + X-Total-Count: + $ref: '#/components/headers/X-Total-Count' + X-Result-Count: + $ref: '#/components/headers/X-Result-Count' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TrackingRecord' + examples: + TrackingRecordList: + $ref: '#/components/examples/TrackingRecordList_response' + 200TrackingRecord_Get: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/TrackingRecord' + examples: + TrackingRecordRetrieve: + $ref: '#/components/examples/TrackingRecordRetrieve_response' + 200TrackingRecord_Patch: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/TrackingRecord' + application/merge-patch+json: + schema: + $ref: '#/components/schemas/TrackingRecord' + application/json-patch+json: + schema: + oneOf: + - $ref: '#/components/schemas/TrackingRecord' + - type: array + items: + $ref: '#/components/schemas/TrackingRecord' + - type: string + nullable: true + application/json-patch-query+json: + schema: + oneOf: + - $ref: '#/components/schemas/TrackingRecord' + - type: array + items: + $ref: '#/components/schemas/TrackingRecord' + - type: string + nullable: true + 201TrackingRecord: + description: OK/Created + content: + application/json: + schema: + $ref: '#/components/schemas/TrackingRecord' + 200PerformanceMeasurementArray: + description: Success + headers: + X-Total-Count: + $ref: '#/components/headers/X-Total-Count' + X-Result-Count: + $ref: '#/components/headers/X-Result-Count' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/PerformanceMeasurement' + examples: + PerformanceMeasurementList: + $ref: '#/components/examples/PerformanceMeasurementList_response' + 200PerformanceMeasurement_Get: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/PerformanceMeasurement' + examples: + PerformanceMeasurementRetrieve: + $ref: '#/components/examples/PerformanceMeasurementRetrieve_response' + PerformanceMeasurementGroupRetrieve: + $ref: '#/components/examples/PerformanceMeasurementGroupRetrieve_response' + 200PerformanceMeasurement_Patch: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/PerformanceMeasurement' + application/merge-patch+json: + schema: + $ref: '#/components/schemas/PerformanceMeasurement' + application/json-patch+json: + schema: + oneOf: + - $ref: '#/components/schemas/PerformanceMeasurement' + - type: array + items: + $ref: '#/components/schemas/PerformanceMeasurement' + - type: string + nullable: true + application/json-patch-query+json: + schema: + oneOf: + - $ref: '#/components/schemas/PerformanceMeasurement' + - type: array + items: + $ref: '#/components/schemas/PerformanceMeasurement' + - type: string + nullable: true + 201PerformanceMeasurement: + description: OK/Created + content: + application/json: + schema: + $ref: '#/components/schemas/PerformanceMeasurement' + 200DataAccessEndpointArray: + description: Success + headers: + X-Total-Count: + $ref: '#/components/headers/X-Total-Count' + X-Result-Count: + $ref: '#/components/headers/X-Result-Count' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/DataAccessEndpoint' + examples: + DataAccessEndpointList: + $ref: '#/components/examples/DataAccessEndpointList_response' + 200DataAccessEndpoint_Get: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/DataAccessEndpoint' + examples: + DataAccessEndpointRetrieve: + $ref: '#/components/examples/DataAccessEndpointRetrieve_response' + 200DataAccessEndpoint_Patch: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/DataAccessEndpoint' + application/merge-patch+json: + schema: + $ref: '#/components/schemas/DataAccessEndpoint' + application/json-patch+json: + schema: + oneOf: + - $ref: '#/components/schemas/DataAccessEndpoint' + - type: array + items: + $ref: '#/components/schemas/DataAccessEndpoint' + - type: string + nullable: true + application/json-patch-query+json: + schema: + oneOf: + - $ref: '#/components/schemas/DataAccessEndpoint' + - type: array + items: + $ref: '#/components/schemas/DataAccessEndpoint' + - type: string + nullable: true + 201DataAccessEndpoint: + description: OK/Created + content: + application/json: + schema: + $ref: '#/components/schemas/DataAccessEndpoint' + Error: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + Hub: + description: Notified + content: + application/json: + schema: + $ref: '#/components/schemas/Hub' + headers: + X-Total-Count: + description: Total number of items matching criteria + schema: + type: integer + X-Result-Count: + description: Actual number of items returned in the response body + schema: + type: integer + securitySchemes: {} + examples: + MeasurementCollectionJobList_response: + value: + - id: '4000' + href: 'https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4000' + consumingApplicationId: '4000' + creationTime: '2020-06-23T14:12:01.078Z' + jobId: '400' + jobPriority: 3 + jobOnDemand: false + lastModifiedTime: '2020-06-23T14:12:01.079Z' + outputFormat: string + producingApplicationId: NT_101 + adminState: locked + executionState: acknowledged + fileTransferData: + - fileFormat: csv + fileLocation: 'https://host:port/tmf-api/performanceManagement/v5/FileTransferData' + transportProtocol: ftp + compressionType: + compressionEnumType: no_compression + packingType: + packingEnumType: NO_PACKING + retentionPeriod: + amount: 1 + units: month + '@baseType': RetentionPeriod + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/RetentionPeriod' + '@type': RetentionPeriod + '@baseType': FileTransferData + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': FileTransferData + granularity: g_1mn + performanceIndicatorGroupSpecification: + - href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: '600' + name: My critical performance indicators + groupCategory: CPUGroup + performanceIndicatorSpecification: + - id: '5000' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + version: '1.0' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + performanceIndicatorSpecification: + - id: '101' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/101 + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + performanceIndicatorSpecRelationship: + - id: '321' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecRelationship/321 + relationshipType: reliesOn + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecRelationship.schema.json + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: '1' + recurringFrequency: weekly + scheduleDefinitionEndTime: '2020-06-23T14:12:01.080Z' + scheduleDefinitionHourRange: '2' + scheduleDefinitionStartTime: '2020-06-23T14:12:01.080Z' + WeeklyScheduledDefinition: + - dates: '2020-06-23T14:12:01.080Z' + '@baseType': WeeklyScheduledDefinition + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/WeeklyScheduledDefinition.schema.json + '@type': WeeklyScheduledDefinition + '@baseType': ScheduleDefinition + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/ScheduleDefinition.schema.json + '@type': ScheduleDefinition + trackingRecord: + - id: TR_101 + href: 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + description: NT_101 tracking + systemId: NT_101 + time: '2020-06-23T17:55:51.671Z' + user: NP1 + '@baseType': TrackingRecord + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': TrackingRecord + '@baseType': MeasurementCollectionJob + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': MeasurementCollectionJob + - id: '4001' + href: 'https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4001' + consumingApplicationId: '4000' + creationTime: '2020-06-23T15:12:01.078Z' + jobId: '401' + jobPriority: 3 + jobOnDemand: false + lastModifiedTime: '2020-06-23T15:12:01.079Z' + outputFormat: string + producingApplicationId: NT_101 + adminState: locked + executionState: acknowledged + fileTransferData: + - fileFormat: csv + fileLocation: 'https://host:port/tmf-api/performanceManagement/v5/FileTransferData' + transportProtocol: ftp + compressionType: + compressionEnumType: no_compression + packingType: + packingEnumType: NO_PACKING + retentionPeriod: + amount: 1 + units: month + '@baseType': RetentionPeriod + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/RetentionPeriod' + '@type': RetentionPeriod + '@baseType': FileTransferData + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': FileTransferData + granularity: g_1mn + performanceIndicatorGroupSpecification: + - href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: '600' + name: My critical performance indicators + groupCategory: CPUGroup + performanceIndicatorSpecification: + - id: '5000' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + version: '1.0' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + performanceIndicatorSpecification: + - id: '101' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/101 + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + performanceIndicatorSpecRelationship: + - id: '321' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecRelationship/321 + relationshipType: reliesOn + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecRelationship.schema.json + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: '2' + recurringFrequency: weekly + scheduleDefinitionEndTime: '2020-06-23T14:12:01.080Z' + scheduleDefinitionHourRange: '2' + scheduleDefinitionStartTime: '2020-06-23T14:12:01.080Z' + WeeklyScheduledDefinition: + - dates: '2020-06-23T14:12:01.080Z' + '@baseType': WeeklyScheduledDefinition + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/WeeklyScheduledDefinition.schema.json + '@type': WeeklyScheduledDefinition + '@baseType': ScheduleDefinition + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/ScheduleDefinition.schema.json + '@type': ScheduleDefinition + trackingRecord: + - id: TR_102 + href: 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + description: NT_101 tracking + systemId: NT_101 + time: '2020-06-23T17:55:51.671Z' + user: NP1 + '@baseType': TrackingRecord + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': TrackingRecord + '@baseType': MeasurementCollectionJob + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': MeasurementCollectionJob + description: Here's an example of a request for retrieving Measurement Collection Job(s). + MeasurementCollectionJobRetrieve_response: + value: + id: '4000' + href: 'https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4000' + consumingApplicationId: '4000' + creationTime: '2020-06-23T14:12:01.078Z' + jobId: '400' + jobPriority: 3 + jobOnDemand: false + lastModifiedTime: '2020-06-23T14:12:01.079Z' + outputFormat: string + producingApplicationId: NT_101 + adminState: locked + executionState: acknowledged + fileTransferData: + - fileFormat: csv + fileLocation: 'https://host:port/tmf-api/performanceManagement/v5/FileTransferData' + transportProtocol: ftp + compressionType: + compressionEnumType: no_compression + packingType: + packingEnumType: NO_PACKING + retentionPeriod: + amount: 1 + units: month + '@baseType': RetentionPeriod + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/RetentionPeriod' + '@type': RetentionPeriod + '@baseType': FileTransferData + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': FileTransferData + granularity: g_1mn + performanceIndicatorGroupSpecification: + - href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: '600' + name: My critical performance indicators + groupCategory: CPUGroup + performanceIndicatorSpecification: + - id: '5000' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + version: '1.0' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + performanceIndicatorSpecification: + - id: '101' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/101 + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + performanceIndicatorSpecRelationship: + - id: '321' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecRelationship/321 + relationshipType: reliesOn + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecRelationship.schema.json + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: '1' + recurringFrequency: weekly + scheduleDefinitionEndTime: '2020-06-23T14:12:01.080Z' + scheduleDefinitionHourRange: '2' + scheduleDefinitionStartTime: '2020-06-23T14:12:01.080Z' + WeeklyScheduledDefinition: + - dates: '2020-06-23T14:12:01.080Z' + '@baseType': WeeklyScheduledDefinition + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/WeeklyScheduledDefinition.schema.json + '@type': WeeklyScheduledDefinition + '@baseType': ScheduleDefinition + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/ScheduleDefinition.schema.json + '@type': ScheduleDefinition + trackingRecord: + - id: TR_101 + href: 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + description: string + systemId: NT_101 + time: '2020-06-23T17:55:51.671Z' + user: NP1 + '@baseType': TrackingRecord + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': TrackingRecord + '@baseType': MeasurementCollectionJob + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': MeasurementCollectionJob + description: Here's an example of a request for retrieving a specific Measurement Collection Job. + PerformanceIndicatorGroupSpecificationList_response: + value: + - href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: '600' + name: CriticalPerformance + groupCategory: CPUGroup + performanceIndicatorSpecification: + - id: '5000' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + version: '1.0' + indicatorCategory: CPU + indicatorType: float + collectionType: cumulative + indicatorUnit: GHz + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + - href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/601 + id: '601' + name: CriticalPerformance + groupCategory: CPUGroup + performanceIndicatorSpecification: + - id: '5001' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5001 + name: CPU speed + version: '1.0' + indicatorCategory: CPU + indicatorType: float + collectionType: cumulative + indicatorUnit: GHz + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + description: >- + Here's an example of a request for retrieving multiple Performance Indicator Group + Specifications. + PerformanceIndicatorGroupSpecificationRetrieve_response: + value: + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: '600' + name: My critical performance indicators + performanceIndicatorSpecification: + - id: '5001' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5001 + name: CPU speed core 1 + indicatorCategory: CPU + indicatorType: float + collectionType: cumulative + indicatorUnit: GHz + version: '1.0' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + - id: '5002' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5002 + name: CPU speed core 2 + indicatorCategory: CPU + indicatorType: float + collectionType: cumulative + indicatorUnit: GHz + version: '1.0' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + - id: '5003' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5003 + name: CPU speed core 3 + indicatorCategory: CPU + indicatorType: float + collectionType: cumulative + indicatorUnit: GHz + version: '1.0' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + description: >- + Here's an example of a request for retrieving a specific Performance Indicator Group + Specification. + PerformanceIndicatorSpecificationList_response: + value: + - id: '5000' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + description: The average CPU speed + perspective: aggregation over a collection of systems + indicatorCategory: CPU + indicatorType: float + derivationAlgorithm: na + derivationMethod: average + validFor: + startDateTime: '2023-04-01T00:00:00.001Z' + endDateTime: '2023-04-30T23:59:59.999Z' + collectionType: cumulative + indicatorUnit: GHz + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + - id: '5001' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5001 + name: CPU speed + description: The average peak CPU speed + perspective: aggregation over a collection of systems + indicatorCategory: CPU + indicatorType: float + derivationAlgorithm: na + derivationMethod: average + validFor: + startDateTime: '2023-04-01T00:00:00.001Z' + endDateTime: '2023-04-30T23:59:59.999Z' + collectionType: cumulative + indicatorUnit: GHz + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + description: Here's an example of a request for retrieving multiple Performance Indicator Specifications. + PerformanceIndicatorSpecificationRetrieve_response: + value: + id: '5000' + href: 'https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000' + name: CPU speed + description: The average CPU speed + perspective: aggregation over a collection of systems + indicatorCategory: CPU + indicatorType: float + derivationAlgorithm: na + derivationMethod: average + validFor: + startDateTime: '2023-04-01T00:00:00.001Z' + endDateTime: '2023-04-30T23:59:59.999Z' + collectionType: cumulative + indicatorUnit: GHz + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + description: >- + Here's an example of a request for retrieving a specific Performance Indicator + Specification. + TrackingRecordList_response: + value: + - id: '1001' + description: 'acknowledge ,clear' + systemId: '5001' + time: '2022-05-15T15:51:04.176Z' + user: myUserName + characteristic: + - id: '001' + name: myCharName + valueType: string + characteristicRelationship: + - id: '400' + href: >- + https://host:port/tmf-api/performanceManagement/v5/characteristicRelationship/400 + relationshipType: sub-part + '@baseType': CharacteristicRelationship + '@schemaLocation': 'https://myschemas.com/CharacteristicRelationship.schema.json' + '@type': CharacteristicRelationship + value: myCharactericticValue + '@baseType': Characteristic + '@schemaLocation': 'https://myschemas.com/StringCharacteristic.schema.json' + '@type': StringCharacteristic + '@baseType': TrackingRecord + '@schemaLocation': 'https://myschemas.com/TrackingRecord.schema.json' + '@type': TrackingRecord + - id: '1002' + description: 'acknowledge ,clear' + systemId: '5002' + time: '2022-05-15T16:51:04.176Z' + user: myUserName + characteristic: + - id: '002' + name: myCharName2 + valueType: string + characteristicRelationship: + - id: '401' + href: >- + https://host:port/tmf-api/performanceManagement/v5/characteristicRelationship/401 + relationshipType: sub-part + '@baseType': CharacteristicRelationship + '@schemaLocation': 'https://myschemas.com/CharacteristicRelationship.schema.json' + '@type': CharacteristicRelationship + value: myCharactericticValue + '@baseType': Characteristic + '@schemaLocation': 'https://myschemas.com/StringCharacteristic.schema.json' + '@type': StringCharacteristic + '@baseType': TrackingRecord + '@schemaLocation': 'https://myschemas.com/TrackingRecord.schema.json' + '@type': TrackingRecord + description: Here's an example of a request for retrieving multiple TrackingRecord's. + TrackingRecordRetrieve_response: + value: + id: '1001' + description: 'acknowledge ,clear' + systemId: '5001' + time: '2022-05-15T15:51:04.176Z' + user: myUserName + characteristic: + - id: '001' + name: myCharName + valueType: string + characteristicRelationship: + - id: '400' + href: 'https://host:port/tmf-api/performanceManagement/v5/characteristicRelationship/400' + relationshipType: sub-part + '@baseType': CharacteristicRelationship + '@schemaLocation': 'https://myschemas.com/CharacteristicRelationship.schema.json' + '@type': CharacteristicRelationship + value: myCharactericticValue + '@baseType': Characteristic + '@schemaLocation': 'https://myschemas.com/Characteristic.schema.json' + '@type': StringCharacteristic + '@baseType': TrackingRecord + '@schemaLocation': 'https://myschemas.com/TrackingRecord.schema.json' + '@type': TrackingRecord + description: Here's an example of a request for retrieving a specific TrackingRecord. + PerformanceMeasurementList_response: + value: + - id: '1' + href: 'https://host:port/tmf-api/performanceManagement/v5/performanceMeasurement/1' + description: The first performance measurement in the database + measurementCollectionJob: + id: '4000' + href: 'https://host:port/tmf-api/performanceManagement/v5/measurementCollectionJob/4000' + name: Measurement Collection Job from system A + '@baseType': MeasurementCollectionJobRef + '@schemaLocation': 'https://myschemas/MeasurementCollectionJob.schema.json' + '@type': MeasurementCollectionJobRef + '@referredType': MeasurementCollectionJob + performanceIndicatorValue: + - performanceIndicatorSpecification: + id: '1' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/1 + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + observedValue: '2.1' + - performanceIndicatorSpecification: + id: '2' + name: CPU Speed Indicator Specification + indicatorCategory: SPEEDCategory + indicatorName: CPU Speed + indicatorType: float + indicatorUnit: GHz + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecification + observedValue: '3.25' + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + '@baseType': PerformanceMeasurement + '@schemaLocation': 'https://github.com/repo/PerformanceMeasurementAtomic.schema.json' + '@type': PerformanceMeasurementAtomic + - id: '2' + href: 'https://host:port/tmf-api/performanceManagement/v5/performanceMeasurement/2' + description: The second performance measurement in the database + measurementCollectionJob: + id: '4000' + href: 'https://host:port/tmf-api/performanceManagement/v5/measurementCollectionJob/4000' + name: Measurement Collection Job from system A + '@baseType': MeasurementCollectionJobRef + '@schemaLocation': 'https://myschemas/MeasurementCollectionJob.schema.json' + '@type': MeasurementCollectionJobRef + '@referredType': MeasurementCollectionJob + performanceIndicatorValue: + - performanceIndicatorSpecification: + id: '1' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/1 + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + observedValue: '2.2' + tag: + imsi: '1111000000' + zip: '93165' + - performanceIndicatorSpecification: + id: '2' + name: Network Latency Indicator Specification + indicatorCategory: LatencyCategory + indicatorName: Latency + indicatorType: float + indicatorUnit: ms + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecification + observedValue: '3.25' + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + tag: + country: Belgium + region: North + '@baseType': PerformanceMeasurement + '@schemaLocation': 'https://github.com/repo/PerformanceMeasurementAtomic.schema.json' + '@type': PerformanceMeasurementAtomic + - id: '3' + href: 'https://host:port/tmf-api/performanceManagement/v5/performanceMeasurement/3' + description: The third group performance measurement in the database + measurementCollectionJob: + id: '4000' + href: 'https://host:port/tmf-api/performanceManagement/v5/measurementCollectionJob/4000' + name: Measurement Collection Job from system A + '@baseType': MeasurementCollectionJobRef + '@schemaLocation': 'https://myschemas/MeasurementCollectionJob.schema.json' + '@type': MeasurementCollectionJobRef + '@referredType': MeasurementCollectionJob + performanceIndicatorGroupValue: + - performanceIndicatorGroupSpecification: + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: '600' + name: My critical performance indicators + groupCategory: CPUGroup + performanceIndicatorSpecification: + - id: '5000' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + version: '1.0' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + - id: '5001' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5001 + name: CPU speed2 + version: '1.0' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + observedGroupValue: + - performanceIndicatorValue: + - performanceIndicatorSpecification: + id: '5000' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecificationRef.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + observedValue: '2.1' + tag: + imsi: '1111000000' + zip: '93165' + - performanceIndicatorSpecification: + id: '5001' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5001 + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecificationRef.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + observedValue: '2.2' + tag: + imsi: '1112000000' + zip: '93165' + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + '@baseType': PerformanceMeasurement + '@schemaLocation': 'https://github.com/repo/PerformanceMeasurementGroup.schema.json' + '@type': PerformanceMeasurementGroup + description: >- + Here's an example of a request for retrieving multiple Simple and Group + PerformanceMeasurement's. + PerformanceMeasurementRetrieve_response: + value: + id: '1' + href: 'https://host:port/tmf-api/performanceManagement/v5/performanceMeasurement/1' + description: The first performance measurement in the database + measurementCollectionJob: + id: '4000' + href: 'https://host:port/tmf-api/performanceManagement/v5/measurementCollectionJob/4000' + name: Measurement Collection Job from system A + '@baseType': MeasurementCollectionJobRef + '@schemaLocation': 'https://myschemas/MeasurementCollectionJob.schema.json' + '@type': MeasurementCollectionJobRef + '@referredType': MeasurementCollectionJob + performanceIndicatorValue: + - performanceIndicatorSpecification: + id: '1' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/1 + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + observedValue: '2.1' + tag: + imsi: '1111000000' + zip: '93165' + - performanceIndicatorSpecification: + id: '2' + name: CPU Speed Indicator Specification + indicatorCategory: SPEEDCategory + indicatorName: CPU Speed + indicatorType: float + indicatorUnit: GHz + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecification + observedValue: '3.25' + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + tag: + country: Belgium + region: North + '@baseType': PerformanceMeasurement + '@schemaLocation': 'https://github.com/repo/PerformanceMeasurementAtomic.schema.json' + '@type': PerformanceMeasurementAtomic + description: Here's an example of a request for retrieving a specific Simple PerformanceMeasurement. + PerformanceMeasurementGroupRetrieve_response: + value: + id: '1' + href: 'https://host:port/tmf-api/performanceManagement/v5/performanceMeasurement/1' + description: The first performance measurement in the database + measurementCollectionJob: + id: '4000' + href: 'https://host:port/tmf-api/performanceManagement/v5/measurementCollectionJob/4000' + name: Measurement Collection Job from system A + '@baseType': MeasurementCollectionJobRef + '@schemaLocation': 'https://myschemas/MeasurementCollectionJob.schema.json' + '@type': MeasurementCollectionJobRef + '@referredType': MeasurementCollectionJob + performanceIndicatorGroupValue: + - performanceIndicatorGroupSpecification: + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: '600' + name: My critical performance indicators + groupCategory: CPUGroup + performanceIndicatorSpecification: + - id: '5000' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + version: '1.0' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + - id: '5001' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5001 + name: CPU speed2 + version: '1.0' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + observedGroupValue: + - performanceIndicatorValue: + - performanceIndicatorSpecification: + id: '5000' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecificationRef.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + observedValue: '2.1' + tag: + imsi: '1111000000' + zip: '93165' + - performanceIndicatorSpecification: + id: '5001' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5001 + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecificationRef.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + observedValue: '2.2' + tag: + imsi: '1112000000' + zip: '93165' + - performanceIndicatorGroupSpecification: + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/601 + id: '601' + name: My critical performance indicators extension + groupCategory: CPUGroup2 + performanceIndicatorSpecification: + - id: '5003' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5003 + name: CPU speed3 + version: '1.0' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + - id: '5004' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5004 + name: CPU speed4 + version: '1.0' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + observedGroupValue: + - performanceIndicatorValue: + - performanceIndicatorSpecification: + id: '5003' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5003 + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecificationRef.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + observedValue: '2.3' + tag: + imsi: '1113000000' + zip: '93165' + - performanceIndicatorSpecification: + id: '5004' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5004 + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecificationRef.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + observedValue: '2.4' + tag: + imsi: '1114000000' + zip: '93165' + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + tag: + country: Belgium + region: North + '@baseType': PerformanceMeasurement + '@schemaLocation': 'https://github.com/repo/PerformanceMeasurementGroup.schema.json' + '@type': PerformanceMeasurementGroup + description: Here's an example of a request for retrieving a Group PerformanceMeasurement. + DataAccessEndpointList_response: + value: + - id: 123-xxx + href: 'https://host:port/tmf-api/performanceManagement/v5/dataAccessEndpoint/123-xxx' + apiType: REST + category: topic + description: Measurement collection job 123-xxx subscriber topic + endOperatingDate: '2022-05-13T10:13:42.971Z' + name: 123-xxx subscriber topic + resourceVersion: '1.0' + startOperatingDate: '2022-05-13T10:13:42.971Z' + uri: 'https://pubsub.googleapis.com/v1/' + uriQueryFilter: + mappings: + - filterTemplate: + name: myRangeFilterSearch0 + '@type': DataFilterTemplateRange + criteria: + lowerBound: + boundValue: -10 + isInclusive: true + upperBound: + boundValue: -10 + isInclusive: true + stringArray: + value: + - field01 + - field02 + - field03 + - filterTemplate: + name: myRegExSampleSearch0 + '@type': DataFilterTemplateRegex + criteria: dallas|houston|venise|paris|new-york + stringArray: + value: + - field11 + - field12 + - field13 + - filterTemplate: + name: myBooleanFilterSearch0 + criteria: true + '@type': DataFilterTemplateBoolean + stringArray: + value: + - field1 + - field2 + - field3 + '@type': DataFilterMap + value: myLogicalResourceValue + administrativeState: locked + note: + - id: afa9-3d90aaa8da0f + author: Mr. Franklin + date: '2022-13-05T08:00:00Z' + text: >- + For further details on how to create a subscription to this topic, visit + https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.subscriptions/create + '@baseType': Note + '@schemaLocation': 'https://myschemas.com/Note.schema.json' + '@type': Note + operationalState: enable + resourceCharacteristic: + - id: '2100' + name: myCharName + valueType: string + characteristicRelationship: + - id: '21' + href: 'https://host:port/tmf-api/performanceManagement/v5/characteristicRelationship/21' + relationshipType: string + '@baseType': CharacteristicRelationship + '@schemaLocation': 'https://myschemas.com/CharacteristicRelationship.schema.json' + '@type': CharacteristicRelationship + value: myCharValue + '@baseType': Characteristic + '@schemaLocation': 'https://myschemas.com/StringCharacteristic.schema.json' + '@type': StringCharacteristic + resourceSpecification: + id: '1' + href: 'https://host:port/tmf-api/performanceManagement/v5/ResourceSpecification/1' + name: mySpecName + version: '1.0' + '@baseType': ResourceSpecification + '@schemaLocation': 'https://mySchemas.com/ResourceSpecification.schema.json' + '@type': ResourceSpecification + '@referredType': ResourceSpecification + resourceStatus: standby + usageState: idle + '@baseType': DataAccessEndpoint + '@schemaLocation': 'https://myschemas.com/dataAccessEndpoint' + '@type': DataAccessEndpoint + - id: 123-xx0 + href: 'https://host:port/tmf-api/performanceManagement/v5/dataAccessEndpoint/123-xx0' + apiType: REST + category: topic + description: Measurement collection job 123-xx0 subscriber topic + endOperatingDate: '2022-05-13T10:13:42.971Z' + name: 123-xx0 subscriber topic + resourceVersion: '1.0' + startOperatingDate: '2022-05-13T10:13:42.971Z' + uri: 'https://pubsub.googleapis.com/v1/' + uriQueryFilter: + mappings: + - filterTemplate: + name: myRangeFilterSearch0 + '@type': DataFilterTemplateRange + criteria: + lowerBound: + boundValue: -10 + isInclusive: true + upperBound: + boundValue: -10 + isInclusive: true + stringArray: + value: + - field01 + - field02 + - field03 + - filterTemplate: + name: myRegExSampleSearch0 + '@type': DataFilterTemplateRegex + criteria: dallas|houston|venise|paris|new-york + stringArray: + value: + - field11 + - field12 + - field13 + - filterTemplate: + name: myBooleanFilterSearch0 + criteria: true + '@type': DataFilterTemplateBoolean + stringArray: + value: + - field1 + - field2 + - field3 + '@type': DataFilterMap + value: myLogicalResourceValue + administrativeState: locked + note: + - id: afa9-3d90aaa8da0f + author: Mr. Franklin + date: '2022-13-05T08:00:00Z' + text: >- + For further details on how to create a subscription to this topic, visit + https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.subscriptions/create + '@baseType': Note + '@schemaLocation': 'https://myschemas.com/Note.schema.json' + '@type': Note + operationalState: enable + resourceCharacteristic: + - id: '2100' + name: myCharName + valueType: string + characteristicRelationship: + - id: '21' + href: 'https://host:port/tmf-api/performanceManagement/v5/characteristicRelationship/21' + relationshipType: string + '@baseType': CharacteristicRelationship + '@schemaLocation': 'https://myschemas.com/CharacteristicRelationship.schema.json' + '@type': CharacteristicRelationship + value: myCharValue + '@baseType': Characteristic + '@schemaLocation': 'https://myschemas.com/StringCharacteristic.schema.json' + '@type': StringCharacteristic + resourceSpecification: + id: '1' + href: 'https://host:port/tmf-api/performanceManagement/v5/ResourceSpecification/1' + name: mySpecName + version: '1.0' + '@baseType': ResourceSpecification + '@schemaLocation': 'https://mySchemas.com/ResourceSpecification.schema.json' + '@type': ResourceSpecification + '@referredType': ResourceSpecification + resourceStatus: standby + usageState: idle + '@baseType': DataAccessEndpoint + '@schemaLocation': 'https://myschemas.com/dataAccessEndpoint' + '@type': DataAccessEndpoint + description: Here's an example of a request for retrieving multiple DataAccessEndpoint's. + DataAccessEndpointRetrieve_response: + value: + id: 123-xxx + href: 'https://host:port/tmf-api/performanceManagement/v5/dataAccessEndpoint/123-xxx' + apiType: REST + category: topic + description: Measurement collection job 123-xxx subscriber topic + endOperatingDate: '2022-05-13T10:13:42.971Z' + name: 123-xxx subscriber topic + resourceVersion: '1.0' + startOperatingDate: '2022-05-13T10:13:42.971Z' + uri: 'https://pubsub.googleapis.com/v1/' + uriQueryFilter: + mappings: + - filterTemplate: + name: myRangeFilterSearch0 + '@type': DataFilterTemplateRange + criteria: + lowerBound: + boundValue: -10 + isInclusive: true + upperBound: + boundValue: -10 + isInclusive: true + stringArray: + value: + - field01 + - field02 + - field03 + - filterTemplate: + name: myRegExSampleSearch0 + '@type': DataFilterTemplateRegex + criteria: dallas|houston|venise|paris|new-york + stringArray: + value: + - field11 + - field12 + - field13 + - filterTemplate: + name: myBooleanFilterSearch0 + criteria: true + '@type': DataFilterTemplateBoolean + stringArray: + value: + - field1 + - field2 + - field3 + '@type': DataFilterAttributeStringArray + '@type': DataFilterMap + value: myLogicalResourceValue + administrativeState: locked + note: + - id: afa9-3d90aaa8da0f + author: Mr. Franklin + date: '2022-13-05T08:00:00Z' + text: >- + For further details on how to create a subscription to this topic, visit + https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.subscriptions/create + '@baseType': Note + '@schemaLocation': 'https://myschemas.com/Note.schema.json' + '@type': Note + operationalState: enable + resourceCharacteristic: + - id: '2100' + name: myCharName + valueType: string + characteristicRelationship: + - id: '21' + href: 'https://host:port/tmf-api/performanceManagement/v5/characteristicRelationship/21' + relationshipType: string + '@baseType': CharacteristicRelationship + '@schemaLocation': 'https://myschemas.com/CharacteristicRelationship.schema.json' + '@type': CharacteristicRelationship + value: myCharValue + '@baseType': Characteristic + '@schemaLocation': 'https://myschemas.com/StringCharacteristic.schema.json' + '@type': StringCharacteristic + resourceSpecification: + id: '1' + href: 'https://host:port/tmf-api/performanceManagement/v5/ResourceSpecification/1' + name: mySpecName + version: '1.0' + '@baseType': ResourceSpecification + '@schemaLocation': 'https://mySchemas.com/ResourceSpecification.schema.json' + '@type': ResourceSpecification + '@referredType': ResourceSpecification + resourceStatus: standby + usageState: idle + '@baseType': DataAccessEndpoint + '@schemaLocation': 'https://myschemas.com/dataAccessEndpoint' + '@type': DataAccessEndpoint + description: Here's an example of a request for retrieving a specific DataAccessEndpoint. + MeasurementCollectionJobCreate_request: + value: + consumingApplicationId: '4000' + creationTime: '2020-06-23T14:12:01.078Z' + jobId: '400' + jobPriority: 3 + lastModifiedTime: '2020-06-23T14:12:01.079Z' + outputFormat: string + producingApplicationId: NT_101 + adminState: locked + executionState: acknowledged + fileTransferData: + - fileFormat: csv + fileLocation: 'https://host:port/tmf-api/performanceManagement/v5/FileTransferData' + transportProtocol: ftp + compressionType: + compressionEnumType: no_compression + packingType: + packingEnumType: NO_PACKING + retentionPeriod: + amount: 1 + units: month + '@baseType': RetentionPeriod + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/RetentionPeriod' + '@type': RetentionPeriod + '@baseType': FileTransferData + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': FileTransferData + granularity: g_1mn + performanceIndicatorGroupSpecification: + - href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorGroupSpecification/600 + id: '600' + name: My critical performance indicators + groupCategory: CPUGroup + performanceIndicatorSpecification: + - id: '5000' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + '@type': PerformanceIndicatorSpecificationRef + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + performanceIndicatorSpecification: + - id: '101' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/101 + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + performanceIndicatorSpecRelationship: + - id: '321' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecRelationship/321 + relationshipType: reliesOn + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecRelationship.schema.json + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: '1' + recurringFrequency: weekly + scheduleDefinitionEndTime: '2020-06-23T14:12:01.080Z' + scheduleDefinitionHourRange: '2' + scheduleDefinitionStartTime: '2020-06-23T14:12:01.080Z' + WeeklyScheduledDefinition: + - dates: '2020-06-23T14:12:01.080Z' + '@baseType': WeeklyScheduledDefinition + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/WeeklyScheduledDefinition.schema.json + '@type': WeeklyScheduledDefinition + '@baseType': ScheduleDefinition + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/ScheduleDefinition.schema.json + '@type': ScheduleDefinition + trackingRecord: + - id: TR_101 + href: 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + description: NT_101 tracking + systemId: NT_101 + time: '2020-06-23T17:55:51.671Z' + user: NP1 + '@baseType': TrackingRecord + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': TrackingRecord + '@baseType': MeasurementCollectionJob + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': MeasurementCollectionJob + description: POST MeasurementCollectionJob Request Example + MeasurementCollectionJobCreate_response: + value: + id: '4000' + href: 'https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4000' + consumingApplicationId: '4000' + creationTime: '2020-06-23T14:12:01.078Z' + jobId: '400' + jobPriority: 3 + jobOnDemand: false + lastModifiedTime: '2020-06-23T14:12:01.079Z' + outputFormat: string + producingApplicationId: NT_101 + adminState: locked + executionState: acknowledged + fileTransferData: + - fileFormat: csv + fileLocation: 'https://host:port/tmf-api/performanceManagement/v5/FileTransferData' + transportProtocol: ftp + compressionType: + compressionEnumType: no_compression + packingType: + packingEnumType: NO_PACKING + retentionPeriod: + amount: 1 + units: month + '@baseType': RetentionPeriod + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/RetentionPeriod' + '@type': RetentionPeriod + '@baseType': FileTransferData + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': FileTransferData + granularity: g_1mn + performanceIndicatorGroupSpecification: + - href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: '600' + name: My critical performance indicators + groupCategory: CPUGroup + performanceIndicatorSpecification: + - id: '5000' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + '@type': PerformanceIndicatorSpecificationRef + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + performanceIndicatorSpecification: + - id: '101' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/101 + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + performanceIndicatorSpecRelationship: + - id: '321' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecRelationship/321 + relationshipType: reliesOn + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecRelationship.schema.json + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: '1' + recurringFrequency: weekly + scheduleDefinitionEndTime: '2020-06-23T14:12:01.080Z' + scheduleDefinitionHourRange: '2' + scheduleDefinitionStartTime: '2020-06-23T14:12:01.080Z' + WeeklyScheduledDefinition: + - dates: '2020-06-23T14:12:01.080Z' + '@baseType': WeeklyScheduledDefinition + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/WeeklyScheduledDefinition.schema.json + '@type': WeeklyScheduledDefinition + '@baseType': ScheduleDefinition + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/ScheduleDefinition.schema.json + '@type': ScheduleDefinition + trackingRecord: + - id: TR_101 + href: 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + description: NT_101 tracking + systemId: NT_101 + time: '2020-06-23T17:55:51.671Z' + user: NP1 + '@baseType': TrackingRecord + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': TrackingRecord + '@baseType': MeasurementCollectionJob + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': MeasurementCollectionJob + description: POST MeasurementCollectionJob Response Example. + PerformanceIndicatorGroupSpecification_create_example__request: + value: + name: MyPerformanceIndicatorGroupSpecification + groupCategory: CPUGroup + performanceIndicatorSpecification: + - id: '5000' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + indicatorCategory: CPU + indicatorType: float + collectionType: cumulative + indicatorUnit: GHz + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: '5001' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5001 + name: Peak CPU speed + indicatorCategory: CPU + indicatorType: float + collectionType: cumulative + indicatorUnit: GHz + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: '5002' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5002 + name: Min CPU Speed + indicatorCategory: CPU + indicatorType: float + collectionType: cumulative + indicatorUnit: GHz + version: '1.0' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': 'https://myschemas/PerformanceIndicatorGroupSpecification.schema.json' + '@type': PerformanceIndicatorGroupSpecification + description: POST PerformanceIndicatorGroupSpecification Request Example + PerformanceIndicatorGroupSpecification_create_example__response: + value: + id: '100' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorGroupSpecification/100 + name: MyPerformanceIndicatorGroupSpecification + groupCategory: CPUGroup + performanceIndicatorSpecification: + - id: '5000' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + indicatorCategory: CPU + indicatorType: float + collectionType: cumulative + indicatorUnit: GHz + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: '5001' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5001 + name: Peak CPU speed + indicatorCategory: CPU + indicatorType: float + collectionType: cumulative + indicatorUnit: GHz + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': 'https://myschemas/PerformanceIndicatorGroupSpecification.schema.json' + '@type': PerformanceIndicatorGroupSpecification + description: Response for creating a new PerformanceIndicatorGroupSpecification. + PerformanceIndicatorSpecification_create_example__request: + value: + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + performanceIndicatorSpecRelationship: + - perfSpec: + href: >- + https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/300 + relationshipType: aggregation + role: member + validFor: + endDateTime: '2025-04-12T23:20:50.52Z' + startDateTime: '2022-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': 'https://myschemas.com/PerformanceIndicatorSpecRelationship.schema.json' + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: '2022-04-12T23:20:50.52Z' + startDateTime: '2022-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': 'https://myschemas.com/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecification + description: POST PerformanceIndicatorSpecification Request Example + PerformanceIndicatorSpecification_create_example__response: + value: + id: '200' + href: 'https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/200' + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + performanceIndicatorSpecRelationship: + - perfSpec: + href: >- + https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/300 + relationshipType: aggregation + role: member + validFor: + endDateTime: '2025-04-12T23:20:50.52Z' + startDateTime: '2022-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': 'https://myschemas.com/PerformanceIndicatorSpecRelationship.schema.json' + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: '2022-04-12T23:20:50.52Z' + startDateTime: '2022-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': 'https://myschemas.com/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecification + description: Response for creating a new PerformanceIndicatorSpecification. + updateMeasurementCollectionJob_using_json_request: + value: + reportingPeriod: r_1mn + dataAccessEndpoint: + - id: 123-xxx + href: 'https://host:port/tmf-api/performanceManagement/v5/dataAccessEndpoint/123-xxx' + apiType: REST + category: topic + description: Measurement collection job 123-xxx subscriber topic + endOperatingDate: '2022-05-13T10:13:42.971Z' + name: 123-xxx subscriber topic + resourceVersion: '1.0' + startOperatingDate: '2022-05-13T10:13:42.971Z' + uri: 'https://pubsub.googleapis.com/v1/' + value: myLogicalResourceValueIp + '@type': DataAccessEndpoint + '@type': MeasurementCollectionJob + description: PATCH(json) MeasurementCollectionJob Request Example + updateMeasurementCollectionJob_using_json_response: + value: + id: '4001' + href: 'https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4001' + creationTime: '2022-05-13T10:13:42.971Z' + jobId: '402' + jobPriority: 4 + jobOnDemand: false + lastModifiedTime: '2022-05-13T10:13:42.971Z' + producingApplicationId: NT_101 + consumingApplicationId: '4000' + outputFormat: string + adminState: locked + dataAccessEndpoint: + - id: 123-xxx + href: 'https://host:port/tmf-api/performanceManagement/v5/dataAccessEndpoint/123-xxx' + apiType: REST + category: topic + description: Measurement collection job 123-xxx subscriber topic + endOperatingDate: '2022-05-13T10:13:42.971Z' + name: 123-xxx subscriber topic + resourceVersion: '1.0' + startOperatingDate: '2022-05-13T10:13:42.971Z' + uri: 'https://pubsub.googleapis.com/v1/' + value: myLogicalResourceValueIp + '@type': DataAccessEndpoint + executionState: acknowledged + performanceIndicatorSpecification: + - id: '201' + href: >- + https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/201 + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + validFor: + endDateTime: '2022-04-12T23:20:50.52Z' + startDateTime: '2022-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': 'https://myschemas.com/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: '1' + recurringFrequency: weekly + scheduleDefinitionEndTime: '2022-05-13T10:13:42.971Z' + scheduleDefinitionHourRange: '08:00-12:00,16:00-19:00' + scheduleDefinitionStartTime: '2022-05-13T10:13:42.971Z' + weeklyScheduledDefinition: + - dates: '2022-05-13T10:13:42.971Z' + '@baseType': DayOfWeekRecurrence + '@schemaLocation': 'https://myschemas.com/DayOfWeekRecurrence.schema.json' + '@type': DayOfWeekRecurrence + '@baseType': ScheduleDefinition + '@schemaLocation': 'https://myschemas.com/ScheduleDefinition.schema.json' + '@type': ScheduleDefinition + jobCollectionFilter: + '@type': DataFilterMap + mappings: + - filterTemplate: + name: myRangeFilterCollect0 + '@type': DataFilterTemplateRange + criteria: + lowerBound: + boundValue: -10 + isInclusive: true + upperBound: + boundValue: -10 + isInclusive: true + stringArray: + value: + - field01 + - field02 + - field03 + - filterTemplate: + name: myRegExSampleCollect0 + '@type': DataFilterTemplateRegex + criteria: dallas|houston|venise|paris|new-york + stringArray: + value: + - field11 + - field12 + - field13 + - filterTemplate: + name: myBooleanFilterCollect0 + criteria: true + '@type': DataFilterTemplateBoolean + stringArray: + value: + - field1 + - field2 + - field3 + searchTaskFilter: + '@type': DataFilterMap + mappings: + - filterTemplate: + name: myRangeFilterSearch0 + '@type': DataFilterTemplateRange + criteria: + lowerBound: + boundValue: -10 + isInclusive: true + upperBound: + boundValue: -10 + isInclusive: true + stringArray: + value: + - field01 + - field02 + - field03 + - filterTemplate: + name: myRegExSampleSearch0 + '@type': DataFilterTemplateRegex + criteria: dallas|houston|venise|paris|new-york + stringArray: + value: + - field11 + - field12 + - field13 + - filterTemplate: + name: myBooleanFilterSearch0 + criteria: true + '@type': DataFilterTemplateBoolean + stringArray: + value: + - field1 + - field2 + - field3 + '@baseType': MeasurementCollectionJob + '@schemaLocation': 'https://myschemas.com/MeasurementCollectionJob.schema.json' + '@type': MeasurementCollectionJob + description: a complete MeasurementCollectionJob representation after PATCH(json) processing. + updateMeasurementCollectionJob_using_json-patch_json_request: + value: + - op: replace + path: /reportingPeriod + value: r_1mn + - op: replace + path: /scheduleDefinition/0/recurringFrequency + value: weekly + description: PATCH With query parameters(json-patch+json) MeasurementCollectionJob Request Example + updateMeasurementCollectionJob_using_json-patch_json_response: + value: + id: '4001' + href: 'https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4001' + lastModifiedTime: '2022-05-13T10:13:42.971Z' + adminState: locked + dataAccessEndpoint: + - id: 123-xxx + href: 'https://host:port/tmf-api/performanceManagement/v5/dataAccessEndpoint/123-xxx' + apiType: REST + category: topic + description: Measurement collection job 123-xxx subscriber topic + endOperatingDate: '2022-05-13T10:13:42.971Z' + name: 123-xxx subscriber topic + resourceVersion: '1.0' + startOperatingDate: '2022-05-13T10:13:42.971Z' + uri: 'https://pubsub.googleapis.com/v1/' + value: myLogicalResourceValueIp + '@type': DataAccessEndpoint + executionState: acknowledged + reportingPeriod: r_1mn + scheduleDefinition: + - id: '1' + recurringFrequency: weekly + scheduleDefinitionEndTime: '2022-05-13T10:13:42.971Z' + scheduleDefinitionHourRange: '08:00-12:00,16:00-19:00' + scheduleDefinitionStartTime: '2022-05-13T10:13:42.971Z' + weeklyScheduledDefinition: + - dates: '2022-05-13T10:13:42.971Z' + '@baseType': DayOfWeekRecurrence + '@schemaLocation': 'https://myschemas.com/DayOfWeekRecurrence.schema.json' + '@type': DayOfWeekRecurrence + '@baseType': ScheduleDefinition + '@schemaLocation': 'https://myschemas.com/ScheduleDefinition.schema.json' + '@type': ScheduleDefinition + '@type': MeasurementCollectionJob + description: >- + a complete MeasurementCollectionJob representation after PATCH With query + parameters(json-patch+json) processing. + updateMeasurementCollectionJob_using_json-patch-query_json_request: + value: + - op: replace + path: 'scheduleDefinition[?(@.id=''1'')].recurringFrequency=weekly' + value: daily + description: PATCH(json-patch-query+json) MeasurementCollectionJob Request Example + updateMeasurementCollectionJob_using_json-patch-query_json_response: + value: + id: '4001' + href: 'https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4001' + creationTime: '2022-05-13T10:13:42.971Z' + jobId: '402' + jobPriority: 4 + jobOnDemand: false + lastModifiedTime: '2022-05-13T10:13:42.971Z' + producingApplicationId: NT_101 + consumingApplicationId: '4000' + outputFormat: string + adminState: locked + dataAccessEndpoint: + - id: 123-xxx + href: 'https://host:port/tmf-api/performanceManagement/v5/dataAccessEndpoint/123-xxx' + apiType: REST + category: topic + description: Measurement collection job 123-xxx subscriber topic + endOperatingDate: '2022-05-13T10:13:42.971Z' + name: 123-xxx subscriber topic + resourceVersion: '1.0' + startOperatingDate: '2022-05-13T10:13:42.971Z' + uri: 'https://pubsub.googleapis.com/v1/' + value: myLogicalResourceValueIp + '@type': DataAccessEndpoint + executionState: acknowledged + performanceIndicatorSpecification: + - id: '201' + href: >- + https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/201 + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + validFor: + endDateTime: '2022-04-12T23:20:50.52Z' + startDateTime: '2022-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': 'https://myschemas.com/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: '1' + recurringFrequency: weekly + scheduleDefinitionEndTime: '2022-05-13T10:13:42.971Z' + scheduleDefinitionHourRange: '08:00-12:00,16:00-19:00' + scheduleDefinitionStartTime: '2022-05-13T10:13:42.971Z' + weeklyScheduledDefinition: + - dates: '2022-05-13T10:13:42.971Z' + '@baseType': DayOfWeekRecurrence + '@schemaLocation': 'https://myschemas.com/DayOfWeekRecurrence.schema.json' + '@type': DayOfWeekRecurrence + '@baseType': ScheduleDefinition + '@schemaLocation': 'https://myschemas.com/ScheduleDefinition.schema.json' + '@type': ScheduleDefinition + jobCollectionFilter: + '@type': DataFilterMap + mappings: + - filterTemplate: + name: myRangeFilterCollect0 + '@type': DataFilterTemplateRange + criteria: + lowerBound: + boundValue: -10 + isInclusive: true + upperBound: + boundValue: -10 + isInclusive: true + stringArray: + value: + - field01 + - field02 + - field03 + - filterTemplate: + name: myRegExSampleCollect0 + '@type': DataFilterTemplateRegex + criteria: dallas|houston|venise|paris|new-york + stringArray: + value: + - field11 + - field12 + - field13 + - filterTemplate: + name: myBooleanFilterCollect0 + criteria: true + '@type': DataFilterTemplateBoolean + stringArray: + value: + - field1 + - field2 + - field3 + searchTaskFilter: + '@type': DataFilterMap + mappings: + - filterTemplate: + name: myRangeFilterSearch0 + '@type': DataFilterTemplateRange + criteria: + lowerBound: + boundValue: -10 + isInclusive: true + upperBound: + boundValue: -10 + isInclusive: true + stringArray: + value: + - field01 + - field02 + - field03 + - filterTemplate: + name: myRegExSampleSearch0 + '@type': DataFilterTemplateRegex + criteria: dallas|houston|venise|paris|new-york + stringArray: + value: + - field11 + - field12 + - field13 + - filterTemplate: + name: myBooleanFilterSearch0 + criteria: true + '@type': DataFilterTemplateBoolean + stringArray: + value: + - field1 + - field2 + - field3 + '@baseType': MeasurementCollectionJob + '@schemaLocation': 'https://myschemas.com/MeasurementCollectionJob.schema.json' + '@type': MeasurementCollectionJob + description: >- + a complete MeasurementCollectionJob representation after PATCH (json-patch-query+json) + processing. + updateMeasurementCollectionJob_using_merge-patch_json_request: + value: + reportingPeriod: r_1mn + dataAccessEndpoint: + - id: 123-xxx + href: 'https://host:port/tmf-api/performanceManagement/v5/dataAccessEndpoint/123-xxx' + apiType: REST + category: topic + description: Measurement collection job 123-xxx subscriber topic + endOperatingDate: '2022-05-13T10:13:42.971Z' + name: 123-xxx subscriber topic + resourceVersion: '1.0' + startOperatingDate: '2022-05-13T10:13:42.971Z' + uri: 'https://pubsub.googleapis.com/v1/' + value: myLogicalResourceValueIp + '@type': DataAccessEndpoint + '@type': MeasurementCollectionJob + description: PATCH(merge-patch+json) MeasurementCollectionJob Request Example + updateMeasurementCollectionJob_using_merge-patch_json_response: + value: + id: '4001' + href: 'https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4001' + creationTime: '2022-05-13T10:13:42.971Z' + jobId: '402' + jobPriority: 4 + jobOnDemand: false + lastModifiedTime: '2022-05-13T10:13:42.971Z' + producingApplicationId: NT_101 + consumingApplicationId: '4000' + outputFormat: string + adminState: locked + dataAccessEndpoint: + - id: 123-xxx + href: 'https://host:port/tmf-api/performanceManagement/v5/dataAccessEndpoint/123-xxx' + apiType: REST + category: topic + description: Measurement collection job 123-xxx subscriber topic + endOperatingDate: '2022-05-13T10:13:42.971Z' + name: 123-xxx subscriber topic + resourceVersion: '1.0' + startOperatingDate: '2022-05-13T10:13:42.971Z' + uri: 'https://pubsub.googleapis.com/v1/' + value: myLogicalResourceValueIp + '@type': DataAccessEndpoint + executionState: acknowledged + performanceIndicatorSpecification: + - id: '201' + href: >- + https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/201 + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + validFor: + endDateTime: '2022-04-12T23:20:50.52Z' + startDateTime: '2022-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': 'https://myschemas.com/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: '1' + recurringFrequency: weekly + scheduleDefinitionEndTime: '2022-05-13T10:13:42.971Z' + scheduleDefinitionHourRange: '08:00-12:00,16:00-19:00' + scheduleDefinitionStartTime: '2022-05-13T10:13:42.971Z' + weeklyScheduledDefinition: + - dates: '2022-05-13T10:13:42.971Z' + '@baseType': DayOfWeekRecurrence + '@schemaLocation': 'https://myschemas.com/DayOfWeekRecurrence.schema.json' + '@type': DayOfWeekRecurrence + '@baseType': ScheduleDefinition + '@schemaLocation': 'https://myschemas.com/ScheduleDefinition.schema.json' + '@type': ScheduleDefinition + jobCollectionFilter: + '@type': DataFilterMap + mappings: + - filterTemplate: + name: myRangeFilterCollect0 + '@type': DataFilterTemplateRange + criteria: + lowerBound: + boundValue: -10 + isInclusive: true + upperBound: + boundValue: -10 + isInclusive: true + stringArray: + value: + - field01 + - field02 + - field03 + - filterTemplate: + name: myRegExSampleCollect0 + '@type': DataFilterTemplateRegex + criteria: dallas|houston|venise|paris|new-york + stringArray: + value: + - field11 + - field12 + - field13 + - filterTemplate: + name: myBooleanFilterCollect0 + criteria: true + '@type': DataFilterTemplateBoolean + stringArray: + value: + - field1 + - field2 + - field3 + searchTaskFilter: + '@type': DataFilterMap + mappings: + - filterTemplate: + name: myRangeFilterSearch0 + '@type': DataFilterTemplateRange + criteria: + lowerBound: + boundValue: -10 + isInclusive: true + upperBound: + boundValue: -10 + isInclusive: true + stringArray: + value: + - field01 + - field02 + - field03 + - filterTemplate: + name: myRegExSampleSearch0 + '@type': DataFilterTemplateRegex + criteria: dallas|houston|venise|paris|new-york + stringArray: + value: + - field11 + - field12 + - field13 + - filterTemplate: + name: myBooleanFilterSearch0 + criteria: true + '@type': DataFilterTemplateBoolean + stringArray: + value: + - field1 + - field2 + - field3 + '@baseType': MeasurementCollectionJob + '@schemaLocation': 'https://myschemas.com/MeasurementCollectionJob.schema.json' + '@type': MeasurementCollectionJob + description: >- + a complete MeasurementCollectionJob representation after PATCH (merge-patch+json) + processing. + updatePerformanceIndicatorGroupSpecification_using_json_request: + value: + groupCategory: MyGroupCategory + performanceIndicatorSpecification: + - id: '4000' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4000 + name: Gateway Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: '1.0' + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: '4001' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4001 + name: Router Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: '1.0' + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: '4003' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4003 + name: RAN Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: '1.0' + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + '@type': PerformanceIndicatorGroupSpecification + description: PATCH(json) PerformanceIndicatorGroupSpecification Request Example + updatePerformanceIndicatorGroupSpecification_using_json_response: + value: + id: '100' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorGroupSpecification/100 + name: MyPerformanceIndicatorGroupSpecification + groupCategory: MyGroupCategory + performanceIndicatorSpecification: + - id: '4000' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4000 + name: Gateway Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: '1.0' + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: '4001' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4001 + name: Router Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: '1.0' + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: '4003' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4003 + name: RAN Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: '1.0' + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': 'https://myschemas/PerformanceIndicatorGroupSpecification.schema.json' + '@type': PerformanceIndicatorGroupSpecification + description: >- + a complete PerformanceIndicatorGroupSpecification representation after PATCH(json) + processing. + updatePerformanceIndicatorGroupSpecification_using_json-patch_json_request: + value: + - op: replace + path: /name + value: MyPerformanceIndicatorGroupSpecification + - op: replace + path: /performanceIndicatorSpecification/0/indicatorCategory + value: Latency + - op: replace + path: /performanceIndicatorSpecification/2/collectionType + value: cumulative + description: >- + PATCH With query parameters(json-patch+json) PerformanceIndicatorGroupSpecification Request + Example + updatePerformanceIndicatorGroupSpecification_using_json-patch_json_response: + value: + id: '100' + name: MyPerformanceIndicatorGroupSpecification + groupCategory: MyGroupCategory + performanceIndicatorSpecification: + - id: '4000' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4000 + name: Gateway Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: '1.0' + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: '4001' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4001 + name: Router Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: '1.0' + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: '4003' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4003 + name: RAN Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: '1.0' + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + '@type': PerformanceIndicatorGroupSpecification + description: >- + a complete PerformanceIndicatorGroupSpecification representation after PATCH With query + parameters(json-patch+json) processing. + updatePerformanceIndicatorGroupSpecification_using_json-patch-query_json_request: + value: + - op: replace + path: '/performanceIndicatorSpecification[0]?indicatorCategory=Latency' + value: CPU + - op: replace + path: '/performanceIndicatorSpecification[1]?indicatorCategory=Latency' + value: CPU + description: PATCH(json-patch-query+json) PerformanceIndicatorGroupSpecification Request Example + updatePerformanceIndicatorGroupSpecification_using_json-patch-query_json_response: + value: + id: '100' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorGroupSpecification/100 + name: MyPerformanceIndicatorGroupSpecification + groupCategory: MyGroupCategory + performanceIndicatorSpecification: + - id: '4000' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4000 + name: Gateway Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: '1.0' + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: '4001' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4001 + name: Router Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: '1.0' + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: '4003' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4003 + name: RAN Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: '1.0' + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': 'https://myschemas/PerformanceIndicatorGroupSpecification.schema.json' + '@type': PerformanceIndicatorGroupSpecification + description: >- + a complete PerformanceIndicatorGroupSpecification representation after PATCH + (json-patch-query+json) processing. + updatePerformanceIndicatorGroupSpecification_using_merge-patch_json_request: + value: + groupCategory: MyGroupCategory + performanceIndicatorSpecification: + - id: '4000' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4000 + name: Gateway Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: '1.0' + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: '4001' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4001 + name: Router Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: '1.0' + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: '4003' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4003 + name: RAN Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: '1.0' + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + '@type': PerformanceIndicatorGroupSpecification + description: PATCH(merge-patch+json) PerformanceIndicatorGroupSpecification Request Example + updatePerformanceIndicatorGroupSpecification_using_merge-patch_json_response: + value: + id: '100' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorGroupSpecification/100 + name: MyPerformanceIndicatorGroupSpecification + groupCategory: MyGroupCategory + performanceIndicatorSpecification: + - id: '4000' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4000 + name: Gateway Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: '1.0' + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: '4001' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4001 + name: Router Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: '1.0' + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: '4003' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4003 + name: RAN Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: '1.0' + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': 'https://myschemas/PerformanceIndicatorGroupSpecification.schema.json' + '@type': PerformanceIndicatorGroupSpecification + description: >- + a complete PerformanceIndicatorGroupSpecification representation after PATCH + (merge-patch+json) processing. + updatePerformanceIndicatorSpecification_using_json_request: + value: + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + validFor: + endDateTime: '2022-04-12T23:20:50.52Z' + startDateTime: '2022-04-12T23:20:50.52Z' + '@type': PerformanceIndicatorSpecification + description: PATCH(json) PerformanceIndicatorSpecification Request Example + updatePerformanceIndicatorSpecification_using_json_response: + value: + id: '200' + href: 'https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/200' + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + performanceIndicatorSpecRelationship: + - perfSpec: + href: >- + https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/300 + relationshipType: aggregation + role: member + validFor: + endDateTime: '2025-04-12T23:20:50.52Z' + startDateTime: '2022-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': 'https://myschemas.com/PerformanceIndicatorSpecRelationship.schema.json' + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: '2022-04-12T23:20:50.52Z' + startDateTime: '2022-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': 'https://myschemas.com/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecification + description: a complete PerformanceIndicatorSpecification representation after PATCH(json) processing. + updatePerformanceIndicatorSpecification_using_json-patch_json_request: + value: + - op: replace + path: /indicatorCategory + value: CPU + - op: replace + path: /validFor/endDateTime + value: '2022-04-12T23:20:50.52Z' + description: >- + PATCH With query parameters(json-patch+json) PerformanceIndicatorSpecification Request + Example + updatePerformanceIndicatorSpecification_using_json-patch_json_response: + value: + id: '200' + href: 'https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/200' + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + collectionType: cumulative + indicatorType: float + validFor: + endDateTime: '2022-04-12T23:20:50.52Z' + startDateTime: '2022-04-12T23:20:50.52Z' + '@type': PerformanceIndicatorSpecification + description: >- + a complete PerformanceIndicatorSpecification representation after PATCH With query + parameters(json-patch+json) processing. + updatePerformanceIndicatorSpecification_using_json-patch-query_json_request: + value: + - op: replace + path: /indicatorUnit?indicatorCategory=Latency + value: CPU + - op: replace + path: '/perspective/performanceIndicatorSpecRelationship[0]?relationshipType=aggregation' + value: aggregation over a collection of systems + description: PATCH(json-patch-query+json) PerformanceIndicatorSpecification Request Example + updatePerformanceIndicatorSpecification_using_json-patch-query_json_response: + value: + id: '200' + href: 'https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/200' + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + performanceIndicatorSpecRelationship: + - perfSpec: + href: >- + https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/300 + relationshipType: aggregation + role: member + validFor: + endDateTime: '2025-04-12T23:20:50.52Z' + startDateTime: '2022-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': 'https://myschemas.com/PerformanceIndicatorSpecRelationship.schema.json' + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: '2022-04-12T23:20:50.52Z' + startDateTime: '2022-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': 'https://myschemas.com/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecification + description: >- + a complete PerformanceIndicatorSpecification representation after PATCH + (json-patch-query+json) processing. + updatePerformanceIndicatorSpecification_using_merge-patch_json_request: + value: + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + validFor: + endDateTime: '2022-04-12T23:20:50.52Z' + startDateTime: '2022-04-12T23:20:50.52Z' + '@type': PerformanceIndicatorSpecification + description: PATCH(merge-patch+json) PerformanceIndicatorSpecification Request Example + updatePerformanceIndicatorSpecification_using_merge-patch_json_response: + value: + id: '200' + href: 'https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/200' + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + performanceIndicatorSpecRelationship: + - perfSpec: + href: >- + https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/300 + relationshipType: aggregation + role: member + validFor: + endDateTime: '2025-04-12T23:20:50.52Z' + startDateTime: '2022-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': 'https://myschemas.com/PerformanceIndicatorSpecRelationship.schema.json' + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: '2022-04-12T23:20:50.52Z' + startDateTime: '2022-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': 'https://myschemas.com/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecification + description: >- + a complete PerformanceIndicatorSpecification representation after PATCH (merge-patch+json) + processing. + MeasurementCollectionJobCreateEvent_request: + value: + correlationId: 2bc480b9-2dc0 + description: MeasurementCollectionJobCreateEvent illustration + domain: Commercial + eventId: 48e1-9989-2d1fce36bceb + eventTime: '2022-08-25T12:18:24.978Z' + eventType: MeasurementCollectionJobCreateEvent + priority: '5' + timeOcurred: '2022-08-25T12:18:19.818Z' + title: MeasurementCollectionJobCreateEvent + event: + measurementCollectionJob: + id: '4000' + href: 'https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4000' + '@type': MeasurementCollectionJobRef + reportingSystem: + id: '139' + name: APP-110 + '@type': ReportingResource + '@referredType': LogicalResource + source: + id: '471' + name: APP-100 + '@type': ReportingResource + '@referredType': LogicalResource + '@baseType': Event + '@type': MeasurementCollectionJobCreateEvent + description: Message example for MeasurementCollectionJobCreateEvent event + MeasurementCollectionJobExecutionStateChangeEvent_request: + value: + correlationId: e941b96a-b783 + description: MeasurementCollectionJobExecutionStateChangeEvent illustration + domain: Commercial + eventId: 40e9-a950-9da00d0b4a6e + eventTime: '2022-08-25T12:18:24.988Z' + eventType: MeasurementCollectionJobExecutionStateChangeEvent + priority: '3' + timeOcurred: '2022-08-25T12:18:23.999Z' + title: MeasurementCollectionJobExecutionStateChangeEvent + event: + measurementCollectionJob: + id: '4000' + href: 'https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4000' + consumingApplicationId: '4000' + creationTime: '2020-06-23T14:12:01.078Z' + jobId: '400' + jobPriority: 3 + jobOnDemand: false + lastModifiedTime: '2020-06-23T14:12:01.079Z' + outputFormat: string + producingApplicationId: NT_101 + adminState: locked + executionState: acknowledged + fileTransferData: + - fileFormat: csv + fileLocation: 'https://host:port/tmf-api/performanceManagement/v5/FileTransferData' + transportProtocol: ftp + compressionType: + compressionEnumType: no_compression + packingType: + packingEnumType: NO_PACKING + retentionPeriod: + amount: 1 + units: month + '@baseType': RetentionPeriod + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/RetentionPeriod' + '@type': RetentionPeriod + '@baseType': FileTransferData + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': FileTransferData + granularity: g_1mn + monitoredClassCriteria: + monitoredObjectClass: string + objectInstanceFilter: string + '@baseType': string + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': string + monitoredInstancesCriteria: + monitoredObjectInstances: + - string + '@baseType': string + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': string + performanceIndicatorGroupSpecification: + - href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: '600' + name: My critical performance indicators + performanceIndicatorSpecification: + - id: '5000' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + version: '1.0' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + performanceIndicatorSpecification: + - id: '101' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/101 + derivationAlgorithm: string + derivationMethod: string + description: string + indicatorCategory: string + indicatorUnit: string + name: string + perspective: string + collectionType: cumulative + indicatorType: string + performanceIndicatorSpecRelationship: + - id: '321' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecRelationship/321 + relationshipType: reliesOn + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecRelationship.schema.json + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: '1' + recurringFrequency: weekly + scheduleDefinitionEndTime: '2020-06-23T14:12:01.080Z' + scheduleDefinitionHourRange: '2' + scheduleDefinitionStartTime: '2020-06-23T14:12:01.080Z' + MonthlyScheduleDayOfWeekDefinition: + recurringDaySequence: string + dayOfMonthRecurrence: + - dates: '2020-06-23T14:12:01.080Z' + '@baseType': DayOfMonthRecurrence + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/DayOfMonthRecurrence.schema.json + '@type': DayOfMonthRecurrence + '@baseType': MonthlyScheduleDayOfWeekDefinition + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/MonthlyScheduleDayOfWeekDefinition.schema.json + '@type': MonthlyScheduleDayOfWeekDefinition + WeeklyScheduledDefinition: + - dates: '2020-06-23T14:12:01.080Z' + '@baseType': WeeklyScheduledDefinition + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/WeeklyScheduledDefinition.schema.json + '@type': WeeklyScheduledDefinition + '@baseType': ScheduleDefinition + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/ScheduleDefinition.schema.json + '@type': ScheduleDefinition + trackingRecord: + - id: TR_101 + href: 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + description: string + systemId: NT_101 + time: '2020-06-23T17:55:51.671Z' + user: NP1 + '@baseType': TrackingRecord + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': TrackingRecord + '@baseType': MeasurementCollectionJob + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': MeasurementCollectionJob + reportingSystem: + id: '139' + name: APP-110 + '@type': ReportingResource + '@referredType': LogicalResource + source: + id: '471' + name: APP-100 + '@type': ReportingResource + '@referredType': LogicalResource + '@baseType': Event + '@type': MeasurementCollectionJobExecutionStateChangeEvent + description: Message example for MeasurementCollectionJobExecutionStateChangeEvent event + MeasurementCollectionJobDeleteEvent_request: + value: + correlationId: be9ea486-ec11 + description: MeasurementCollectionJobDeleteEvent illustration + domain: Commercial + eventId: 4739-824e-059be590beaf + eventTime: '2022-08-25T12:18:24.997Z' + eventType: MeasurementCollectionJobDeleteEvent + priority: '5' + timeOcurred: '2022-08-25T12:18:18.505Z' + title: MeasurementCollectionJobDeleteEvent + event: + measurementCollectionJob: + id: '4000' + href: 'https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4000' + consumingApplicationId: '4000' + creationTime: '2020-06-23T14:12:01.078Z' + jobId: '400' + jobPriority: 3 + jobOnDemand: false + lastModifiedTime: '2020-06-23T14:12:01.079Z' + outputFormat: string + producingApplicationId: NT_101 + adminState: locked + executionState: acknowledged + fileTransferData: + - fileFormat: csv + fileLocation: 'https://host:port/tmf-api/performanceManagement/v5/FileTransferData' + transportProtocol: ftp + compressionType: + compressionEnumType: no_compression + packingType: + packingEnumType: NO_PACKING + retentionPeriod: + amount: 1 + units: month + '@baseType': RetentionPeriod + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/RetentionPeriod' + '@type': RetentionPeriod + '@baseType': FileTransferData + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': FileTransferData + granularity: g_1mn + monitoredClassCriteria: + monitoredObjectClass: string + objectInstanceFilter: string + '@baseType': string + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': string + monitoredInstancesCriteria: + monitoredObjectInstances: + - string + '@baseType': string + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': string + performanceIndicatorGroupSpecification: + - href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: '600' + name: My critical performance indicators + performanceIndicatorSpecification: + - id: '5000' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + version: '1.0' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + performanceIndicatorSpecification: + - id: '101' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/101 + derivationAlgorithm: string + derivationMethod: string + description: string + indicatorCategory: string + indicatorUnit: string + name: string + perspective: string + collectionType: cumulative + indicatorType: string + performanceIndicatorSpecRelationship: + - id: '321' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecRelationship/321 + relationshipType: reliesOn + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecRelationship.schema.json + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: '1' + recurringFrequency: weekly + scheduleDefinitionEndTime: '2020-06-23T14:12:01.080Z' + scheduleDefinitionHourRange: '2' + scheduleDefinitionStartTime: '2020-06-23T14:12:01.080Z' + MonthlyScheduleDayOfWeekDefinition: + recurringDaySequence: string + dayOfMonthRecurrence: + - dates: '2020-06-23T14:12:01.080Z' + '@baseType': DayOfMonthRecurrence + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/DayOfMonthRecurrence.schema.json + '@type': DayOfMonthRecurrence + '@baseType': MonthlyScheduleDayOfWeekDefinition + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/MonthlyScheduleDayOfWeekDefinition.schema.json + '@type': MonthlyScheduleDayOfWeekDefinition + WeeklyScheduledDefinition: + - dates: '2020-06-23T14:12:01.080Z' + '@baseType': WeeklyScheduledDefinition + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/WeeklyScheduledDefinition.schema.json + '@type': WeeklyScheduledDefinition + '@baseType': ScheduleDefinition + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/ScheduleDefinition.schema.json + '@type': ScheduleDefinition + trackingRecord: + - id: TR_101 + href: 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + description: string + systemId: NT_101 + time: '2020-06-23T17:55:51.671Z' + user: NP1 + '@baseType': TrackingRecord + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': TrackingRecord + '@baseType': MeasurementCollectionJob + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': MeasurementCollectionJob + reportingSystem: + id: '139' + name: APP-110 + '@type': ReportingResource + '@referredType': LogicalResource + source: + id: '471' + name: APP-100 + '@type': ReportingResource + '@referredType': LogicalResource + '@baseType': Event + '@type': MeasurementCollectionJobDeleteEvent + description: Message example for MeasurementCollectionJobDeleteEvent event + MeasurementCollectionJobAttributeValueChangeEvent_request: + value: + correlationId: 88d6563b-fef5 + description: MeasurementCollectionJobAttributeValueChangeEvent illustration + domain: Commercial + eventId: 470e-b052-17d87228ce4b + eventTime: '2022-08-25T12:18:25.005Z' + eventType: MeasurementCollectionJobAttributeValueChangeEvent + priority: '5' + timeOcurred: '2022-08-25T12:18:22.736Z' + title: MeasurementCollectionJobAttributeValueChangeEvent + event: + measurementCollectionJob: + id: '4000' + href: 'https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4000' + consumingApplicationId: '4000' + creationTime: '2020-06-23T14:12:01.078Z' + jobId: '400' + jobPriority: 3 + jobOnDemand: false + lastModifiedTime: '2020-06-23T14:12:01.079Z' + outputFormat: string + producingApplicationId: NT_101 + adminState: locked + executionState: acknowledged + fileTransferData: + - fileFormat: csv + fileLocation: 'https://host:port/tmf-api/performanceManagement/v5/FileTransferData' + transportProtocol: ftp + compressionType: + compressionEnumType: no_compression + packingType: + packingEnumType: NO_PACKING + retentionPeriod: + amount: 1 + units: month + '@baseType': RetentionPeriod + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/RetentionPeriod' + '@type': RetentionPeriod + '@baseType': FileTransferData + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': FileTransferData + granularity: g_1mn + monitoredClassCriteria: + monitoredObjectClass: string + objectInstanceFilter: string + '@baseType': string + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': string + monitoredInstancesCriteria: + monitoredObjectInstances: + - string + '@baseType': string + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': string + performanceIndicatorGroupSpecification: + - href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: '600' + name: My critical performance indicators + performanceIndicatorSpecification: + - id: '5000' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + version: '1.0' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + performanceIndicatorSpecification: + - id: '101' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/101 + derivationAlgorithm: string + derivationMethod: string + description: string + indicatorCategory: string + indicatorUnit: string + name: string + perspective: string + collectionType: cumulative + indicatorType: string + performanceIndicatorSpecRelationship: + - id: '321' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecRelationship/321 + relationshipType: reliesOn + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecRelationship.schema.json + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: '1' + recurringFrequency: weekly + scheduleDefinitionEndTime: '2020-06-23T14:12:01.080Z' + scheduleDefinitionHourRange: '2' + scheduleDefinitionStartTime: '2020-06-23T14:12:01.080Z' + MonthlyScheduleDayOfWeekDefinition: + recurringDaySequence: string + dayOfMonthRecurrence: + - dates: '2020-06-23T14:12:01.080Z' + '@baseType': DayOfMonthRecurrence + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/DayOfMonthRecurrence.schema.json + '@type': DayOfMonthRecurrence + '@baseType': MonthlyScheduleDayOfWeekDefinition + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/MonthlyScheduleDayOfWeekDefinition.schema.json + '@type': MonthlyScheduleDayOfWeekDefinition + WeeklyScheduledDefinition: + - dates: '2020-06-23T14:12:01.080Z' + '@baseType': WeeklyScheduledDefinition + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/WeeklyScheduledDefinition.schema.json + '@type': WeeklyScheduledDefinition + '@baseType': ScheduleDefinition + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/ScheduleDefinition.schema.json + '@type': ScheduleDefinition + trackingRecord: + - id: TR_101 + href: 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + description: string + systemId: NT_101 + time: '2020-06-23T17:55:51.671Z' + user: NP1 + '@baseType': TrackingRecord + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': TrackingRecord + '@baseType': MeasurementCollectionJob + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': MeasurementCollectionJob + reportingSystem: + id: '139' + name: APP-110 + '@type': ReportingResource + '@referredType': LogicalResource + source: + id: '471' + name: APP-100 + '@type': ReportingResource + '@referredType': LogicalResource + '@baseType': Event + '@type': MeasurementCollectionJobAttributeValueChangeEvent + description: Message example for MeasurementCollectionJobAttributeValueChangeEvent event + MeasurementCollectionJobFilesReadyEvent_request: + value: + correlationId: fdd613a8-7396 + description: MeasurementCollectionJobFilesReadyEvent illustration + domain: Commercial + eventId: 456d-9572-d1d23be58dd4 + eventTime: '2022-08-25T12:18:25.017Z' + eventType: MeasurementCollectionJobFilesReadyEvent + priority: '4' + timeOcurred: '2022-08-25T12:18:16.825Z' + title: MeasurementCollectionJobFilesReadyEvent + event: + measurementCollectionJob: + id: '4000' + href: 'https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4000' + consumingApplicationId: '4000' + creationTime: '2020-06-23T14:12:01.078Z' + jobId: '400' + jobPriority: 3 + jobOnDemand: false + lastModifiedTime: '2020-06-23T14:12:01.079Z' + outputFormat: string + producingApplicationId: NT_101 + adminState: locked + executionState: acknowledged + fileTransferData: + - fileFormat: csv + fileLocation: 'https://host:port/tmf-api/performanceManagement/v5/FileTransferData' + transportProtocol: ftp + compressionType: + compressionEnumType: no_compression + packingType: + packingEnumType: NO_PACKING + retentionPeriod: + amount: 1 + units: month + '@baseType': RetentionPeriod + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/RetentionPeriod' + '@type': RetentionPeriod + '@baseType': FileTransferData + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': FileTransferData + granularity: g_1mn + monitoredClassCriteria: + monitoredObjectClass: string + objectInstanceFilter: string + '@baseType': string + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': string + monitoredInstancesCriteria: + monitoredObjectInstances: + - string + '@baseType': string + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': string + performanceIndicatorGroupSpecification: + - href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: '600' + name: My critical performance indicators + performanceIndicatorSpecification: + - id: '5000' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + version: '1.0' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + performanceIndicatorSpecification: + - id: '101' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/101 + derivationAlgorithm: string + derivationMethod: string + description: string + indicatorCategory: string + indicatorUnit: string + name: string + perspective: string + collectionType: cumulative + indicatorType: string + performanceIndicatorSpecRelationship: + - id: '321' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecRelationship/321 + relationshipType: reliesOn + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecRelationship.schema.json + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: '1' + recurringFrequency: weekly + scheduleDefinitionEndTime: '2020-06-23T14:12:01.080Z' + scheduleDefinitionHourRange: '2' + scheduleDefinitionStartTime: '2020-06-23T14:12:01.080Z' + MonthlyScheduleDayOfWeekDefinition: + recurringDaySequence: string + dayOfMonthRecurrence: + - dates: '2020-06-23T14:12:01.080Z' + '@baseType': DayOfMonthRecurrence + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/DayOfMonthRecurrence.schema.json + '@type': DayOfMonthRecurrence + '@baseType': MonthlyScheduleDayOfWeekDefinition + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/MonthlyScheduleDayOfWeekDefinition.schema.json + '@type': MonthlyScheduleDayOfWeekDefinition + WeeklyScheduledDefinition: + - dates: '2020-06-23T14:12:01.080Z' + '@baseType': WeeklyScheduledDefinition + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/WeeklyScheduledDefinition.schema.json + '@type': WeeklyScheduledDefinition + '@baseType': ScheduleDefinition + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/ScheduleDefinition.schema.json + '@type': ScheduleDefinition + trackingRecord: + - id: TR_101 + href: 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + description: string + systemId: NT_101 + time: '2020-06-23T17:55:51.671Z' + user: NP1 + '@baseType': TrackingRecord + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': TrackingRecord + '@baseType': MeasurementCollectionJob + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': MeasurementCollectionJob + reportingSystem: + id: '139' + name: APP-110 + '@type': ReportingResource + '@referredType': LogicalResource + source: + id: '471' + name: APP-100 + '@type': ReportingResource + '@referredType': LogicalResource + '@baseType': Event + '@type': MeasurementCollectionJobFilesReadyEvent + description: Message example for MeasurementCollectionJobFilesReadyEvent event + MeasurementCollectionJobFilesPreparationErrorEvent_request: + value: + correlationId: 416928f1-523a + description: MeasurementCollectionJobFilesPreparationErrorEvent illustration + domain: Commercial + eventId: 4cc1-80c0-ba3b3efe2c75 + eventTime: '2022-08-25T12:18:25.029Z' + eventType: MeasurementCollectionJobFilesPreparationErrorEvent + priority: '4' + timeOcurred: '2022-08-25T12:18:19.038Z' + title: MeasurementCollectionJobFilesPreparationErrorEvent + event: + measurementCollectionJob: + id: '4000' + href: 'https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4000' + consumingApplicationId: '4000' + creationTime: '2020-06-23T14:12:01.078Z' + jobId: '400' + jobPriority: 3 + jobOnDemand: false + lastModifiedTime: '2020-06-23T14:12:01.079Z' + outputFormat: string + producingApplicationId: NT_101 + adminState: locked + executionState: acknowledged + fileTransferData: + - fileFormat: csv + fileLocation: 'https://host:port/tmf-api/performanceManagement/v5/FileTransferData' + transportProtocol: ftp + compressionType: + compressionEnumType: no_compression + packingType: + packingEnumType: NO_PACKING + retentionPeriod: + amount: 1 + units: month + '@baseType': RetentionPeriod + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/RetentionPeriod' + '@type': RetentionPeriod + '@baseType': FileTransferData + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': FileTransferData + granularity: g_1mn + monitoredClassCriteria: + monitoredObjectClass: string + objectInstanceFilter: string + '@baseType': string + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': string + monitoredInstancesCriteria: + monitoredObjectInstances: + - string + '@baseType': string + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': string + performanceIndicatorGroupSpecification: + - href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: '600' + name: My critical performance indicators + performanceIndicatorSpecification: + - id: '5000' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + version: '1.0' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + performanceIndicatorSpecification: + - id: '101' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/101 + derivationAlgorithm: string + derivationMethod: string + description: string + indicatorCategory: string + indicatorUnit: string + name: string + perspective: string + collectionType: cumulative + indicatorType: string + performanceIndicatorSpecRelationship: + - id: '321' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecRelationship/321 + relationshipType: reliesOn + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecRelationship.schema.json + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: '1' + recurringFrequency: weekly + scheduleDefinitionEndTime: '2020-06-23T14:12:01.080Z' + scheduleDefinitionHourRange: '2' + scheduleDefinitionStartTime: '2020-06-23T14:12:01.080Z' + MonthlyScheduleDayOfWeekDefinition: + recurringDaySequence: string + dayOfMonthRecurrence: + - dates: '2020-06-23T14:12:01.080Z' + '@baseType': DayOfMonthRecurrence + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/DayOfMonthRecurrence.schema.json + '@type': DayOfMonthRecurrence + '@baseType': MonthlyScheduleDayOfWeekDefinition + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/MonthlyScheduleDayOfWeekDefinition.schema.json + '@type': MonthlyScheduleDayOfWeekDefinition + WeeklyScheduledDefinition: + - dates: '2020-06-23T14:12:01.080Z' + '@baseType': WeeklyScheduledDefinition + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/WeeklyScheduledDefinition.schema.json + '@type': WeeklyScheduledDefinition + '@baseType': ScheduleDefinition + '@schemaLocation': >- + https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/ScheduleDefinition.schema.json + '@type': ScheduleDefinition + trackingRecord: + - id: TR_101 + href: 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + description: string + systemId: NT_101 + time: '2020-06-23T17:55:51.671Z' + user: NP1 + '@baseType': TrackingRecord + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': TrackingRecord + '@baseType': MeasurementCollectionJob + '@schemaLocation': 'https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation' + '@type': MeasurementCollectionJob + reportingSystem: + id: '139' + name: APP-110 + '@type': ReportingResource + '@referredType': LogicalResource + source: + id: '471' + name: APP-100 + '@type': ReportingResource + '@referredType': LogicalResource + '@baseType': Event + '@type': MeasurementCollectionJobFilesPreparationErrorEvent + description: Message example for MeasurementCollectionJobFilesPreparationErrorEvent event + PerformanceMeasurementCreateEvent_request: + value: + correlationId: 2bc480b9-2dc0 + description: PerformanceMeasurementCreateEvent illustration + domain: Commercial + eventId: 48e1-9989-2d1fce36bceb + eventTime: '2022-08-25T12:18:24.978Z' + eventType: PerformanceMeasurementCreateEvent + priority: '5' + timeOcurred: '2022-08-25T12:18:19.818Z' + title: PerformanceMeasurementCreateEvent + event: + performanceMeasurement: + id: '1' + href: 'https://host:port/tmf-api/performanceManagement/v5/performanceMeasurement/1' + '@type': PerformanceMeasurementAtomic + reportingSystem: + id: '139' + name: APP-110 + '@type': ReportingResource + '@referredType': LogicalResource + source: + id: '471' + name: APP-100 + '@type': ReportingResource + '@referredType': LogicalResource + '@baseType': Event + '@type': PerformanceMeasurementCreateEvent + description: Message example for PerformanceMeasurementCreateEvent event + PerformanceMeasurementCollectionReady_request: + value: + correlationId: 2bc480b9-2dc0 + description: PerformanceMeasurementCollectionReadyEvent illustration + domain: Commercial + eventId: 48e1-9989-2d1fce36bceb + eventTime: '2022-08-25T12:18:24.978Z' + eventType: PerformanceMeasurementCollectionReadyEvent + priority: '5' + timeOcurred: '2022-08-25T12:18:19.818Z' + title: PerformanceMeasurementCollectionReadyEvent + event: + performanceMeasurement: + id: '1' + href: 'https://host:port/tmf-api/performanceManagement/v5/performanceMeasurement/1' + description: The first performance measurement in the database + measurementCollectionJob: + id: '4000' + href: 'https://host:port/tmf-api/performanceManagement/v5/measurementCollectionJob/4000' + name: Measurement Collection Job from system A + '@baseType': MeasurementCollectionJobRef + '@schemaLocation': 'https://myschemas/MeasurementCollectionJob.schema.json' + '@type': MeasurementCollectionJobRef + '@referredType': MeasurementCollectionJob + performanceIndicatorValue: + - performanceIndicatorSpecification: + id: '1' + href: >- + https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/1 + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + observedValue: '2.1' + - performanceIndicatorSpecification: + id: '2' + name: CPU Speed Indicator Specification + indicatorCategory: SPEEDCategory + indicatorName: CPU Speed + indicatorType: float + indicatorUnit: GHz + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': 'https://myschemas/PerformanceIndicatorSpecification.schema.json' + '@type': PerformanceIndicatorSpecification + observedValue: '3.25' + validFor: + endDateTime: '1985-04-12T23:20:50.52Z' + startDateTime: '1985-04-12T23:20:50.52Z' + '@baseType': PerformanceMeasurement + '@schemaLocation': 'https://github.com/repo/PerformanceMeasurementAtomic.schema.json' + '@type': PerformanceMeasurementAtomic + reportingSystem: + id: '139' + name: APP-110 + '@type': ReportingResource + '@referredType': LogicalResource + source: + id: '471' + name: APP-100 + '@type': ReportingResource + '@referredType': LogicalResource + '@baseType': Event + '@type': PerformanceMeasurementCollectionReadyEvent + description: Message example for PerformanceMeasurementCollectionReady event diff --git a/src/main/java/org/etsi/osl/tmf/pm628/.openapi-generator/VERSION b/src/main/java/org/etsi/osl/tmf/pm628/.openapi-generator/VERSION new file mode 100644 index 0000000000000000000000000000000000000000..ecb21862b1eec30581a1f0caab3f0a6afb109f9e --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/.openapi-generator/VERSION @@ -0,0 +1 @@ +7.6.0-SNAPSHOT diff --git a/src/main/java/org/etsi/osl/tmf/pm628/.openapi-generator/openapi.yaml b/src/main/java/org/etsi/osl/tmf/pm628/.openapi-generator/openapi.yaml new file mode 100644 index 0000000000000000000000000000000000000000..9f765aa6edf9137b77998a0dcabf0b7ad09f680d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/.openapi-generator/openapi.yaml @@ -0,0 +1,11207 @@ +openapi: 3.0.1 +info: + description: TMF628 Performance Management API + title: Performance + version: 5.0.0 +servers: +- url: "{apiRoot}/tmf-api/performance/v5/" + variables: + apiRoot: + default: https://serverRoot + enum: + - https://serverRoot +tags: +- description: Operations for MeasurementCollectionJob Resource + name: measurementCollectionJob +- description: Operations for PerformanceIndicatorGroupSpecification Resource + name: performanceIndicatorGroupSpecification +- description: Operations for PerformanceIndicatorSpecification Resource + name: performanceIndicatorSpecification +- description: Operations for TrackingRecord Resource + name: trackingRecord +- description: Operations for PerformanceMeasurement Resource + name: performanceMeasurement +- description: Operations for DataAccessEndpoint Resource + name: dataAccessEndpoint +- description: Notifications for Resource Lifecycle and event notifications + name: notification listener +- description: Endpoints to register and terminate an Event Listener + name: events subscription +paths: + /dataAccessEndpoint: + get: + description: List or find DataAccessEndpoint objects + operationId: listDataAccessEndpoint + parameters: + - description: Comma-separated properties to be provided in response + explode: true + in: query + name: fields + required: false + schema: + type: string + style: form + - description: Requested index for start of resources to be provided in response + explode: true + in: query + name: offset + required: false + schema: + type: integer + style: form + - description: Requested number of resources to be provided in response + explode: true + in: query + name: limit + required: false + schema: + type: integer + style: form + responses: + "200": + content: + application/json: + examples: + DataAccessEndpointList: + $ref: '#/components/examples/DataAccessEndpointList_response' + schema: + items: + $ref: '#/components/schemas/DataAccessEndpoint' + type: array + description: Success + headers: + X-Total-Count: + $ref: '#/components/headers/X-Total-Count' + X-Result-Count: + $ref: '#/components/headers/X-Result-Count' + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Bad Request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Found + "405": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Method Not allowed + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Internal Server Error + "501": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Implemented + "503": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Service Unavailable + summary: List or find DataAccessEndpoint objects + tags: + - dataAccessEndpoint + x-accepts: + - application/json + x-tags: + - tag: dataAccessEndpoint + /dataAccessEndpoint/{id}: + get: + description: This operation retrieves a DataAccessEndpoint entity. Attribute + selection enabled for all first level attributes. + operationId: retrieveDataAccessEndpoint + parameters: + - description: Identifier of the Resource + explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + - description: Comma-separated properties to be provided in response + explode: true + in: query + name: fields + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/json: + examples: + DataAccessEndpointRetrieve: + $ref: '#/components/examples/DataAccessEndpointRetrieve_response' + schema: + $ref: '#/components/schemas/DataAccessEndpoint' + description: Success + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Bad Request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Found + "405": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Method Not allowed + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Internal Server Error + "501": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Implemented + "503": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Service Unavailable + summary: Retrieves a DataAccessEndpoint by ID + tags: + - dataAccessEndpoint + x-accepts: + - application/json + x-tags: + - tag: dataAccessEndpoint + /hub: + post: + description: Sets the communication endpoint to receive Events. + operationId: createHub + requestBody: + $ref: '#/components/requestBodies/Hub_FVO' + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/Hub' + description: Notified + default: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Error + summary: Create a subscription (hub) to receive Events + tags: + - events subscription + x-content-type: application/json + x-accepts: + - application/json + x-tags: + - tag: events subscription + /hub/{id}: + delete: + description: "" + operationId: hubDelete + parameters: + - description: Identifier of the Resource + explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "204": + description: Deleted + default: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Error + summary: Remove a subscription (hub) to receive Events + tags: + - events subscription + x-accepts: + - application/json + x-tags: + - tag: events subscription + /listener/measurementCollectionJobAttributeValueChangeEvent: + post: + description: Example of a client listener for receiving the notification MeasurementCollectionJobAttributeValueChangeEvent + operationId: measurementCollectionJobAttributeValueChangeEvent + requestBody: + $ref: '#/components/requestBodies/MeasurementCollectionJobAttributeValueChangeEvent' + responses: + "204": + description: Notified + default: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Error + summary: Client listener for entity MeasurementCollectionJobAttributeValueChangeEvent + tags: + - notification listener + x-content-type: application/json + x-accepts: + - application/json + x-tags: + - tag: notification listener + /listener/measurementCollectionJobCreateEvent: + post: + description: Example of a client listener for receiving the notification MeasurementCollectionJobCreateEvent + operationId: measurementCollectionJobCreateEvent + requestBody: + $ref: '#/components/requestBodies/MeasurementCollectionJobCreateEvent' + responses: + "204": + description: Notified + default: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Error + summary: Client listener for entity MeasurementCollectionJobCreateEvent + tags: + - notification listener + x-content-type: application/json + x-accepts: + - application/json + x-tags: + - tag: notification listener + /listener/measurementCollectionJobDeleteEvent: + post: + description: Example of a client listener for receiving the notification MeasurementCollectionJobDeleteEvent + operationId: measurementCollectionJobDeleteEvent + requestBody: + $ref: '#/components/requestBodies/MeasurementCollectionJobDeleteEvent' + responses: + "204": + description: Notified + default: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Error + summary: Client listener for entity MeasurementCollectionJobDeleteEvent + tags: + - notification listener + x-content-type: application/json + x-accepts: + - application/json + x-tags: + - tag: notification listener + /listener/measurementCollectionJobExecutionStateChangeEvent: + post: + description: Example of a client listener for receiving the notification MeasurementCollectionJobExecutionStateChangeEvent + operationId: measurementCollectionJobExecutionStateChangeEvent + requestBody: + $ref: '#/components/requestBodies/MeasurementCollectionJobExecutionStateChangeEvent' + responses: + "204": + description: Notified + default: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Error + summary: Client listener for entity MeasurementCollectionJobExecutionStateChangeEvent + tags: + - notification listener + x-content-type: application/json + x-accepts: + - application/json + x-tags: + - tag: notification listener + /listener/measurementCollectionJobFilesPreparationErrorEvent: + post: + description: Example of a client listener for receiving the notification MeasurementCollectionJobFilesPreparationErrorEvent + operationId: measurementCollectionJobFilesPreparationErrorEvent + requestBody: + $ref: '#/components/requestBodies/MeasurementCollectionJobFilesPreparationErrorEvent' + responses: + "204": + description: Notified + default: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Error + summary: Client listener for entity MeasurementCollectionJobFilesPreparationErrorEvent + tags: + - notification listener + x-content-type: application/json + x-accepts: + - application/json + x-tags: + - tag: notification listener + /listener/measurementCollectionJobFilesReadyEvent: + post: + description: Example of a client listener for receiving the notification MeasurementCollectionJobFilesReadyEvent + operationId: measurementCollectionJobFilesReadyEvent + requestBody: + $ref: '#/components/requestBodies/MeasurementCollectionJobFilesReadyEvent' + responses: + "204": + description: Notified + default: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Error + summary: Client listener for entity MeasurementCollectionJobFilesReadyEvent + tags: + - notification listener + x-content-type: application/json + x-accepts: + - application/json + x-tags: + - tag: notification listener + /listener/performanceMeasurementCollectionReadyEvent: + post: + description: Example of a client listener for receiving the notification PerformanceMeasurementCollectionReadyEvent + operationId: performanceMeasurementCollectionReadyEvent + requestBody: + $ref: '#/components/requestBodies/PerformanceMeasurementCollectionReadyEvent' + responses: + "204": + description: Notified + default: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Error + summary: Client listener for entity PerformanceMeasurementCollectionReadyEvent + tags: + - notification listener + x-content-type: application/json + x-accepts: + - application/json + x-tags: + - tag: notification listener + /listener/performanceMeasurementCreateEvent: + post: + description: Example of a client listener for receiving the notification PerformanceMeasurementCreateEvent + operationId: performanceMeasurementCreateEvent + requestBody: + $ref: '#/components/requestBodies/PerformanceMeasurementCreateEvent' + responses: + "204": + description: Notified + default: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Error + summary: Client listener for entity PerformanceMeasurementCreateEvent + tags: + - notification listener + x-content-type: application/json + x-accepts: + - application/json + x-tags: + - tag: notification listener + /measurementCollectionJob: + get: + description: List or find MeasurementCollectionJob objects + operationId: listMeasurementCollectionJob + parameters: + - description: Comma-separated properties to be provided in response + explode: true + in: query + name: fields + required: false + schema: + type: string + style: form + - description: Requested index for start of resources to be provided in response + explode: true + in: query + name: offset + required: false + schema: + type: integer + style: form + - description: Requested number of resources to be provided in response + explode: true + in: query + name: limit + required: false + schema: + type: integer + style: form + responses: + "200": + content: + application/json: + examples: + MeasurementCollectionJobList: + $ref: '#/components/examples/MeasurementCollectionJobList_response' + schema: + items: + $ref: '#/components/schemas/MeasurementCollectionJob' + type: array + description: Success + headers: + X-Total-Count: + $ref: '#/components/headers/X-Total-Count' + X-Result-Count: + $ref: '#/components/headers/X-Result-Count' + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Bad Request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Found + "405": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Method Not allowed + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Internal Server Error + "501": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Implemented + "503": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Service Unavailable + summary: List or find MeasurementCollectionJob objects + tags: + - measurementCollectionJob + x-accepts: + - application/json + x-tags: + - tag: measurementCollectionJob + post: + description: This operation creates a MeasurementCollectionJob entity. + operationId: createMeasurementCollectionJob + parameters: + - description: Comma-separated properties to be provided in response + explode: true + in: query + name: fields + required: false + schema: + type: string + style: form + requestBody: + $ref: '#/components/requestBodies/MeasurementCollectionJob_FVO' + responses: + "201": + content: + application/json: + examples: + MeasurementCollectionJobCreate: + $ref: '#/components/examples/MeasurementCollectionJobCreate_response' + schema: + $ref: '#/components/schemas/MeasurementCollectionJob' + description: OK/Created + "202": + description: Accepted + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Bad Request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Found + "405": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Method Not allowed + "409": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Conflict + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Internal Server Error + "501": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Implemented + "503": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Service Unavailable + summary: Creates a MeasurementCollectionJob + tags: + - measurementCollectionJob + x-content-type: application/json + x-accepts: + - application/json + x-tags: + - tag: measurementCollectionJob + /measurementCollectionJob/{id}: + delete: + description: This operation deletes a MeasurementCollectionJob entity. + operationId: deleteMeasurementCollectionJob + parameters: + - description: Identifier of the Resource + explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "202": + description: Accepted + "204": + description: Deleted + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Bad Request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Found + "405": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Method Not allowed + "409": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Conflict + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Internal Server Error + "501": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Implemented + "503": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Service Unavailable + summary: Deletes a MeasurementCollectionJob + tags: + - measurementCollectionJob + x-accepts: + - application/json + x-tags: + - tag: measurementCollectionJob + get: + description: This operation retrieves a MeasurementCollectionJob entity. Attribute + selection enabled for all first level attributes. + operationId: retrieveMeasurementCollectionJob + parameters: + - description: Identifier of the Resource + explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + - description: Comma-separated properties to be provided in response + explode: true + in: query + name: fields + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/json: + examples: + MeasurementCollectionJobRetrieve: + $ref: '#/components/examples/MeasurementCollectionJobRetrieve_response' + schema: + $ref: '#/components/schemas/MeasurementCollectionJob' + description: Success + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Bad Request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Found + "405": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Method Not allowed + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Internal Server Error + "501": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Implemented + "503": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Service Unavailable + summary: Retrieves a MeasurementCollectionJob by ID + tags: + - measurementCollectionJob + x-accepts: + - application/json + x-tags: + - tag: measurementCollectionJob + patch: + description: This operation updates partially a MeasurementCollectionJob entity. + operationId: patchMeasurementCollectionJob + parameters: + - description: Identifier of the Resource + explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + - description: Comma-separated properties to be provided in response + explode: true + in: query + name: fields + required: false + schema: + type: string + style: form + requestBody: + $ref: '#/components/requestBodies/MeasurementCollectionJob_MVO' + responses: + "200": + content: + application/json: + examples: + updateMeasurementCollectionJob_using_json: + $ref: '#/components/examples/updateMeasurementCollectionJob_using_json_response' + schema: + $ref: '#/components/schemas/MeasurementCollectionJob' + application/merge-patch+json: + examples: + updateMeasurementCollectionJob_using_merge-patch_json: + $ref: '#/components/examples/updateMeasurementCollectionJob_using_merge-patch_json_response' + schema: + $ref: '#/components/schemas/MeasurementCollectionJob' + application/json-patch+json: + examples: + updateMeasurementCollectionJob_using_json-patch_json: + $ref: '#/components/examples/updateMeasurementCollectionJob_using_json-patch_json_response' + schema: + $ref: '#/components/schemas/patchMeasurementCollectionJob_200_response' + application/json-patch-query+json: + examples: + updateMeasurementCollectionJob_using_json-patch-query_json: + $ref: '#/components/examples/updateMeasurementCollectionJob_using_json-patch-query_json_response' + schema: + $ref: '#/components/schemas/patchMeasurementCollectionJob_200_response' + description: Success + "202": + description: Accepted + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Bad Request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Found + "405": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Method Not allowed + "409": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Conflict + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Internal Server Error + "501": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Implemented + "503": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Service Unavailable + summary: Updates partially a MeasurementCollectionJob + tags: + - measurementCollectionJob + x-content-type: application/json + x-accepts: + - application/json + - application/json-patch+json + - application/json-patch-query+json + - application/merge-patch+json + x-tags: + - tag: measurementCollectionJob + /performanceIndicatorGroupSpecification: + get: + description: List or find PerformanceIndicatorGroupSpecification objects + operationId: listPerformanceIndicatorGroupSpecification + parameters: + - description: Comma-separated properties to be provided in response + explode: true + in: query + name: fields + required: false + schema: + type: string + style: form + - description: Requested index for start of resources to be provided in response + explode: true + in: query + name: offset + required: false + schema: + type: integer + style: form + - description: Requested number of resources to be provided in response + explode: true + in: query + name: limit + required: false + schema: + type: integer + style: form + responses: + "200": + content: + application/json: + examples: + PerformanceIndicatorGroupSpecificationList: + $ref: '#/components/examples/PerformanceIndicatorGroupSpecificationList_response' + schema: + items: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification' + type: array + description: Success + headers: + X-Total-Count: + $ref: '#/components/headers/X-Total-Count' + X-Result-Count: + $ref: '#/components/headers/X-Result-Count' + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Bad Request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Found + "405": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Method Not allowed + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Internal Server Error + "501": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Implemented + "503": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Service Unavailable + summary: List or find PerformanceIndicatorGroupSpecification objects + tags: + - performanceIndicatorGroupSpecification + x-accepts: + - application/json + x-tags: + - tag: performanceIndicatorGroupSpecification + post: + description: This operation creates a PerformanceIndicatorGroupSpecification + entity. + operationId: createPerformanceIndicatorGroupSpecification + parameters: + - description: Comma-separated properties to be provided in response + explode: true + in: query + name: fields + required: false + schema: + type: string + style: form + requestBody: + $ref: '#/components/requestBodies/PerformanceIndicatorGroupSpecification_FVO' + responses: + "201": + content: + application/json: + examples: + PerformanceIndicatorGroupSpecification_create_example_: + $ref: '#/components/examples/PerformanceIndicatorGroupSpecification_create_example__response' + schema: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification' + description: OK/Created + "202": + description: Accepted + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Bad Request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Found + "405": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Method Not allowed + "409": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Conflict + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Internal Server Error + "501": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Implemented + "503": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Service Unavailable + summary: Creates a PerformanceIndicatorGroupSpecification + tags: + - performanceIndicatorGroupSpecification + x-content-type: application/json + x-accepts: + - application/json + x-tags: + - tag: performanceIndicatorGroupSpecification + /performanceIndicatorGroupSpecification/{id}: + delete: + description: This operation deletes a PerformanceIndicatorGroupSpecification + entity. + operationId: deletePerformanceIndicatorGroupSpecification + parameters: + - description: Identifier of the Resource + explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "202": + description: Accepted + "204": + description: Deleted + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Bad Request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Found + "405": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Method Not allowed + "409": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Conflict + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Internal Server Error + "501": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Implemented + "503": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Service Unavailable + summary: Deletes a PerformanceIndicatorGroupSpecification + tags: + - performanceIndicatorGroupSpecification + x-accepts: + - application/json + x-tags: + - tag: performanceIndicatorGroupSpecification + get: + description: This operation retrieves a PerformanceIndicatorGroupSpecification + entity. Attribute selection enabled for all first level attributes. + operationId: retrievePerformanceIndicatorGroupSpecification + parameters: + - description: Identifier of the Resource + explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + - description: Comma-separated properties to be provided in response + explode: true + in: query + name: fields + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/json: + examples: + PerformanceIndicatorGroupSpecificationRetrieve: + $ref: '#/components/examples/PerformanceIndicatorGroupSpecificationRetrieve_response' + schema: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification' + description: Success + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Bad Request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Found + "405": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Method Not allowed + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Internal Server Error + "501": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Implemented + "503": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Service Unavailable + summary: Retrieves a PerformanceIndicatorGroupSpecification by ID + tags: + - performanceIndicatorGroupSpecification + x-accepts: + - application/json + x-tags: + - tag: performanceIndicatorGroupSpecification + patch: + description: This operation updates partially a PerformanceIndicatorGroupSpecification + entity. + operationId: patchPerformanceIndicatorGroupSpecification + parameters: + - description: Identifier of the Resource + explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + - description: Comma-separated properties to be provided in response + explode: true + in: query + name: fields + required: false + schema: + type: string + style: form + requestBody: + $ref: '#/components/requestBodies/PerformanceIndicatorGroupSpecification_MVO' + responses: + "200": + content: + application/json: + examples: + updatePerformanceIndicatorGroupSpecification_using_json: + $ref: '#/components/examples/updatePerformanceIndicatorGroupSpecification_using_json_response' + schema: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification' + application/merge-patch+json: + examples: + updatePerformanceIndicatorGroupSpecification_using_merge-patch_json: + $ref: '#/components/examples/updatePerformanceIndicatorGroupSpecification_using_merge-patch_json_response' + schema: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification' + application/json-patch+json: + examples: + updatePerformanceIndicatorGroupSpecification_using_json-patch_json: + $ref: '#/components/examples/updatePerformanceIndicatorGroupSpecification_using_json-patch_json_response' + schema: + $ref: '#/components/schemas/patchPerformanceIndicatorGroupSpecification_200_response' + application/json-patch-query+json: + examples: + updatePerformanceIndicatorGroupSpecification_using_json-patch-query_json: + $ref: '#/components/examples/updatePerformanceIndicatorGroupSpecification_using_json-patch-query_json_response' + schema: + $ref: '#/components/schemas/patchPerformanceIndicatorGroupSpecification_200_response' + description: Success + "202": + description: Accepted + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Bad Request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Found + "405": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Method Not allowed + "409": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Conflict + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Internal Server Error + "501": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Implemented + "503": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Service Unavailable + summary: Updates partially a PerformanceIndicatorGroupSpecification + tags: + - performanceIndicatorGroupSpecification + x-content-type: application/json + x-accepts: + - application/json + - application/json-patch+json + - application/json-patch-query+json + - application/merge-patch+json + x-tags: + - tag: performanceIndicatorGroupSpecification + /performanceIndicatorSpecification: + get: + description: List or find PerformanceIndicatorSpecification objects + operationId: listPerformanceIndicatorSpecification + parameters: + - description: Comma-separated properties to be provided in response + explode: true + in: query + name: fields + required: false + schema: + type: string + style: form + - description: Requested index for start of resources to be provided in response + explode: true + in: query + name: offset + required: false + schema: + type: integer + style: form + - description: Requested number of resources to be provided in response + explode: true + in: query + name: limit + required: false + schema: + type: integer + style: form + responses: + "200": + content: + application/json: + examples: + PerformanceIndicatorSpecificationList: + $ref: '#/components/examples/PerformanceIndicatorSpecificationList_response' + schema: + items: + $ref: '#/components/schemas/PerformanceIndicatorSpecification' + type: array + description: Success + headers: + X-Total-Count: + $ref: '#/components/headers/X-Total-Count' + X-Result-Count: + $ref: '#/components/headers/X-Result-Count' + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Bad Request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Found + "405": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Method Not allowed + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Internal Server Error + "501": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Implemented + "503": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Service Unavailable + summary: List or find PerformanceIndicatorSpecification objects + tags: + - performanceIndicatorSpecification + x-accepts: + - application/json + x-tags: + - tag: performanceIndicatorSpecification + post: + description: This operation creates a PerformanceIndicatorSpecification entity. + operationId: createPerformanceIndicatorSpecification + parameters: + - description: Comma-separated properties to be provided in response + explode: true + in: query + name: fields + required: false + schema: + type: string + style: form + requestBody: + $ref: '#/components/requestBodies/PerformanceIndicatorSpecification_FVO' + responses: + "201": + content: + application/json: + examples: + PerformanceIndicatorSpecification_create_example_: + $ref: '#/components/examples/PerformanceIndicatorSpecification_create_example__response' + schema: + $ref: '#/components/schemas/PerformanceIndicatorSpecification' + description: OK/Created + "202": + description: Accepted + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Bad Request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Found + "405": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Method Not allowed + "409": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Conflict + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Internal Server Error + "501": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Implemented + "503": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Service Unavailable + summary: Creates a PerformanceIndicatorSpecification + tags: + - performanceIndicatorSpecification + x-content-type: application/json + x-accepts: + - application/json + x-tags: + - tag: performanceIndicatorSpecification + /performanceIndicatorSpecification/{id}: + delete: + description: This operation deletes a PerformanceIndicatorSpecification entity. + operationId: deletePerformanceIndicatorSpecification + parameters: + - description: Identifier of the Resource + explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "202": + description: Accepted + "204": + description: Deleted + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Bad Request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Found + "405": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Method Not allowed + "409": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Conflict + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Internal Server Error + "501": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Implemented + "503": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Service Unavailable + summary: Deletes a PerformanceIndicatorSpecification + tags: + - performanceIndicatorSpecification + x-accepts: + - application/json + x-tags: + - tag: performanceIndicatorSpecification + get: + description: This operation retrieves a PerformanceIndicatorSpecification entity. + Attribute selection enabled for all first level attributes. + operationId: retrievePerformanceIndicatorSpecification + parameters: + - description: Identifier of the Resource + explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + - description: Comma-separated properties to be provided in response + explode: true + in: query + name: fields + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/json: + examples: + PerformanceIndicatorSpecificationRetrieve: + $ref: '#/components/examples/PerformanceIndicatorSpecificationRetrieve_response' + schema: + $ref: '#/components/schemas/PerformanceIndicatorSpecification' + description: Success + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Bad Request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Found + "405": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Method Not allowed + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Internal Server Error + "501": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Implemented + "503": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Service Unavailable + summary: Retrieves a PerformanceIndicatorSpecification by ID + tags: + - performanceIndicatorSpecification + x-accepts: + - application/json + x-tags: + - tag: performanceIndicatorSpecification + patch: + description: This operation updates partially a PerformanceIndicatorSpecification + entity. + operationId: patchPerformanceIndicatorSpecification + parameters: + - description: Identifier of the Resource + explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + - description: Comma-separated properties to be provided in response + explode: true + in: query + name: fields + required: false + schema: + type: string + style: form + requestBody: + $ref: '#/components/requestBodies/PerformanceIndicatorSpecification_MVO' + responses: + "200": + content: + application/json: + examples: + updatePerformanceIndicatorSpecification_using_json: + $ref: '#/components/examples/updatePerformanceIndicatorSpecification_using_json_response' + schema: + $ref: '#/components/schemas/PerformanceIndicatorSpecification' + application/merge-patch+json: + examples: + updatePerformanceIndicatorSpecification_using_merge-patch_json: + $ref: '#/components/examples/updatePerformanceIndicatorSpecification_using_merge-patch_json_response' + schema: + $ref: '#/components/schemas/PerformanceIndicatorSpecification' + application/json-patch+json: + examples: + updatePerformanceIndicatorSpecification_using_json-patch_json: + $ref: '#/components/examples/updatePerformanceIndicatorSpecification_using_json-patch_json_response' + schema: + $ref: '#/components/schemas/patchPerformanceIndicatorSpecification_200_response' + application/json-patch-query+json: + examples: + updatePerformanceIndicatorSpecification_using_json-patch-query_json: + $ref: '#/components/examples/updatePerformanceIndicatorSpecification_using_json-patch-query_json_response' + schema: + $ref: '#/components/schemas/patchPerformanceIndicatorSpecification_200_response' + description: Success + "202": + description: Accepted + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Bad Request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Found + "405": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Method Not allowed + "409": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Conflict + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Internal Server Error + "501": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Implemented + "503": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Service Unavailable + summary: Updates partially a PerformanceIndicatorSpecification + tags: + - performanceIndicatorSpecification + x-content-type: application/json + x-accepts: + - application/json + - application/json-patch+json + - application/json-patch-query+json + - application/merge-patch+json + x-tags: + - tag: performanceIndicatorSpecification + /performanceMeasurement: + get: + description: List or find PerformanceMeasurement objects + operationId: listPerformanceMeasurement + parameters: + - description: Comma-separated properties to be provided in response + explode: true + in: query + name: fields + required: false + schema: + type: string + style: form + - description: Requested index for start of resources to be provided in response + explode: true + in: query + name: offset + required: false + schema: + type: integer + style: form + - description: Requested number of resources to be provided in response + explode: true + in: query + name: limit + required: false + schema: + type: integer + style: form + responses: + "200": + content: + application/json: + examples: + PerformanceMeasurementList: + $ref: '#/components/examples/PerformanceMeasurementList_response' + schema: + items: + $ref: '#/components/schemas/PerformanceMeasurement' + type: array + description: Success + headers: + X-Total-Count: + $ref: '#/components/headers/X-Total-Count' + X-Result-Count: + $ref: '#/components/headers/X-Result-Count' + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Bad Request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Found + "405": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Method Not allowed + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Internal Server Error + "501": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Implemented + "503": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Service Unavailable + summary: List or find PerformanceMeasurement objects + tags: + - performanceMeasurement + x-accepts: + - application/json + x-tags: + - tag: performanceMeasurement + /performanceMeasurement/{id}: + get: + description: This operation retrieves a PerformanceMeasurement entity. Attribute + selection enabled for all first level attributes. + operationId: retrievePerformanceMeasurement + parameters: + - description: Identifier of the Resource + explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + - description: Comma-separated properties to be provided in response + explode: true + in: query + name: fields + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/json: + examples: + PerformanceMeasurementRetrieve: + $ref: '#/components/examples/PerformanceMeasurementRetrieve_response' + PerformanceMeasurementGroupRetrieve: + $ref: '#/components/examples/PerformanceMeasurementGroupRetrieve_response' + schema: + $ref: '#/components/schemas/PerformanceMeasurement' + description: Success + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Bad Request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Found + "405": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Method Not allowed + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Internal Server Error + "501": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Implemented + "503": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Service Unavailable + summary: Retrieves a PerformanceMeasurement by ID + tags: + - performanceMeasurement + x-accepts: + - application/json + x-tags: + - tag: performanceMeasurement + /trackingRecord: + get: + description: List or find TrackingRecord objects + operationId: listTrackingRecord + parameters: + - description: Comma-separated properties to be provided in response + explode: true + in: query + name: fields + required: false + schema: + type: string + style: form + - description: Requested index for start of resources to be provided in response + explode: true + in: query + name: offset + required: false + schema: + type: integer + style: form + - description: Requested number of resources to be provided in response + explode: true + in: query + name: limit + required: false + schema: + type: integer + style: form + responses: + "200": + content: + application/json: + examples: + TrackingRecordList: + $ref: '#/components/examples/TrackingRecordList_response' + schema: + items: + $ref: '#/components/schemas/TrackingRecord' + type: array + description: Success + headers: + X-Total-Count: + $ref: '#/components/headers/X-Total-Count' + X-Result-Count: + $ref: '#/components/headers/X-Result-Count' + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Bad Request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Found + "405": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Method Not allowed + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Internal Server Error + "501": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Implemented + "503": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Service Unavailable + summary: List or find TrackingRecord objects + tags: + - trackingRecord + x-accepts: + - application/json + x-tags: + - tag: trackingRecord + /trackingRecord/{id}: + get: + description: This operation retrieves a TrackingRecord entity. Attribute selection + enabled for all first level attributes. + operationId: retrieveTrackingRecord + parameters: + - description: Identifier of the Resource + explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + - description: Comma-separated properties to be provided in response + explode: true + in: query + name: fields + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/json: + examples: + TrackingRecordRetrieve: + $ref: '#/components/examples/TrackingRecordRetrieve_response' + schema: + $ref: '#/components/schemas/TrackingRecord' + description: Success + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Bad Request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Found + "405": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Method Not allowed + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Internal Server Error + "501": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Implemented + "503": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Service Unavailable + summary: Retrieves a TrackingRecord by ID + tags: + - trackingRecord + x-accepts: + - application/json + x-tags: + - tag: trackingRecord +components: + examples: + MeasurementCollectionJobList_response: + description: Here's an example of a request for retrieving Measurement Collection + Job(s). + value: + - id: "4000" + href: https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4000 + consumingApplicationId: "4000" + creationTime: 2020-06-23T14:12:01.078Z + jobId: "400" + jobPriority: 3 + jobOnDemand: false + lastModifiedTime: 2020-06-23T14:12:01.079Z + outputFormat: string + producingApplicationId: NT_101 + adminState: locked + executionState: acknowledged + fileTransferData: + - fileFormat: csv + fileLocation: https://host:port/tmf-api/performanceManagement/v5/FileTransferData + transportProtocol: ftp + compressionType: + compressionEnumType: no_compression + packingType: + packingEnumType: NO_PACKING + retentionPeriod: + amount: 1 + units: month + '@baseType': RetentionPeriod + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/RetentionPeriod + '@type': RetentionPeriod + '@baseType': FileTransferData + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': FileTransferData + granularity: g_1mn + performanceIndicatorGroupSpecification: + - href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: "600" + name: My critical performance indicators + groupCategory: CPUGroup + performanceIndicatorSpecification: + - id: "5000" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + version: "1.0" + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + performanceIndicatorSpecification: + - id: "101" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/101 + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + performanceIndicatorSpecRelationship: + - id: "321" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecRelationship/321 + relationshipType: reliesOn + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecRelationship.schema.json + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: "1" + recurringFrequency: weekly + scheduleDefinitionEndTime: 2020-06-23T14:12:01.080Z + scheduleDefinitionHourRange: "2" + scheduleDefinitionStartTime: 2020-06-23T14:12:01.080Z + WeeklyScheduledDefinition: + - dates: 2020-06-23T14:12:01.080Z + '@baseType': WeeklyScheduledDefinition + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/WeeklyScheduledDefinition.schema.json + '@type': WeeklyScheduledDefinition + '@baseType': ScheduleDefinition + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/ScheduleDefinition.schema.json + '@type': ScheduleDefinition + trackingRecord: + - id: TR_101 + href: https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + description: NT_101 tracking + systemId: NT_101 + time: 2020-06-23T17:55:51.671Z + user: NP1 + '@baseType': TrackingRecord + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': TrackingRecord + '@baseType': MeasurementCollectionJob + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': MeasurementCollectionJob + - id: "4001" + href: https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4001 + consumingApplicationId: "4000" + creationTime: 2020-06-23T15:12:01.078Z + jobId: "401" + jobPriority: 3 + jobOnDemand: false + lastModifiedTime: 2020-06-23T15:12:01.079Z + outputFormat: string + producingApplicationId: NT_101 + adminState: locked + executionState: acknowledged + fileTransferData: + - fileFormat: csv + fileLocation: https://host:port/tmf-api/performanceManagement/v5/FileTransferData + transportProtocol: ftp + compressionType: + compressionEnumType: no_compression + packingType: + packingEnumType: NO_PACKING + retentionPeriod: + amount: 1 + units: month + '@baseType': RetentionPeriod + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/RetentionPeriod + '@type': RetentionPeriod + '@baseType': FileTransferData + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': FileTransferData + granularity: g_1mn + performanceIndicatorGroupSpecification: + - href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: "600" + name: My critical performance indicators + groupCategory: CPUGroup + performanceIndicatorSpecification: + - id: "5000" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + version: "1.0" + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + performanceIndicatorSpecification: + - id: "101" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/101 + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + performanceIndicatorSpecRelationship: + - id: "321" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecRelationship/321 + relationshipType: reliesOn + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecRelationship.schema.json + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: "2" + recurringFrequency: weekly + scheduleDefinitionEndTime: 2020-06-23T14:12:01.080Z + scheduleDefinitionHourRange: "2" + scheduleDefinitionStartTime: 2020-06-23T14:12:01.080Z + WeeklyScheduledDefinition: + - dates: 2020-06-23T14:12:01.080Z + '@baseType': WeeklyScheduledDefinition + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/WeeklyScheduledDefinition.schema.json + '@type': WeeklyScheduledDefinition + '@baseType': ScheduleDefinition + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/ScheduleDefinition.schema.json + '@type': ScheduleDefinition + trackingRecord: + - id: TR_102 + href: https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + description: NT_101 tracking + systemId: NT_101 + time: 2020-06-23T17:55:51.671Z + user: NP1 + '@baseType': TrackingRecord + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': TrackingRecord + '@baseType': MeasurementCollectionJob + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': MeasurementCollectionJob + MeasurementCollectionJobRetrieve_response: + description: Here's an example of a request for retrieving a specific Measurement + Collection Job. + value: + id: "4000" + href: https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4000 + consumingApplicationId: "4000" + creationTime: 2020-06-23T14:12:01.078Z + jobId: "400" + jobPriority: 3 + jobOnDemand: false + lastModifiedTime: 2020-06-23T14:12:01.079Z + outputFormat: string + producingApplicationId: NT_101 + adminState: locked + executionState: acknowledged + fileTransferData: + - fileFormat: csv + fileLocation: https://host:port/tmf-api/performanceManagement/v5/FileTransferData + transportProtocol: ftp + compressionType: + compressionEnumType: no_compression + packingType: + packingEnumType: NO_PACKING + retentionPeriod: + amount: 1 + units: month + '@baseType': RetentionPeriod + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/RetentionPeriod + '@type': RetentionPeriod + '@baseType': FileTransferData + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': FileTransferData + granularity: g_1mn + performanceIndicatorGroupSpecification: + - href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: "600" + name: My critical performance indicators + groupCategory: CPUGroup + performanceIndicatorSpecification: + - id: "5000" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + version: "1.0" + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + performanceIndicatorSpecification: + - id: "101" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/101 + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + performanceIndicatorSpecRelationship: + - id: "321" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecRelationship/321 + relationshipType: reliesOn + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecRelationship.schema.json + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: "1" + recurringFrequency: weekly + scheduleDefinitionEndTime: 2020-06-23T14:12:01.080Z + scheduleDefinitionHourRange: "2" + scheduleDefinitionStartTime: 2020-06-23T14:12:01.080Z + WeeklyScheduledDefinition: + - dates: 2020-06-23T14:12:01.080Z + '@baseType': WeeklyScheduledDefinition + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/WeeklyScheduledDefinition.schema.json + '@type': WeeklyScheduledDefinition + '@baseType': ScheduleDefinition + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/ScheduleDefinition.schema.json + '@type': ScheduleDefinition + trackingRecord: + - id: TR_101 + href: https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + description: string + systemId: NT_101 + time: 2020-06-23T17:55:51.671Z + user: NP1 + '@baseType': TrackingRecord + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': TrackingRecord + '@baseType': MeasurementCollectionJob + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': MeasurementCollectionJob + PerformanceIndicatorGroupSpecificationList_response: + description: Here's an example of a request for retrieving multiple Performance + Indicator Group Specifications. + value: + - href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: "600" + name: CriticalPerformance + groupCategory: CPUGroup + performanceIndicatorSpecification: + - id: "5000" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + version: "1.0" + indicatorCategory: CPU + indicatorType: float + collectionType: cumulative + indicatorUnit: GHz + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + - href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/601 + id: "601" + name: CriticalPerformance + groupCategory: CPUGroup + performanceIndicatorSpecification: + - id: "5001" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5001 + name: CPU speed + version: "1.0" + indicatorCategory: CPU + indicatorType: float + collectionType: cumulative + indicatorUnit: GHz + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + PerformanceIndicatorGroupSpecificationRetrieve_response: + description: Here's an example of a request for retrieving a specific Performance + Indicator Group Specification. + value: + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: "600" + name: My critical performance indicators + performanceIndicatorSpecification: + - id: "5001" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5001 + name: CPU speed core 1 + indicatorCategory: CPU + indicatorType: float + collectionType: cumulative + indicatorUnit: GHz + version: "1.0" + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + - id: "5002" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5002 + name: CPU speed core 2 + indicatorCategory: CPU + indicatorType: float + collectionType: cumulative + indicatorUnit: GHz + version: "1.0" + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + - id: "5003" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5003 + name: CPU speed core 3 + indicatorCategory: CPU + indicatorType: float + collectionType: cumulative + indicatorUnit: GHz + version: "1.0" + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + PerformanceIndicatorSpecificationList_response: + description: Here's an example of a request for retrieving multiple Performance + Indicator Specifications. + value: + - id: "5000" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + description: The average CPU speed + perspective: aggregation over a collection of systems + indicatorCategory: CPU + indicatorType: float + derivationAlgorithm: na + derivationMethod: average + validFor: + startDateTime: 2023-04-01T00:00:00.001Z + endDateTime: 2023-04-30T23:59:59.999Z + collectionType: cumulative + indicatorUnit: GHz + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + - id: "5001" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5001 + name: CPU speed + description: The average peak CPU speed + perspective: aggregation over a collection of systems + indicatorCategory: CPU + indicatorType: float + derivationAlgorithm: na + derivationMethod: average + validFor: + startDateTime: 2023-04-01T00:00:00.001Z + endDateTime: 2023-04-30T23:59:59.999Z + collectionType: cumulative + indicatorUnit: GHz + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + PerformanceIndicatorSpecificationRetrieve_response: + description: Here's an example of a request for retrieving a specific Performance + Indicator Specification. + value: + id: "5000" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + description: The average CPU speed + perspective: aggregation over a collection of systems + indicatorCategory: CPU + indicatorType: float + derivationAlgorithm: na + derivationMethod: average + validFor: + startDateTime: 2023-04-01T00:00:00.001Z + endDateTime: 2023-04-30T23:59:59.999Z + collectionType: cumulative + indicatorUnit: GHz + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + TrackingRecordList_response: + description: Here's an example of a request for retrieving multiple TrackingRecord's. + value: + - id: "1001" + description: "acknowledge ,clear" + systemId: "5001" + time: 2022-05-15T15:51:04.176Z + user: myUserName + characteristic: + - id: "001" + name: myCharName + valueType: string + characteristicRelationship: + - id: "400" + href: https://host:port/tmf-api/performanceManagement/v5/characteristicRelationship/400 + relationshipType: sub-part + '@baseType': CharacteristicRelationship + '@schemaLocation': https://myschemas.com/CharacteristicRelationship.schema.json + '@type': CharacteristicRelationship + value: myCharactericticValue + '@baseType': Characteristic + '@schemaLocation': https://myschemas.com/StringCharacteristic.schema.json + '@type': StringCharacteristic + '@baseType': TrackingRecord + '@schemaLocation': https://myschemas.com/TrackingRecord.schema.json + '@type': TrackingRecord + - id: "1002" + description: "acknowledge ,clear" + systemId: "5002" + time: 2022-05-15T16:51:04.176Z + user: myUserName + characteristic: + - id: "002" + name: myCharName2 + valueType: string + characteristicRelationship: + - id: "401" + href: https://host:port/tmf-api/performanceManagement/v5/characteristicRelationship/401 + relationshipType: sub-part + '@baseType': CharacteristicRelationship + '@schemaLocation': https://myschemas.com/CharacteristicRelationship.schema.json + '@type': CharacteristicRelationship + value: myCharactericticValue + '@baseType': Characteristic + '@schemaLocation': https://myschemas.com/StringCharacteristic.schema.json + '@type': StringCharacteristic + '@baseType': TrackingRecord + '@schemaLocation': https://myschemas.com/TrackingRecord.schema.json + '@type': TrackingRecord + TrackingRecordRetrieve_response: + description: Here's an example of a request for retrieving a specific TrackingRecord. + value: + id: "1001" + description: "acknowledge ,clear" + systemId: "5001" + time: 2022-05-15T15:51:04.176Z + user: myUserName + characteristic: + - id: "001" + name: myCharName + valueType: string + characteristicRelationship: + - id: "400" + href: https://host:port/tmf-api/performanceManagement/v5/characteristicRelationship/400 + relationshipType: sub-part + '@baseType': CharacteristicRelationship + '@schemaLocation': https://myschemas.com/CharacteristicRelationship.schema.json + '@type': CharacteristicRelationship + value: myCharactericticValue + '@baseType': Characteristic + '@schemaLocation': https://myschemas.com/Characteristic.schema.json + '@type': StringCharacteristic + '@baseType': TrackingRecord + '@schemaLocation': https://myschemas.com/TrackingRecord.schema.json + '@type': TrackingRecord + PerformanceMeasurementList_response: + description: Here's an example of a request for retrieving multiple Simple and + Group PerformanceMeasurement's. + value: + - id: "1" + href: https://host:port/tmf-api/performanceManagement/v5/performanceMeasurement/1 + description: The first performance measurement in the database + measurementCollectionJob: + id: "4000" + href: https://host:port/tmf-api/performanceManagement/v5/measurementCollectionJob/4000 + name: Measurement Collection Job from system A + '@baseType': MeasurementCollectionJobRef + '@schemaLocation': https://myschemas/MeasurementCollectionJob.schema.json + '@type': MeasurementCollectionJobRef + '@referredType': MeasurementCollectionJob + performanceIndicatorValue: + - performanceIndicatorSpecification: + id: "1" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/1 + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + observedValue: "2.1" + - performanceIndicatorSpecification: + id: "2" + name: CPU Speed Indicator Specification + indicatorCategory: SPEEDCategory + indicatorName: CPU Speed + indicatorType: float + indicatorUnit: GHz + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + observedValue: "3.25" + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + '@baseType': PerformanceMeasurement + '@schemaLocation': https://github.com/repo/PerformanceMeasurementAtomic.schema.json + '@type': PerformanceMeasurementAtomic + - id: "2" + href: https://host:port/tmf-api/performanceManagement/v5/performanceMeasurement/2 + description: The second performance measurement in the database + measurementCollectionJob: + id: "4000" + href: https://host:port/tmf-api/performanceManagement/v5/measurementCollectionJob/4000 + name: Measurement Collection Job from system A + '@baseType': MeasurementCollectionJobRef + '@schemaLocation': https://myschemas/MeasurementCollectionJob.schema.json + '@type': MeasurementCollectionJobRef + '@referredType': MeasurementCollectionJob + performanceIndicatorValue: + - performanceIndicatorSpecification: + id: "1" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/1 + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + observedValue: "2.2" + tag: + imsi: "1111000000" + zip: "93165" + - performanceIndicatorSpecification: + id: "2" + name: Network Latency Indicator Specification + indicatorCategory: LatencyCategory + indicatorName: Latency + indicatorType: float + indicatorUnit: ms + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + observedValue: "3.25" + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + tag: + country: Belgium + region: North + '@baseType': PerformanceMeasurement + '@schemaLocation': https://github.com/repo/PerformanceMeasurementAtomic.schema.json + '@type': PerformanceMeasurementAtomic + - id: "3" + href: https://host:port/tmf-api/performanceManagement/v5/performanceMeasurement/3 + description: The third group performance measurement in the database + measurementCollectionJob: + id: "4000" + href: https://host:port/tmf-api/performanceManagement/v5/measurementCollectionJob/4000 + name: Measurement Collection Job from system A + '@baseType': MeasurementCollectionJobRef + '@schemaLocation': https://myschemas/MeasurementCollectionJob.schema.json + '@type': MeasurementCollectionJobRef + '@referredType': MeasurementCollectionJob + performanceIndicatorGroupValue: + - performanceIndicatorGroupSpecification: + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: "600" + name: My critical performance indicators + groupCategory: CPUGroup + performanceIndicatorSpecification: + - id: "5000" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + version: "1.0" + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + - id: "5001" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5001 + name: CPU speed2 + version: "1.0" + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + observedGroupValue: + - performanceIndicatorValue: + - performanceIndicatorSpecification: + id: "5000" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecificationRef.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + observedValue: "2.1" + tag: + imsi: "1111000000" + zip: "93165" + - performanceIndicatorSpecification: + id: "5001" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5001 + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecificationRef.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + observedValue: "2.2" + tag: + imsi: "1112000000" + zip: "93165" + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + '@baseType': PerformanceMeasurement + '@schemaLocation': https://github.com/repo/PerformanceMeasurementGroup.schema.json + '@type': PerformanceMeasurementGroup + PerformanceMeasurementRetrieve_response: + description: Here's an example of a request for retrieving a specific Simple + PerformanceMeasurement. + value: + id: "1" + href: https://host:port/tmf-api/performanceManagement/v5/performanceMeasurement/1 + description: The first performance measurement in the database + measurementCollectionJob: + id: "4000" + href: https://host:port/tmf-api/performanceManagement/v5/measurementCollectionJob/4000 + name: Measurement Collection Job from system A + '@baseType': MeasurementCollectionJobRef + '@schemaLocation': https://myschemas/MeasurementCollectionJob.schema.json + '@type': MeasurementCollectionJobRef + '@referredType': MeasurementCollectionJob + performanceIndicatorValue: + - performanceIndicatorSpecification: + id: "1" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/1 + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + observedValue: "2.1" + tag: + imsi: "1111000000" + zip: "93165" + - performanceIndicatorSpecification: + id: "2" + name: CPU Speed Indicator Specification + indicatorCategory: SPEEDCategory + indicatorName: CPU Speed + indicatorType: float + indicatorUnit: GHz + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + observedValue: "3.25" + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + tag: + country: Belgium + region: North + '@baseType': PerformanceMeasurement + '@schemaLocation': https://github.com/repo/PerformanceMeasurementAtomic.schema.json + '@type': PerformanceMeasurementAtomic + PerformanceMeasurementGroupRetrieve_response: + description: Here's an example of a request for retrieving a Group PerformanceMeasurement. + value: + id: "1" + href: https://host:port/tmf-api/performanceManagement/v5/performanceMeasurement/1 + description: The first performance measurement in the database + measurementCollectionJob: + id: "4000" + href: https://host:port/tmf-api/performanceManagement/v5/measurementCollectionJob/4000 + name: Measurement Collection Job from system A + '@baseType': MeasurementCollectionJobRef + '@schemaLocation': https://myschemas/MeasurementCollectionJob.schema.json + '@type': MeasurementCollectionJobRef + '@referredType': MeasurementCollectionJob + performanceIndicatorGroupValue: + - performanceIndicatorGroupSpecification: + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: "600" + name: My critical performance indicators + groupCategory: CPUGroup + performanceIndicatorSpecification: + - id: "5000" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + version: "1.0" + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + - id: "5001" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5001 + name: CPU speed2 + version: "1.0" + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + observedGroupValue: + - performanceIndicatorValue: + - performanceIndicatorSpecification: + id: "5000" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecificationRef.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + observedValue: "2.1" + tag: + imsi: "1111000000" + zip: "93165" + - performanceIndicatorSpecification: + id: "5001" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5001 + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecificationRef.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + observedValue: "2.2" + tag: + imsi: "1112000000" + zip: "93165" + - performanceIndicatorGroupSpecification: + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/601 + id: "601" + name: My critical performance indicators extension + groupCategory: CPUGroup2 + performanceIndicatorSpecification: + - id: "5003" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5003 + name: CPU speed3 + version: "1.0" + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + - id: "5004" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5004 + name: CPU speed4 + version: "1.0" + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + observedGroupValue: + - performanceIndicatorValue: + - performanceIndicatorSpecification: + id: "5003" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5003 + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecificationRef.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + observedValue: "2.3" + tag: + imsi: "1113000000" + zip: "93165" + - performanceIndicatorSpecification: + id: "5004" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5004 + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecificationRef.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + observedValue: "2.4" + tag: + imsi: "1114000000" + zip: "93165" + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + tag: + country: Belgium + region: North + '@baseType': PerformanceMeasurement + '@schemaLocation': https://github.com/repo/PerformanceMeasurementGroup.schema.json + '@type': PerformanceMeasurementGroup + DataAccessEndpointList_response: + description: Here's an example of a request for retrieving multiple DataAccessEndpoint's. + value: + - id: 123-xxx + href: https://host:port/tmf-api/performanceManagement/v5/dataAccessEndpoint/123-xxx + apiType: REST + category: topic + description: Measurement collection job 123-xxx subscriber topic + endOperatingDate: 2022-05-13T10:13:42.971Z + name: 123-xxx subscriber topic + resourceVersion: "1.0" + startOperatingDate: 2022-05-13T10:13:42.971Z + uri: https://pubsub.googleapis.com/v1/ + uriQueryFilter: + mappings: + - filterTemplate: + name: myRangeFilterSearch0 + '@type': DataFilterTemplateRange + criteria: + lowerBound: + boundValue: -10 + isInclusive: true + upperBound: + boundValue: -10 + isInclusive: true + stringArray: + value: + - field01 + - field02 + - field03 + - filterTemplate: + name: myRegExSampleSearch0 + '@type': DataFilterTemplateRegex + criteria: dallas|houston|venise|paris|new-york + stringArray: + value: + - field11 + - field12 + - field13 + - filterTemplate: + name: myBooleanFilterSearch0 + criteria: true + '@type': DataFilterTemplateBoolean + stringArray: + value: + - field1 + - field2 + - field3 + '@type': DataFilterMap + value: myLogicalResourceValue + administrativeState: locked + note: + - id: afa9-3d90aaa8da0f + author: Mr. Franklin + date: 2022-13-05T08:00:00Z + text: "For further details on how to create a subscription to this topic,\ + \ visit https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.subscriptions/create" + '@baseType': Note + '@schemaLocation': https://myschemas.com/Note.schema.json + '@type': Note + operationalState: enable + resourceCharacteristic: + - id: "2100" + name: myCharName + valueType: string + characteristicRelationship: + - id: "21" + href: https://host:port/tmf-api/performanceManagement/v5/characteristicRelationship/21 + relationshipType: string + '@baseType': CharacteristicRelationship + '@schemaLocation': https://myschemas.com/CharacteristicRelationship.schema.json + '@type': CharacteristicRelationship + value: myCharValue + '@baseType': Characteristic + '@schemaLocation': https://myschemas.com/StringCharacteristic.schema.json + '@type': StringCharacteristic + resourceSpecification: + id: "1" + href: https://host:port/tmf-api/performanceManagement/v5/ResourceSpecification/1 + name: mySpecName + version: "1.0" + '@baseType': ResourceSpecification + '@schemaLocation': https://mySchemas.com/ResourceSpecification.schema.json + '@type': ResourceSpecification + '@referredType': ResourceSpecification + resourceStatus: standby + usageState: idle + '@baseType': DataAccessEndpoint + '@schemaLocation': https://myschemas.com/dataAccessEndpoint + '@type': DataAccessEndpoint + - id: 123-xx0 + href: https://host:port/tmf-api/performanceManagement/v5/dataAccessEndpoint/123-xx0 + apiType: REST + category: topic + description: Measurement collection job 123-xx0 subscriber topic + endOperatingDate: 2022-05-13T10:13:42.971Z + name: 123-xx0 subscriber topic + resourceVersion: "1.0" + startOperatingDate: 2022-05-13T10:13:42.971Z + uri: https://pubsub.googleapis.com/v1/ + uriQueryFilter: + mappings: + - filterTemplate: + name: myRangeFilterSearch0 + '@type': DataFilterTemplateRange + criteria: + lowerBound: + boundValue: -10 + isInclusive: true + upperBound: + boundValue: -10 + isInclusive: true + stringArray: + value: + - field01 + - field02 + - field03 + - filterTemplate: + name: myRegExSampleSearch0 + '@type': DataFilterTemplateRegex + criteria: dallas|houston|venise|paris|new-york + stringArray: + value: + - field11 + - field12 + - field13 + - filterTemplate: + name: myBooleanFilterSearch0 + criteria: true + '@type': DataFilterTemplateBoolean + stringArray: + value: + - field1 + - field2 + - field3 + '@type': DataFilterMap + value: myLogicalResourceValue + administrativeState: locked + note: + - id: afa9-3d90aaa8da0f + author: Mr. Franklin + date: 2022-13-05T08:00:00Z + text: "For further details on how to create a subscription to this topic,\ + \ visit https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.subscriptions/create" + '@baseType': Note + '@schemaLocation': https://myschemas.com/Note.schema.json + '@type': Note + operationalState: enable + resourceCharacteristic: + - id: "2100" + name: myCharName + valueType: string + characteristicRelationship: + - id: "21" + href: https://host:port/tmf-api/performanceManagement/v5/characteristicRelationship/21 + relationshipType: string + '@baseType': CharacteristicRelationship + '@schemaLocation': https://myschemas.com/CharacteristicRelationship.schema.json + '@type': CharacteristicRelationship + value: myCharValue + '@baseType': Characteristic + '@schemaLocation': https://myschemas.com/StringCharacteristic.schema.json + '@type': StringCharacteristic + resourceSpecification: + id: "1" + href: https://host:port/tmf-api/performanceManagement/v5/ResourceSpecification/1 + name: mySpecName + version: "1.0" + '@baseType': ResourceSpecification + '@schemaLocation': https://mySchemas.com/ResourceSpecification.schema.json + '@type': ResourceSpecification + '@referredType': ResourceSpecification + resourceStatus: standby + usageState: idle + '@baseType': DataAccessEndpoint + '@schemaLocation': https://myschemas.com/dataAccessEndpoint + '@type': DataAccessEndpoint + DataAccessEndpointRetrieve_response: + description: Here's an example of a request for retrieving a specific DataAccessEndpoint. + value: + id: 123-xxx + href: https://host:port/tmf-api/performanceManagement/v5/dataAccessEndpoint/123-xxx + apiType: REST + category: topic + description: Measurement collection job 123-xxx subscriber topic + endOperatingDate: 2022-05-13T10:13:42.971Z + name: 123-xxx subscriber topic + resourceVersion: "1.0" + startOperatingDate: 2022-05-13T10:13:42.971Z + uri: https://pubsub.googleapis.com/v1/ + uriQueryFilter: + mappings: + - filterTemplate: + name: myRangeFilterSearch0 + '@type': DataFilterTemplateRange + criteria: + lowerBound: + boundValue: -10 + isInclusive: true + upperBound: + boundValue: -10 + isInclusive: true + stringArray: + value: + - field01 + - field02 + - field03 + - filterTemplate: + name: myRegExSampleSearch0 + '@type': DataFilterTemplateRegex + criteria: dallas|houston|venise|paris|new-york + stringArray: + value: + - field11 + - field12 + - field13 + - filterTemplate: + name: myBooleanFilterSearch0 + criteria: true + '@type': DataFilterTemplateBoolean + stringArray: + value: + - field1 + - field2 + - field3 + '@type': DataFilterAttributeStringArray + '@type': DataFilterMap + value: myLogicalResourceValue + administrativeState: locked + note: + - id: afa9-3d90aaa8da0f + author: Mr. Franklin + date: 2022-13-05T08:00:00Z + text: "For further details on how to create a subscription to this topic,\ + \ visit https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.subscriptions/create" + '@baseType': Note + '@schemaLocation': https://myschemas.com/Note.schema.json + '@type': Note + operationalState: enable + resourceCharacteristic: + - id: "2100" + name: myCharName + valueType: string + characteristicRelationship: + - id: "21" + href: https://host:port/tmf-api/performanceManagement/v5/characteristicRelationship/21 + relationshipType: string + '@baseType': CharacteristicRelationship + '@schemaLocation': https://myschemas.com/CharacteristicRelationship.schema.json + '@type': CharacteristicRelationship + value: myCharValue + '@baseType': Characteristic + '@schemaLocation': https://myschemas.com/StringCharacteristic.schema.json + '@type': StringCharacteristic + resourceSpecification: + id: "1" + href: https://host:port/tmf-api/performanceManagement/v5/ResourceSpecification/1 + name: mySpecName + version: "1.0" + '@baseType': ResourceSpecification + '@schemaLocation': https://mySchemas.com/ResourceSpecification.schema.json + '@type': ResourceSpecification + '@referredType': ResourceSpecification + resourceStatus: standby + usageState: idle + '@baseType': DataAccessEndpoint + '@schemaLocation': https://myschemas.com/dataAccessEndpoint + '@type': DataAccessEndpoint + MeasurementCollectionJobCreate_request: + description: POST MeasurementCollectionJob Request Example + value: + consumingApplicationId: "4000" + creationTime: 2020-06-23T14:12:01.078Z + jobId: "400" + jobPriority: 3 + lastModifiedTime: 2020-06-23T14:12:01.079Z + outputFormat: string + producingApplicationId: NT_101 + adminState: locked + executionState: acknowledged + fileTransferData: + - fileFormat: csv + fileLocation: https://host:port/tmf-api/performanceManagement/v5/FileTransferData + transportProtocol: ftp + compressionType: + compressionEnumType: no_compression + packingType: + packingEnumType: NO_PACKING + retentionPeriod: + amount: 1 + units: month + '@baseType': RetentionPeriod + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/RetentionPeriod + '@type': RetentionPeriod + '@baseType': FileTransferData + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': FileTransferData + granularity: g_1mn + performanceIndicatorGroupSpecification: + - href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorGroupSpecification/600 + id: "600" + name: My critical performance indicators + groupCategory: CPUGroup + performanceIndicatorSpecification: + - id: "5000" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + '@type': PerformanceIndicatorSpecificationRef + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + performanceIndicatorSpecification: + - id: "101" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/101 + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + performanceIndicatorSpecRelationship: + - id: "321" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecRelationship/321 + relationshipType: reliesOn + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecRelationship.schema.json + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: "1" + recurringFrequency: weekly + scheduleDefinitionEndTime: 2020-06-23T14:12:01.080Z + scheduleDefinitionHourRange: "2" + scheduleDefinitionStartTime: 2020-06-23T14:12:01.080Z + WeeklyScheduledDefinition: + - dates: 2020-06-23T14:12:01.080Z + '@baseType': WeeklyScheduledDefinition + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/WeeklyScheduledDefinition.schema.json + '@type': WeeklyScheduledDefinition + '@baseType': ScheduleDefinition + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/ScheduleDefinition.schema.json + '@type': ScheduleDefinition + trackingRecord: + - id: TR_101 + href: https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + description: NT_101 tracking + systemId: NT_101 + time: 2020-06-23T17:55:51.671Z + user: NP1 + '@baseType': TrackingRecord + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': TrackingRecord + '@baseType': MeasurementCollectionJob + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': MeasurementCollectionJob + MeasurementCollectionJobCreate_response: + description: POST MeasurementCollectionJob Response Example. + value: + id: "4000" + href: https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4000 + consumingApplicationId: "4000" + creationTime: 2020-06-23T14:12:01.078Z + jobId: "400" + jobPriority: 3 + jobOnDemand: false + lastModifiedTime: 2020-06-23T14:12:01.079Z + outputFormat: string + producingApplicationId: NT_101 + adminState: locked + executionState: acknowledged + fileTransferData: + - fileFormat: csv + fileLocation: https://host:port/tmf-api/performanceManagement/v5/FileTransferData + transportProtocol: ftp + compressionType: + compressionEnumType: no_compression + packingType: + packingEnumType: NO_PACKING + retentionPeriod: + amount: 1 + units: month + '@baseType': RetentionPeriod + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/RetentionPeriod + '@type': RetentionPeriod + '@baseType': FileTransferData + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': FileTransferData + granularity: g_1mn + performanceIndicatorGroupSpecification: + - href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: "600" + name: My critical performance indicators + groupCategory: CPUGroup + performanceIndicatorSpecification: + - id: "5000" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + '@type': PerformanceIndicatorSpecificationRef + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + performanceIndicatorSpecification: + - id: "101" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/101 + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + performanceIndicatorSpecRelationship: + - id: "321" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecRelationship/321 + relationshipType: reliesOn + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecRelationship.schema.json + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: "1" + recurringFrequency: weekly + scheduleDefinitionEndTime: 2020-06-23T14:12:01.080Z + scheduleDefinitionHourRange: "2" + scheduleDefinitionStartTime: 2020-06-23T14:12:01.080Z + WeeklyScheduledDefinition: + - dates: 2020-06-23T14:12:01.080Z + '@baseType': WeeklyScheduledDefinition + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/WeeklyScheduledDefinition.schema.json + '@type': WeeklyScheduledDefinition + '@baseType': ScheduleDefinition + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/ScheduleDefinition.schema.json + '@type': ScheduleDefinition + trackingRecord: + - id: TR_101 + href: https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + description: NT_101 tracking + systemId: NT_101 + time: 2020-06-23T17:55:51.671Z + user: NP1 + '@baseType': TrackingRecord + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': TrackingRecord + '@baseType': MeasurementCollectionJob + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': MeasurementCollectionJob + PerformanceIndicatorGroupSpecification_create_example__request: + description: POST PerformanceIndicatorGroupSpecification Request Example + value: + name: MyPerformanceIndicatorGroupSpecification + groupCategory: CPUGroup + performanceIndicatorSpecification: + - id: "5000" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + indicatorCategory: CPU + indicatorType: float + collectionType: cumulative + indicatorUnit: GHz + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: "5001" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5001 + name: Peak CPU speed + indicatorCategory: CPU + indicatorType: float + collectionType: cumulative + indicatorUnit: GHz + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: "5002" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5002 + name: Min CPU Speed + indicatorCategory: CPU + indicatorType: float + collectionType: cumulative + indicatorUnit: GHz + version: "1.0" + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': https://myschemas/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + PerformanceIndicatorGroupSpecification_create_example__response: + description: Response for creating a new PerformanceIndicatorGroupSpecification. + value: + id: "100" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorGroupSpecification/100 + name: MyPerformanceIndicatorGroupSpecification + groupCategory: CPUGroup + performanceIndicatorSpecification: + - id: "5000" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + indicatorCategory: CPU + indicatorType: float + collectionType: cumulative + indicatorUnit: GHz + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: "5001" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5001 + name: Peak CPU speed + indicatorCategory: CPU + indicatorType: float + collectionType: cumulative + indicatorUnit: GHz + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': https://myschemas/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + PerformanceIndicatorSpecification_create_example__request: + description: POST PerformanceIndicatorSpecification Request Example + value: + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + performanceIndicatorSpecRelationship: + - perfSpec: + href: https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/300 + relationshipType: aggregation + role: member + validFor: + endDateTime: 2025-04-12T23:20:50.52Z + startDateTime: 2022-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': https://myschemas.com/PerformanceIndicatorSpecRelationship.schema.json + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: 2022-04-12T23:20:50.52Z + startDateTime: 2022-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://myschemas.com/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + PerformanceIndicatorSpecification_create_example__response: + description: Response for creating a new PerformanceIndicatorSpecification. + value: + id: "200" + href: https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/200 + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + performanceIndicatorSpecRelationship: + - perfSpec: + href: https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/300 + relationshipType: aggregation + role: member + validFor: + endDateTime: 2025-04-12T23:20:50.52Z + startDateTime: 2022-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': https://myschemas.com/PerformanceIndicatorSpecRelationship.schema.json + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: 2022-04-12T23:20:50.52Z + startDateTime: 2022-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://myschemas.com/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + updateMeasurementCollectionJob_using_json_request: + description: PATCH(json) MeasurementCollectionJob Request Example + value: + reportingPeriod: r_1mn + dataAccessEndpoint: + - id: 123-xxx + href: https://host:port/tmf-api/performanceManagement/v5/dataAccessEndpoint/123-xxx + apiType: REST + category: topic + description: Measurement collection job 123-xxx subscriber topic + endOperatingDate: 2022-05-13T10:13:42.971Z + name: 123-xxx subscriber topic + resourceVersion: "1.0" + startOperatingDate: 2022-05-13T10:13:42.971Z + uri: https://pubsub.googleapis.com/v1/ + value: myLogicalResourceValueIp + '@type': DataAccessEndpoint + '@type': MeasurementCollectionJob + updateMeasurementCollectionJob_using_json_response: + description: a complete MeasurementCollectionJob representation after PATCH(json) + processing. + value: + id: "4001" + href: https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4001 + creationTime: 2022-05-13T10:13:42.971Z + jobId: "402" + jobPriority: 4 + jobOnDemand: false + lastModifiedTime: 2022-05-13T10:13:42.971Z + producingApplicationId: NT_101 + consumingApplicationId: "4000" + outputFormat: string + adminState: locked + dataAccessEndpoint: + - id: 123-xxx + href: https://host:port/tmf-api/performanceManagement/v5/dataAccessEndpoint/123-xxx + apiType: REST + category: topic + description: Measurement collection job 123-xxx subscriber topic + endOperatingDate: 2022-05-13T10:13:42.971Z + name: 123-xxx subscriber topic + resourceVersion: "1.0" + startOperatingDate: 2022-05-13T10:13:42.971Z + uri: https://pubsub.googleapis.com/v1/ + value: myLogicalResourceValueIp + '@type': DataAccessEndpoint + executionState: acknowledged + performanceIndicatorSpecification: + - id: "201" + href: https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/201 + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + validFor: + endDateTime: 2022-04-12T23:20:50.52Z + startDateTime: 2022-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://myschemas.com/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: "1" + recurringFrequency: weekly + scheduleDefinitionEndTime: 2022-05-13T10:13:42.971Z + scheduleDefinitionHourRange: "08:00-12:00,16:00-19:00" + scheduleDefinitionStartTime: 2022-05-13T10:13:42.971Z + weeklyScheduledDefinition: + - dates: 2022-05-13T10:13:42.971Z + '@baseType': DayOfWeekRecurrence + '@schemaLocation': https://myschemas.com/DayOfWeekRecurrence.schema.json + '@type': DayOfWeekRecurrence + '@baseType': ScheduleDefinition + '@schemaLocation': https://myschemas.com/ScheduleDefinition.schema.json + '@type': ScheduleDefinition + jobCollectionFilter: + '@type': DataFilterMap + mappings: + - filterTemplate: + name: myRangeFilterCollect0 + '@type': DataFilterTemplateRange + criteria: + lowerBound: + boundValue: -10 + isInclusive: true + upperBound: + boundValue: -10 + isInclusive: true + stringArray: + value: + - field01 + - field02 + - field03 + - filterTemplate: + name: myRegExSampleCollect0 + '@type': DataFilterTemplateRegex + criteria: dallas|houston|venise|paris|new-york + stringArray: + value: + - field11 + - field12 + - field13 + - filterTemplate: + name: myBooleanFilterCollect0 + criteria: true + '@type': DataFilterTemplateBoolean + stringArray: + value: + - field1 + - field2 + - field3 + searchTaskFilter: + '@type': DataFilterMap + mappings: + - filterTemplate: + name: myRangeFilterSearch0 + '@type': DataFilterTemplateRange + criteria: + lowerBound: + boundValue: -10 + isInclusive: true + upperBound: + boundValue: -10 + isInclusive: true + stringArray: + value: + - field01 + - field02 + - field03 + - filterTemplate: + name: myRegExSampleSearch0 + '@type': DataFilterTemplateRegex + criteria: dallas|houston|venise|paris|new-york + stringArray: + value: + - field11 + - field12 + - field13 + - filterTemplate: + name: myBooleanFilterSearch0 + criteria: true + '@type': DataFilterTemplateBoolean + stringArray: + value: + - field1 + - field2 + - field3 + '@baseType': MeasurementCollectionJob + '@schemaLocation': https://myschemas.com/MeasurementCollectionJob.schema.json + '@type': MeasurementCollectionJob + updateMeasurementCollectionJob_using_json-patch_json_request: + description: PATCH With query parameters(json-patch+json) MeasurementCollectionJob + Request Example + value: + - op: replace + path: /reportingPeriod + value: r_1mn + - op: replace + path: /scheduleDefinition/0/recurringFrequency + value: weekly + updateMeasurementCollectionJob_using_json-patch_json_response: + description: a complete MeasurementCollectionJob representation after PATCH + With query parameters(json-patch+json) processing. + value: + id: "4001" + href: https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4001 + lastModifiedTime: 2022-05-13T10:13:42.971Z + adminState: locked + dataAccessEndpoint: + - id: 123-xxx + href: https://host:port/tmf-api/performanceManagement/v5/dataAccessEndpoint/123-xxx + apiType: REST + category: topic + description: Measurement collection job 123-xxx subscriber topic + endOperatingDate: 2022-05-13T10:13:42.971Z + name: 123-xxx subscriber topic + resourceVersion: "1.0" + startOperatingDate: 2022-05-13T10:13:42.971Z + uri: https://pubsub.googleapis.com/v1/ + value: myLogicalResourceValueIp + '@type': DataAccessEndpoint + executionState: acknowledged + reportingPeriod: r_1mn + scheduleDefinition: + - id: "1" + recurringFrequency: weekly + scheduleDefinitionEndTime: 2022-05-13T10:13:42.971Z + scheduleDefinitionHourRange: "08:00-12:00,16:00-19:00" + scheduleDefinitionStartTime: 2022-05-13T10:13:42.971Z + weeklyScheduledDefinition: + - dates: 2022-05-13T10:13:42.971Z + '@baseType': DayOfWeekRecurrence + '@schemaLocation': https://myschemas.com/DayOfWeekRecurrence.schema.json + '@type': DayOfWeekRecurrence + '@baseType': ScheduleDefinition + '@schemaLocation': https://myschemas.com/ScheduleDefinition.schema.json + '@type': ScheduleDefinition + '@type': MeasurementCollectionJob + updateMeasurementCollectionJob_using_json-patch-query_json_request: + description: PATCH(json-patch-query+json) MeasurementCollectionJob Request Example + value: + - op: replace + path: "scheduleDefinition[?(@.id='1')].recurringFrequency=weekly" + value: daily + updateMeasurementCollectionJob_using_json-patch-query_json_response: + description: a complete MeasurementCollectionJob representation after PATCH + (json-patch-query+json) processing. + value: + id: "4001" + href: https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4001 + creationTime: 2022-05-13T10:13:42.971Z + jobId: "402" + jobPriority: 4 + jobOnDemand: false + lastModifiedTime: 2022-05-13T10:13:42.971Z + producingApplicationId: NT_101 + consumingApplicationId: "4000" + outputFormat: string + adminState: locked + dataAccessEndpoint: + - id: 123-xxx + href: https://host:port/tmf-api/performanceManagement/v5/dataAccessEndpoint/123-xxx + apiType: REST + category: topic + description: Measurement collection job 123-xxx subscriber topic + endOperatingDate: 2022-05-13T10:13:42.971Z + name: 123-xxx subscriber topic + resourceVersion: "1.0" + startOperatingDate: 2022-05-13T10:13:42.971Z + uri: https://pubsub.googleapis.com/v1/ + value: myLogicalResourceValueIp + '@type': DataAccessEndpoint + executionState: acknowledged + performanceIndicatorSpecification: + - id: "201" + href: https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/201 + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + validFor: + endDateTime: 2022-04-12T23:20:50.52Z + startDateTime: 2022-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://myschemas.com/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: "1" + recurringFrequency: weekly + scheduleDefinitionEndTime: 2022-05-13T10:13:42.971Z + scheduleDefinitionHourRange: "08:00-12:00,16:00-19:00" + scheduleDefinitionStartTime: 2022-05-13T10:13:42.971Z + weeklyScheduledDefinition: + - dates: 2022-05-13T10:13:42.971Z + '@baseType': DayOfWeekRecurrence + '@schemaLocation': https://myschemas.com/DayOfWeekRecurrence.schema.json + '@type': DayOfWeekRecurrence + '@baseType': ScheduleDefinition + '@schemaLocation': https://myschemas.com/ScheduleDefinition.schema.json + '@type': ScheduleDefinition + jobCollectionFilter: + '@type': DataFilterMap + mappings: + - filterTemplate: + name: myRangeFilterCollect0 + '@type': DataFilterTemplateRange + criteria: + lowerBound: + boundValue: -10 + isInclusive: true + upperBound: + boundValue: -10 + isInclusive: true + stringArray: + value: + - field01 + - field02 + - field03 + - filterTemplate: + name: myRegExSampleCollect0 + '@type': DataFilterTemplateRegex + criteria: dallas|houston|venise|paris|new-york + stringArray: + value: + - field11 + - field12 + - field13 + - filterTemplate: + name: myBooleanFilterCollect0 + criteria: true + '@type': DataFilterTemplateBoolean + stringArray: + value: + - field1 + - field2 + - field3 + searchTaskFilter: + '@type': DataFilterMap + mappings: + - filterTemplate: + name: myRangeFilterSearch0 + '@type': DataFilterTemplateRange + criteria: + lowerBound: + boundValue: -10 + isInclusive: true + upperBound: + boundValue: -10 + isInclusive: true + stringArray: + value: + - field01 + - field02 + - field03 + - filterTemplate: + name: myRegExSampleSearch0 + '@type': DataFilterTemplateRegex + criteria: dallas|houston|venise|paris|new-york + stringArray: + value: + - field11 + - field12 + - field13 + - filterTemplate: + name: myBooleanFilterSearch0 + criteria: true + '@type': DataFilterTemplateBoolean + stringArray: + value: + - field1 + - field2 + - field3 + '@baseType': MeasurementCollectionJob + '@schemaLocation': https://myschemas.com/MeasurementCollectionJob.schema.json + '@type': MeasurementCollectionJob + updateMeasurementCollectionJob_using_merge-patch_json_request: + description: PATCH(merge-patch+json) MeasurementCollectionJob Request Example + value: + reportingPeriod: r_1mn + dataAccessEndpoint: + - id: 123-xxx + href: https://host:port/tmf-api/performanceManagement/v5/dataAccessEndpoint/123-xxx + apiType: REST + category: topic + description: Measurement collection job 123-xxx subscriber topic + endOperatingDate: 2022-05-13T10:13:42.971Z + name: 123-xxx subscriber topic + resourceVersion: "1.0" + startOperatingDate: 2022-05-13T10:13:42.971Z + uri: https://pubsub.googleapis.com/v1/ + value: myLogicalResourceValueIp + '@type': DataAccessEndpoint + '@type': MeasurementCollectionJob + updateMeasurementCollectionJob_using_merge-patch_json_response: + description: a complete MeasurementCollectionJob representation after PATCH + (merge-patch+json) processing. + value: + id: "4001" + href: https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4001 + creationTime: 2022-05-13T10:13:42.971Z + jobId: "402" + jobPriority: 4 + jobOnDemand: false + lastModifiedTime: 2022-05-13T10:13:42.971Z + producingApplicationId: NT_101 + consumingApplicationId: "4000" + outputFormat: string + adminState: locked + dataAccessEndpoint: + - id: 123-xxx + href: https://host:port/tmf-api/performanceManagement/v5/dataAccessEndpoint/123-xxx + apiType: REST + category: topic + description: Measurement collection job 123-xxx subscriber topic + endOperatingDate: 2022-05-13T10:13:42.971Z + name: 123-xxx subscriber topic + resourceVersion: "1.0" + startOperatingDate: 2022-05-13T10:13:42.971Z + uri: https://pubsub.googleapis.com/v1/ + value: myLogicalResourceValueIp + '@type': DataAccessEndpoint + executionState: acknowledged + performanceIndicatorSpecification: + - id: "201" + href: https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/201 + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + validFor: + endDateTime: 2022-04-12T23:20:50.52Z + startDateTime: 2022-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://myschemas.com/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: "1" + recurringFrequency: weekly + scheduleDefinitionEndTime: 2022-05-13T10:13:42.971Z + scheduleDefinitionHourRange: "08:00-12:00,16:00-19:00" + scheduleDefinitionStartTime: 2022-05-13T10:13:42.971Z + weeklyScheduledDefinition: + - dates: 2022-05-13T10:13:42.971Z + '@baseType': DayOfWeekRecurrence + '@schemaLocation': https://myschemas.com/DayOfWeekRecurrence.schema.json + '@type': DayOfWeekRecurrence + '@baseType': ScheduleDefinition + '@schemaLocation': https://myschemas.com/ScheduleDefinition.schema.json + '@type': ScheduleDefinition + jobCollectionFilter: + '@type': DataFilterMap + mappings: + - filterTemplate: + name: myRangeFilterCollect0 + '@type': DataFilterTemplateRange + criteria: + lowerBound: + boundValue: -10 + isInclusive: true + upperBound: + boundValue: -10 + isInclusive: true + stringArray: + value: + - field01 + - field02 + - field03 + - filterTemplate: + name: myRegExSampleCollect0 + '@type': DataFilterTemplateRegex + criteria: dallas|houston|venise|paris|new-york + stringArray: + value: + - field11 + - field12 + - field13 + - filterTemplate: + name: myBooleanFilterCollect0 + criteria: true + '@type': DataFilterTemplateBoolean + stringArray: + value: + - field1 + - field2 + - field3 + searchTaskFilter: + '@type': DataFilterMap + mappings: + - filterTemplate: + name: myRangeFilterSearch0 + '@type': DataFilterTemplateRange + criteria: + lowerBound: + boundValue: -10 + isInclusive: true + upperBound: + boundValue: -10 + isInclusive: true + stringArray: + value: + - field01 + - field02 + - field03 + - filterTemplate: + name: myRegExSampleSearch0 + '@type': DataFilterTemplateRegex + criteria: dallas|houston|venise|paris|new-york + stringArray: + value: + - field11 + - field12 + - field13 + - filterTemplate: + name: myBooleanFilterSearch0 + criteria: true + '@type': DataFilterTemplateBoolean + stringArray: + value: + - field1 + - field2 + - field3 + '@baseType': MeasurementCollectionJob + '@schemaLocation': https://myschemas.com/MeasurementCollectionJob.schema.json + '@type': MeasurementCollectionJob + updatePerformanceIndicatorGroupSpecification_using_json_request: + description: PATCH(json) PerformanceIndicatorGroupSpecification Request Example + value: + groupCategory: MyGroupCategory + performanceIndicatorSpecification: + - id: "4000" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4000 + name: Gateway Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: "1.0" + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: "4001" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4001 + name: Router Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: "1.0" + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: "4003" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4003 + name: RAN Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: "1.0" + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + '@type': PerformanceIndicatorGroupSpecification + updatePerformanceIndicatorGroupSpecification_using_json_response: + description: a complete PerformanceIndicatorGroupSpecification representation + after PATCH(json) processing. + value: + id: "100" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorGroupSpecification/100 + name: MyPerformanceIndicatorGroupSpecification + groupCategory: MyGroupCategory + performanceIndicatorSpecification: + - id: "4000" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4000 + name: Gateway Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: "1.0" + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: "4001" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4001 + name: Router Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: "1.0" + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: "4003" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4003 + name: RAN Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: "1.0" + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': https://myschemas/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + updatePerformanceIndicatorGroupSpecification_using_json-patch_json_request: + description: PATCH With query parameters(json-patch+json) PerformanceIndicatorGroupSpecification + Request Example + value: + - op: replace + path: /name + value: MyPerformanceIndicatorGroupSpecification + - op: replace + path: /performanceIndicatorSpecification/0/indicatorCategory + value: Latency + - op: replace + path: /performanceIndicatorSpecification/2/collectionType + value: cumulative + updatePerformanceIndicatorGroupSpecification_using_json-patch_json_response: + description: a complete PerformanceIndicatorGroupSpecification representation + after PATCH With query parameters(json-patch+json) processing. + value: + id: "100" + name: MyPerformanceIndicatorGroupSpecification + groupCategory: MyGroupCategory + performanceIndicatorSpecification: + - id: "4000" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4000 + name: Gateway Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: "1.0" + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: "4001" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4001 + name: Router Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: "1.0" + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: "4003" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4003 + name: RAN Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: "1.0" + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + '@type': PerformanceIndicatorGroupSpecification + updatePerformanceIndicatorGroupSpecification_using_json-patch-query_json_request: + description: PATCH(json-patch-query+json) PerformanceIndicatorGroupSpecification + Request Example + value: + - op: replace + path: "/performanceIndicatorSpecification[0]?indicatorCategory=Latency" + value: CPU + - op: replace + path: "/performanceIndicatorSpecification[1]?indicatorCategory=Latency" + value: CPU + updatePerformanceIndicatorGroupSpecification_using_json-patch-query_json_response: + description: a complete PerformanceIndicatorGroupSpecification representation + after PATCH (json-patch-query+json) processing. + value: + id: "100" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorGroupSpecification/100 + name: MyPerformanceIndicatorGroupSpecification + groupCategory: MyGroupCategory + performanceIndicatorSpecification: + - id: "4000" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4000 + name: Gateway Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: "1.0" + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: "4001" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4001 + name: Router Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: "1.0" + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: "4003" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4003 + name: RAN Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: "1.0" + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': https://myschemas/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + updatePerformanceIndicatorGroupSpecification_using_merge-patch_json_request: + description: PATCH(merge-patch+json) PerformanceIndicatorGroupSpecification + Request Example + value: + groupCategory: MyGroupCategory + performanceIndicatorSpecification: + - id: "4000" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4000 + name: Gateway Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: "1.0" + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: "4001" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4001 + name: Router Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: "1.0" + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: "4003" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4003 + name: RAN Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: "1.0" + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + '@type': PerformanceIndicatorGroupSpecification + updatePerformanceIndicatorGroupSpecification_using_merge-patch_json_response: + description: a complete PerformanceIndicatorGroupSpecification representation + after PATCH (merge-patch+json) processing. + value: + id: "100" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorGroupSpecification/100 + name: MyPerformanceIndicatorGroupSpecification + groupCategory: MyGroupCategory + performanceIndicatorSpecification: + - id: "4000" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4000 + name: Gateway Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: "1.0" + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: "4001" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4001 + name: Router Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: "1.0" + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + - id: "4003" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/4003 + name: RAN Response Time + indicatorCategory: Latency + indicatorType: float + collectionType: cumulative + indicatorUnit: ms + version: "1.0" + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': https://myschemas/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + updatePerformanceIndicatorSpecification_using_json_request: + description: PATCH(json) PerformanceIndicatorSpecification Request Example + value: + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + validFor: + endDateTime: 2022-04-12T23:20:50.52Z + startDateTime: 2022-04-12T23:20:50.52Z + '@type': PerformanceIndicatorSpecification + updatePerformanceIndicatorSpecification_using_json_response: + description: a complete PerformanceIndicatorSpecification representation after + PATCH(json) processing. + value: + id: "200" + href: https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/200 + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + performanceIndicatorSpecRelationship: + - perfSpec: + href: https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/300 + relationshipType: aggregation + role: member + validFor: + endDateTime: 2025-04-12T23:20:50.52Z + startDateTime: 2022-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': https://myschemas.com/PerformanceIndicatorSpecRelationship.schema.json + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: 2022-04-12T23:20:50.52Z + startDateTime: 2022-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://myschemas.com/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + updatePerformanceIndicatorSpecification_using_json-patch_json_request: + description: PATCH With query parameters(json-patch+json) PerformanceIndicatorSpecification + Request Example + value: + - op: replace + path: /indicatorCategory + value: CPU + - op: replace + path: /validFor/endDateTime + value: 2022-04-12T23:20:50.52Z + updatePerformanceIndicatorSpecification_using_json-patch_json_response: + description: a complete PerformanceIndicatorSpecification representation after + PATCH With query parameters(json-patch+json) processing. + value: + id: "200" + href: https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/200 + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + collectionType: cumulative + indicatorType: float + validFor: + endDateTime: 2022-04-12T23:20:50.52Z + startDateTime: 2022-04-12T23:20:50.52Z + '@type': PerformanceIndicatorSpecification + updatePerformanceIndicatorSpecification_using_json-patch-query_json_request: + description: PATCH(json-patch-query+json) PerformanceIndicatorSpecification + Request Example + value: + - op: replace + path: /indicatorUnit?indicatorCategory=Latency + value: CPU + - op: replace + path: "/perspective/performanceIndicatorSpecRelationship[0]?relationshipType=aggregation" + value: aggregation over a collection of systems + updatePerformanceIndicatorSpecification_using_json-patch-query_json_response: + description: a complete PerformanceIndicatorSpecification representation after + PATCH (json-patch-query+json) processing. + value: + id: "200" + href: https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/200 + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + performanceIndicatorSpecRelationship: + - perfSpec: + href: https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/300 + relationshipType: aggregation + role: member + validFor: + endDateTime: 2025-04-12T23:20:50.52Z + startDateTime: 2022-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': https://myschemas.com/PerformanceIndicatorSpecRelationship.schema.json + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: 2022-04-12T23:20:50.52Z + startDateTime: 2022-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://myschemas.com/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + updatePerformanceIndicatorSpecification_using_merge-patch_json_request: + description: PATCH(merge-patch+json) PerformanceIndicatorSpecification Request + Example + value: + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + validFor: + endDateTime: 2022-04-12T23:20:50.52Z + startDateTime: 2022-04-12T23:20:50.52Z + '@type': PerformanceIndicatorSpecification + updatePerformanceIndicatorSpecification_using_merge-patch_json_response: + description: a complete PerformanceIndicatorSpecification representation after + PATCH (merge-patch+json) processing. + value: + id: "200" + href: https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/200 + derivationAlgorithm: na + derivationMethod: average + description: The average CPU speed + indicatorCategory: CPU + indicatorUnit: GHz + name: CPU Speed + perspective: aggregation over a collection of systems + collectionType: cumulative + indicatorType: float + performanceIndicatorSpecRelationship: + - perfSpec: + href: https://host:port/tmf-api/performanceManagement/v5/PerformanceIndicatorSpecification/300 + relationshipType: aggregation + role: member + validFor: + endDateTime: 2025-04-12T23:20:50.52Z + startDateTime: 2022-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': https://myschemas.com/PerformanceIndicatorSpecRelationship.schema.json + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: 2022-04-12T23:20:50.52Z + startDateTime: 2022-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://myschemas.com/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + MeasurementCollectionJobCreateEvent_request: + description: Message example for MeasurementCollectionJobCreateEvent event + value: + correlationId: 2bc480b9-2dc0 + description: MeasurementCollectionJobCreateEvent illustration + domain: Commercial + eventId: 48e1-9989-2d1fce36bceb + eventTime: 2022-08-25T12:18:24.978Z + eventType: MeasurementCollectionJobCreateEvent + priority: "5" + timeOcurred: 2022-08-25T12:18:19.818Z + title: MeasurementCollectionJobCreateEvent + event: + measurementCollectionJob: + id: "4000" + href: https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4000 + '@type': MeasurementCollectionJobRef + reportingSystem: + id: "139" + name: APP-110 + '@type': ReportingResource + '@referredType': LogicalResource + source: + id: "471" + name: APP-100 + '@type': ReportingResource + '@referredType': LogicalResource + '@baseType': Event + '@type': MeasurementCollectionJobCreateEvent + MeasurementCollectionJobExecutionStateChangeEvent_request: + description: Message example for MeasurementCollectionJobExecutionStateChangeEvent + event + value: + correlationId: e941b96a-b783 + description: MeasurementCollectionJobExecutionStateChangeEvent illustration + domain: Commercial + eventId: 40e9-a950-9da00d0b4a6e + eventTime: 2022-08-25T12:18:24.988Z + eventType: MeasurementCollectionJobExecutionStateChangeEvent + priority: "3" + timeOcurred: 2022-08-25T12:18:23.999Z + title: MeasurementCollectionJobExecutionStateChangeEvent + event: + measurementCollectionJob: + id: "4000" + href: https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4000 + consumingApplicationId: "4000" + creationTime: 2020-06-23T14:12:01.078Z + jobId: "400" + jobPriority: 3 + jobOnDemand: false + lastModifiedTime: 2020-06-23T14:12:01.079Z + outputFormat: string + producingApplicationId: NT_101 + adminState: locked + executionState: acknowledged + fileTransferData: + - fileFormat: csv + fileLocation: https://host:port/tmf-api/performanceManagement/v5/FileTransferData + transportProtocol: ftp + compressionType: + compressionEnumType: no_compression + packingType: + packingEnumType: NO_PACKING + retentionPeriod: + amount: 1 + units: month + '@baseType': RetentionPeriod + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/RetentionPeriod + '@type': RetentionPeriod + '@baseType': FileTransferData + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': FileTransferData + granularity: g_1mn + monitoredClassCriteria: + monitoredObjectClass: string + objectInstanceFilter: string + '@baseType': string + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': string + monitoredInstancesCriteria: + monitoredObjectInstances: + - string + '@baseType': string + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': string + performanceIndicatorGroupSpecification: + - href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: "600" + name: My critical performance indicators + performanceIndicatorSpecification: + - id: "5000" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + version: "1.0" + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + performanceIndicatorSpecification: + - id: "101" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/101 + derivationAlgorithm: string + derivationMethod: string + description: string + indicatorCategory: string + indicatorUnit: string + name: string + perspective: string + collectionType: cumulative + indicatorType: string + performanceIndicatorSpecRelationship: + - id: "321" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecRelationship/321 + relationshipType: reliesOn + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecRelationship.schema.json + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: "1" + recurringFrequency: weekly + scheduleDefinitionEndTime: 2020-06-23T14:12:01.080Z + scheduleDefinitionHourRange: "2" + scheduleDefinitionStartTime: 2020-06-23T14:12:01.080Z + MonthlyScheduleDayOfWeekDefinition: + recurringDaySequence: string + dayOfMonthRecurrence: + - dates: 2020-06-23T14:12:01.080Z + '@baseType': DayOfMonthRecurrence + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/DayOfMonthRecurrence.schema.json + '@type': DayOfMonthRecurrence + '@baseType': MonthlyScheduleDayOfWeekDefinition + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/MonthlyScheduleDayOfWeekDefinition.schema.json + '@type': MonthlyScheduleDayOfWeekDefinition + WeeklyScheduledDefinition: + - dates: 2020-06-23T14:12:01.080Z + '@baseType': WeeklyScheduledDefinition + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/WeeklyScheduledDefinition.schema.json + '@type': WeeklyScheduledDefinition + '@baseType': ScheduleDefinition + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/ScheduleDefinition.schema.json + '@type': ScheduleDefinition + trackingRecord: + - id: TR_101 + href: https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + description: string + systemId: NT_101 + time: 2020-06-23T17:55:51.671Z + user: NP1 + '@baseType': TrackingRecord + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': TrackingRecord + '@baseType': MeasurementCollectionJob + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': MeasurementCollectionJob + reportingSystem: + id: "139" + name: APP-110 + '@type': ReportingResource + '@referredType': LogicalResource + source: + id: "471" + name: APP-100 + '@type': ReportingResource + '@referredType': LogicalResource + '@baseType': Event + '@type': MeasurementCollectionJobExecutionStateChangeEvent + MeasurementCollectionJobDeleteEvent_request: + description: Message example for MeasurementCollectionJobDeleteEvent event + value: + correlationId: be9ea486-ec11 + description: MeasurementCollectionJobDeleteEvent illustration + domain: Commercial + eventId: 4739-824e-059be590beaf + eventTime: 2022-08-25T12:18:24.997Z + eventType: MeasurementCollectionJobDeleteEvent + priority: "5" + timeOcurred: 2022-08-25T12:18:18.505Z + title: MeasurementCollectionJobDeleteEvent + event: + measurementCollectionJob: + id: "4000" + href: https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4000 + consumingApplicationId: "4000" + creationTime: 2020-06-23T14:12:01.078Z + jobId: "400" + jobPriority: 3 + jobOnDemand: false + lastModifiedTime: 2020-06-23T14:12:01.079Z + outputFormat: string + producingApplicationId: NT_101 + adminState: locked + executionState: acknowledged + fileTransferData: + - fileFormat: csv + fileLocation: https://host:port/tmf-api/performanceManagement/v5/FileTransferData + transportProtocol: ftp + compressionType: + compressionEnumType: no_compression + packingType: + packingEnumType: NO_PACKING + retentionPeriod: + amount: 1 + units: month + '@baseType': RetentionPeriod + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/RetentionPeriod + '@type': RetentionPeriod + '@baseType': FileTransferData + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': FileTransferData + granularity: g_1mn + monitoredClassCriteria: + monitoredObjectClass: string + objectInstanceFilter: string + '@baseType': string + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': string + monitoredInstancesCriteria: + monitoredObjectInstances: + - string + '@baseType': string + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': string + performanceIndicatorGroupSpecification: + - href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: "600" + name: My critical performance indicators + performanceIndicatorSpecification: + - id: "5000" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + version: "1.0" + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + performanceIndicatorSpecification: + - id: "101" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/101 + derivationAlgorithm: string + derivationMethod: string + description: string + indicatorCategory: string + indicatorUnit: string + name: string + perspective: string + collectionType: cumulative + indicatorType: string + performanceIndicatorSpecRelationship: + - id: "321" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecRelationship/321 + relationshipType: reliesOn + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecRelationship.schema.json + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: "1" + recurringFrequency: weekly + scheduleDefinitionEndTime: 2020-06-23T14:12:01.080Z + scheduleDefinitionHourRange: "2" + scheduleDefinitionStartTime: 2020-06-23T14:12:01.080Z + MonthlyScheduleDayOfWeekDefinition: + recurringDaySequence: string + dayOfMonthRecurrence: + - dates: 2020-06-23T14:12:01.080Z + '@baseType': DayOfMonthRecurrence + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/DayOfMonthRecurrence.schema.json + '@type': DayOfMonthRecurrence + '@baseType': MonthlyScheduleDayOfWeekDefinition + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/MonthlyScheduleDayOfWeekDefinition.schema.json + '@type': MonthlyScheduleDayOfWeekDefinition + WeeklyScheduledDefinition: + - dates: 2020-06-23T14:12:01.080Z + '@baseType': WeeklyScheduledDefinition + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/WeeklyScheduledDefinition.schema.json + '@type': WeeklyScheduledDefinition + '@baseType': ScheduleDefinition + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/ScheduleDefinition.schema.json + '@type': ScheduleDefinition + trackingRecord: + - id: TR_101 + href: https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + description: string + systemId: NT_101 + time: 2020-06-23T17:55:51.671Z + user: NP1 + '@baseType': TrackingRecord + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': TrackingRecord + '@baseType': MeasurementCollectionJob + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': MeasurementCollectionJob + reportingSystem: + id: "139" + name: APP-110 + '@type': ReportingResource + '@referredType': LogicalResource + source: + id: "471" + name: APP-100 + '@type': ReportingResource + '@referredType': LogicalResource + '@baseType': Event + '@type': MeasurementCollectionJobDeleteEvent + MeasurementCollectionJobAttributeValueChangeEvent_request: + description: Message example for MeasurementCollectionJobAttributeValueChangeEvent + event + value: + correlationId: 88d6563b-fef5 + description: MeasurementCollectionJobAttributeValueChangeEvent illustration + domain: Commercial + eventId: 470e-b052-17d87228ce4b + eventTime: 2022-08-25T12:18:25.005Z + eventType: MeasurementCollectionJobAttributeValueChangeEvent + priority: "5" + timeOcurred: 2022-08-25T12:18:22.736Z + title: MeasurementCollectionJobAttributeValueChangeEvent + event: + measurementCollectionJob: + id: "4000" + href: https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4000 + consumingApplicationId: "4000" + creationTime: 2020-06-23T14:12:01.078Z + jobId: "400" + jobPriority: 3 + jobOnDemand: false + lastModifiedTime: 2020-06-23T14:12:01.079Z + outputFormat: string + producingApplicationId: NT_101 + adminState: locked + executionState: acknowledged + fileTransferData: + - fileFormat: csv + fileLocation: https://host:port/tmf-api/performanceManagement/v5/FileTransferData + transportProtocol: ftp + compressionType: + compressionEnumType: no_compression + packingType: + packingEnumType: NO_PACKING + retentionPeriod: + amount: 1 + units: month + '@baseType': RetentionPeriod + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/RetentionPeriod + '@type': RetentionPeriod + '@baseType': FileTransferData + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': FileTransferData + granularity: g_1mn + monitoredClassCriteria: + monitoredObjectClass: string + objectInstanceFilter: string + '@baseType': string + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': string + monitoredInstancesCriteria: + monitoredObjectInstances: + - string + '@baseType': string + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': string + performanceIndicatorGroupSpecification: + - href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: "600" + name: My critical performance indicators + performanceIndicatorSpecification: + - id: "5000" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + version: "1.0" + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + performanceIndicatorSpecification: + - id: "101" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/101 + derivationAlgorithm: string + derivationMethod: string + description: string + indicatorCategory: string + indicatorUnit: string + name: string + perspective: string + collectionType: cumulative + indicatorType: string + performanceIndicatorSpecRelationship: + - id: "321" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecRelationship/321 + relationshipType: reliesOn + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecRelationship.schema.json + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: "1" + recurringFrequency: weekly + scheduleDefinitionEndTime: 2020-06-23T14:12:01.080Z + scheduleDefinitionHourRange: "2" + scheduleDefinitionStartTime: 2020-06-23T14:12:01.080Z + MonthlyScheduleDayOfWeekDefinition: + recurringDaySequence: string + dayOfMonthRecurrence: + - dates: 2020-06-23T14:12:01.080Z + '@baseType': DayOfMonthRecurrence + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/DayOfMonthRecurrence.schema.json + '@type': DayOfMonthRecurrence + '@baseType': MonthlyScheduleDayOfWeekDefinition + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/MonthlyScheduleDayOfWeekDefinition.schema.json + '@type': MonthlyScheduleDayOfWeekDefinition + WeeklyScheduledDefinition: + - dates: 2020-06-23T14:12:01.080Z + '@baseType': WeeklyScheduledDefinition + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/WeeklyScheduledDefinition.schema.json + '@type': WeeklyScheduledDefinition + '@baseType': ScheduleDefinition + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/ScheduleDefinition.schema.json + '@type': ScheduleDefinition + trackingRecord: + - id: TR_101 + href: https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + description: string + systemId: NT_101 + time: 2020-06-23T17:55:51.671Z + user: NP1 + '@baseType': TrackingRecord + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': TrackingRecord + '@baseType': MeasurementCollectionJob + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': MeasurementCollectionJob + reportingSystem: + id: "139" + name: APP-110 + '@type': ReportingResource + '@referredType': LogicalResource + source: + id: "471" + name: APP-100 + '@type': ReportingResource + '@referredType': LogicalResource + '@baseType': Event + '@type': MeasurementCollectionJobAttributeValueChangeEvent + MeasurementCollectionJobFilesReadyEvent_request: + description: Message example for MeasurementCollectionJobFilesReadyEvent event + value: + correlationId: fdd613a8-7396 + description: MeasurementCollectionJobFilesReadyEvent illustration + domain: Commercial + eventId: 456d-9572-d1d23be58dd4 + eventTime: 2022-08-25T12:18:25.017Z + eventType: MeasurementCollectionJobFilesReadyEvent + priority: "4" + timeOcurred: 2022-08-25T12:18:16.825Z + title: MeasurementCollectionJobFilesReadyEvent + event: + measurementCollectionJob: + id: "4000" + href: https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4000 + consumingApplicationId: "4000" + creationTime: 2020-06-23T14:12:01.078Z + jobId: "400" + jobPriority: 3 + jobOnDemand: false + lastModifiedTime: 2020-06-23T14:12:01.079Z + outputFormat: string + producingApplicationId: NT_101 + adminState: locked + executionState: acknowledged + fileTransferData: + - fileFormat: csv + fileLocation: https://host:port/tmf-api/performanceManagement/v5/FileTransferData + transportProtocol: ftp + compressionType: + compressionEnumType: no_compression + packingType: + packingEnumType: NO_PACKING + retentionPeriod: + amount: 1 + units: month + '@baseType': RetentionPeriod + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/RetentionPeriod + '@type': RetentionPeriod + '@baseType': FileTransferData + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': FileTransferData + granularity: g_1mn + monitoredClassCriteria: + monitoredObjectClass: string + objectInstanceFilter: string + '@baseType': string + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': string + monitoredInstancesCriteria: + monitoredObjectInstances: + - string + '@baseType': string + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': string + performanceIndicatorGroupSpecification: + - href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: "600" + name: My critical performance indicators + performanceIndicatorSpecification: + - id: "5000" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + version: "1.0" + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + performanceIndicatorSpecification: + - id: "101" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/101 + derivationAlgorithm: string + derivationMethod: string + description: string + indicatorCategory: string + indicatorUnit: string + name: string + perspective: string + collectionType: cumulative + indicatorType: string + performanceIndicatorSpecRelationship: + - id: "321" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecRelationship/321 + relationshipType: reliesOn + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecRelationship.schema.json + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: "1" + recurringFrequency: weekly + scheduleDefinitionEndTime: 2020-06-23T14:12:01.080Z + scheduleDefinitionHourRange: "2" + scheduleDefinitionStartTime: 2020-06-23T14:12:01.080Z + MonthlyScheduleDayOfWeekDefinition: + recurringDaySequence: string + dayOfMonthRecurrence: + - dates: 2020-06-23T14:12:01.080Z + '@baseType': DayOfMonthRecurrence + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/DayOfMonthRecurrence.schema.json + '@type': DayOfMonthRecurrence + '@baseType': MonthlyScheduleDayOfWeekDefinition + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/MonthlyScheduleDayOfWeekDefinition.schema.json + '@type': MonthlyScheduleDayOfWeekDefinition + WeeklyScheduledDefinition: + - dates: 2020-06-23T14:12:01.080Z + '@baseType': WeeklyScheduledDefinition + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/WeeklyScheduledDefinition.schema.json + '@type': WeeklyScheduledDefinition + '@baseType': ScheduleDefinition + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/ScheduleDefinition.schema.json + '@type': ScheduleDefinition + trackingRecord: + - id: TR_101 + href: https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + description: string + systemId: NT_101 + time: 2020-06-23T17:55:51.671Z + user: NP1 + '@baseType': TrackingRecord + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': TrackingRecord + '@baseType': MeasurementCollectionJob + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': MeasurementCollectionJob + reportingSystem: + id: "139" + name: APP-110 + '@type': ReportingResource + '@referredType': LogicalResource + source: + id: "471" + name: APP-100 + '@type': ReportingResource + '@referredType': LogicalResource + '@baseType': Event + '@type': MeasurementCollectionJobFilesReadyEvent + MeasurementCollectionJobFilesPreparationErrorEvent_request: + description: Message example for MeasurementCollectionJobFilesPreparationErrorEvent + event + value: + correlationId: 416928f1-523a + description: MeasurementCollectionJobFilesPreparationErrorEvent illustration + domain: Commercial + eventId: 4cc1-80c0-ba3b3efe2c75 + eventTime: 2022-08-25T12:18:25.029Z + eventType: MeasurementCollectionJobFilesPreparationErrorEvent + priority: "4" + timeOcurred: 2022-08-25T12:18:19.038Z + title: MeasurementCollectionJobFilesPreparationErrorEvent + event: + measurementCollectionJob: + id: "4000" + href: https://host:port/tmf-api/performanceManagement/v5/MeasurementCollectionJob/4000 + consumingApplicationId: "4000" + creationTime: 2020-06-23T14:12:01.078Z + jobId: "400" + jobPriority: 3 + jobOnDemand: false + lastModifiedTime: 2020-06-23T14:12:01.079Z + outputFormat: string + producingApplicationId: NT_101 + adminState: locked + executionState: acknowledged + fileTransferData: + - fileFormat: csv + fileLocation: https://host:port/tmf-api/performanceManagement/v5/FileTransferData + transportProtocol: ftp + compressionType: + compressionEnumType: no_compression + packingType: + packingEnumType: NO_PACKING + retentionPeriod: + amount: 1 + units: month + '@baseType': RetentionPeriod + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/RetentionPeriod + '@type': RetentionPeriod + '@baseType': FileTransferData + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': FileTransferData + granularity: g_1mn + monitoredClassCriteria: + monitoredObjectClass: string + objectInstanceFilter: string + '@baseType': string + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': string + monitoredInstancesCriteria: + monitoredObjectInstances: + - string + '@baseType': string + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': string + performanceIndicatorGroupSpecification: + - href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSGrouppecification/600 + id: "600" + name: My critical performance indicators + performanceIndicatorSpecification: + - id: "5000" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000 + name: CPU speed + version: "1.0" + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + '@baseType': PerformanceIndicatorGroupSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json + '@type': PerformanceIndicatorGroupSpecification + performanceIndicatorSpecification: + - id: "101" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/101 + derivationAlgorithm: string + derivationMethod: string + description: string + indicatorCategory: string + indicatorUnit: string + name: string + perspective: string + collectionType: cumulative + indicatorType: string + performanceIndicatorSpecRelationship: + - id: "321" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecRelationship/321 + relationshipType: reliesOn + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecRelationship + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecRelationship.schema.json + '@type': PerformanceIndicatorSpecRelationship + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + reportingPeriod: r_1mn + scheduleDefinition: + - id: "1" + recurringFrequency: weekly + scheduleDefinitionEndTime: 2020-06-23T14:12:01.080Z + scheduleDefinitionHourRange: "2" + scheduleDefinitionStartTime: 2020-06-23T14:12:01.080Z + MonthlyScheduleDayOfWeekDefinition: + recurringDaySequence: string + dayOfMonthRecurrence: + - dates: 2020-06-23T14:12:01.080Z + '@baseType': DayOfMonthRecurrence + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/DayOfMonthRecurrence.schema.json + '@type': DayOfMonthRecurrence + '@baseType': MonthlyScheduleDayOfWeekDefinition + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/MonthlyScheduleDayOfWeekDefinition.schema.json + '@type': MonthlyScheduleDayOfWeekDefinition + WeeklyScheduledDefinition: + - dates: 2020-06-23T14:12:01.080Z + '@baseType': WeeklyScheduledDefinition + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/WeeklyScheduledDefinition.schema.json + '@type': WeeklyScheduledDefinition + '@baseType': ScheduleDefinition + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/ScheduleDefinition.schema.json + '@type': ScheduleDefinition + trackingRecord: + - id: TR_101 + href: https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + description: string + systemId: NT_101 + time: 2020-06-23T17:55:51.671Z + user: NP1 + '@baseType': TrackingRecord + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': TrackingRecord + '@baseType': MeasurementCollectionJob + '@schemaLocation': https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation + '@type': MeasurementCollectionJob + reportingSystem: + id: "139" + name: APP-110 + '@type': ReportingResource + '@referredType': LogicalResource + source: + id: "471" + name: APP-100 + '@type': ReportingResource + '@referredType': LogicalResource + '@baseType': Event + '@type': MeasurementCollectionJobFilesPreparationErrorEvent + PerformanceMeasurementCreateEvent_request: + description: Message example for PerformanceMeasurementCreateEvent event + value: + correlationId: 2bc480b9-2dc0 + description: PerformanceMeasurementCreateEvent illustration + domain: Commercial + eventId: 48e1-9989-2d1fce36bceb + eventTime: 2022-08-25T12:18:24.978Z + eventType: PerformanceMeasurementCreateEvent + priority: "5" + timeOcurred: 2022-08-25T12:18:19.818Z + title: PerformanceMeasurementCreateEvent + event: + performanceMeasurement: + id: "1" + href: https://host:port/tmf-api/performanceManagement/v5/performanceMeasurement/1 + '@type': PerformanceMeasurementAtomic + reportingSystem: + id: "139" + name: APP-110 + '@type': ReportingResource + '@referredType': LogicalResource + source: + id: "471" + name: APP-100 + '@type': ReportingResource + '@referredType': LogicalResource + '@baseType': Event + '@type': PerformanceMeasurementCreateEvent + PerformanceMeasurementCollectionReady_request: + description: Message example for PerformanceMeasurementCollectionReady event + value: + correlationId: 2bc480b9-2dc0 + description: PerformanceMeasurementCollectionReadyEvent illustration + domain: Commercial + eventId: 48e1-9989-2d1fce36bceb + eventTime: 2022-08-25T12:18:24.978Z + eventType: PerformanceMeasurementCollectionReadyEvent + priority: "5" + timeOcurred: 2022-08-25T12:18:19.818Z + title: PerformanceMeasurementCollectionReadyEvent + event: + performanceMeasurement: + id: "1" + href: https://host:port/tmf-api/performanceManagement/v5/performanceMeasurement/1 + description: The first performance measurement in the database + measurementCollectionJob: + id: "4000" + href: https://host:port/tmf-api/performanceManagement/v5/measurementCollectionJob/4000 + name: Measurement Collection Job from system A + '@baseType': MeasurementCollectionJobRef + '@schemaLocation': https://myschemas/MeasurementCollectionJob.schema.json + '@type': MeasurementCollectionJobRef + '@referredType': MeasurementCollectionJob + performanceIndicatorValue: + - performanceIndicatorSpecification: + id: "1" + href: https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/1 + '@baseType': PerformanceIndicatorSpecificationRef + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecificationRef + '@referredType': PerformanceIndicatorSpecification + observedValue: "2.1" + - performanceIndicatorSpecification: + id: "2" + name: CPU Speed Indicator Specification + indicatorCategory: SPEEDCategory + indicatorName: CPU Speed + indicatorType: float + indicatorUnit: GHz + '@baseType': PerformanceIndicatorSpecification + '@schemaLocation': https://myschemas/PerformanceIndicatorSpecification.schema.json + '@type': PerformanceIndicatorSpecification + observedValue: "3.25" + validFor: + endDateTime: 1985-04-12T23:20:50.52Z + startDateTime: 1985-04-12T23:20:50.52Z + '@baseType': PerformanceMeasurement + '@schemaLocation': https://github.com/repo/PerformanceMeasurementAtomic.schema.json + '@type': PerformanceMeasurementAtomic + reportingSystem: + id: "139" + name: APP-110 + '@type': ReportingResource + '@referredType': LogicalResource + source: + id: "471" + name: APP-100 + '@type': ReportingResource + '@referredType': LogicalResource + '@baseType': Event + '@type': PerformanceMeasurementCollectionReadyEvent + headers: + X-Total-Count: + description: Total number of items matching criteria + explode: false + schema: + type: integer + style: simple + X-Result-Count: + description: Actual number of items returned in the response body + explode: false + schema: + type: integer + style: simple + parameters: + Id: + description: Identifier of the Resource + explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + Fields: + description: Comma-separated properties to be provided in response + explode: true + in: query + name: fields + required: false + schema: + type: string + style: form + Offset: + description: Requested index for start of resources to be provided in response + explode: true + in: query + name: offset + required: false + schema: + type: integer + style: form + Limit: + description: Requested number of resources to be provided in response + explode: true + in: query + name: limit + required: false + schema: + type: integer + style: form + requestBodies: + MeasurementCollectionJob_FVO: + content: + application/json: + examples: + MeasurementCollectionJobCreate: + $ref: '#/components/examples/MeasurementCollectionJobCreate_request' + schema: + $ref: '#/components/schemas/MeasurementCollectionJob_FVO' + description: The MeasurementCollectionJob to be created + required: true + MeasurementCollectionJob_MVO: + content: + application/json: + examples: + updateMeasurementCollectionJob_using_json: + $ref: '#/components/examples/updateMeasurementCollectionJob_using_json_request' + schema: + $ref: '#/components/schemas/MeasurementCollectionJob_MVO' + application/merge-patch+json: + examples: + updateMeasurementCollectionJob_using_merge-patch_json: + $ref: '#/components/examples/updateMeasurementCollectionJob_using_merge-patch_json_request' + schema: + $ref: '#/components/schemas/MeasurementCollectionJob_MVO' + application/json-patch+json: + examples: + updateMeasurementCollectionJob_using_json-patch_json: + $ref: '#/components/examples/updateMeasurementCollectionJob_using_json-patch_json_request' + schema: + $ref: '#/components/schemas/JsonPatchOperations' + application/json-patch-query+json: + examples: + updateMeasurementCollectionJob_using_json-patch-query_json: + $ref: '#/components/examples/updateMeasurementCollectionJob_using_json-patch-query_json_request' + schema: + $ref: '#/components/schemas/JsonPatchOperations' + description: The MeasurementCollectionJob to be patched + required: true + MeasurementCollectionJobCreateEvent: + content: + application/json: + examples: + MeasurementCollectionJobCreateEvent: + $ref: '#/components/examples/MeasurementCollectionJobCreateEvent_request' + schema: + $ref: '#/components/schemas/MeasurementCollectionJobCreateEvent' + description: MeasurementCollectionJob create Event payload + required: true + MeasurementCollectionJobExecutionStateChangeEvent: + content: + application/json: + examples: + MeasurementCollectionJobExecutionStateChangeEvent: + $ref: '#/components/examples/MeasurementCollectionJobExecutionStateChangeEvent_request' + schema: + $ref: '#/components/schemas/MeasurementCollectionJobExecutionStateChangeEvent' + description: MeasurementCollectionJob executionStateChange Event payload + required: true + MeasurementCollectionJobDeleteEvent: + content: + application/json: + examples: + MeasurementCollectionJobDeleteEvent: + $ref: '#/components/examples/MeasurementCollectionJobDeleteEvent_request' + schema: + $ref: '#/components/schemas/MeasurementCollectionJobDeleteEvent' + description: MeasurementCollectionJob delete Event payload + required: true + MeasurementCollectionJobAttributeValueChangeEvent: + content: + application/json: + examples: + MeasurementCollectionJobAttributeValueChangeEvent: + $ref: '#/components/examples/MeasurementCollectionJobAttributeValueChangeEvent_request' + schema: + $ref: '#/components/schemas/MeasurementCollectionJobAttributeValueChangeEvent' + description: MeasurementCollectionJob attributeValueChange Event payload + required: true + MeasurementCollectionJobFilesReadyEvent: + content: + application/json: + examples: + MeasurementCollectionJobFilesReadyEvent: + $ref: '#/components/examples/MeasurementCollectionJobFilesReadyEvent_request' + schema: + $ref: '#/components/schemas/MeasurementCollectionJobFilesReadyEvent' + description: MeasurementCollectionJob filesReady Event payload + required: true + MeasurementCollectionJobFilesPreparationErrorEvent: + content: + application/json: + examples: + MeasurementCollectionJobFilesPreparationErrorEvent: + $ref: '#/components/examples/MeasurementCollectionJobFilesPreparationErrorEvent_request' + schema: + $ref: '#/components/schemas/MeasurementCollectionJobFilesPreparationErrorEvent' + description: MeasurementCollectionJob filesPreparationError Event payload + required: true + PerformanceIndicatorGroupSpecification_FVO: + content: + application/json: + examples: + PerformanceIndicatorGroupSpecification_create_example_: + $ref: '#/components/examples/PerformanceIndicatorGroupSpecification_create_example__request' + schema: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification_FVO' + description: The PerformanceIndicatorGroupSpecification to be created + required: true + PerformanceIndicatorGroupSpecification_MVO: + content: + application/json: + examples: + updatePerformanceIndicatorGroupSpecification_using_json: + $ref: '#/components/examples/updatePerformanceIndicatorGroupSpecification_using_json_request' + schema: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification_MVO' + application/merge-patch+json: + examples: + updatePerformanceIndicatorGroupSpecification_using_merge-patch_json: + $ref: '#/components/examples/updatePerformanceIndicatorGroupSpecification_using_merge-patch_json_request' + schema: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification_MVO' + application/json-patch+json: + examples: + updatePerformanceIndicatorGroupSpecification_using_json-patch_json: + $ref: '#/components/examples/updatePerformanceIndicatorGroupSpecification_using_json-patch_json_request' + schema: + $ref: '#/components/schemas/JsonPatchOperations' + application/json-patch-query+json: + examples: + updatePerformanceIndicatorGroupSpecification_using_json-patch-query_json: + $ref: '#/components/examples/updatePerformanceIndicatorGroupSpecification_using_json-patch-query_json_request' + schema: + $ref: '#/components/schemas/JsonPatchOperations' + description: The PerformanceIndicatorGroupSpecification to be patched + required: true + PerformanceIndicatorSpecification_FVO: + content: + application/json: + examples: + PerformanceIndicatorSpecification_create_example_: + $ref: '#/components/examples/PerformanceIndicatorSpecification_create_example__request' + schema: + $ref: '#/components/schemas/PerformanceIndicatorSpecification_FVO' + description: The PerformanceIndicatorSpecification to be created + required: true + PerformanceIndicatorSpecification_MVO: + content: + application/json: + examples: + updatePerformanceIndicatorSpecification_using_json: + $ref: '#/components/examples/updatePerformanceIndicatorSpecification_using_json_request' + schema: + $ref: '#/components/schemas/PerformanceIndicatorSpecification_MVO' + application/merge-patch+json: + examples: + updatePerformanceIndicatorSpecification_using_merge-patch_json: + $ref: '#/components/examples/updatePerformanceIndicatorSpecification_using_merge-patch_json_request' + schema: + $ref: '#/components/schemas/PerformanceIndicatorSpecification_MVO' + application/json-patch+json: + examples: + updatePerformanceIndicatorSpecification_using_json-patch_json: + $ref: '#/components/examples/updatePerformanceIndicatorSpecification_using_json-patch_json_request' + schema: + $ref: '#/components/schemas/JsonPatchOperations' + application/json-patch-query+json: + examples: + updatePerformanceIndicatorSpecification_using_json-patch-query_json: + $ref: '#/components/examples/updatePerformanceIndicatorSpecification_using_json-patch-query_json_request' + schema: + $ref: '#/components/schemas/JsonPatchOperations' + description: The PerformanceIndicatorSpecification to be patched + required: true + PerformanceMeasurementCreateEvent: + content: + application/json: + examples: + PerformanceMeasurementCreateEvent: + $ref: '#/components/examples/PerformanceMeasurementCreateEvent_request' + schema: + $ref: '#/components/schemas/PerformanceMeasurementCreateEvent' + description: PerformanceMeasurement create Event payload + required: true + PerformanceMeasurementCollectionReadyEvent: + content: + application/json: + examples: + PerformanceMeasurementCollectionReady: + $ref: '#/components/examples/PerformanceMeasurementCollectionReady_request' + schema: + $ref: '#/components/schemas/PerformanceMeasurementCollectionReadyEvent' + description: PerformanceMeasurement collectionReady Event payload + required: true + Hub_FVO: + content: + application/json: + schema: + $ref: '#/components/schemas/Hub_FVO' + description: Data containing the callback endpoint to deliver the information + required: true + responses: + "200": + description: OK + "202": + description: Accepted + "204": + description: Deleted + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Bad Request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Forbidden + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Found + "405": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Method Not allowed + "409": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Conflict + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Internal Server Error + "501": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Not Implemented + "503": + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Service Unavailable + "200MeasurementCollectionJobArray": + content: + application/json: + examples: + MeasurementCollectionJobList: + $ref: '#/components/examples/MeasurementCollectionJobList_response' + schema: + items: + $ref: '#/components/schemas/MeasurementCollectionJob' + type: array + description: Success + headers: + X-Total-Count: + $ref: '#/components/headers/X-Total-Count' + X-Result-Count: + $ref: '#/components/headers/X-Result-Count' + "200MeasurementCollectionJob_Get": + content: + application/json: + examples: + MeasurementCollectionJobRetrieve: + $ref: '#/components/examples/MeasurementCollectionJobRetrieve_response' + schema: + $ref: '#/components/schemas/MeasurementCollectionJob' + description: Success + "200MeasurementCollectionJob_Patch": + content: + application/json: + examples: + updateMeasurementCollectionJob_using_json: + $ref: '#/components/examples/updateMeasurementCollectionJob_using_json_response' + schema: + $ref: '#/components/schemas/MeasurementCollectionJob' + application/merge-patch+json: + examples: + updateMeasurementCollectionJob_using_merge-patch_json: + $ref: '#/components/examples/updateMeasurementCollectionJob_using_merge-patch_json_response' + schema: + $ref: '#/components/schemas/MeasurementCollectionJob' + application/json-patch+json: + examples: + updateMeasurementCollectionJob_using_json-patch_json: + $ref: '#/components/examples/updateMeasurementCollectionJob_using_json-patch_json_response' + schema: + $ref: '#/components/schemas/patchMeasurementCollectionJob_200_response' + application/json-patch-query+json: + examples: + updateMeasurementCollectionJob_using_json-patch-query_json: + $ref: '#/components/examples/updateMeasurementCollectionJob_using_json-patch-query_json_response' + schema: + $ref: '#/components/schemas/patchMeasurementCollectionJob_200_response' + description: Success + "201MeasurementCollectionJob": + content: + application/json: + examples: + MeasurementCollectionJobCreate: + $ref: '#/components/examples/MeasurementCollectionJobCreate_response' + schema: + $ref: '#/components/schemas/MeasurementCollectionJob' + description: OK/Created + "200PerformanceIndicatorGroupSpecificationArray": + content: + application/json: + examples: + PerformanceIndicatorGroupSpecificationList: + $ref: '#/components/examples/PerformanceIndicatorGroupSpecificationList_response' + schema: + items: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification' + type: array + description: Success + headers: + X-Total-Count: + $ref: '#/components/headers/X-Total-Count' + X-Result-Count: + $ref: '#/components/headers/X-Result-Count' + "200PerformanceIndicatorGroupSpecification_Get": + content: + application/json: + examples: + PerformanceIndicatorGroupSpecificationRetrieve: + $ref: '#/components/examples/PerformanceIndicatorGroupSpecificationRetrieve_response' + schema: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification' + description: Success + "200PerformanceIndicatorGroupSpecification_Patch": + content: + application/json: + examples: + updatePerformanceIndicatorGroupSpecification_using_json: + $ref: '#/components/examples/updatePerformanceIndicatorGroupSpecification_using_json_response' + schema: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification' + application/merge-patch+json: + examples: + updatePerformanceIndicatorGroupSpecification_using_merge-patch_json: + $ref: '#/components/examples/updatePerformanceIndicatorGroupSpecification_using_merge-patch_json_response' + schema: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification' + application/json-patch+json: + examples: + updatePerformanceIndicatorGroupSpecification_using_json-patch_json: + $ref: '#/components/examples/updatePerformanceIndicatorGroupSpecification_using_json-patch_json_response' + schema: + $ref: '#/components/schemas/patchPerformanceIndicatorGroupSpecification_200_response' + application/json-patch-query+json: + examples: + updatePerformanceIndicatorGroupSpecification_using_json-patch-query_json: + $ref: '#/components/examples/updatePerformanceIndicatorGroupSpecification_using_json-patch-query_json_response' + schema: + $ref: '#/components/schemas/patchPerformanceIndicatorGroupSpecification_200_response' + description: Success + "201PerformanceIndicatorGroupSpecification": + content: + application/json: + examples: + PerformanceIndicatorGroupSpecification_create_example_: + $ref: '#/components/examples/PerformanceIndicatorGroupSpecification_create_example__response' + schema: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification' + description: OK/Created + "200PerformanceIndicatorSpecificationArray": + content: + application/json: + examples: + PerformanceIndicatorSpecificationList: + $ref: '#/components/examples/PerformanceIndicatorSpecificationList_response' + schema: + items: + $ref: '#/components/schemas/PerformanceIndicatorSpecification' + type: array + description: Success + headers: + X-Total-Count: + $ref: '#/components/headers/X-Total-Count' + X-Result-Count: + $ref: '#/components/headers/X-Result-Count' + "200PerformanceIndicatorSpecification_Get": + content: + application/json: + examples: + PerformanceIndicatorSpecificationRetrieve: + $ref: '#/components/examples/PerformanceIndicatorSpecificationRetrieve_response' + schema: + $ref: '#/components/schemas/PerformanceIndicatorSpecification' + description: Success + "200PerformanceIndicatorSpecification_Patch": + content: + application/json: + examples: + updatePerformanceIndicatorSpecification_using_json: + $ref: '#/components/examples/updatePerformanceIndicatorSpecification_using_json_response' + schema: + $ref: '#/components/schemas/PerformanceIndicatorSpecification' + application/merge-patch+json: + examples: + updatePerformanceIndicatorSpecification_using_merge-patch_json: + $ref: '#/components/examples/updatePerformanceIndicatorSpecification_using_merge-patch_json_response' + schema: + $ref: '#/components/schemas/PerformanceIndicatorSpecification' + application/json-patch+json: + examples: + updatePerformanceIndicatorSpecification_using_json-patch_json: + $ref: '#/components/examples/updatePerformanceIndicatorSpecification_using_json-patch_json_response' + schema: + $ref: '#/components/schemas/patchPerformanceIndicatorSpecification_200_response' + application/json-patch-query+json: + examples: + updatePerformanceIndicatorSpecification_using_json-patch-query_json: + $ref: '#/components/examples/updatePerformanceIndicatorSpecification_using_json-patch-query_json_response' + schema: + $ref: '#/components/schemas/patchPerformanceIndicatorSpecification_200_response' + description: Success + "201PerformanceIndicatorSpecification": + content: + application/json: + examples: + PerformanceIndicatorSpecification_create_example_: + $ref: '#/components/examples/PerformanceIndicatorSpecification_create_example__response' + schema: + $ref: '#/components/schemas/PerformanceIndicatorSpecification' + description: OK/Created + "200TrackingRecordArray": + content: + application/json: + examples: + TrackingRecordList: + $ref: '#/components/examples/TrackingRecordList_response' + schema: + items: + $ref: '#/components/schemas/TrackingRecord' + type: array + description: Success + headers: + X-Total-Count: + $ref: '#/components/headers/X-Total-Count' + X-Result-Count: + $ref: '#/components/headers/X-Result-Count' + "200TrackingRecord_Get": + content: + application/json: + examples: + TrackingRecordRetrieve: + $ref: '#/components/examples/TrackingRecordRetrieve_response' + schema: + $ref: '#/components/schemas/TrackingRecord' + description: Success + "200TrackingRecord_Patch": + content: + application/json: + schema: + $ref: '#/components/schemas/TrackingRecord' + application/merge-patch+json: + schema: + $ref: '#/components/schemas/TrackingRecord' + application/json-patch+json: + schema: + oneOf: + - $ref: '#/components/schemas/TrackingRecord' + - items: + $ref: '#/components/schemas/TrackingRecord' + type: array + - nullable: true + type: string + application/json-patch-query+json: + schema: + oneOf: + - $ref: '#/components/schemas/TrackingRecord' + - items: + $ref: '#/components/schemas/TrackingRecord' + type: array + - nullable: true + type: string + description: Success + "201TrackingRecord": + content: + application/json: + schema: + $ref: '#/components/schemas/TrackingRecord' + description: OK/Created + "200PerformanceMeasurementArray": + content: + application/json: + examples: + PerformanceMeasurementList: + $ref: '#/components/examples/PerformanceMeasurementList_response' + schema: + items: + $ref: '#/components/schemas/PerformanceMeasurement' + type: array + description: Success + headers: + X-Total-Count: + $ref: '#/components/headers/X-Total-Count' + X-Result-Count: + $ref: '#/components/headers/X-Result-Count' + "200PerformanceMeasurement_Get": + content: + application/json: + examples: + PerformanceMeasurementRetrieve: + $ref: '#/components/examples/PerformanceMeasurementRetrieve_response' + PerformanceMeasurementGroupRetrieve: + $ref: '#/components/examples/PerformanceMeasurementGroupRetrieve_response' + schema: + $ref: '#/components/schemas/PerformanceMeasurement' + description: Success + "200PerformanceMeasurement_Patch": + content: + application/json: + schema: + $ref: '#/components/schemas/PerformanceMeasurement' + application/merge-patch+json: + schema: + $ref: '#/components/schemas/PerformanceMeasurement' + application/json-patch+json: + schema: + oneOf: + - $ref: '#/components/schemas/PerformanceMeasurement' + - items: + $ref: '#/components/schemas/PerformanceMeasurement' + type: array + - nullable: true + type: string + application/json-patch-query+json: + schema: + oneOf: + - $ref: '#/components/schemas/PerformanceMeasurement' + - items: + $ref: '#/components/schemas/PerformanceMeasurement' + type: array + - nullable: true + type: string + description: Success + "201PerformanceMeasurement": + content: + application/json: + schema: + $ref: '#/components/schemas/PerformanceMeasurement' + description: OK/Created + "200DataAccessEndpointArray": + content: + application/json: + examples: + DataAccessEndpointList: + $ref: '#/components/examples/DataAccessEndpointList_response' + schema: + items: + $ref: '#/components/schemas/DataAccessEndpoint' + type: array + description: Success + headers: + X-Total-Count: + $ref: '#/components/headers/X-Total-Count' + X-Result-Count: + $ref: '#/components/headers/X-Result-Count' + "200DataAccessEndpoint_Get": + content: + application/json: + examples: + DataAccessEndpointRetrieve: + $ref: '#/components/examples/DataAccessEndpointRetrieve_response' + schema: + $ref: '#/components/schemas/DataAccessEndpoint' + description: Success + "200DataAccessEndpoint_Patch": + content: + application/json: + schema: + $ref: '#/components/schemas/DataAccessEndpoint' + application/merge-patch+json: + schema: + $ref: '#/components/schemas/DataAccessEndpoint' + application/json-patch+json: + schema: + oneOf: + - $ref: '#/components/schemas/DataAccessEndpoint' + - items: + $ref: '#/components/schemas/DataAccessEndpoint' + type: array + - nullable: true + type: string + application/json-patch-query+json: + schema: + oneOf: + - $ref: '#/components/schemas/DataAccessEndpoint' + - items: + $ref: '#/components/schemas/DataAccessEndpoint' + type: array + - nullable: true + type: string + description: Success + "201DataAccessEndpoint": + content: + application/json: + schema: + $ref: '#/components/schemas/DataAccessEndpoint' + description: OK/Created + Error: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Error + Hub: + content: + application/json: + schema: + $ref: '#/components/schemas/Hub' + description: Notified + schemas: + Addressable: + description: Base schema for addressable entities + properties: + href: + description: Hyperlink reference + type: string + id: + description: unique identifier + type: string + type: object + Addressable_FVO: + description: Base schema for addressable entities + type: object + Addressable_MVO: + description: Base schema for addressable entities + properties: + id: + description: unique identifier + type: string + type: object + AdministrativeState: + description: This is enumeration for Administrative state + enum: + - locked + - unlocked + type: string + AttachmentRef: + allOf: + - $ref: '#/components/schemas/EntityRef' + - description: "Attachment reference. An attachment complements the description\ + \ of an element (for instance a product) through video, pictures" + properties: + description: + description: A narrative text describing the content of the attachment + type: string + url: + description: Link to the attachment media/content + type: string + type: object + discriminator: + mapping: + AttachmentRef: '#/components/schemas/AttachmentRef' + propertyName: '@type' + AttachmentRef_FVO: + allOf: + - $ref: '#/components/schemas/EntityRef_FVO' + - description: "Attachment reference. An attachment complements the description\ + \ of an element (for instance a product) through video, pictures" + properties: + description: + description: A narrative text describing the content of the attachment + type: string + url: + description: Link to the attachment media/content + type: string + type: object + discriminator: + mapping: + AttachmentRef: '#/components/schemas/AttachmentRef_FVO' + propertyName: '@type' + AttachmentRef_MVO: + allOf: + - $ref: '#/components/schemas/EntityRef_MVO' + - description: "Attachment reference. An attachment complements the description\ + \ of an element (for instance a product) through video, pictures" + properties: + description: + description: A narrative text describing the content of the attachment + type: string + url: + description: Link to the attachment media/content + type: string + type: object + discriminator: + mapping: + AttachmentRef: '#/components/schemas/AttachmentRef_MVO' + propertyName: '@type' + BaseEvent: + allOf: + - $ref: '#/components/schemas/Entity' + - description: Base event with common attributes. + properties: + event: + $ref: '#/components/schemas/BaseEvent_allOf_event' + eventId: + description: The identifier of the notification. + type: string + eventTime: + description: Time of the event occurrence. + format: date-time + type: string + eventType: + description: The type of the notification. + type: string + correlationId: + description: The correlation id for this event. + type: string + domain: + description: The domain of the event. + type: string + title: + description: The title of the event. + type: string + description: + description: An explanatory of the event. + type: string + priority: + description: A priority. + type: string + timeOcurred: + description: The time the event occurred. + format: date-time + type: string + type: object + discriminator: + mapping: + BaseEvent: '#/components/schemas/BaseEvent' + propertyName: '@type' + Characteristic: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: "Describes a given characteristic of an object or entity through\ + \ a name/value pair. This is an abstract base class, the actual value is\ + \ in one of the strongly-typed subclasses : StringCharacteristic, ObjectCharacteristic,\ + \ FloatCharacteristic, BooleanCharacteristic, NumberCharacteristic, IntegerCharacteristic,\ + \ StringArrayCharacteristic, ObjectArrayCharacteristic, BooleanArrayCharacteristic,\ + \ NumberArrayCharacteristic, IntegerArrayCharacteristic..." + properties: + id: + description: Unique identifier of the characteristic + type: string + name: + description: Name of the characteristic + type: string + valueType: + description: Data type of the value of the characteristic + type: string + characteristicRelationship: + description: Collection of characteristic relationships + items: + $ref: '#/components/schemas/CharacteristicRelationship' + type: array + type: object + discriminator: + mapping: + Characteristic: '#/components/schemas/Characteristic' + propertyName: '@type' + example: + characteristicRelationship: + - '@baseType': '@baseType' + relationshipType: relationshipType + '@type': '@type' + id: id + '@schemaLocation': '@schemaLocation' + - '@baseType': '@baseType' + relationshipType: relationshipType + '@type': '@type' + id: id + '@schemaLocation': '@schemaLocation' + '@baseType': '@baseType' + '@type': '@type' + valueType: valueType + name: name + id: id + '@schemaLocation': '@schemaLocation' + CharacteristicRelationship: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: Another Characteristic that is related to the current Characteristic; + properties: + id: + description: Unique identifier of the characteristic + type: string + relationshipType: + description: The type of relationship + type: string + type: object + discriminator: + mapping: + CharacteristicRelationship: '#/components/schemas/CharacteristicRelationship' + propertyName: '@type' + example: + '@baseType': '@baseType' + relationshipType: relationshipType + '@type': '@type' + id: id + '@schemaLocation': '@schemaLocation' + CharacteristicRelationship_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - description: Another Characteristic that is related to the current Characteristic; + properties: + id: + description: Unique identifier of the characteristic + type: string + relationshipType: + description: The type of relationship + type: string + required: + - id + - relationshipType + type: object + discriminator: + mapping: + CharacteristicRelationship: '#/components/schemas/CharacteristicRelationship_FVO' + propertyName: '@type' + CharacteristicRelationship_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: Another Characteristic that is related to the current Characteristic; + properties: + id: + description: Unique identifier of the characteristic + type: string + relationshipType: + description: The type of relationship + type: string + type: object + discriminator: + mapping: + CharacteristicRelationship: '#/components/schemas/CharacteristicRelationship_MVO' + propertyName: '@type' + Characteristic_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - description: "Describes a given characteristic of an object or entity through\ + \ a name/value pair. This is an abstract base class, the actual value is\ + \ in one of the strongly-typed subclasses : StringCharacteristic, ObjectCharacteristic,\ + \ FloatCharacteristic, BooleanCharacteristic, NumberCharacteristic, IntegerCharacteristic,\ + \ StringArrayCharacteristic, ObjectArrayCharacteristic, BooleanArrayCharacteristic,\ + \ NumberArrayCharacteristic, IntegerArrayCharacteristic..." + properties: + name: + description: Name of the characteristic + type: string + valueType: + description: Data type of the value of the characteristic + type: string + characteristicRelationship: + description: Collection of characteristic relationships + items: + $ref: '#/components/schemas/CharacteristicRelationship_FVO' + type: array + type: object + discriminator: + mapping: + Characteristic: '#/components/schemas/Characteristic_FVO' + propertyName: '@type' + Characteristic_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: "Describes a given characteristic of an object or entity through\ + \ a name/value pair. This is an abstract base class, the actual value is\ + \ in one of the strongly-typed subclasses : StringCharacteristic, ObjectCharacteristic,\ + \ FloatCharacteristic, BooleanCharacteristic, NumberCharacteristic, IntegerCharacteristic,\ + \ StringArrayCharacteristic, ObjectArrayCharacteristic, BooleanArrayCharacteristic,\ + \ NumberArrayCharacteristic, IntegerArrayCharacteristic..." + properties: + id: + description: Unique identifier of the characteristic + type: string + name: + description: Name of the characteristic + type: string + valueType: + description: Data type of the value of the characteristic + type: string + characteristicRelationship: + description: Collection of characteristic relationships + items: + $ref: '#/components/schemas/CharacteristicRelationship_MVO' + type: array + type: object + discriminator: + mapping: + Characteristic: '#/components/schemas/Characteristic_MVO' + propertyName: '@type' + CollectionType: + description: This is enumeration for CollectionType state + enum: + - cumulative + - delta + - discrete_event + - gauge + - status_inspection + type: string + CompressionEnumType: + description: Enumeration of supported compressions. All extensions allowed. + enum: + - no_compression + - gzip + - vendor_ext + - minor_ext + type: string + CompressionType: + description: File compression type. + properties: + compressionEnumType: + $ref: '#/components/schemas/CompressionEnumType' + type: object + DataAccessEndpoint: + allOf: + - $ref: '#/components/schemas/LogicalResource' + - description: This is the endpoint exposed by the IoT Device to authorized + users. + properties: + uri: + description: URI for using the data access API + format: uri + type: string + uriQueryFilter: + $ref: '#/components/schemas/DataFilterMap' + apiType: + type: string + type: object + example: + uriQueryFilter: + mappings: + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + '@baseType': '@baseType' + '@type': '@type' + '@schemaLocation': '@schemaLocation' + uri: https://openapi-generator.tech + apiType: apiType + DataAccessEndpoint_FVO: + allOf: + - $ref: '#/components/schemas/LogicalResource_FVO' + - description: This is the endpoint exposed by the IoT Device to authorized + users. + properties: + uri: + description: URI for using the data access API + format: uri + type: string + uriQueryFilter: + $ref: '#/components/schemas/DataFilterMap_FVO' + apiType: + type: string + type: object + DataAccessEndpoint_MVO: + allOf: + - $ref: '#/components/schemas/LogicalResource_MVO' + - description: This is the endpoint exposed by the IoT Device to authorized + users. + properties: + uri: + description: URI for using the data access API + format: uri + type: string + uriQueryFilter: + $ref: '#/components/schemas/DataFilterMap_MVO' + apiType: + type: string + type: object + DataFilterAttribute: + description: give an attribute used for filtering + discriminator: + mapping: + DataFilterAttributeStringArray: '#/components/schemas/DataFilterAttributeStringArray' + propertyName: '@type' + properties: + valueType: + description: Data type of the value of the attribute + type: string + type: object + DataFilterAttributeStringArray: + allOf: + - $ref: '#/components/schemas/DataFilterAttribute' + - description: An array of attribute names for filtering + properties: + value: + description: an array of field names + example: + - Dallas + - Houston + - Paris + items: + description: a field/attribute name + example: City + type: string + type: array + type: object + example: + valueType: valueType + value: + - Dallas + - Houston + - Paris + DataFilterMap: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: entity to Describe a given filter attributes/fields set using + a mapping by type/template. + properties: + mappings: + items: + $ref: '#/components/schemas/DataFilterMapItem' + type: array + type: object + discriminator: + mapping: + DataFilterMap: '#/components/schemas/DataFilterMap' + propertyName: '@type' + example: + mappings: + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + '@baseType': '@baseType' + '@type': '@type' + '@schemaLocation': '@schemaLocation' + DataFilterMapItem: + description: definition of a field used for filtering template with the associated + attributes. + example: + filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + properties: + filterTemplate: + $ref: '#/components/schemas/DataFilterTemplate' + stringArray: + $ref: '#/components/schemas/DataFilterAttributeStringArray' + type: object + DataFilterMapItem_FVO: + description: definition of a field used for filtering template with the associated + attributes. + properties: + filterTemplate: + $ref: '#/components/schemas/DataFilterTemplate_FVO' + stringArray: + $ref: '#/components/schemas/DataFilterAttributeStringArray' + type: object + DataFilterMapItem_MVO: + description: definition of a field used for filtering template with the associated + attributes. + properties: + filterTemplate: + $ref: '#/components/schemas/DataFilterTemplate_MVO' + stringArray: + $ref: '#/components/schemas/DataFilterAttributeStringArray' + type: object + DataFilterMap_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - description: entity to Describe a given filter attributes/fields set using + a mapping by type/template. + properties: + mappings: + items: + $ref: '#/components/schemas/DataFilterMapItem_FVO' + type: array + type: object + discriminator: + mapping: + DataFilterMap: '#/components/schemas/DataFilterMap_FVO' + propertyName: '@type' + DataFilterMap_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: entity to Describe a given filter attributes/fields set using + a mapping by type/template. + properties: + mappings: + items: + $ref: '#/components/schemas/DataFilterMapItem_MVO' + type: array + type: object + discriminator: + mapping: + DataFilterMap: '#/components/schemas/DataFilterMap_MVO' + propertyName: '@type' + DataFilterTemplate: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: |- + Abstract entity to Describe a given filter template, + a filter template can be used in two ways: + 1) as a straight filter definition + 2) as a way to specify the acceptable value for a field for filtering + properties: + id: + description: Unique identifier of this DataFilterTemplate + example: 6c088cf7f1bc + type: string + href: + description: Hyperlink reference to this DataFilterTemplate + example: https://host/dataFilerTemplate/6c088cf7f1bc + format: uri + type: string + name: + description: Name given to this DataFilterTemplate + type: string + description: + description: Description of this DataFilterTemplate + type: string + type: object + discriminator: + mapping: + DataFilterTemplate: '#/components/schemas/DataFilterTemplate' + propertyName: '@type' + example: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + DataFilterTemplate_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - description: |- + Abstract entity to Describe a given filter template, + a filter template can be used in two ways: + 1) as a straight filter definition + 2) as a way to specify the acceptable value for a field for filtering + properties: + name: + description: Name given to this DataFilterTemplate + type: string + description: + description: Description of this DataFilterTemplate + type: string + type: object + discriminator: + mapping: + DataFilterTemplate: '#/components/schemas/DataFilterTemplate_FVO' + propertyName: '@type' + DataFilterTemplate_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: |- + Abstract entity to Describe a given filter template, + a filter template can be used in two ways: + 1) as a straight filter definition + 2) as a way to specify the acceptable value for a field for filtering + properties: + id: + description: Unique identifier of this DataFilterTemplate + example: 6c088cf7f1bc + type: string + name: + description: Name given to this DataFilterTemplate + type: string + description: + description: Description of this DataFilterTemplate + type: string + type: object + discriminator: + mapping: + DataFilterTemplate: '#/components/schemas/DataFilterTemplate_MVO' + propertyName: '@type' + DayOfMonthRecurrence: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: "" + properties: + dates: + format: date-time + type: string + type: object + discriminator: + mapping: + DayOfMonthRecurrence: '#/components/schemas/DayOfMonthRecurrence' + propertyName: '@type' + DayOfMonthRecurrence_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - description: "" + properties: + dates: + format: date-time + type: string + type: object + discriminator: + mapping: + DayOfMonthRecurrence: '#/components/schemas/DayOfMonthRecurrence_FVO' + propertyName: '@type' + DayOfMonthRecurrence_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: "" + properties: + dates: + format: date-time + type: string + type: object + discriminator: + mapping: + DayOfMonthRecurrence: '#/components/schemas/DayOfMonthRecurrence_MVO' + propertyName: '@type' + DayOfWeekRecurrence: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: "" + properties: + dates: + format: date-time + type: string + type: object + discriminator: + mapping: + DayOfWeekRecurrence: '#/components/schemas/DayOfWeekRecurrence' + propertyName: '@type' + DayOfWeekRecurrence_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - description: "" + properties: + dates: + format: date-time + type: string + type: object + discriminator: + mapping: + DayOfWeekRecurrence: '#/components/schemas/DayOfWeekRecurrence_FVO' + propertyName: '@type' + DayOfWeekRecurrence_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: "" + properties: + dates: + format: date-time + type: string + type: object + discriminator: + mapping: + DayOfWeekRecurrence: '#/components/schemas/DayOfWeekRecurrence_MVO' + propertyName: '@type' + Duration: + description: A time interval in a given unit of time + properties: + amount: + description: "Time interval (number of seconds, minutes, hours, etc.)" + type: integer + units: + description: "Unit of time (seconds, minutes, hours, etc.)" + type: string + type: object + Entity: + allOf: + - $ref: '#/components/schemas/Extensible' + - $ref: '#/components/schemas/Addressable' + description: Base entity schema for use in TMForum Open-APIs. Property. + type: object + EntityRef: + allOf: + - $ref: '#/components/schemas/Extensible' + - $ref: '#/components/schemas/Addressable' + - description: Entity reference schema to be use for all entityRef class. + properties: + id: + description: The identifier of the referred entity. + type: string + href: + description: The URI of the referred entity. + type: string + name: + description: Name of the referred entity. + type: string + '@referredType': + description: The actual type of the target instance when needed for disambiguation. + type: string + required: + - id + type: object + EntityRef_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - $ref: '#/components/schemas/Addressable' + - description: Entity reference schema to be use for all entityRef class. + properties: + name: + description: Name of the referred entity. + type: string + '@referredType': + description: The actual type of the target instance when needed for disambiguation. + type: string + type: object + EntityRef_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - $ref: '#/components/schemas/Addressable' + - description: Entity reference schema to be use for all entityRef class. + properties: + id: + description: The identifier of the referred entity. + type: string + name: + description: Name of the referred entity. + type: string + '@referredType': + description: The actual type of the target instance when needed for disambiguation. + type: string + type: object + Entity_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + description: Base entity schema for use in TMForum Open-APIs. Property. + type: object + Event: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: event with common attributes. + properties: + href: + description: Hyperlink reference + type: string + id: + description: unique identifier + type: string + correlationId: + description: The correlation id for this event. + type: string + domain: + description: The domain of the event. + type: string + title: + description: The title of the event. + type: string + description: + description: An explanation of the event. + type: string + priority: + description: A priority. + type: string + timeOccurred: + description: The time the event occurred. + format: date-time + type: string + source: + $ref: '#/components/schemas/EntityRef' + reportingSystem: + $ref: '#/components/schemas/EntityRef' + relatedParty: + description: Collection of related parties + items: + $ref: '#/components/schemas/RelatedPartyRefOrPartyRoleRef' + type: array + analyticCharacteristic: + description: Collection of analytic characteristics + items: + $ref: '#/components/schemas/Characteristic' + type: array + eventId: + description: The identifier of the notification. + type: string + eventTime: + description: Time of the event occurrence. + format: date-time + type: string + eventType: + description: The type of the notification. + type: string + event: + $ref: '#/components/schemas/BaseEvent_allOf_event' + type: object + ExecutionStateType: + description: Possible values for the state of the execution + enum: + - acknowledged + - rejected + - pending + - inProgress + - cancelled + - completed + - failed + type: string + Extensible: + description: Base Extensible schema for use in TMForum Open-APIs - When used + for in a schema it means that the Entity described by the schema MUST be + extended with the @type + properties: + '@type': + description: "When sub-classing, this defines the sub-class Extensible name" + type: string + '@baseType': + description: "When sub-classing, this defines the super-class" + type: string + '@schemaLocation': + description: A URI to a JSON-Schema file that defines additional attributes + and relationships + type: string + required: + - '@type' + type: object + Extensible_FVO: + description: Base Extensible schema for use in TMForum Open-APIs - When used + for in a schema it means that the Entity described by the schema MUST be + extended with the @type + properties: + '@type': + description: "When sub-classing, this defines the sub-class Extensible name" + type: string + '@baseType': + description: "When sub-classing, this defines the super-class" + type: string + '@schemaLocation': + description: A URI to a JSON-Schema file that defines additional attributes + and relationships + type: string + required: + - '@type' + type: object + ExternalIdentifier: + allOf: + - $ref: '#/components/schemas/Extensible' + - 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." + properties: + owner: + description: Name of the external system that owns the entity. + example: MagentoCommerce + type: string + externalIdentifierType: + description: "Type of the identification, typically would be the type\ + \ of the entity within the external system" + example: ProductOrder + type: string + id: + description: identification of the entity within the external system. + type: string + type: object + discriminator: + mapping: + ExternalIdentifier: '#/components/schemas/ExternalIdentifier' + propertyName: '@type' + ExternalIdentifier_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - 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." + properties: + owner: + description: Name of the external system that owns the entity. + example: MagentoCommerce + type: string + externalIdentifierType: + description: "Type of the identification, typically would be the type\ + \ of the entity within the external system" + example: ProductOrder + type: string + type: object + discriminator: + mapping: + ExternalIdentifier: '#/components/schemas/ExternalIdentifier_FVO' + propertyName: '@type' + ExternalIdentifier_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - 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." + properties: + owner: + description: Name of the external system that owns the entity. + example: MagentoCommerce + type: string + externalIdentifierType: + description: "Type of the identification, typically would be the type\ + \ of the entity within the external system" + example: ProductOrder + type: string + id: + description: identification of the entity within the external system. + type: string + type: object + discriminator: + mapping: + ExternalIdentifier: '#/components/schemas/ExternalIdentifier_MVO' + propertyName: '@type' + Feature: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: Configuration feature. + properties: + isBundle: + description: True if this is a feature group. Default is false. + type: boolean + featureRelationship: + description: Collection of feature relationships + items: + $ref: '#/components/schemas/FeatureRelationship' + type: array + featureCharacteristic: + description: This is a list of Characteristics for a particular feature. + items: + $ref: '#/components/schemas/Characteristic' + type: array + policyConstraint: + description: Reference to manage a list of feature specification policy + constraints + items: + $ref: '#/components/schemas/PolicyRef' + type: array + isEnabled: + description: True if this feature is enabled. Default is true. + type: boolean + id: + description: unique identifier + type: string + name: + description: This is the name for the feature. + type: string + type: object + discriminator: + mapping: + Feature: '#/components/schemas/Feature' + propertyName: '@type' + FeatureRelationship: + allOf: + - $ref: '#/components/schemas/EntityRef' + - description: Configuration feature + properties: + relationshipType: + description: This is the type of the feature relationship. + enum: + - excluded + - includes + - may include + - requires + type: string + name: + description: This is the name of the target feature. + type: string + validFor: + $ref: '#/components/schemas/TimePeriod' + type: object + discriminator: + mapping: + FeatureRelationship: '#/components/schemas/FeatureRelationship' + propertyName: '@type' + FeatureRelationship_FVO: + allOf: + - $ref: '#/components/schemas/EntityRef_FVO' + - description: Configuration feature + properties: + relationshipType: + description: This is the type of the feature relationship. + enum: + - excluded + - includes + - may include + - requires + type: string + name: + description: This is the name of the target feature. + type: string + validFor: + $ref: '#/components/schemas/TimePeriod' + required: + - id + - relationshipType + type: object + discriminator: + mapping: + FeatureRelationship: '#/components/schemas/FeatureRelationship_FVO' + propertyName: '@type' + FeatureRelationship_MVO: + allOf: + - $ref: '#/components/schemas/EntityRef_MVO' + - description: Configuration feature + properties: + relationshipType: + description: This is the type of the feature relationship. + enum: + - excluded + - includes + - may include + - requires + type: string + name: + description: This is the name of the target feature. + type: string + validFor: + $ref: '#/components/schemas/TimePeriod' + required: + - id + - relationshipType + type: object + discriminator: + mapping: + FeatureRelationship: '#/components/schemas/FeatureRelationship_MVO' + propertyName: '@type' + Feature_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - description: Configuration feature. + properties: + isBundle: + description: True if this is a feature group. Default is false. + type: boolean + featureRelationship: + description: Collection of feature relationships + items: + $ref: '#/components/schemas/FeatureRelationship_FVO' + type: array + featureCharacteristic: + description: This is a list of Characteristics for a particular feature. + items: + $ref: '#/components/schemas/Characteristic_FVO' + type: array + policyConstraint: + description: Reference to manage a list of feature specification policy + constraints + items: + $ref: '#/components/schemas/PolicyRef_FVO' + type: array + isEnabled: + description: True if this feature is enabled. Default is true. + type: boolean + name: + description: This is the name for the feature. + type: string + type: object + discriminator: + mapping: + Feature: '#/components/schemas/Feature_FVO' + propertyName: '@type' + Feature_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: Configuration feature. + properties: + isBundle: + description: True if this is a feature group. Default is false. + type: boolean + featureRelationship: + description: Collection of feature relationships + items: + $ref: '#/components/schemas/FeatureRelationship_MVO' + type: array + featureCharacteristic: + description: This is a list of Characteristics for a particular feature. + items: + $ref: '#/components/schemas/Characteristic_MVO' + type: array + policyConstraint: + description: Reference to manage a list of feature specification policy + constraints + items: + $ref: '#/components/schemas/PolicyRef_MVO' + type: array + isEnabled: + description: True if this feature is enabled. Default is true. + type: boolean + id: + description: unique identifier + type: string + name: + description: This is the name for the feature. + type: string + required: + - name + type: object + discriminator: + mapping: + Feature: '#/components/schemas/Feature_MVO' + propertyName: '@type' + FileTransferData: + allOf: + - $ref: '#/components/schemas/ProtocolTransferData' + - $ref: '#/components/schemas/Extensible' + - description: "" + properties: + fileLocation: + format: uri + type: string + fileFormat: + type: string + compressionType: + $ref: '#/components/schemas/CompressionType' + retentionPeriod: + $ref: '#/components/schemas/Duration' + packingType: + $ref: '#/components/schemas/PackingType' + type: object + discriminator: + mapping: + FileTransferData: '#/components/schemas/FileTransferData' + propertyName: '@type' + FileTransferData_FVO: + allOf: + - $ref: '#/components/schemas/ProtocolTransferData_FVO' + - $ref: '#/components/schemas/Extensible_FVO' + - description: "" + properties: + fileLocation: + format: uri + type: string + fileFormat: + type: string + compressionType: + $ref: '#/components/schemas/CompressionType' + retentionPeriod: + $ref: '#/components/schemas/Duration' + packingType: + $ref: '#/components/schemas/PackingType' + type: object + discriminator: + mapping: + FileTransferData: '#/components/schemas/FileTransferData_FVO' + propertyName: '@type' + FileTransferData_MVO: + allOf: + - $ref: '#/components/schemas/ProtocolTransferData' + - $ref: '#/components/schemas/Extensible' + - description: "" + properties: + fileLocation: + format: uri + type: string + fileFormat: + type: string + compressionType: + $ref: '#/components/schemas/CompressionType' + retentionPeriod: + $ref: '#/components/schemas/Duration' + packingType: + $ref: '#/components/schemas/PackingType' + type: object + discriminator: + mapping: + FileTransferData: '#/components/schemas/FileTransferData_MVO' + propertyName: '@type' + Granularity: + description: Sampling rate of the collection or production of performance indicators. + enum: + - g_1mn + - g_5mn + - g_15mn + - g_30mn + - g_1h + - g_24h + - g_1m + - g_1y + - na + type: string + IndicatorType: + description: This is enumeration for Indicator Type + enum: + - string + - int + - float + - double + type: string + IntentRef: + allOf: + - $ref: '#/components/schemas/EntityRef' + description: "Intent reference, for when Intent is used by other entities" + discriminator: + mapping: + IntentRef: '#/components/schemas/IntentRef' + propertyName: '@type' + type: object + IntentRef_FVO: + allOf: + - $ref: '#/components/schemas/EntityRef_FVO' + description: "Intent reference, for when Intent is used by other entities" + discriminator: + mapping: + IntentRef: '#/components/schemas/IntentRef_FVO' + propertyName: '@type' + type: object + IntentRef_MVO: + allOf: + - $ref: '#/components/schemas/EntityRef_MVO' + description: "Intent reference, for when Intent is used by other entities" + discriminator: + mapping: + IntentRef: '#/components/schemas/IntentRef_MVO' + propertyName: '@type' + type: object + LogicalResource: + allOf: + - $ref: '#/components/schemas/Resource' + - 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." + properties: + value: + description: the value of the logical resource. E.g '0746712345' for MSISDN's + type: string + type: object + discriminator: + mapping: + DataAccessEndpoint: '#/components/schemas/DataAccessEndpoint' + propertyName: '@type' + LogicalResource_FVO: + allOf: + - $ref: '#/components/schemas/Resource_FVO' + - 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." + properties: + value: + description: the value of the logical resource. E.g '0746712345' for MSISDN's + type: string + type: object + discriminator: + mapping: + DataAccessEndpoint: '#/components/schemas/DataAccessEndpoint_FVO' + propertyName: '@type' + LogicalResource_MVO: + allOf: + - $ref: '#/components/schemas/Resource_MVO' + - 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." + properties: + value: + description: the value of the logical resource. E.g '0746712345' for MSISDN's + type: string + type: object + discriminator: + mapping: + DataAccessEndpoint: '#/components/schemas/DataAccessEndpoint_MVO' + propertyName: '@type' + ManagementJob: + allOf: + - $ref: '#/components/schemas/Entity' + - description: "" + properties: + adminState: + $ref: '#/components/schemas/AdministrativeState' + creationTime: + description: The measurement job creation time. + format: date-time + type: string + executionState: + $ref: '#/components/schemas/ExecutionStateType' + fileTransferData: + items: + $ref: '#/components/schemas/FileTransferData' + minItems: 0 + type: array + dataAccessEndpoint: + items: + $ref: '#/components/schemas/DataAccessEndpoint' + minItems: 0 + type: array + jobId: + description: The ID of the management job. + type: string + jobPriority: + default: 5 + description: "The priority of the management job. The way the management\ + \ application will use the JobPriority to schedule job execution is\ + \ application specific and outside the scope. Integer, limited to a\ + \ range of 1 to 10." + maximum: 10 + minimum: 1 + type: integer + lastModifiedTime: + description: The last time that a measurement job was modified. + format: date-time + type: string + scheduleDefinition: + items: + $ref: '#/components/schemas/ScheduleDefinition' + maxItems: 1 + type: array + type: object + discriminator: + mapping: + ManagementJob: '#/components/schemas/ManagementJob' + MeasurementJob: '#/components/schemas/MeasurementJob' + MeasurementCollectionJob: '#/components/schemas/MeasurementCollectionJob' + propertyName: '@type' + ManagementJob_FVO: + allOf: + - $ref: '#/components/schemas/Entity' + - description: "" + properties: + adminState: + $ref: '#/components/schemas/AdministrativeState' + creationTime: + description: The measurement job creation time. + format: date-time + type: string + executionState: + $ref: '#/components/schemas/ExecutionStateType' + fileTransferData: + items: + $ref: '#/components/schemas/FileTransferData_FVO' + minItems: 0 + type: array + dataAccessEndpoint: + items: + $ref: '#/components/schemas/DataAccessEndpoint_FVO' + minItems: 0 + type: array + jobId: + description: The ID of the management job. + type: string + jobPriority: + default: 5 + description: "The priority of the management job. The way the management\ + \ application will use the JobPriority to schedule job execution is\ + \ application specific and outside the scope. Integer, limited to a\ + \ range of 1 to 10." + maximum: 10 + minimum: 1 + type: integer + lastModifiedTime: + description: The last time that a measurement job was modified. + format: date-time + type: string + scheduleDefinition: + items: + $ref: '#/components/schemas/ScheduleDefinition_FVO' + maxItems: 1 + type: array + type: object + discriminator: + mapping: + ManagementJob: '#/components/schemas/ManagementJob_FVO' + MeasurementJob: '#/components/schemas/MeasurementJob_FVO' + MeasurementCollectionJob: '#/components/schemas/MeasurementCollectionJob_FVO' + propertyName: '@type' + ManagementJob_MVO: + allOf: + - $ref: '#/components/schemas/Entity' + - description: "" + properties: + fileTransferData: + items: + $ref: '#/components/schemas/FileTransferData_MVO' + minItems: 0 + type: array + dataAccessEndpoint: + items: + $ref: '#/components/schemas/DataAccessEndpoint_MVO' + minItems: 0 + type: array + scheduleDefinition: + items: + $ref: '#/components/schemas/ScheduleDefinition_MVO' + maxItems: 1 + type: array + type: object + discriminator: + mapping: + ManagementJob: '#/components/schemas/ManagementJob_MVO' + MeasurementJob: '#/components/schemas/MeasurementJob_MVO' + MeasurementCollectionJob: '#/components/schemas/MeasurementCollectionJob_MVO' + propertyName: '@type' + MeasurementCollectionJob: + allOf: + - $ref: '#/components/schemas/MeasurementJob' + - description: "Used to control the periodic collection of performance indicators,\ + \ implemented as a sub-entity of the PM Measurement Job." + properties: + outputFormat: + type: string + reportingPeriod: + $ref: '#/components/schemas/ReportingPeriod' + jobCollectionFilter: + $ref: '#/components/schemas/DataFilterMap' + searchTaskFilter: + $ref: '#/components/schemas/DataFilterMap' + jobOnDemand: + default: false + description: "True if the job is a single job to be executed immediately\ + \ in which case the reportingPeriod and scheduleDefinition would not\ + \ be applicable, false otherwise" + type: boolean + type: object + example: + reportingPeriod: null + jobOnDemand: false + jobCollectionFilter: + mappings: + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + '@baseType': '@baseType' + '@type': '@type' + '@schemaLocation': '@schemaLocation' + searchTaskFilter: + mappings: + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + '@baseType': '@baseType' + '@type': '@type' + '@schemaLocation': '@schemaLocation' + outputFormat: outputFormat + MeasurementCollectionJobAttributeValueChangeEvent: + allOf: + - $ref: '#/components/schemas/Event' + - description: MeasurementCollectionJobAttributeValueChangeEvent generic structure + properties: + event: + $ref: '#/components/schemas/MeasurementCollectionJobAttributeValueChangeEventPayload' + type: object + discriminator: + mapping: + MeasurementCollectionJobAttributeValueChangeEvent: '#/components/schemas/MeasurementCollectionJobAttributeValueChangeEvent' + propertyName: '@type' + example: + event: + measurementCollectionJob: + reportingPeriod: null + jobOnDemand: false + jobCollectionFilter: + mappings: + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + '@baseType': '@baseType' + '@type': '@type' + '@schemaLocation': '@schemaLocation' + searchTaskFilter: + mappings: + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + '@baseType': '@baseType' + '@type': '@type' + '@schemaLocation': '@schemaLocation' + outputFormat: outputFormat + MeasurementCollectionJobAttributeValueChangeEventPayload: + description: MeasurementCollectionJobAttributeValueChangeEventPayload generic + structure + example: + measurementCollectionJob: + reportingPeriod: null + jobOnDemand: false + jobCollectionFilter: + mappings: + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + '@baseType': '@baseType' + '@type': '@type' + '@schemaLocation': '@schemaLocation' + searchTaskFilter: + mappings: + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + '@baseType': '@baseType' + '@type': '@type' + '@schemaLocation': '@schemaLocation' + outputFormat: outputFormat + properties: + measurementCollectionJob: + $ref: '#/components/schemas/MeasurementCollectionJob' + type: object + MeasurementCollectionJobCreateEvent: + allOf: + - $ref: '#/components/schemas/Event' + - description: MeasurementCollectionJobCreateEvent generic structure + properties: + event: + $ref: '#/components/schemas/MeasurementCollectionJobCreateEventPayload' + type: object + discriminator: + mapping: + MeasurementCollectionJobCreateEvent: '#/components/schemas/MeasurementCollectionJobCreateEvent' + propertyName: '@type' + example: + event: + measurementCollectionJob: {} + MeasurementCollectionJobCreateEventPayload: + description: MeasurementCollectionJobCreateEventPayload generic structure + example: + measurementCollectionJob: {} + properties: + measurementCollectionJob: + $ref: '#/components/schemas/MeasurementCollectionJobRef' + type: object + MeasurementCollectionJobDeleteEvent: + allOf: + - $ref: '#/components/schemas/Event' + - description: MeasurementCollectionJobDeleteEvent generic structure + properties: + event: + $ref: '#/components/schemas/MeasurementCollectionJobDeleteEventPayload' + type: object + discriminator: + mapping: + MeasurementCollectionJobDeleteEvent: '#/components/schemas/MeasurementCollectionJobDeleteEvent' + propertyName: '@type' + example: + event: + measurementCollectionJob: + reportingPeriod: null + jobOnDemand: false + jobCollectionFilter: + mappings: + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + '@baseType': '@baseType' + '@type': '@type' + '@schemaLocation': '@schemaLocation' + searchTaskFilter: + mappings: + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + '@baseType': '@baseType' + '@type': '@type' + '@schemaLocation': '@schemaLocation' + outputFormat: outputFormat + MeasurementCollectionJobDeleteEventPayload: + description: MeasurementCollectionJobDeleteEventPayload generic structure + example: + measurementCollectionJob: + reportingPeriod: null + jobOnDemand: false + jobCollectionFilter: + mappings: + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + '@baseType': '@baseType' + '@type': '@type' + '@schemaLocation': '@schemaLocation' + searchTaskFilter: + mappings: + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + '@baseType': '@baseType' + '@type': '@type' + '@schemaLocation': '@schemaLocation' + outputFormat: outputFormat + properties: + measurementCollectionJob: + $ref: '#/components/schemas/MeasurementCollectionJob' + type: object + MeasurementCollectionJobExecutionStateChangeEvent: + allOf: + - $ref: '#/components/schemas/Event' + - description: MeasurementCollectionJobExecutionStateChangeEvent generic structure + properties: + event: + $ref: '#/components/schemas/MeasurementCollectionJobExecutionStateChangeEventPayload' + type: object + discriminator: + mapping: + MeasurementCollectionJobExecutionStateChangeEvent: '#/components/schemas/MeasurementCollectionJobExecutionStateChangeEvent' + propertyName: '@type' + example: + event: + measurementCollectionJob: + reportingPeriod: null + jobOnDemand: false + jobCollectionFilter: + mappings: + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + '@baseType': '@baseType' + '@type': '@type' + '@schemaLocation': '@schemaLocation' + searchTaskFilter: + mappings: + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + '@baseType': '@baseType' + '@type': '@type' + '@schemaLocation': '@schemaLocation' + outputFormat: outputFormat + MeasurementCollectionJobExecutionStateChangeEventPayload: + description: MeasurementCollectionJobExecutionStateChangeEventPayload generic + structure + example: + measurementCollectionJob: + reportingPeriod: null + jobOnDemand: false + jobCollectionFilter: + mappings: + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + '@baseType': '@baseType' + '@type': '@type' + '@schemaLocation': '@schemaLocation' + searchTaskFilter: + mappings: + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + '@baseType': '@baseType' + '@type': '@type' + '@schemaLocation': '@schemaLocation' + outputFormat: outputFormat + properties: + measurementCollectionJob: + $ref: '#/components/schemas/MeasurementCollectionJob' + type: object + MeasurementCollectionJobFilesPreparationErrorEvent: + allOf: + - $ref: '#/components/schemas/Event' + - description: MeasurementCollectionJobFilesPreparationErrorEvent generic structure + properties: + event: + $ref: '#/components/schemas/MeasurementCollectionJobFilesPreparationErrorEventPayload' + type: object + discriminator: + mapping: + MeasurementCollectionJobFilesPreparationErrorEvent: '#/components/schemas/MeasurementCollectionJobFilesPreparationErrorEvent' + propertyName: '@type' + example: + event: + measurementCollectionJob: + reportingPeriod: null + jobOnDemand: false + jobCollectionFilter: + mappings: + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + '@baseType': '@baseType' + '@type': '@type' + '@schemaLocation': '@schemaLocation' + searchTaskFilter: + mappings: + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + '@baseType': '@baseType' + '@type': '@type' + '@schemaLocation': '@schemaLocation' + outputFormat: outputFormat + MeasurementCollectionJobFilesPreparationErrorEventPayload: + description: MeasurementCollectionJobFilesPreparationErrorEventPayload generic + structure + example: + measurementCollectionJob: + reportingPeriod: null + jobOnDemand: false + jobCollectionFilter: + mappings: + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + '@baseType': '@baseType' + '@type': '@type' + '@schemaLocation': '@schemaLocation' + searchTaskFilter: + mappings: + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + '@baseType': '@baseType' + '@type': '@type' + '@schemaLocation': '@schemaLocation' + outputFormat: outputFormat + properties: + measurementCollectionJob: + $ref: '#/components/schemas/MeasurementCollectionJob' + type: object + MeasurementCollectionJobFilesReadyEvent: + allOf: + - $ref: '#/components/schemas/Event' + - description: MeasurementCollectionJobFilesReadyEvent generic structure + properties: + event: + $ref: '#/components/schemas/MeasurementCollectionJobFilesReadyEventPayload' + type: object + discriminator: + mapping: + MeasurementCollectionJobFilesReadyEvent: '#/components/schemas/MeasurementCollectionJobFilesReadyEvent' + propertyName: '@type' + example: + event: + measurementCollectionJob: + reportingPeriod: null + jobOnDemand: false + jobCollectionFilter: + mappings: + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + '@baseType': '@baseType' + '@type': '@type' + '@schemaLocation': '@schemaLocation' + searchTaskFilter: + mappings: + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + '@baseType': '@baseType' + '@type': '@type' + '@schemaLocation': '@schemaLocation' + outputFormat: outputFormat + MeasurementCollectionJobFilesReadyEventPayload: + description: MeasurementCollectionJobFilesReadyEventPayload generic structure + example: + measurementCollectionJob: + reportingPeriod: null + jobOnDemand: false + jobCollectionFilter: + mappings: + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + '@baseType': '@baseType' + '@type': '@type' + '@schemaLocation': '@schemaLocation' + searchTaskFilter: + mappings: + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + - filterTemplate: + '@baseType': '@baseType' + '@type': '@type' + name: name + description: description + id: 6c088cf7f1bc + href: https://host/dataFilerTemplate/6c088cf7f1bc + '@schemaLocation': '@schemaLocation' + stringArray: + valueType: valueType + value: + - Dallas + - Houston + - Paris + '@baseType': '@baseType' + '@type': '@type' + '@schemaLocation': '@schemaLocation' + outputFormat: outputFormat + properties: + measurementCollectionJob: + $ref: '#/components/schemas/MeasurementCollectionJob' + type: object + MeasurementCollectionJobRef: + allOf: + - $ref: '#/components/schemas/EntityRef' + description: Reference to a MeasurementCollectionJob + discriminator: + mapping: + MeasurementCollectionJobRef: '#/components/schemas/MeasurementCollectionJobRef' + propertyName: '@type' + example: {} + type: object + MeasurementCollectionJob_FVO: + allOf: + - $ref: '#/components/schemas/MeasurementJob_FVO' + - description: "Used to control the periodic collection of performance indicators,\ + \ implemented as a sub-entity of the PM Measurement Job." + properties: + outputFormat: + type: string + reportingPeriod: + $ref: '#/components/schemas/ReportingPeriod' + jobCollectionFilter: + $ref: '#/components/schemas/DataFilterMap_FVO' + searchTaskFilter: + $ref: '#/components/schemas/DataFilterMap_FVO' + jobOnDemand: + default: false + description: "True if the job is a single job to be executed immediately\ + \ in which case the reportingPeriod and scheduleDefinition would not\ + \ be applicable, false otherwise" + type: boolean + type: object + MeasurementCollectionJob_MVO: + allOf: + - $ref: '#/components/schemas/MeasurementJob_MVO' + - description: "Used to control the periodic collection of performance indicators,\ + \ implemented as a sub-entity of the PM Measurement Job." + properties: + outputFormat: + type: string + reportingPeriod: + $ref: '#/components/schemas/ReportingPeriod' + jobCollectionFilter: + $ref: '#/components/schemas/DataFilterMap_MVO' + searchTaskFilter: + $ref: '#/components/schemas/DataFilterMap_MVO' + jobOnDemand: + default: false + description: "True if the job is a single job to be executed immediately\ + \ in which case the reportingPeriod and scheduleDefinition would not\ + \ be applicable, false otherwise" + type: boolean + type: object + MeasurementJob: + allOf: + - $ref: '#/components/schemas/ManagementJob' + - description: "A PM measurement job is the administrative entity defined by\ + \ a client application to perform a periodic activity related to PM data.\ + \ The PM activities may be production of measurements, collection of measurements\ + \ or PM objective monitoring (scheduled evaluation of thresholds)." + properties: + consumingApplicationId: + description: The identifier of the application that consumes performance + indicators. + type: string + producingApplicationId: + description: The identifier of the application that produces performance + indicators. + type: string + granularity: + $ref: '#/components/schemas/Granularity' + performanceIndicatorGroupSpecification: + items: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification' + minItems: 0 + type: array + performanceIndicatorSpecification: + items: + $ref: '#/components/schemas/PerformanceIndicatorSpecificationRefOrValue' + minItems: 0 + type: array + trackingRecord: + items: + $ref: '#/components/schemas/TrackingRecord' + minItems: 0 + type: array + monitoredInstancesCriteria: + $ref: '#/components/schemas/MonitoredInstancesCriteria' + monitoredClassCriteria: + $ref: '#/components/schemas/MonitoredClassCriteria' + type: object + discriminator: + mapping: + MeasurementCollectionJob: '#/components/schemas/MeasurementCollectionJob' + propertyName: '@type' + MeasurementJob_FVO: + allOf: + - $ref: '#/components/schemas/ManagementJob_FVO' + - description: "A PM measurement job is the administrative entity defined by\ + \ a client application to perform a periodic activity related to PM data.\ + \ The PM activities may be production of measurements, collection of measurements\ + \ or PM objective monitoring (scheduled evaluation of thresholds)." + properties: + consumingApplicationId: + description: The identifier of the application that consumes performance + indicators. + type: string + producingApplicationId: + description: The identifier of the application that produces performance + indicators. + type: string + granularity: + $ref: '#/components/schemas/Granularity' + performanceIndicatorGroupSpecification: + items: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification_FVO' + minItems: 0 + type: array + performanceIndicatorSpecification: + items: + $ref: '#/components/schemas/PerformanceIndicatorSpecificationRefOrValue_FVO' + minItems: 0 + type: array + trackingRecord: + items: + $ref: '#/components/schemas/TrackingRecord_FVO' + minItems: 0 + type: array + monitoredInstancesCriteria: + $ref: '#/components/schemas/MonitoredInstancesCriteria_FVO' + monitoredClassCriteria: + $ref: '#/components/schemas/MonitoredClassCriteria_FVO' + required: + - consumingApplicationId + - performanceIndicatorSpecification + - producingApplicationId + type: object + discriminator: + mapping: + MeasurementCollectionJob: '#/components/schemas/MeasurementCollectionJob_FVO' + propertyName: '@type' + MeasurementJob_MVO: + allOf: + - $ref: '#/components/schemas/ManagementJob_MVO' + - description: "A PM measurement job is the administrative entity defined by\ + \ a client application to perform a periodic activity related to PM data.\ + \ The PM activities may be production of measurements, collection of measurements\ + \ or PM objective monitoring (scheduled evaluation of thresholds)." + properties: + consumingApplicationId: + description: The identifier of the application that consumes performance + indicators. + type: string + producingApplicationId: + description: The identifier of the application that produces performance + indicators. + type: string + granularity: + $ref: '#/components/schemas/Granularity' + performanceIndicatorGroupSpecification: + items: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification_MVO' + minItems: 0 + type: array + performanceIndicatorSpecification: + items: + $ref: '#/components/schemas/PerformanceIndicatorSpecificationRefOrValue_MVO' + minItems: 0 + type: array + trackingRecord: + items: + $ref: '#/components/schemas/TrackingRecord_MVO' + minItems: 0 + type: array + type: object + discriminator: + mapping: + MeasurementCollectionJob: '#/components/schemas/MeasurementCollectionJob_MVO' + propertyName: '@type' + MonitoredClassCriteria: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: Specifies a monitored object class (a string) in conjunction + with a filter object. + properties: + monitoredObjectClass: + description: A monitored object class for specifying the set of instances + that are referenced by a PM query. + type: string + objectInstanceFilter: + description: A filter that can be used in conjunction with the monitored + object class for specifying the set of instances that are referenced + by a PM query. + type: string + type: object + discriminator: + mapping: + MonitoredClassCriteria: '#/components/schemas/MonitoredClassCriteria' + propertyName: '@type' + MonitoredClassCriteria_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - description: Specifies a monitored object class (a string) in conjunction + with a filter object. + properties: + monitoredObjectClass: + description: A monitored object class for specifying the set of instances + that are referenced by a PM query. + type: string + objectInstanceFilter: + description: A filter that can be used in conjunction with the monitored + object class for specifying the set of instances that are referenced + by a PM query. + type: string + type: object + discriminator: + mapping: + MonitoredClassCriteria: '#/components/schemas/MonitoredClassCriteria_FVO' + propertyName: '@type' + MonitoredInstancesCriteria: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: List of monitored instances + properties: + monitoredObjectInstances: + items: + type: string + minItems: 0 + type: array + type: object + discriminator: + mapping: + MonitoredInstancesCriteria: '#/components/schemas/MonitoredInstancesCriteria' + propertyName: '@type' + MonitoredInstancesCriteria_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - description: List of monitored instances + properties: + monitoredObjectInstances: + items: + type: string + minItems: 0 + type: array + type: object + discriminator: + mapping: + MonitoredInstancesCriteria: '#/components/schemas/MonitoredInstancesCriteria_FVO' + propertyName: '@type' + MonthlyScheduleDayOfWeekDefinition: + allOf: + - $ref: '#/components/schemas/Extensible' + - properties: + dayOfMonthRecurrence: + items: + $ref: '#/components/schemas/DayOfMonthRecurrence' + type: array + recurringDaySequence: + type: string + type: object + discriminator: + mapping: + MonthlyScheduleDayOfWeekDefinition: '#/components/schemas/MonthlyScheduleDayOfWeekDefinition' + propertyName: '@type' + MonthlyScheduleDayOfWeekDefinition_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - properties: + dayOfMonthRecurrence: + items: + $ref: '#/components/schemas/DayOfMonthRecurrence_FVO' + type: array + recurringDaySequence: + type: string + type: object + discriminator: + mapping: + MonthlyScheduleDayOfWeekDefinition: '#/components/schemas/MonthlyScheduleDayOfWeekDefinition_FVO' + propertyName: '@type' + MonthlyScheduleDayOfWeekDefinition_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - properties: + dayOfMonthRecurrence: + items: + $ref: '#/components/schemas/DayOfMonthRecurrence_MVO' + type: array + recurringDaySequence: + type: string + type: object + discriminator: + mapping: + MonthlyScheduleDayOfWeekDefinition: '#/components/schemas/MonthlyScheduleDayOfWeekDefinition_MVO' + propertyName: '@type' + Note: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: Extra information about a given entity + properties: + id: + description: Identifier of the note within its containing entity + example: afa9-3d90aaa8da0f + type: string + author: + description: Author of the note + example: Mr. N. Bene + type: string + date: + description: Date of the note + example: 2020-11-20T08:00:00Z + format: date-time + type: string + text: + description: Text of the note + example: This is important + type: string + type: object + discriminator: + mapping: + Note: '#/components/schemas/Note' + propertyName: '@type' + Note_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - description: Extra information about a given entity + properties: + author: + description: Author of the note + example: Mr. N. Bene + type: string + date: + description: Date of the note + example: 2020-11-20T08:00:00Z + format: date-time + type: string + text: + description: Text of the note + example: This is important + type: string + type: object + discriminator: + mapping: + Note: '#/components/schemas/Note_FVO' + propertyName: '@type' + Note_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: Extra information about a given entity + properties: + id: + description: Identifier of the note within its containing entity + example: afa9-3d90aaa8da0f + type: string + author: + description: Author of the note + example: Mr. N. Bene + type: string + date: + description: Date of the note + example: 2020-11-20T08:00:00Z + format: date-time + type: string + text: + description: Text of the note + example: This is important + type: string + type: object + discriminator: + mapping: + Note: '#/components/schemas/Note_MVO' + propertyName: '@type' + OrderItemActionType: + description: action to be performed on the product + enum: + - add + - modify + - delete + - noChange + type: string + PackingEnumType: + description: Enumeration of supported packing/packaging. All extensions allowed. + enum: + - NO_PACKING + - GZIP + - TAR + - VENDOR_EXT + - MINOR_EXT + type: string + PackingType: + description: Specify if the output file(s) are to be packed. + properties: + packingEnumType: + $ref: '#/components/schemas/PackingEnumType' + type: object + PartyRef: + allOf: + - $ref: '#/components/schemas/EntityRef' + description: A Party reference + discriminator: + mapping: + PartyRef: '#/components/schemas/PartyRef' + propertyName: '@type' + type: object + PartyRefOrPartyRoleRef: + description: "" + discriminator: + mapping: + PartyRef: '#/components/schemas/PartyRef' + PartyRoleRef: '#/components/schemas/PartyRoleRef' + propertyName: '@type' + oneOf: + - $ref: '#/components/schemas/PartyRef' + - $ref: '#/components/schemas/PartyRoleRef' + type: object + x-one-of-name: PartyRefOrPartyRoleRef + PartyRefOrPartyRoleRef_FVO: + description: "" + discriminator: + mapping: + PartyRef: '#/components/schemas/PartyRef_FVO' + PartyRoleRef: '#/components/schemas/PartyRoleRef_FVO' + propertyName: '@type' + oneOf: + - $ref: '#/components/schemas/PartyRef_FVO' + - $ref: '#/components/schemas/PartyRoleRef_FVO' + type: object + x-one-of-name: PartyRefOrPartyRoleRefFVO + PartyRefOrPartyRoleRef_MVO: + description: "" + discriminator: + mapping: + PartyRef: '#/components/schemas/PartyRef_MVO' + PartyRoleRef: '#/components/schemas/PartyRoleRef_MVO' + propertyName: '@type' + oneOf: + - $ref: '#/components/schemas/PartyRef_MVO' + - $ref: '#/components/schemas/PartyRoleRef_MVO' + type: object + x-one-of-name: PartyRefOrPartyRoleRefMVO + PartyRef_FVO: + allOf: + - $ref: '#/components/schemas/EntityRef_FVO' + description: A Party reference + discriminator: + mapping: + PartyRef: '#/components/schemas/PartyRef_FVO' + propertyName: '@type' + type: object + PartyRef_MVO: + allOf: + - $ref: '#/components/schemas/EntityRef_MVO' + description: A Party reference + discriminator: + mapping: + PartyRef: '#/components/schemas/PartyRef_MVO' + propertyName: '@type' + type: object + PartyRoleRef: + allOf: + - $ref: '#/components/schemas/EntityRef' + - description: Party role reference. A party role represents the part played + by a party in a given context. + properties: + partyId: + description: The identifier of the engaged party that is linked to the + PartyRole object. + type: string + partyName: + description: The name of the engaged party that is linked to the PartyRole + object. + type: string + type: object + discriminator: + mapping: + PartyRoleRef: '#/components/schemas/PartyRoleRef' + propertyName: '@type' + PartyRoleRef_FVO: + allOf: + - $ref: '#/components/schemas/EntityRef_FVO' + - description: Party role reference. A party role represents the part played + by a party in a given context. + properties: + partyId: + description: The identifier of the engaged party that is linked to the + PartyRole object. + type: string + partyName: + description: The name of the engaged party that is linked to the PartyRole + object. + type: string + type: object + discriminator: + mapping: + PartyRoleRef: '#/components/schemas/PartyRoleRef_FVO' + propertyName: '@type' + PartyRoleRef_MVO: + allOf: + - $ref: '#/components/schemas/EntityRef_MVO' + - description: Party role reference. A party role represents the part played + by a party in a given context. + properties: + partyId: + description: The identifier of the engaged party that is linked to the + PartyRole object. + type: string + partyName: + description: The name of the engaged party that is linked to the PartyRole + object. + type: string + type: object + discriminator: + mapping: + PartyRoleRef: '#/components/schemas/PartyRoleRef_MVO' + propertyName: '@type' + PerformanceIndicatorGroupSpecification: + allOf: + - $ref: '#/components/schemas/Extensible' + - $ref: '#/components/schemas/Addressable' + - description: "" + properties: + name: + description: "A word, term, or phrase by which a PerformanceIndicatorGroupSpecification\ + \ is tagged." + type: string + groupCategory: + description: "A grouping or set of PerformanceIndicatorGroupSpecifications\ + \ that are classified together because of common characteristics, such\ + \ as technology specific, service specific, or technology/service independent." + type: string + performanceIndicatorSpecification: + items: + $ref: '#/components/schemas/PerformanceIndicatorSpecificationRefOrValue' + minItems: 1 + type: array + type: object + discriminator: + mapping: + PerformanceIndicatorGroupSpecification: '#/components/schemas/PerformanceIndicatorGroupSpecification' + propertyName: '@type' + example: + '@baseType': '@baseType' + '@type': '@type' + groupCategory: groupCategory + name: name + href: href + id: id + '@schemaLocation': '@schemaLocation' + performanceIndicatorSpecification: + - version: version + - version: version + PerformanceIndicatorGroupSpecificationRef: + allOf: + - $ref: '#/components/schemas/EntityRef' + - description: "PerformanceIndicatorGroupSpecification reference: A PerformanceIndicatorGroupSpecification\ + \ is a group of detailed description of a tangible or intangible object\ + \ made available externally in the form of a PerformanceIndicatorGroupSpecification\ + \ to customers or other parties playing a party role." + properties: + version: + description: Version of the performance indicator group specification + type: string + type: object + discriminator: + mapping: + PerformanceIndicatorGroupSpecificationRef: '#/components/schemas/PerformanceIndicatorGroupSpecificationRef' + propertyName: '@type' + PerformanceIndicatorGroupSpecificationRefOrValue: + 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" + discriminator: + mapping: + PerformanceIndicatorGroupSpecificationRef: '#/components/schemas/PerformanceIndicatorGroupSpecificationRef' + PerformanceIndicatorGroupSpecification: '#/components/schemas/PerformanceIndicatorGroupSpecification' + propertyName: '@type' + oneOf: + - $ref: '#/components/schemas/PerformanceIndicatorGroupSpecificationRef' + - $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification' + type: object + x-one-of-name: PerformanceIndicatorGroupSpecificationRefOrValue + PerformanceIndicatorGroupSpecification_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - $ref: '#/components/schemas/Addressable_FVO' + - description: "" + properties: + name: + description: "A word, term, or phrase by which a PerformanceIndicatorGroupSpecification\ + \ is tagged." + type: string + groupCategory: + description: "A grouping or set of PerformanceIndicatorGroupSpecifications\ + \ that are classified together because of common characteristics, such\ + \ as technology specific, service specific, or technology/service independent." + type: string + performanceIndicatorSpecification: + items: + $ref: '#/components/schemas/PerformanceIndicatorSpecificationRefOrValue_FVO' + minItems: 1 + type: array + required: + - groupCategory + - name + type: object + discriminator: + mapping: + PerformanceIndicatorGroupSpecification: '#/components/schemas/PerformanceIndicatorGroupSpecification_FVO' + propertyName: '@type' + PerformanceIndicatorGroupSpecification_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - $ref: '#/components/schemas/Addressable_MVO' + - description: "" + properties: + name: + description: "A word, term, or phrase by which a PerformanceIndicatorGroupSpecification\ + \ is tagged." + type: string + groupCategory: + description: "A grouping or set of PerformanceIndicatorGroupSpecifications\ + \ that are classified together because of common characteristics, such\ + \ as technology specific, service specific, or technology/service independent." + type: string + performanceIndicatorSpecification: + items: + $ref: '#/components/schemas/PerformanceIndicatorSpecificationRefOrValue_MVO' + minItems: 1 + type: array + type: object + discriminator: + mapping: + PerformanceIndicatorGroupSpecification: '#/components/schemas/PerformanceIndicatorGroupSpecification_MVO' + propertyName: '@type' + PerformanceIndicatorGroupValue: + description: A value of a performance indicator. + properties: + performanceIndicatorGroupSpecification: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecificationRefOrValue' + observedGroupValue: + description: The measurement group (array) values + items: + $ref: '#/components/schemas/PerformanceIndicatorValue' + minItems: 1 + type: array + tag: + description: The optional tag object attached to this observed group value + type: object + type: object + PerformanceIndicatorSpecRelationship: + allOf: + - $ref: '#/components/schemas/Entity' + - description: "Type of relationship such as aggregation, migration, substitution,\ + \ dependency, exclusivity" + properties: + relationshipType: + description: "" + type: string + role: + description: The association role for this service specification + type: string + validFor: + $ref: '#/components/schemas/TimePeriod' + type: object + discriminator: + mapping: + PerformanceIndicatorSpecRelationship: '#/components/schemas/PerformanceIndicatorSpecRelationship' + propertyName: '@type' + example: + role: role + relationshipType: relationshipType + validFor: + startDateTime: 1985-04-12T23:20:50.52Z + endDateTime: 1985-04-12T23:20:50.52Z + PerformanceIndicatorSpecRelationship_FVO: + allOf: + - $ref: '#/components/schemas/Entity' + - description: "Type of relationship such as aggregation, migration, substitution,\ + \ dependency, exclusivity" + properties: + relationshipType: + description: "" + type: string + role: + description: The association role for this service specification + type: string + validFor: + $ref: '#/components/schemas/TimePeriod' + required: + - relationshipType + - validFor + type: object + discriminator: + mapping: + PerformanceIndicatorSpecRelationship: '#/components/schemas/PerformanceIndicatorSpecRelationship_FVO' + propertyName: '@type' + PerformanceIndicatorSpecRelationship_MVO: + allOf: + - $ref: '#/components/schemas/Entity' + - description: "Type of relationship such as aggregation, migration, substitution,\ + \ dependency, exclusivity" + properties: + relationshipType: + description: "" + type: string + role: + description: The association role for this service specification + type: string + validFor: + $ref: '#/components/schemas/TimePeriod' + type: object + discriminator: + mapping: + PerformanceIndicatorSpecRelationship: '#/components/schemas/PerformanceIndicatorSpecRelationship_MVO' + propertyName: '@type' + PerformanceIndicatorSpecification: + allOf: + - $ref: '#/components/schemas/Entity' + - description: "Holds the definition of the requested Performance indicator\ + \ including: its name, value type, collection type, description and units." + properties: + name: + description: "A word, term, or phrase by which a PerformanceIndicatorSpecification\ + \ is known and distinguished from other PerformanceIndicatorSpecifications." + type: string + description: + description: A narrative that explains in detail what the PerformanceIndicatorSpecification + is. + type: string + perspective: + description: "The point of view for the PerformanceIndicatorSpecification,\ + \ such as a single user instance or aggregation." + type: string + indicatorCategory: + description: "A grouping or set of PerformanceIndicatorSpecifications\ + \ that are classified together because of common characteristics, such\ + \ as technology specific, service specific, or technology/service independent." + type: string + indicatorType: + $ref: '#/components/schemas/IndicatorType' + derivationAlgorithm: + description: A step-by-step procedure used to calculate the value of PerformanceIndicator. + type: string + derivationMethod: + description: "For simple calculations, the method used to calculate the\ + \ value of a PerformanceIndicator, such as average, minimum, maximum,\ + \ sum and so forth." + type: string + validFor: + $ref: '#/components/schemas/TimePeriod' + collectionType: + $ref: '#/components/schemas/CollectionType' + indicatorUnit: + description: "The unit by which the indicator is measured. For example,\ + \ seconds, KBs, rate per second, etc." + type: string + performanceIndicatorSpecRelationship: + items: + $ref: '#/components/schemas/PerformanceIndicatorSpecRelationship' + minItems: 0 + type: array + type: object + discriminator: + mapping: + PerformanceIndicatorSpecification: '#/components/schemas/PerformanceIndicatorSpecification' + propertyName: '@type' + example: + derivationAlgorithm: derivationAlgorithm + collectionType: null + derivationMethod: derivationMethod + performanceIndicatorSpecRelationship: + - role: role + relationshipType: relationshipType + validFor: + startDateTime: 1985-04-12T23:20:50.52Z + endDateTime: 1985-04-12T23:20:50.52Z + - role: role + relationshipType: relationshipType + validFor: + startDateTime: 1985-04-12T23:20:50.52Z + endDateTime: 1985-04-12T23:20:50.52Z + indicatorType: null + validFor: + startDateTime: 1985-04-12T23:20:50.52Z + endDateTime: 1985-04-12T23:20:50.52Z + name: name + description: description + perspective: perspective + indicatorCategory: indicatorCategory + indicatorUnit: indicatorUnit + PerformanceIndicatorSpecificationRef: + allOf: + - $ref: '#/components/schemas/EntityRef' + - description: "PerformanceIndicatorSpecification reference: A PerformanceIndicatorSpecification\ + \ is a detailed description of a tangible or intangible object made available\ + \ externally in the form of a PerformanceIndicatorSpecification to customers\ + \ or other parties playing a party role." + properties: + version: + description: Version of the performance indicator specification + type: string + type: object + discriminator: + mapping: + PerformanceIndicatorSpecificationRef: '#/components/schemas/PerformanceIndicatorSpecificationRef' + propertyName: '@type' + example: + version: version + PerformanceIndicatorSpecificationRefOrValue: + 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" + discriminator: + mapping: + PerformanceIndicatorSpecificationRef: '#/components/schemas/PerformanceIndicatorSpecificationRef' + PerformanceIndicatorSpecification: '#/components/schemas/PerformanceIndicatorSpecification' + propertyName: '@type' + oneOf: + - $ref: '#/components/schemas/PerformanceIndicatorSpecificationRef' + - $ref: '#/components/schemas/PerformanceIndicatorSpecification' + type: object + x-one-of-name: PerformanceIndicatorSpecificationRefOrValue + PerformanceIndicatorSpecificationRefOrValue_FVO: + 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" + discriminator: + mapping: + PerformanceIndicatorSpecificationRef: '#/components/schemas/PerformanceIndicatorSpecificationRef_FVO' + PerformanceIndicatorSpecification: '#/components/schemas/PerformanceIndicatorSpecification_FVO' + propertyName: '@type' + oneOf: + - $ref: '#/components/schemas/PerformanceIndicatorSpecificationRef_FVO' + - $ref: '#/components/schemas/PerformanceIndicatorSpecification_FVO' + type: object + x-one-of-name: PerformanceIndicatorSpecificationRefOrValueFVO + PerformanceIndicatorSpecificationRefOrValue_MVO: + 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" + discriminator: + mapping: + PerformanceIndicatorSpecificationRef: '#/components/schemas/PerformanceIndicatorSpecificationRef_MVO' + PerformanceIndicatorSpecification: '#/components/schemas/PerformanceIndicatorSpecification_MVO' + propertyName: '@type' + oneOf: + - $ref: '#/components/schemas/PerformanceIndicatorSpecificationRef_MVO' + - $ref: '#/components/schemas/PerformanceIndicatorSpecification_MVO' + type: object + x-one-of-name: PerformanceIndicatorSpecificationRefOrValueMVO + PerformanceIndicatorSpecificationRef_FVO: + allOf: + - $ref: '#/components/schemas/EntityRef_FVO' + - description: "PerformanceIndicatorSpecification reference: A PerformanceIndicatorSpecification\ + \ is a detailed description of a tangible or intangible object made available\ + \ externally in the form of a PerformanceIndicatorSpecification to customers\ + \ or other parties playing a party role." + properties: + version: + description: Version of the performance indicator specification + type: string + type: object + discriminator: + mapping: + PerformanceIndicatorSpecificationRef: '#/components/schemas/PerformanceIndicatorSpecificationRef_FVO' + propertyName: '@type' + PerformanceIndicatorSpecificationRef_MVO: + allOf: + - $ref: '#/components/schemas/EntityRef_MVO' + - description: "PerformanceIndicatorSpecification reference: A PerformanceIndicatorSpecification\ + \ is a detailed description of a tangible or intangible object made available\ + \ externally in the form of a PerformanceIndicatorSpecification to customers\ + \ or other parties playing a party role." + properties: + version: + description: Version of the performance indicator specification + type: string + type: object + discriminator: + mapping: + PerformanceIndicatorSpecificationRef: '#/components/schemas/PerformanceIndicatorSpecificationRef_MVO' + propertyName: '@type' + PerformanceIndicatorSpecification_FVO: + allOf: + - $ref: '#/components/schemas/Entity' + - description: "Holds the definition of the requested Performance indicator\ + \ including: its name, value type, collection type, description and units." + properties: + name: + description: "A word, term, or phrase by which a PerformanceIndicatorSpecification\ + \ is known and distinguished from other PerformanceIndicatorSpecifications." + type: string + description: + description: A narrative that explains in detail what the PerformanceIndicatorSpecification + is. + type: string + perspective: + description: "The point of view for the PerformanceIndicatorSpecification,\ + \ such as a single user instance or aggregation." + type: string + indicatorCategory: + description: "A grouping or set of PerformanceIndicatorSpecifications\ + \ that are classified together because of common characteristics, such\ + \ as technology specific, service specific, or technology/service independent." + type: string + indicatorType: + $ref: '#/components/schemas/IndicatorType' + derivationAlgorithm: + description: A step-by-step procedure used to calculate the value of PerformanceIndicator. + type: string + derivationMethod: + description: "For simple calculations, the method used to calculate the\ + \ value of a PerformanceIndicator, such as average, minimum, maximum,\ + \ sum and so forth." + type: string + validFor: + $ref: '#/components/schemas/TimePeriod' + collectionType: + $ref: '#/components/schemas/CollectionType' + indicatorUnit: + description: "The unit by which the indicator is measured. For example,\ + \ seconds, KBs, rate per second, etc." + type: string + performanceIndicatorSpecRelationship: + items: + $ref: '#/components/schemas/PerformanceIndicatorSpecRelationship_FVO' + minItems: 0 + type: array + required: + - collectionType + - indicatorCategory + - indicatorType + - indicatorUnit + - name + type: object + discriminator: + mapping: + PerformanceIndicatorSpecification: '#/components/schemas/PerformanceIndicatorSpecification_FVO' + propertyName: '@type' + PerformanceIndicatorSpecification_MVO: + allOf: + - $ref: '#/components/schemas/Entity' + - description: "Holds the definition of the requested Performance indicator\ + \ including: its name, value type, collection type, description and units." + properties: + name: + description: "A word, term, or phrase by which a PerformanceIndicatorSpecification\ + \ is known and distinguished from other PerformanceIndicatorSpecifications." + type: string + description: + description: A narrative that explains in detail what the PerformanceIndicatorSpecification + is. + type: string + perspective: + description: "The point of view for the PerformanceIndicatorSpecification,\ + \ such as a single user instance or aggregation." + type: string + indicatorCategory: + description: "A grouping or set of PerformanceIndicatorSpecifications\ + \ that are classified together because of common characteristics, such\ + \ as technology specific, service specific, or technology/service independent." + type: string + indicatorType: + $ref: '#/components/schemas/IndicatorType' + derivationAlgorithm: + description: A step-by-step procedure used to calculate the value of PerformanceIndicator. + type: string + derivationMethod: + description: "For simple calculations, the method used to calculate the\ + \ value of a PerformanceIndicator, such as average, minimum, maximum,\ + \ sum and so forth." + type: string + validFor: + $ref: '#/components/schemas/TimePeriod' + collectionType: + $ref: '#/components/schemas/CollectionType' + indicatorUnit: + description: "The unit by which the indicator is measured. For example,\ + \ seconds, KBs, rate per second, etc." + type: string + performanceIndicatorSpecRelationship: + items: + $ref: '#/components/schemas/PerformanceIndicatorSpecRelationship_MVO' + minItems: 0 + type: array + type: object + discriminator: + mapping: + PerformanceIndicatorSpecification: '#/components/schemas/PerformanceIndicatorSpecification_MVO' + propertyName: '@type' + PerformanceIndicatorValue: + description: A value of a performance indicator. + properties: + performanceIndicatorSpecification: + $ref: '#/components/schemas/PerformanceIndicatorSpecificationRefOrValue' + observedValue: + description: The measurement value + type: string + tag: + description: The optional tag object attached to this observed value + type: object + type: object + PerformanceMeasurement: + allOf: + - $ref: '#/components/schemas/Entity' + - description: A measurement of a performance indicator or performance group + indicator. + properties: + description: + description: A free-text description of the performance measurement + type: string + measurementCollectionJob: + $ref: '#/components/schemas/MeasurementCollectionJobRef' + validFor: + $ref: '#/components/schemas/TimePeriod' + relatedMeasurement: + description: related Performance measurements array + items: + $ref: '#/components/schemas/PerformanceMeasurementRelationship' + minItems: 0 + type: array + tag: + $ref: '#/components/schemas/PerformanceMeasurement_allOf_tag' + type: object + discriminator: + mapping: + PerformanceMeasurement: '#/components/schemas/PerformanceMeasurement' + PerformanceMeasurementAtomic: '#/components/schemas/PerformanceMeasurementAtomic' + PerformanceMeasurementGroup: '#/components/schemas/PerformanceMeasurementGroup' + propertyName: '@type' + example: + validFor: + startDateTime: 1985-04-12T23:20:50.52Z + endDateTime: 1985-04-12T23:20:50.52Z + measurementCollectionJob: {} + description: description + relatedMeasurement: + - role: role + relationshipType: relationshipType + validFor: + startDateTime: 1985-04-12T23:20:50.52Z + endDateTime: 1985-04-12T23:20:50.52Z + relatedMeasurement: + version: version + - role: role + relationshipType: relationshipType + validFor: + startDateTime: 1985-04-12T23:20:50.52Z + endDateTime: 1985-04-12T23:20:50.52Z + relatedMeasurement: + version: version + tag: null + PerformanceMeasurementAtomic: + allOf: + - $ref: '#/components/schemas/PerformanceMeasurement' + - description: A measurement of a single performance indicator. + properties: + performanceIndicatorValue: + items: + $ref: '#/components/schemas/PerformanceIndicatorValue' + minItems: 1 + type: array + type: object + PerformanceMeasurementCollectionReadyEvent: + allOf: + - $ref: '#/components/schemas/Event' + - description: PerformanceMeasurementCollectionReadyEvent generic structure + properties: + event: + $ref: '#/components/schemas/PerformanceMeasurementCollectionReadyEventPayload' + type: object + discriminator: + mapping: + PerformanceMeasurementCollectionReadyEvent: '#/components/schemas/PerformanceMeasurementCollectionReadyEvent' + propertyName: '@type' + example: + event: + performanceMeasurement: + validFor: + startDateTime: 1985-04-12T23:20:50.52Z + endDateTime: 1985-04-12T23:20:50.52Z + measurementCollectionJob: {} + description: description + relatedMeasurement: + - role: role + relationshipType: relationshipType + validFor: + startDateTime: 1985-04-12T23:20:50.52Z + endDateTime: 1985-04-12T23:20:50.52Z + relatedMeasurement: + version: version + - role: role + relationshipType: relationshipType + validFor: + startDateTime: 1985-04-12T23:20:50.52Z + endDateTime: 1985-04-12T23:20:50.52Z + relatedMeasurement: + version: version + tag: null + PerformanceMeasurementCollectionReadyEventPayload: + description: PerformanceMeasurementCollectionReadyEventPayload generic structure + example: + performanceMeasurement: + validFor: + startDateTime: 1985-04-12T23:20:50.52Z + endDateTime: 1985-04-12T23:20:50.52Z + measurementCollectionJob: {} + description: description + relatedMeasurement: + - role: role + relationshipType: relationshipType + validFor: + startDateTime: 1985-04-12T23:20:50.52Z + endDateTime: 1985-04-12T23:20:50.52Z + relatedMeasurement: + version: version + - role: role + relationshipType: relationshipType + validFor: + startDateTime: 1985-04-12T23:20:50.52Z + endDateTime: 1985-04-12T23:20:50.52Z + relatedMeasurement: + version: version + tag: null + properties: + performanceMeasurement: + $ref: '#/components/schemas/PerformanceMeasurement' + type: object + PerformanceMeasurementCreateEvent: + allOf: + - $ref: '#/components/schemas/Event' + - description: PerformanceMeasurementCreateEvent generic structure + properties: + event: + $ref: '#/components/schemas/PerformanceMeasurementCreateEventPayload' + type: object + discriminator: + mapping: + PerformanceMeasurementCreateEvent: '#/components/schemas/PerformanceMeasurementCreateEvent' + propertyName: '@type' + example: + event: + performanceMeasurement: + validFor: + startDateTime: 1985-04-12T23:20:50.52Z + endDateTime: 1985-04-12T23:20:50.52Z + measurementCollectionJob: {} + description: description + relatedMeasurement: + - role: role + relationshipType: relationshipType + validFor: + startDateTime: 1985-04-12T23:20:50.52Z + endDateTime: 1985-04-12T23:20:50.52Z + relatedMeasurement: + version: version + - role: role + relationshipType: relationshipType + validFor: + startDateTime: 1985-04-12T23:20:50.52Z + endDateTime: 1985-04-12T23:20:50.52Z + relatedMeasurement: + version: version + tag: null + PerformanceMeasurementCreateEventPayload: + description: PerformanceMeasurementCreateEventPayload generic structure + example: + performanceMeasurement: + validFor: + startDateTime: 1985-04-12T23:20:50.52Z + endDateTime: 1985-04-12T23:20:50.52Z + measurementCollectionJob: {} + description: description + relatedMeasurement: + - role: role + relationshipType: relationshipType + validFor: + startDateTime: 1985-04-12T23:20:50.52Z + endDateTime: 1985-04-12T23:20:50.52Z + relatedMeasurement: + version: version + - role: role + relationshipType: relationshipType + validFor: + startDateTime: 1985-04-12T23:20:50.52Z + endDateTime: 1985-04-12T23:20:50.52Z + relatedMeasurement: + version: version + tag: null + properties: + performanceMeasurement: + $ref: '#/components/schemas/PerformanceMeasurement' + type: object + PerformanceMeasurementGroup: + allOf: + - $ref: '#/components/schemas/PerformanceMeasurement' + - description: A measurement of a performance group indicator. + properties: + performanceIndicatorGroupValue: + items: + $ref: '#/components/schemas/PerformanceIndicatorGroupValue' + minItems: 1 + type: array + type: object + PerformanceMeasurementRef: + allOf: + - $ref: '#/components/schemas/EntityRef' + - description: "PerformanceMeasurement reference: A PerformanceMeasurement is\ + \ the observed value(s) of some PerformanceIndicatorSpecification." + properties: + version: + description: Version of the PerformanceMeasurement + type: string + type: object + discriminator: + mapping: + PerformanceMeasurementRef: '#/components/schemas/PerformanceMeasurementRef' + propertyName: '@type' + example: + version: version + PerformanceMeasurementRefOrValue: + description: "A PerformanceMeasurement 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" + discriminator: + mapping: + PerformanceMeasurementRef: '#/components/schemas/PerformanceMeasurementRef' + PerformanceMeasurement: '#/components/schemas/PerformanceMeasurement' + PerformanceMeasurementGroup: '#/components/schemas/PerformanceMeasurementGroup' + PerformanceMeasurementAtomic: '#/components/schemas/PerformanceMeasurementAtomic' + propertyName: '@type' + oneOf: + - $ref: '#/components/schemas/PerformanceMeasurementRef' + - $ref: '#/components/schemas/PerformanceMeasurement' + type: object + x-one-of-name: PerformanceMeasurementRefOrValue + PerformanceMeasurementRelationship: + allOf: + - $ref: '#/components/schemas/Entity' + - description: "Type of relationship such as aggregation, migration, substitution,\ + \ dependency, exclusivity" + properties: + relationshipType: + description: "" + type: string + relatedMeasurement: + $ref: '#/components/schemas/PerformanceMeasurementRefOrValue' + role: + description: The association role for this PerformanceMeasurement + type: string + validFor: + $ref: '#/components/schemas/TimePeriod' + type: object + discriminator: + mapping: + PerformanceMeasurementRelationship: '#/components/schemas/PerformanceMeasurementRelationship' + propertyName: '@type' + example: + role: role + relationshipType: relationshipType + validFor: + startDateTime: 1985-04-12T23:20:50.52Z + endDateTime: 1985-04-12T23:20:50.52Z + relatedMeasurement: + version: version + PlaceRef: + allOf: + - $ref: '#/components/schemas/Extensible' + - $ref: '#/components/schemas/EntityRef' + description: Place reference. + discriminator: + mapping: + PlaceRef: '#/components/schemas/PlaceRef' + propertyName: '@type' + type: object + PlaceRef_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - $ref: '#/components/schemas/EntityRef_FVO' + description: Place reference. + discriminator: + mapping: + PlaceRef: '#/components/schemas/PlaceRef_FVO' + propertyName: '@type' + type: object + PlaceRef_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - $ref: '#/components/schemas/EntityRef_MVO' + description: Place reference. + discriminator: + mapping: + PlaceRef: '#/components/schemas/PlaceRef_MVO' + propertyName: '@type' + type: object + PolicyRef: + allOf: + - $ref: '#/components/schemas/EntityRef' + - description: Reference to managed Policy object + properties: + id: + description: unique identifier + type: string + href: + description: Hyperlink reference + type: string + version: + type: string + '@type': + description: "When sub-classing, this defines the sub-class Extensible\ + \ name" + type: string + '@baseType': + description: "When sub-classing, this defines the super-class" + type: string + '@schemaLocation': + description: A URI to a JSON-Schema file that defines additional attributes + and relationships + type: string + type: object + discriminator: + mapping: + PolicyRef: '#/components/schemas/PolicyRef' + propertyName: '@type' + PolicyRef_FVO: + allOf: + - $ref: '#/components/schemas/EntityRef_FVO' + - description: Reference to managed Policy object + properties: + id: + description: unique identifier + type: string + version: + type: string + '@type': + description: "When sub-classing, this defines the sub-class Extensible\ + \ name" + type: string + '@baseType': + description: "When sub-classing, this defines the super-class" + type: string + '@schemaLocation': + description: A URI to a JSON-Schema file that defines additional attributes + and relationships + type: string + required: + - '@type' + type: object + discriminator: + mapping: + PolicyRef: '#/components/schemas/PolicyRef_FVO' + propertyName: '@type' + PolicyRef_MVO: + allOf: + - $ref: '#/components/schemas/EntityRef_MVO' + - description: Reference to managed Policy object + properties: + id: + description: unique identifier + type: string + version: + type: string + '@type': + description: "When sub-classing, this defines the sub-class Extensible\ + \ name" + type: string + '@baseType': + description: "When sub-classing, this defines the super-class" + type: string + '@schemaLocation': + description: A URI to a JSON-Schema file that defines additional attributes + and relationships + type: string + type: object + discriminator: + mapping: + PolicyRef: '#/components/schemas/PolicyRef_MVO' + propertyName: '@type' + ProtocolTransferData: + discriminator: + mapping: + FileTransferData: '#/components/schemas/FileTransferData' + propertyName: '@type' + properties: + transportProtocol: + type: string + type: object + ProtocolTransferData_FVO: + discriminator: + mapping: + FileTransferData: '#/components/schemas/FileTransferData_FVO' + propertyName: '@type' + properties: + transportProtocol: + type: string + type: object + ProtocolTransferData_MVO: + discriminator: + mapping: + FileTransferData: '#/components/schemas/FileTransferData_MVO' + propertyName: '@type' + properties: + transportProtocol: + type: string + type: object + RelatedPartyRefOrPartyRoleRef: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: "RelatedParty reference. A related party defines party or party\ + \ role or its reference, linked to a specific entity" + properties: + role: + description: "Role played by the related party or party role in the context\ + \ of the specific entity it is linked to. Such as 'initiator', 'customer',\ + \ 'salesAgent', 'user'" + type: string + partyOrPartyRole: + $ref: '#/components/schemas/PartyRefOrPartyRoleRef' + type: object + discriminator: + mapping: + RelatedPartyRefOrPartyRoleRef: '#/components/schemas/RelatedPartyRefOrPartyRoleRef' + propertyName: '@type' + RelatedPartyRefOrPartyRoleRef_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - description: "RelatedParty reference. A related party defines party or party\ + \ role or its reference, linked to a specific entity" + properties: + role: + description: "Role played by the related party or party role in the context\ + \ of the specific entity it is linked to. Such as 'initiator', 'customer',\ + \ 'salesAgent', 'user'" + type: string + partyOrPartyRole: + $ref: '#/components/schemas/PartyRefOrPartyRoleRef_FVO' + required: + - role + type: object + discriminator: + mapping: + RelatedPartyRefOrPartyRoleRef: '#/components/schemas/RelatedPartyRefOrPartyRoleRef_FVO' + propertyName: '@type' + RelatedPartyRefOrPartyRoleRef_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: "RelatedParty reference. A related party defines party or party\ + \ role or its reference, linked to a specific entity" + properties: + role: + description: "Role played by the related party or party role in the context\ + \ of the specific entity it is linked to. Such as 'initiator', 'customer',\ + \ 'salesAgent', 'user'" + type: string + partyOrPartyRole: + $ref: '#/components/schemas/PartyRefOrPartyRoleRef_MVO' + required: + - role + type: object + discriminator: + mapping: + RelatedPartyRefOrPartyRoleRef: '#/components/schemas/RelatedPartyRefOrPartyRoleRef_MVO' + propertyName: '@type' + RelatedPlaceRef: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: "Entity reference. The polymorphic attributes @type, @schemaLocation\ + \ & @referredType are related to the RelatedPlace entity and not the RelatedPlaceRef\ + \ class itself" + properties: + role: + type: string + place: + $ref: '#/components/schemas/PlaceRef' + type: object + discriminator: + mapping: + RelatedPlaceRef: '#/components/schemas/RelatedPlaceRef' + propertyName: '@type' + RelatedPlaceRef_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - description: "Entity reference. The polymorphic attributes @type, @schemaLocation\ + \ & @referredType are related to the RelatedPlace entity and not the RelatedPlaceRef\ + \ class itself" + properties: + role: + type: string + place: + $ref: '#/components/schemas/PlaceRef_FVO' + required: + - place + - role + type: object + discriminator: + mapping: + RelatedPlaceRef: '#/components/schemas/RelatedPlaceRef_FVO' + propertyName: '@type' + RelatedPlaceRef_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: "Entity reference. The polymorphic attributes @type, @schemaLocation\ + \ & @referredType are related to the RelatedPlace entity and not the RelatedPlaceRef\ + \ class itself" + properties: + role: + type: string + place: + $ref: '#/components/schemas/PlaceRef_MVO' + required: + - place + - role + type: object + discriminator: + mapping: + RelatedPlaceRef: '#/components/schemas/RelatedPlaceRef_MVO' + propertyName: '@type' + RelatedResourceOrderItem: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: RelatedResourceOrderItem (a ResourceOrder item) .The resource + order item which triggered resource creation/change/termination. + properties: + '@referredType': + description: The actual type of the target instance when needed for disambiguation. + type: string + resourceOrderHref: + description: Reference of the related entity. + type: string + resourceOrderId: + description: Unique identifier of a related entity. + type: string + itemAction: + $ref: '#/components/schemas/OrderItemActionType' + itemId: + description: Identifier of the order item where the resource was managed + type: string + role: + description: role of the resource order item for this resource + type: string + type: object + discriminator: + mapping: + RelatedResourceOrderItem: '#/components/schemas/RelatedResourceOrderItem' + propertyName: '@type' + RelatedResourceOrderItem_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - description: RelatedResourceOrderItem (a ResourceOrder item) .The resource + order item which triggered resource creation/change/termination. + properties: + '@referredType': + description: The actual type of the target instance when needed for disambiguation. + type: string + resourceOrderHref: + description: Reference of the related entity. + type: string + resourceOrderId: + description: Unique identifier of a related entity. + type: string + itemAction: + $ref: '#/components/schemas/OrderItemActionType' + itemId: + description: Identifier of the order item where the resource was managed + type: string + role: + description: role of the resource order item for this resource + type: string + type: object + discriminator: + mapping: + RelatedResourceOrderItem: '#/components/schemas/RelatedResourceOrderItem_FVO' + propertyName: '@type' + RelatedResourceOrderItem_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: RelatedResourceOrderItem (a ResourceOrder item) .The resource + order item which triggered resource creation/change/termination. + properties: + '@referredType': + description: The actual type of the target instance when needed for disambiguation. + type: string + resourceOrderHref: + description: Reference of the related entity. + type: string + resourceOrderId: + description: Unique identifier of a related entity. + type: string + itemAction: + $ref: '#/components/schemas/OrderItemActionType' + itemId: + description: Identifier of the order item where the resource was managed + type: string + role: + description: role of the resource order item for this resource + type: string + type: object + discriminator: + mapping: + RelatedResourceOrderItem: '#/components/schemas/RelatedResourceOrderItem_MVO' + propertyName: '@type' + ReportingPeriod: + description: Possible values for the reporting period + enum: + - r_1mn + - r_5mn + - r_15mn + - r_30mn + - r_1h + - r_24h + - na + type: string + Resource: + allOf: + - $ref: '#/components/schemas/Entity' + - 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." + properties: + category: + description: "Category of the concrete resource. e.g Gold, Silver for\ + \ MSISDN concrete resource" + type: string + description: + description: free-text description of the resource + type: string + name: + description: the name of the resource + type: string + endOperatingDate: + description: A date time( DateTime). The date till the resource is operating + format: date-time + type: string + administrativeState: + $ref: '#/components/schemas/ResourceAdministrativeStateType' + operationalState: + $ref: '#/components/schemas/ResourceOperationalStateType' + resourceStatus: + $ref: '#/components/schemas/ResourceStatusType' + usageState: + $ref: '#/components/schemas/ResourceUsageStateType' + validFor: + $ref: '#/components/schemas/TimePeriod' + note: + items: + $ref: '#/components/schemas/Note' + type: array + resourceOrderItem: + description: A list of resource order items related to this resource + items: + $ref: '#/components/schemas/RelatedResourceOrderItem' + type: array + place: + items: + $ref: '#/components/schemas/RelatedPlaceRef' + type: array + relatedParty: + items: + $ref: '#/components/schemas/RelatedPartyRefOrPartyRoleRef' + type: array + resourceRelationship: + items: + $ref: '#/components/schemas/ResourceRelationship' + type: array + resourceCharacteristic: + items: + $ref: '#/components/schemas/Characteristic' + type: array + attachment: + items: + $ref: '#/components/schemas/AttachmentRef' + type: array + resourceSpecification: + $ref: '#/components/schemas/ResourceSpecificationRef' + startOperatingDate: + description: A date time( DateTime). The date from which the resource + is operating + format: date-time + type: string + resourceVersion: + description: A field that identifies the specific version of an instance + of a resource. + type: string + activationFeature: + description: Configuration features + items: + $ref: '#/components/schemas/Feature' + type: array + intent: + $ref: '#/components/schemas/IntentRef' + externalIdentifier: + description: "An identification of this resource that is owned by or originates\ + \ in a software system different from the current system. The structure\ + \ identifies the system itself, the nature of the resource within the\ + \ system and the unique ID of the resource within the system. It is\ + \ anticipated that multiple external IDs can be held for a single resource,\ + \ e.g. if the resource passed through multiple systems on the way to\ + \ the current system." + items: + $ref: '#/components/schemas/ExternalIdentifier' + type: array + type: object + discriminator: + mapping: + Resource: '#/components/schemas/Resource' + LogicalResource: '#/components/schemas/LogicalResource' + DataAccessEndpoint: '#/components/schemas/DataAccessEndpoint' + propertyName: '@type' + ResourceAdministrativeStateType: + description: ResourceAdministrativeStateType enumerations + enum: + - locked + - unlocked + - shutdown + type: string + ResourceOperationalStateType: + description: ResourceOperationalStateType enumerations + enum: + - enable + - disable + type: string + ResourceRef: + allOf: + - $ref: '#/components/schemas/EntityRef' + description: "Resource reference, for when Resource is used by other entities." + discriminator: + mapping: + ResourceRef: '#/components/schemas/ResourceRef' + propertyName: '@type' + type: object + ResourceRefOrValue: + description: "The polymorphic attributes @type, @schemaLocation & @referredType\ + \ are related to the Resource entity and not the ResourceRefOrValue class\ + \ itself" + discriminator: + mapping: + Resource: '#/components/schemas/Resource' + ResourceRef: '#/components/schemas/ResourceRef' + LogicalResource: '#/components/schemas/LogicalResource' + DataAccessEndpoint: '#/components/schemas/DataAccessEndpoint' + propertyName: '@type' + oneOf: + - $ref: '#/components/schemas/Resource' + - $ref: '#/components/schemas/ResourceRef' + type: object + x-one-of-name: ResourceRefOrValue + ResourceRefOrValue_FVO: + description: "The polymorphic attributes @type, @schemaLocation & @referredType\ + \ are related to the Resource entity and not the ResourceRefOrValue class\ + \ itself" + discriminator: + mapping: + Resource: '#/components/schemas/Resource_FVO' + ResourceRef: '#/components/schemas/ResourceRef_FVO' + LogicalResource: '#/components/schemas/LogicalResource_FVO' + DataAccessEndpoint: '#/components/schemas/DataAccessEndpoint_FVO' + propertyName: '@type' + oneOf: + - $ref: '#/components/schemas/Resource_FVO' + - $ref: '#/components/schemas/ResourceRef_FVO' + type: object + x-one-of-name: ResourceRefOrValueFVO + ResourceRefOrValue_MVO: + description: "The polymorphic attributes @type, @schemaLocation & @referredType\ + \ are related to the Resource entity and not the ResourceRefOrValue class\ + \ itself" + discriminator: + mapping: + Resource: '#/components/schemas/Resource_MVO' + ResourceRef: '#/components/schemas/ResourceRef_MVO' + LogicalResource: '#/components/schemas/LogicalResource_MVO' + DataAccessEndpoint: '#/components/schemas/DataAccessEndpoint_MVO' + propertyName: '@type' + oneOf: + - $ref: '#/components/schemas/Resource_MVO' + - $ref: '#/components/schemas/ResourceRef_MVO' + type: object + x-one-of-name: ResourceRefOrValueMVO + ResourceRef_FVO: + allOf: + - $ref: '#/components/schemas/EntityRef_FVO' + description: "Resource reference, for when Resource is used by other entities." + discriminator: + mapping: + ResourceRef: '#/components/schemas/ResourceRef_FVO' + propertyName: '@type' + type: object + ResourceRef_MVO: + allOf: + - $ref: '#/components/schemas/EntityRef_MVO' + description: "Resource reference, for when Resource is used by other entities." + discriminator: + mapping: + ResourceRef: '#/components/schemas/ResourceRef_MVO' + propertyName: '@type' + type: object + ResourceRelationship: + allOf: + - $ref: '#/components/schemas/Extensible' + - 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" + properties: + resourceRelationshipCharacteristic: + items: + $ref: '#/components/schemas/Characteristic' + type: array + resource: + $ref: '#/components/schemas/ResourceRefOrValue' + relationshipType: + 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" + type: string + type: object + discriminator: + mapping: + ResourceRelationship: '#/components/schemas/ResourceRelationship' + propertyName: '@type' + ResourceRelationship_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - 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" + properties: + resourceRelationshipCharacteristic: + items: + $ref: '#/components/schemas/Characteristic_FVO' + type: array + resource: + $ref: '#/components/schemas/ResourceRefOrValue_FVO' + relationshipType: + 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" + type: string + required: + - relationshipType + - resource + type: object + discriminator: + mapping: + ResourceRelationship: '#/components/schemas/ResourceRelationship_FVO' + propertyName: '@type' + ResourceRelationship_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - 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" + properties: + resourceRelationshipCharacteristic: + items: + $ref: '#/components/schemas/Characteristic_MVO' + type: array + resource: + $ref: '#/components/schemas/ResourceRefOrValue_MVO' + relationshipType: + 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" + type: string + required: + - relationshipType + - resource + type: object + discriminator: + mapping: + ResourceRelationship: '#/components/schemas/ResourceRelationship_MVO' + propertyName: '@type' + ResourceSpecificationRef: + allOf: + - $ref: '#/components/schemas/EntityRef' + - 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. + properties: + version: + description: Resource Specification version + type: string + type: object + discriminator: + mapping: + ResourceSpecificationRef: '#/components/schemas/ResourceSpecificationRef' + propertyName: '@type' + ResourceSpecificationRef_FVO: + allOf: + - $ref: '#/components/schemas/EntityRef_FVO' + - 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. + properties: + version: + description: Resource Specification version + type: string + type: object + discriminator: + mapping: + ResourceSpecificationRef: '#/components/schemas/ResourceSpecificationRef_FVO' + propertyName: '@type' + ResourceSpecificationRef_MVO: + allOf: + - $ref: '#/components/schemas/EntityRef_MVO' + - 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. + properties: + version: + description: Resource Specification version + type: string + type: object + discriminator: + mapping: + ResourceSpecificationRef: '#/components/schemas/ResourceSpecificationRef_MVO' + propertyName: '@type' + ResourceStatusType: + description: ResourceStatusType enumerations + enum: + - alarm + - available + - installed + - not exists + - pendingRemoval + - planned + - reserved + - standby + - suspended + - unknown + type: string + ResourceUsageStateType: + description: ResourceUsageStateType enumerations + enum: + - idle + - active + - busy + type: string + Resource_FVO: + allOf: + - $ref: '#/components/schemas/Entity' + - 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." + properties: + category: + description: "Category of the concrete resource. e.g Gold, Silver for\ + \ MSISDN concrete resource" + type: string + description: + description: free-text description of the resource + type: string + name: + description: the name of the resource + type: string + endOperatingDate: + description: A date time( DateTime). The date till the resource is operating + format: date-time + type: string + administrativeState: + $ref: '#/components/schemas/ResourceAdministrativeStateType' + operationalState: + $ref: '#/components/schemas/ResourceOperationalStateType' + resourceStatus: + $ref: '#/components/schemas/ResourceStatusType' + usageState: + $ref: '#/components/schemas/ResourceUsageStateType' + validFor: + $ref: '#/components/schemas/TimePeriod' + note: + items: + $ref: '#/components/schemas/Note_FVO' + type: array + resourceOrderItem: + description: A list of resource order items related to this resource + items: + $ref: '#/components/schemas/RelatedResourceOrderItem_FVO' + type: array + place: + items: + $ref: '#/components/schemas/RelatedPlaceRef_FVO' + type: array + relatedParty: + items: + $ref: '#/components/schemas/RelatedPartyRefOrPartyRoleRef_FVO' + type: array + resourceRelationship: + items: + $ref: '#/components/schemas/ResourceRelationship_FVO' + type: array + resourceCharacteristic: + items: + $ref: '#/components/schemas/Characteristic_FVO' + type: array + attachment: + items: + $ref: '#/components/schemas/AttachmentRef_FVO' + type: array + resourceSpecification: + $ref: '#/components/schemas/ResourceSpecificationRef_FVO' + startOperatingDate: + description: A date time( DateTime). The date from which the resource + is operating + format: date-time + type: string + resourceVersion: + description: A field that identifies the specific version of an instance + of a resource. + type: string + activationFeature: + description: Configuration features + items: + $ref: '#/components/schemas/Feature_FVO' + type: array + intent: + $ref: '#/components/schemas/IntentRef_FVO' + externalIdentifier: + description: "An identification of this resource that is owned by or originates\ + \ in a software system different from the current system. The structure\ + \ identifies the system itself, the nature of the resource within the\ + \ system and the unique ID of the resource within the system. It is\ + \ anticipated that multiple external IDs can be held for a single resource,\ + \ e.g. if the resource passed through multiple systems on the way to\ + \ the current system." + items: + $ref: '#/components/schemas/ExternalIdentifier_FVO' + type: array + type: object + discriminator: + mapping: + Resource: '#/components/schemas/Resource_FVO' + LogicalResource: '#/components/schemas/LogicalResource_FVO' + DataAccessEndpoint: '#/components/schemas/DataAccessEndpoint_FVO' + propertyName: '@type' + Resource_MVO: + allOf: + - $ref: '#/components/schemas/Entity' + - 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." + properties: + category: + description: "Category of the concrete resource. e.g Gold, Silver for\ + \ MSISDN concrete resource" + type: string + description: + description: free-text description of the resource + type: string + name: + description: the name of the resource + type: string + endOperatingDate: + description: A date time( DateTime). The date till the resource is operating + format: date-time + type: string + administrativeState: + $ref: '#/components/schemas/ResourceAdministrativeStateType' + operationalState: + $ref: '#/components/schemas/ResourceOperationalStateType' + resourceStatus: + $ref: '#/components/schemas/ResourceStatusType' + usageState: + $ref: '#/components/schemas/ResourceUsageStateType' + validFor: + $ref: '#/components/schemas/TimePeriod' + note: + items: + $ref: '#/components/schemas/Note_MVO' + type: array + resourceOrderItem: + description: A list of resource order items related to this resource + items: + $ref: '#/components/schemas/RelatedResourceOrderItem_MVO' + type: array + place: + items: + $ref: '#/components/schemas/RelatedPlaceRef_MVO' + type: array + relatedParty: + items: + $ref: '#/components/schemas/RelatedPartyRefOrPartyRoleRef_MVO' + type: array + resourceRelationship: + items: + $ref: '#/components/schemas/ResourceRelationship_MVO' + type: array + resourceCharacteristic: + items: + $ref: '#/components/schemas/Characteristic_MVO' + type: array + attachment: + items: + $ref: '#/components/schemas/AttachmentRef_MVO' + type: array + resourceSpecification: + $ref: '#/components/schemas/ResourceSpecificationRef_MVO' + startOperatingDate: + description: A date time( DateTime). The date from which the resource + is operating + format: date-time + type: string + resourceVersion: + description: A field that identifies the specific version of an instance + of a resource. + type: string + activationFeature: + description: Configuration features + items: + $ref: '#/components/schemas/Feature_MVO' + type: array + intent: + $ref: '#/components/schemas/IntentRef_MVO' + externalIdentifier: + description: "An identification of this resource that is owned by or originates\ + \ in a software system different from the current system. The structure\ + \ identifies the system itself, the nature of the resource within the\ + \ system and the unique ID of the resource within the system. It is\ + \ anticipated that multiple external IDs can be held for a single resource,\ + \ e.g. if the resource passed through multiple systems on the way to\ + \ the current system." + items: + $ref: '#/components/schemas/ExternalIdentifier_MVO' + type: array + type: object + discriminator: + mapping: + Resource: '#/components/schemas/Resource_MVO' + LogicalResource: '#/components/schemas/LogicalResource_MVO' + DataAccessEndpoint: '#/components/schemas/DataAccessEndpoint_MVO' + propertyName: '@type' + ScheduleDefinition: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: The schedule definition for running jobs. + properties: + id: + description: Identifier of the schedule definition + type: string + scheduleDefinitionStartTime: + description: The Start time of the Schedule Definition + format: date-time + type: string + scheduleDefinitionEndTime: + description: "The End time of the Schedule Definition. If the attribute\ + \ is empty the Schedule run forever, not having a time constraint." + format: date-time + type: string + recurringFrequency: + description: "A recurring frequency to run a job within day that is included\ + \ in schedule definition, for example: every 5 minutes, 15 minute, 30\ + \ minutes, 1 hour" + type: string + excludedDate: + description: A list of specific dates that should be excluded from the + Schedule Definition. + items: + format: date-time + type: string + type: array + scheduleDefinitionHourRange: + description: "A list of time ranges within a specific day that the schedule\ + \ will be active on, for example 08:00-12:00, 16:00-19:00." + type: string + WeeklyScheduledDefinition: + description: "The weekly schedule is used to define a schedule that is\ + \ based on the days of the week, e.g. a schedule that will be active\ + \ only on Monday and Tuesday." + items: + $ref: '#/components/schemas/DayOfWeekRecurrence' + type: array + monthlyScheduleDayOfMonthDefinition: + description: The schedule definition for running the threshold job + items: + format: date-time + type: string + type: array + MonthlyScheduleDayOfWeekDefinition: + $ref: '#/components/schemas/MonthlyScheduleDayOfWeekDefinition' + dateScheduleDefintion: + description: "The date schedule is used to define a schedule that is based\ + \ on specific dates, such as December 31st 2015, February 28th 2013" + items: + format: date-time + type: string + type: array + type: object + discriminator: + mapping: + ScheduleDefinition: '#/components/schemas/ScheduleDefinition' + propertyName: '@type' + ScheduleDefinition_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - description: The schedule definition for running jobs. + properties: + scheduleDefinitionStartTime: + description: The Start time of the Schedule Definition + format: date-time + type: string + scheduleDefinitionEndTime: + description: "The End time of the Schedule Definition. If the attribute\ + \ is empty the Schedule run forever, not having a time constraint." + format: date-time + type: string + recurringFrequency: + description: "A recurring frequency to run a job within day that is included\ + \ in schedule definition, for example: every 5 minutes, 15 minute, 30\ + \ minutes, 1 hour" + type: string + excludedDate: + description: A list of specific dates that should be excluded from the + Schedule Definition. + items: + format: date-time + type: string + type: array + scheduleDefinitionHourRange: + description: "A list of time ranges within a specific day that the schedule\ + \ will be active on, for example 08:00-12:00, 16:00-19:00." + type: string + WeeklyScheduledDefinition: + description: "The weekly schedule is used to define a schedule that is\ + \ based on the days of the week, e.g. a schedule that will be active\ + \ only on Monday and Tuesday." + items: + $ref: '#/components/schemas/DayOfWeekRecurrence_FVO' + type: array + monthlyScheduleDayOfMonthDefinition: + description: The schedule definition for running the threshold job + items: + format: date-time + type: string + type: array + MonthlyScheduleDayOfWeekDefinition: + $ref: '#/components/schemas/MonthlyScheduleDayOfWeekDefinition_FVO' + dateScheduleDefintion: + description: "The date schedule is used to define a schedule that is based\ + \ on specific dates, such as December 31st 2015, February 28th 2013" + items: + format: date-time + type: string + type: array + type: object + discriminator: + mapping: + ScheduleDefinition: '#/components/schemas/ScheduleDefinition_FVO' + propertyName: '@type' + ScheduleDefinition_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: The schedule definition for running jobs. + properties: + id: + description: Identifier of the schedule definition + type: string + scheduleDefinitionStartTime: + description: The Start time of the Schedule Definition + format: date-time + type: string + scheduleDefinitionEndTime: + description: "The End time of the Schedule Definition. If the attribute\ + \ is empty the Schedule run forever, not having a time constraint." + format: date-time + type: string + recurringFrequency: + description: "A recurring frequency to run a job within day that is included\ + \ in schedule definition, for example: every 5 minutes, 15 minute, 30\ + \ minutes, 1 hour" + type: string + excludedDate: + description: A list of specific dates that should be excluded from the + Schedule Definition. + items: + format: date-time + type: string + type: array + scheduleDefinitionHourRange: + description: "A list of time ranges within a specific day that the schedule\ + \ will be active on, for example 08:00-12:00, 16:00-19:00." + type: string + WeeklyScheduledDefinition: + description: "The weekly schedule is used to define a schedule that is\ + \ based on the days of the week, e.g. a schedule that will be active\ + \ only on Monday and Tuesday." + items: + $ref: '#/components/schemas/DayOfWeekRecurrence_MVO' + type: array + monthlyScheduleDayOfMonthDefinition: + description: The schedule definition for running the threshold job + items: + format: date-time + type: string + type: array + MonthlyScheduleDayOfWeekDefinition: + $ref: '#/components/schemas/MonthlyScheduleDayOfWeekDefinition_MVO' + dateScheduleDefintion: + description: "The date schedule is used to define a schedule that is based\ + \ on specific dates, such as December 31st 2015, February 28th 2013" + items: + format: date-time + type: string + type: array + type: object + discriminator: + mapping: + ScheduleDefinition: '#/components/schemas/ScheduleDefinition_MVO' + propertyName: '@type' + TimePeriod: + description: "A period of time, either as a deadline (endDateTime only) a startDateTime\ + \ only, or both" + example: + startDateTime: 1985-04-12T23:20:50.52Z + endDateTime: 1985-04-12T23:20:50.52Z + properties: + startDateTime: + description: "Start of the time period, using IETC-RFC-3339 format" + example: 1985-04-12T23:20:50.52Z + format: date-time + type: string + endDateTime: + description: "End of the time period, using IETC-RFC-3339 format" + example: 1985-04-12T23:20:50.52Z + format: date-time + type: string + type: object + TrackingRecord: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: Tracking records allow the tracking of modifications on the problem. + The tracking records should not be embedded in the problem to allow retrieving + the problem without the tracking records + properties: + description: + description: "Describes the action being done, such as: ack, clear" + example: "[\"acknowledge\",\"clear\"]" + type: string + characteristic: + description: A generic list of any type of elements. Used for vendor Extensions + or loose element encapsulation from other namespaces + items: + $ref: '#/components/schemas/Characteristic' + type: array + systemId: + description: Describes the system Id from which the action was done + type: string + time: + description: Describes the time at which the action was done + format: date-time + type: string + user: + description: Describes the user doing the action + type: string + id: + description: Identifier of the TrackingRecord. + type: string + type: object + discriminator: + mapping: + TrackingRecord: '#/components/schemas/TrackingRecord' + propertyName: '@type' + example: + systemId: systemId + '@baseType': '@baseType' + '@type': '@type' + description: "[\"acknowledge\",\"clear\"]" + time: 2000-01-23T04:56:07.000+00:00 + id: id + '@schemaLocation': '@schemaLocation' + user: user + characteristic: + - characteristicRelationship: + - '@baseType': '@baseType' + relationshipType: relationshipType + '@type': '@type' + id: id + '@schemaLocation': '@schemaLocation' + - '@baseType': '@baseType' + relationshipType: relationshipType + '@type': '@type' + id: id + '@schemaLocation': '@schemaLocation' + '@baseType': '@baseType' + '@type': '@type' + valueType: valueType + name: name + id: id + '@schemaLocation': '@schemaLocation' + - characteristicRelationship: + - '@baseType': '@baseType' + relationshipType: relationshipType + '@type': '@type' + id: id + '@schemaLocation': '@schemaLocation' + - '@baseType': '@baseType' + relationshipType: relationshipType + '@type': '@type' + id: id + '@schemaLocation': '@schemaLocation' + '@baseType': '@baseType' + '@type': '@type' + valueType: valueType + name: name + id: id + '@schemaLocation': '@schemaLocation' + TrackingRecord_FVO: + allOf: + - $ref: '#/components/schemas/Extensible_FVO' + - description: Tracking records allow the tracking of modifications on the problem. + The tracking records should not be embedded in the problem to allow retrieving + the problem without the tracking records + properties: + description: + description: "Describes the action being done, such as: ack, clear" + example: "[\"acknowledge\",\"clear\"]" + type: string + characteristic: + description: A generic list of any type of elements. Used for vendor Extensions + or loose element encapsulation from other namespaces + items: + $ref: '#/components/schemas/Characteristic_FVO' + type: array + systemId: + description: Describes the system Id from which the action was done + type: string + time: + description: Describes the time at which the action was done + format: date-time + type: string + user: + description: Describes the user doing the action + type: string + type: object + discriminator: + mapping: + TrackingRecord: '#/components/schemas/TrackingRecord_FVO' + propertyName: '@type' + TrackingRecord_MVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - description: Tracking records allow the tracking of modifications on the problem. + The tracking records should not be embedded in the problem to allow retrieving + the problem without the tracking records + properties: + description: + description: "Describes the action being done, such as: ack, clear" + example: "[\"acknowledge\",\"clear\"]" + type: string + characteristic: + description: A generic list of any type of elements. Used for vendor Extensions + or loose element encapsulation from other namespaces + items: + $ref: '#/components/schemas/Characteristic_MVO' + type: array + systemId: + description: Describes the system Id from which the action was done + type: string + time: + description: Describes the time at which the action was done + format: date-time + type: string + user: + description: Describes the user doing the action + type: string + id: + description: Identifier of the TrackingRecord. + type: string + type: object + discriminator: + mapping: + TrackingRecord: '#/components/schemas/TrackingRecord_MVO' + propertyName: '@type' + Error: + allOf: + - $ref: '#/components/schemas/Extensible' + - properties: + code: + description: "Application relevant detail, defined in the API or a common\ + \ list." + type: string + reason: + description: Explanation of the reason for the error which can be shown + to a client user. + type: string + message: + description: More details and corrective actions related to the error + which can be shown to a client user. + type: string + status: + description: HTTP Error code extension + type: string + referenceError: + description: URI of documentation describing the error. + type: string + required: + - code + - reason + type: object + description: "Used when an API throws an Error, typically with a HTTP error\ + \ response-code (3xx, 4xx, 5xx)" + discriminator: + mapping: + Error: '#/components/schemas/Error' + propertyName: '@type' + example: + reason: reason + code: code + '@baseType': '@baseType' + '@type': '@type' + '@schemaLocation': '@schemaLocation' + message: message + referenceError: referenceError + status: status + Hub_FVO: + allOf: + - $ref: '#/components/schemas/Extensible' + - properties: + callback: + description: The callback being registered. + type: string + query: + description: additional data to be passed + type: string + description: Sets the communication endpoint address the service instance must + use to deliver notification information + required: + - callback + type: object + Hub: + allOf: + - $ref: '#/components/schemas/Entity' + - properties: + id: + description: Id of the listener + type: string + callback: + description: The callback being registered. + type: string + query: + description: additional data to be passed + type: string + required: + - callback + description: Sets the communication endpoint address the service instance must + use to deliver notification information + example: + query: query + callback: callback + id: id + type: object + JsonPatch: + description: A JSONPatch document as defined by RFC 6902 + properties: + op: + description: The operation to be performed + enum: + - add + - remove + - replace + - move + - copy + - test + type: string + path: + description: A JSON-Pointer + type: string + value: + description: The value to be used within the operations. + from: + description: A string containing a JSON Pointer value. + type: string + required: + - op + - path + type: object + JsonPatchOperations: + description: JSONPatch Operations document as defined by RFC 6902 + items: + $ref: '#/components/schemas/JsonPatch' + type: array + patchMeasurementCollectionJob_200_response: + oneOf: + - $ref: '#/components/schemas/MeasurementCollectionJob' + - items: + $ref: '#/components/schemas/MeasurementCollectionJob' + type: array + - nullable: true + type: string + x-one-of-name: PatchMeasurementCollectionJob200Response + patchPerformanceIndicatorGroupSpecification_200_response: + oneOf: + - $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification' + - items: + $ref: '#/components/schemas/PerformanceIndicatorGroupSpecification' + type: array + - nullable: true + type: string + x-one-of-name: PatchPerformanceIndicatorGroupSpecification200Response + patchPerformanceIndicatorSpecification_200_response: + oneOf: + - $ref: '#/components/schemas/PerformanceIndicatorSpecification' + - items: + $ref: '#/components/schemas/PerformanceIndicatorSpecification' + type: array + - nullable: true + type: string + x-one-of-name: PatchPerformanceIndicatorSpecification200Response + BaseEvent_allOf_event: + description: The event linked to the involved resource object + type: object + PerformanceMeasurement_allOf_tag: + description: The optional tag object attached to this entire measurement + type: object + securitySchemes: {} diff --git a/src/main/java/org/etsi/osl/tmf/pm628/README.md b/src/main/java/org/etsi/osl/tmf/pm628/README.md new file mode 100644 index 0000000000000000000000000000000000000000..5cd22b6081a211257f7ea2e6b0bef98c47926b4f --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/README.md @@ -0,0 +1,21 @@ +# OpenAPI generated server + +Spring Boot Server + +## Overview +This server was generated by the [OpenAPI Generator](https://openapi-generator.tech) project. +By using the [OpenAPI-Spec](https://openapis.org), you can easily generate a server stub. +This is an example of building a OpenAPI-enabled server in Java using the SpringBoot framework. + + +The underlying library integrating OpenAPI to Spring Boot is [springdoc](https://springdoc.org). +Springdoc will generate an OpenAPI v3 specification based on the generated Controller and Model classes. +The specification is available to download using the following url: +http://localhost:8080/v3/api-docs/ + +Start your server as a simple java application + +You can view the api documentation in swagger-ui by pointing to +http://localhost:8080/swagger-ui.html + +Change default port value in application.properties \ No newline at end of file diff --git a/src/main/java/org/etsi/osl/tmf/pm628/api/ApiUtil.java b/src/main/java/org/etsi/osl/tmf/pm628/api/ApiUtil.java new file mode 100644 index 0000000000000000000000000000000000000000..0ad52b68062b71420fadbdf6c7400f4c7d9e1c51 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/api/ApiUtil.java @@ -0,0 +1,19 @@ +package org.etsi.osl.tmf.pm628.api; + +import org.springframework.web.context.request.NativeWebRequest; + +import jakarta.servlet.http.HttpServletResponse; +import java.io.IOException; + +public class ApiUtil { + public static void setExampleResponse(NativeWebRequest req, String contentType, String example) { + try { + HttpServletResponse res = req.getNativeResponse(HttpServletResponse.class); + res.setCharacterEncoding("UTF-8"); + res.addHeader("Content-Type", contentType); + res.getWriter().print(example); + } catch (IOException e) { + throw new RuntimeException(e); + } + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pm628/api/DataAccessEndpointApi.java b/src/main/java/org/etsi/osl/tmf/pm628/api/DataAccessEndpointApi.java new file mode 100644 index 0000000000000000000000000000000000000000..147ee55d5070f6e526f3a20f4a3c4c4c6df68cef --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/api/DataAccessEndpointApi.java @@ -0,0 +1,273 @@ +/** + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (7.6.0-SNAPSHOT). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.pm628.api; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.ArraySchema; +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.tags.Tag; +import jakarta.validation.Valid; +import org.etsi.osl.tmf.pm628.model.DataAccessEndpoint; +import org.etsi.osl.tmf.common.model.Error; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +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 org.springframework.web.context.request.NativeWebRequest; + +import javax.annotation.Generated; +import java.util.List; +import java.util.Optional; + +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-05-15T07:30:16.936523289Z[Etc/UTC]", comments = "Generator version: 7.6.0-SNAPSHOT") +@Validated +@Tag(name = "dataAccessEndpoint", description = "Operations for DataAccessEndpoint Resource") +public interface DataAccessEndpointApi { + + default Optional getRequest() { + return Optional.empty(); + } + + /** + * GET /dataAccessEndpoint : List or find DataAccessEndpoint objects + * List or find DataAccessEndpoint objects + * + * @param fields Comma-separated properties to be provided in response (optional) + * @param offset Requested index for start of resources to be provided in response (optional) + * @param limit Requested number of resources to be provided in response (optional) + * @return Success (status code 200) + * or Bad Request (status code 400) + * or Unauthorized (status code 401) + * or Forbidden (status code 403) + * or Not Found (status code 404) + * or Method Not allowed (status code 405) + * or Internal Server Error (status code 500) + * or Not Implemented (status code 501) + * or Service Unavailable (status code 503) + */ + @Operation( + operationId = "listDataAccessEndpoint", + summary = "List or find DataAccessEndpoint objects", + description = "List or find DataAccessEndpoint objects", + tags = { "dataAccessEndpoint" }, + responses = { + @ApiResponse(responseCode = "200", description = "Success", content = { + @Content(mediaType = "application/json", array = @ArraySchema(schema = @Schema(implementation = DataAccessEndpoint.class))) + }), + @ApiResponse(responseCode = "400", description = "Bad Request", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "403", description = "Forbidden", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "404", description = "Not Found", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "405", description = "Method Not allowed", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "500", description = "Internal Server Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "501", description = "Not Implemented", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "503", description = "Service Unavailable", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.GET, + value = "/dataAccessEndpoint", + produces = { "application/json" } + ) + + default ResponseEntity> listDataAccessEndpoint( + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields, + @Parameter(name = "offset", description = "Requested index for start of resources to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "offset", required = false) Integer offset, + @Parameter(name = "limit", description = "Requested number of resources to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "limit", required = false) Integer limit + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "[ { \"uriQueryFilter\" : { \"mappings\" : [ { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } }, { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } } ], \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"uri\" : \"https://openapi-generator.tech\", \"apiType\" : \"apiType\" }, { \"uriQueryFilter\" : { \"mappings\" : [ { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } }, { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } } ], \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"uri\" : \"https://openapi-generator.tech\", \"apiType\" : \"apiType\" } ]"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + + /** + * GET /dataAccessEndpoint/{id} : Retrieves a DataAccessEndpoint by ID + * This operation retrieves a DataAccessEndpoint entity. Attribute selection enabled for all first level attributes. + * + * @param id Identifier of the Resource (required) + * @param fields Comma-separated properties to be provided in response (optional) + * @return Success (status code 200) + * or Bad Request (status code 400) + * or Unauthorized (status code 401) + * or Forbidden (status code 403) + * or Not Found (status code 404) + * or Method Not allowed (status code 405) + * or Internal Server Error (status code 500) + * or Not Implemented (status code 501) + * or Service Unavailable (status code 503) + */ + @Operation( + operationId = "retrieveDataAccessEndpoint", + summary = "Retrieves a DataAccessEndpoint by ID", + description = "This operation retrieves a DataAccessEndpoint entity. Attribute selection enabled for all first level attributes.", + tags = { "dataAccessEndpoint" }, + responses = { + @ApiResponse(responseCode = "200", description = "Success", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = DataAccessEndpoint.class)) + }), + @ApiResponse(responseCode = "400", description = "Bad Request", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "403", description = "Forbidden", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "404", description = "Not Found", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "405", description = "Method Not allowed", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "500", description = "Internal Server Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "501", description = "Not Implemented", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "503", description = "Service Unavailable", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.GET, + value = "/dataAccessEndpoint/{id}", + produces = { "application/json" } + ) + + default ResponseEntity retrieveDataAccessEndpoint( + @Parameter(name = "id", description = "Identifier of the Resource", required = true, in = ParameterIn.PATH) @PathVariable("id") String id, + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"uriQueryFilter\" : { \"mappings\" : [ { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } }, { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } } ], \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"uri\" : \"https://openapi-generator.tech\", \"apiType\" : \"apiType\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm628/api/DataAccessEndpointApiController.java b/src/main/java/org/etsi/osl/tmf/pm628/api/DataAccessEndpointApiController.java new file mode 100644 index 0000000000000000000000000000000000000000..e497be3d3e3190ba073a01ba0d994a69fe29e238 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/api/DataAccessEndpointApiController.java @@ -0,0 +1,75 @@ +package org.etsi.osl.tmf.pm628.api; + +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import jakarta.validation.Valid; +import org.etsi.osl.tmf.pm628.model.DataAccessEndpoint; +import org.etsi.osl.tmf.pm628.reposervices.DataAccessEndpointService; +import org.etsi.osl.tmf.so641.api.ServiceOrderApiController; +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.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.context.request.NativeWebRequest; + +import javax.annotation.Generated; +import java.util.List; +import java.util.Optional; + +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-05-15T07:30:16.936523289Z[Etc/UTC]", comments = "Generator version: 7.6.0-SNAPSHOT") +@Controller +@RequestMapping("${openapi.performance.base-path:/tmf-api/performance/v5}") +public class DataAccessEndpointApiController implements DataAccessEndpointApi { + + private static final Logger log = LoggerFactory.getLogger(ServiceOrderApiController.class); + + private final NativeWebRequest request; + + @Autowired + DataAccessEndpointService dataAccessEndpointService; + + @Autowired + public DataAccessEndpointApiController(NativeWebRequest request) { + this.request = request; + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + + @PreAuthorize("hasRole('ROLE_USER')") + @Override + public ResponseEntity> listDataAccessEndpoint( + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields, + @Parameter(name = "offset", description = "Requested index for start of resources to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "offset", required = false) Integer offset, + @Parameter(name = "limit", description = "Requested number of resources to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "limit", required = false) Integer limit + ) { + try { + return new ResponseEntity>(dataAccessEndpointService.findAllDataAccessEndpoints(), 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("hasRole('ROLE_USER')") + @Override + public ResponseEntity retrieveDataAccessEndpoint( + @Parameter(name = "id", description = "Identifier of the Resource", required = true, in = ParameterIn.PATH) @PathVariable("id") String id, + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields + ) { + try { + return new ResponseEntity(dataAccessEndpointService.findDataAccessEndpointByUuid(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); + } + } +} \ No newline at end of file diff --git a/src/main/java/org/etsi/osl/tmf/pm628/api/HubApi.java b/src/main/java/org/etsi/osl/tmf/pm628/api/HubApi.java new file mode 100644 index 0000000000000000000000000000000000000000..c9c67a58a25d0bbebd25b8f134dab66036b4ff98 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/api/HubApi.java @@ -0,0 +1,134 @@ +/** + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (7.6.0-SNAPSHOT). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.pm628.api; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +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.tags.Tag; +import jakarta.validation.Valid; +import org.etsi.osl.tmf.common.model.Error; +import org.etsi.osl.tmf.pm628.model.Hub; +import org.etsi.osl.tmf.pm628.model.HubFVO; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +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.context.request.NativeWebRequest; + +import javax.annotation.Generated; +import java.util.Optional; + +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-05-15T07:30:16.936523289Z[Etc/UTC]", comments = "Generator version: 7.6.0-SNAPSHOT") +@Validated +@Tag(name = "events subscription", description = "Endpoints to register and terminate an Event Listener") +public interface HubApi { + + default Optional getRequest() { + return Optional.empty(); + } + + /** + * POST /hub : Create a subscription (hub) to receive Events + * Sets the communication endpoint to receive Events. + * + * @param hubFVO Data containing the callback endpoint to deliver the information (required) + * @return Notified (status code 201) + * or Error (status code 200) + */ + @Operation( + operationId = "createHub", + summary = "Create a subscription (hub) to receive Events", + description = "Sets the communication endpoint to receive Events.", + tags = { "events subscription" }, + responses = { + @ApiResponse(responseCode = "201", description = "Notified", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Hub.class)) + }), + @ApiResponse(responseCode = "default", description = "Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.POST, + value = "/hub", + produces = { "application/json" }, + consumes = { "application/json" } + ) + + default ResponseEntity createHub( + @Parameter(name = "HubFVO", description = "Data containing the callback endpoint to deliver the information", required = true) @Valid @RequestBody HubFVO hubFVO + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"query\" : \"query\", \"callback\" : \"callback\", \"id\" : \"id\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + + /** + * DELETE /hub/{id} : Remove a subscription (hub) to receive Events + * + * + * @param id Identifier of the Resource (required) + * @return Deleted (status code 204) + * or Error (status code 200) + */ + @Operation( + operationId = "hubDelete", + summary = "Remove a subscription (hub) to receive Events", + description = "", + tags = { "events subscription" }, + responses = { + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "default", description = "Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.DELETE, + value = "/hub/{id}", + produces = { "application/json" } + ) + + default ResponseEntity hubDelete( + @Parameter(name = "id", description = "Identifier of the Resource", required = true, in = ParameterIn.PATH) @PathVariable("id") String id + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm628/api/HubApiController.java b/src/main/java/org/etsi/osl/tmf/pm628/api/HubApiController.java new file mode 100644 index 0000000000000000000000000000000000000000..835c02487ee521da949a9687431c66ccf742f7b3 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/api/HubApiController.java @@ -0,0 +1,28 @@ +package org.etsi.osl.tmf.pm628.api; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.context.request.NativeWebRequest; + +import javax.annotation.Generated; +import java.util.Optional; + +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-05-15T07:30:16.936523289Z[Etc/UTC]", comments = "Generator version: 7.6.0-SNAPSHOT") +@Controller +@RequestMapping("${openapi.performance.base-path:/tmf-api/performance/v5}") +public class HubApiController implements HubApi { + + private final NativeWebRequest request; + + @Autowired + public HubApiController(NativeWebRequest request) { + this.request = request; + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm628/api/ListenerApi.java b/src/main/java/org/etsi/osl/tmf/pm628/api/ListenerApi.java new file mode 100644 index 0000000000000000000000000000000000000000..3ead3a97687ff776d7fc9208cda9b20477500cb7 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/api/ListenerApi.java @@ -0,0 +1,389 @@ +/** + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (7.6.0-SNAPSHOT). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.pm628.api; + +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.tags.Tag; +import jakarta.validation.Valid; +import org.etsi.osl.tmf.common.model.Error; +import org.etsi.osl.tmf.pm628.model.*; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +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.context.request.NativeWebRequest; + +import javax.annotation.Generated; +import java.util.Optional; + +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-05-15T07:30:16.936523289Z[Etc/UTC]", comments = "Generator version: 7.6.0-SNAPSHOT") +@Validated +@Tag(name = "notification listener", description = "Notifications for Resource Lifecycle and event notifications") +public interface ListenerApi { + + default Optional getRequest() { + return Optional.empty(); + } + + /** + * POST /listener/measurementCollectionJobAttributeValueChangeEvent : Client listener for entity MeasurementCollectionJobAttributeValueChangeEvent + * Example of a client listener for receiving the notification MeasurementCollectionJobAttributeValueChangeEvent + * + * @param measurementCollectionJobAttributeValueChangeEvent MeasurementCollectionJob attributeValueChange Event payload (required) + * @return Notified (status code 204) + * or Error (status code 200) + */ + @Operation( + operationId = "measurementCollectionJobAttributeValueChangeEvent", + summary = "Client listener for entity MeasurementCollectionJobAttributeValueChangeEvent", + description = "Example of a client listener for receiving the notification MeasurementCollectionJobAttributeValueChangeEvent", + tags = { "notification listener" }, + responses = { + @ApiResponse(responseCode = "204", description = "Notified"), + @ApiResponse(responseCode = "default", description = "Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.POST, + value = "/listener/measurementCollectionJobAttributeValueChangeEvent", + produces = { "application/json" }, + consumes = { "application/json" } + ) + + default ResponseEntity measurementCollectionJobAttributeValueChangeEvent( + @Parameter(name = "MeasurementCollectionJobAttributeValueChangeEvent", description = "MeasurementCollectionJob attributeValueChange Event payload", required = true) @Valid @RequestBody MeasurementCollectionJobAttributeValueChangeEvent measurementCollectionJobAttributeValueChangeEvent + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + + /** + * POST /listener/measurementCollectionJobCreateEvent : Client listener for entity MeasurementCollectionJobCreateEvent + * Example of a client listener for receiving the notification MeasurementCollectionJobCreateEvent + * + * @param measurementCollectionJobCreateEvent MeasurementCollectionJob create Event payload (required) + * @return Notified (status code 204) + * or Error (status code 200) + */ + @Operation( + operationId = "measurementCollectionJobCreateEvent", + summary = "Client listener for entity MeasurementCollectionJobCreateEvent", + description = "Example of a client listener for receiving the notification MeasurementCollectionJobCreateEvent", + tags = { "notification listener" }, + responses = { + @ApiResponse(responseCode = "204", description = "Notified"), + @ApiResponse(responseCode = "default", description = "Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.POST, + value = "/listener/measurementCollectionJobCreateEvent", + produces = { "application/json" }, + consumes = { "application/json" } + ) + + default ResponseEntity measurementCollectionJobCreateEvent( + @Parameter(name = "MeasurementCollectionJobCreateEvent", description = "MeasurementCollectionJob create Event payload", required = true) @Valid @RequestBody MeasurementCollectionJobCreateEvent measurementCollectionJobCreateEvent + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + + /** + * POST /listener/measurementCollectionJobDeleteEvent : Client listener for entity MeasurementCollectionJobDeleteEvent + * Example of a client listener for receiving the notification MeasurementCollectionJobDeleteEvent + * + * @param measurementCollectionJobDeleteEvent MeasurementCollectionJob delete Event payload (required) + * @return Notified (status code 204) + * or Error (status code 200) + */ + @Operation( + operationId = "measurementCollectionJobDeleteEvent", + summary = "Client listener for entity MeasurementCollectionJobDeleteEvent", + description = "Example of a client listener for receiving the notification MeasurementCollectionJobDeleteEvent", + tags = { "notification listener" }, + responses = { + @ApiResponse(responseCode = "204", description = "Notified"), + @ApiResponse(responseCode = "default", description = "Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.POST, + value = "/listener/measurementCollectionJobDeleteEvent", + produces = { "application/json" }, + consumes = { "application/json" } + ) + + default ResponseEntity measurementCollectionJobDeleteEvent( + @Parameter(name = "MeasurementCollectionJobDeleteEvent", description = "MeasurementCollectionJob delete Event payload", required = true) @Valid @RequestBody MeasurementCollectionJobDeleteEvent measurementCollectionJobDeleteEvent + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + + /** + * POST /listener/measurementCollectionJobExecutionStateChangeEvent : Client listener for entity MeasurementCollectionJobExecutionStateChangeEvent + * Example of a client listener for receiving the notification MeasurementCollectionJobExecutionStateChangeEvent + * + * @param measurementCollectionJobExecutionStateChangeEvent MeasurementCollectionJob executionStateChange Event payload (required) + * @return Notified (status code 204) + * or Error (status code 200) + */ + @Operation( + operationId = "measurementCollectionJobExecutionStateChangeEvent", + summary = "Client listener for entity MeasurementCollectionJobExecutionStateChangeEvent", + description = "Example of a client listener for receiving the notification MeasurementCollectionJobExecutionStateChangeEvent", + tags = { "notification listener" }, + responses = { + @ApiResponse(responseCode = "204", description = "Notified"), + @ApiResponse(responseCode = "default", description = "Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.POST, + value = "/listener/measurementCollectionJobExecutionStateChangeEvent", + produces = { "application/json" }, + consumes = { "application/json" } + ) + + default ResponseEntity measurementCollectionJobExecutionStateChangeEvent( + @Parameter(name = "MeasurementCollectionJobExecutionStateChangeEvent", description = "MeasurementCollectionJob executionStateChange Event payload", required = true) @Valid @RequestBody MeasurementCollectionJobExecutionStateChangeEvent measurementCollectionJobExecutionStateChangeEvent + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + + /** + * POST /listener/measurementCollectionJobFilesPreparationErrorEvent : Client listener for entity MeasurementCollectionJobFilesPreparationErrorEvent + * Example of a client listener for receiving the notification MeasurementCollectionJobFilesPreparationErrorEvent + * + * @param measurementCollectionJobFilesPreparationErrorEvent MeasurementCollectionJob filesPreparationError Event payload (required) + * @return Notified (status code 204) + * or Error (status code 200) + */ + @Operation( + operationId = "measurementCollectionJobFilesPreparationErrorEvent", + summary = "Client listener for entity MeasurementCollectionJobFilesPreparationErrorEvent", + description = "Example of a client listener for receiving the notification MeasurementCollectionJobFilesPreparationErrorEvent", + tags = { "notification listener" }, + responses = { + @ApiResponse(responseCode = "204", description = "Notified"), + @ApiResponse(responseCode = "default", description = "Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.POST, + value = "/listener/measurementCollectionJobFilesPreparationErrorEvent", + produces = { "application/json" }, + consumes = { "application/json" } + ) + + default ResponseEntity measurementCollectionJobFilesPreparationErrorEvent( + @Parameter(name = "MeasurementCollectionJobFilesPreparationErrorEvent", description = "MeasurementCollectionJob filesPreparationError Event payload", required = true) @Valid @RequestBody MeasurementCollectionJobFilesPreparationErrorEvent measurementCollectionJobFilesPreparationErrorEvent + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + + /** + * POST /listener/measurementCollectionJobFilesReadyEvent : Client listener for entity MeasurementCollectionJobFilesReadyEvent + * Example of a client listener for receiving the notification MeasurementCollectionJobFilesReadyEvent + * + * @param measurementCollectionJobFilesReadyEvent MeasurementCollectionJob filesReady Event payload (required) + * @return Notified (status code 204) + * or Error (status code 200) + */ + @Operation( + operationId = "measurementCollectionJobFilesReadyEvent", + summary = "Client listener for entity MeasurementCollectionJobFilesReadyEvent", + description = "Example of a client listener for receiving the notification MeasurementCollectionJobFilesReadyEvent", + tags = { "notification listener" }, + responses = { + @ApiResponse(responseCode = "204", description = "Notified"), + @ApiResponse(responseCode = "default", description = "Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.POST, + value = "/listener/measurementCollectionJobFilesReadyEvent", + produces = { "application/json" }, + consumes = { "application/json" } + ) + + default ResponseEntity measurementCollectionJobFilesReadyEvent( + @Parameter(name = "MeasurementCollectionJobFilesReadyEvent", description = "MeasurementCollectionJob filesReady Event payload", required = true) @Valid @RequestBody MeasurementCollectionJobFilesReadyEvent measurementCollectionJobFilesReadyEvent + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + + /** + * POST /listener/performanceMeasurementCollectionReadyEvent : Client listener for entity PerformanceMeasurementCollectionReadyEvent + * Example of a client listener for receiving the notification PerformanceMeasurementCollectionReadyEvent + * + * @param performanceMeasurementCollectionReadyEvent PerformanceMeasurement collectionReady Event payload (required) + * @return Notified (status code 204) + * or Error (status code 200) + */ + @Operation( + operationId = "performanceMeasurementCollectionReadyEvent", + summary = "Client listener for entity PerformanceMeasurementCollectionReadyEvent", + description = "Example of a client listener for receiving the notification PerformanceMeasurementCollectionReadyEvent", + tags = { "notification listener" }, + responses = { + @ApiResponse(responseCode = "204", description = "Notified"), + @ApiResponse(responseCode = "default", description = "Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.POST, + value = "/listener/performanceMeasurementCollectionReadyEvent", + produces = { "application/json" }, + consumes = { "application/json" } + ) + + default ResponseEntity performanceMeasurementCollectionReadyEvent( + @Parameter(name = "PerformanceMeasurementCollectionReadyEvent", description = "PerformanceMeasurement collectionReady Event payload", required = true) @Valid @RequestBody PerformanceMeasurementCollectionReadyEvent performanceMeasurementCollectionReadyEvent + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + + /** + * POST /listener/performanceMeasurementCreateEvent : Client listener for entity PerformanceMeasurementCreateEvent + * Example of a client listener for receiving the notification PerformanceMeasurementCreateEvent + * + * @param performanceMeasurementCreateEvent PerformanceMeasurement create Event payload (required) + * @return Notified (status code 204) + * or Error (status code 200) + */ + @Operation( + operationId = "performanceMeasurementCreateEvent", + summary = "Client listener for entity PerformanceMeasurementCreateEvent", + description = "Example of a client listener for receiving the notification PerformanceMeasurementCreateEvent", + tags = { "notification listener" }, + responses = { + @ApiResponse(responseCode = "204", description = "Notified"), + @ApiResponse(responseCode = "default", description = "Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.POST, + value = "/listener/performanceMeasurementCreateEvent", + produces = { "application/json" }, + consumes = { "application/json" } + ) + + default ResponseEntity performanceMeasurementCreateEvent( + @Parameter(name = "PerformanceMeasurementCreateEvent", description = "PerformanceMeasurement create Event payload", required = true) @Valid @RequestBody PerformanceMeasurementCreateEvent performanceMeasurementCreateEvent + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm628/api/ListenerApiController.java b/src/main/java/org/etsi/osl/tmf/pm628/api/ListenerApiController.java new file mode 100644 index 0000000000000000000000000000000000000000..aab852d2b8a5ed0e91522911968fc0713e088092 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/api/ListenerApiController.java @@ -0,0 +1,28 @@ +package org.etsi.osl.tmf.pm628.api; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.context.request.NativeWebRequest; + +import javax.annotation.Generated; +import java.util.Optional; + +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-05-15T07:30:16.936523289Z[Etc/UTC]", comments = "Generator version: 7.6.0-SNAPSHOT") +@Controller("ListenerApiController628") +@RequestMapping("/monitoring/v5") +public class ListenerApiController implements ListenerApi { + + private final NativeWebRequest request; + + @Autowired + public ListenerApiController(NativeWebRequest request) { + this.request = request; + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm628/api/MeasurementCollectionJobApi.java b/src/main/java/org/etsi/osl/tmf/pm628/api/MeasurementCollectionJobApi.java new file mode 100644 index 0000000000000000000000000000000000000000..e49e945b5590725be2958e8158def4abda998c76 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/api/MeasurementCollectionJobApi.java @@ -0,0 +1,692 @@ +/** + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (7.6.0-SNAPSHOT). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.pm628.api; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.ArraySchema; +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.tags.Tag; +import jakarta.validation.Valid; +import org.etsi.osl.tmf.common.model.Error; +import org.etsi.osl.tmf.pm628.model.MeasurementCollectionJob; +import org.etsi.osl.tmf.pm628.model.MeasurementCollectionJobFVO; +import org.etsi.osl.tmf.pm628.model.MeasurementCollectionJobMVO; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.context.request.NativeWebRequest; + +import javax.annotation.Generated; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-05-15T07:30:16.936523289Z[Etc/UTC]", comments = "Generator version: 7.6.0-SNAPSHOT") +@Validated +@Tag(name = "measurementCollectionJob", description = "Operations for MeasurementCollectionJob Resource") +public interface MeasurementCollectionJobApi { + + default Optional getRequest() { + return Optional.empty(); + } + + /** + * POST /measurementCollectionJob : Creates a MeasurementCollectionJob + * This operation creates a MeasurementCollectionJob entity. + * + * @param measurementCollectionJobFVO The MeasurementCollectionJob to be created (required) + * @param fields Comma-separated properties to be provided in response (optional) + * @return OK/Created (status code 201) + * or Accepted (status code 202) + * or Bad Request (status code 400) + * or Unauthorized (status code 401) + * or Forbidden (status code 403) + * or Not Found (status code 404) + * or Method Not allowed (status code 405) + * or Conflict (status code 409) + * or Internal Server Error (status code 500) + * or Not Implemented (status code 501) + * or Service Unavailable (status code 503) + */ + @Operation( + operationId = "createMeasurementCollectionJob", + summary = "Creates a MeasurementCollectionJob", + description = "This operation creates a MeasurementCollectionJob entity.", + tags = { "measurementCollectionJob" }, + responses = { + @ApiResponse(responseCode = "201", description = "OK/Created", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = MeasurementCollectionJob.class)) + }), + @ApiResponse(responseCode = "202", description = "Accepted"), + @ApiResponse(responseCode = "400", description = "Bad Request", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "403", description = "Forbidden", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "404", description = "Not Found", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "405", description = "Method Not allowed", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "409", description = "Conflict", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "500", description = "Internal Server Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "501", description = "Not Implemented", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "503", description = "Service Unavailable", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.POST, + value = "/measurementCollectionJob", + produces = { "application/json" }, + consumes = { "application/json" } + ) + + default ResponseEntity createMeasurementCollectionJob( + @Parameter(name = "MeasurementCollectionJobFVO", description = "The MeasurementCollectionJob to be created", required = true) @Valid @RequestBody MeasurementCollectionJobFVO measurementCollectionJobFVO, + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"jobOnDemand\" : false, \"jobCollectionFilter\" : { \"mappings\" : [ { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } }, { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } } ], \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"searchTaskFilter\" : { \"mappings\" : [ { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } }, { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } } ], \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"outputFormat\" : \"outputFormat\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + + /** + * DELETE /measurementCollectionJob/{id} : Deletes a MeasurementCollectionJob + * This operation deletes a MeasurementCollectionJob entity. + * + * @param id Identifier of the Resource (required) + * @return Accepted (status code 202) + * or Deleted (status code 204) + * or Bad Request (status code 400) + * or Unauthorized (status code 401) + * or Forbidden (status code 403) + * or Not Found (status code 404) + * or Method Not allowed (status code 405) + * or Conflict (status code 409) + * or Internal Server Error (status code 500) + * or Not Implemented (status code 501) + * or Service Unavailable (status code 503) + */ + @Operation( + operationId = "deleteMeasurementCollectionJob", + summary = "Deletes a MeasurementCollectionJob", + description = "This operation deletes a MeasurementCollectionJob entity.", + tags = { "measurementCollectionJob" }, + responses = { + @ApiResponse(responseCode = "202", description = "Accepted"), + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad Request", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "403", description = "Forbidden", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "404", description = "Not Found", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "405", description = "Method Not allowed", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "409", description = "Conflict", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "500", description = "Internal Server Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "501", description = "Not Implemented", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "503", description = "Service Unavailable", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.DELETE, + value = "/measurementCollectionJob/{id}", + produces = { "application/json" } + ) + + default ResponseEntity deleteMeasurementCollectionJob( + @Parameter(name = "id", description = "Identifier of the Resource", required = true, in = ParameterIn.PATH) @PathVariable("id") String id + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + + /** + * GET /measurementCollectionJob : List or find MeasurementCollectionJob objects + * List or find MeasurementCollectionJob objects + * + * @param fields Comma-separated properties to be provided in response (optional) + * @param offset Requested index for start of resources to be provided in response (optional) + * @param limit Requested number of resources to be provided in response (optional) + * @return Success (status code 200) + * or Bad Request (status code 400) + * or Unauthorized (status code 401) + * or Forbidden (status code 403) + * or Not Found (status code 404) + * or Method Not allowed (status code 405) + * or Internal Server Error (status code 500) + * or Not Implemented (status code 501) + * or Service Unavailable (status code 503) + */ + @Operation( + operationId = "listMeasurementCollectionJob", + summary = "List or find MeasurementCollectionJob objects", + description = "List or find MeasurementCollectionJob objects", + tags = { "measurementCollectionJob" }, + responses = { + @ApiResponse(responseCode = "200", description = "Success", content = { + @Content(mediaType = "application/json", array = @ArraySchema(schema = @Schema(implementation = MeasurementCollectionJob.class))) + }), + @ApiResponse(responseCode = "400", description = "Bad Request", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "403", description = "Forbidden", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "404", description = "Not Found", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "405", description = "Method Not allowed", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "500", description = "Internal Server Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "501", description = "Not Implemented", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "503", description = "Service Unavailable", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.GET, + value = "/measurementCollectionJob", + produces = { "application/json" } + ) + + default ResponseEntity> listMeasurementCollectionJob( + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields, + @Parameter(name = "allParams", description = "Filters to be applied in the query", in = ParameterIn.QUERY) @Valid @RequestParam(value = "allParams", required = false) Map allParams, + @Parameter(name = "offset", description = "Requested index for start of resources to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "offset", required = false) Integer offset, + @Parameter(name = "limit", description = "Requested number of resources to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "limit", required = false) Integer limit + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "[ { \"jobOnDemand\" : false, \"jobCollectionFilter\" : { \"mappings\" : [ { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } }, { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } } ], \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"searchTaskFilter\" : { \"mappings\" : [ { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } }, { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } } ], \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"outputFormat\" : \"outputFormat\" }, { \"jobOnDemand\" : false, \"jobCollectionFilter\" : { \"mappings\" : [ { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } }, { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } } ], \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"searchTaskFilter\" : { \"mappings\" : [ { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } }, { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } } ], \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"outputFormat\" : \"outputFormat\" } ]"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + + /** + * PATCH /measurementCollectionJob/{id} : Updates partially a MeasurementCollectionJob + * This operation updates partially a MeasurementCollectionJob entity. + * + * @param id Identifier of the Resource (required) + * @param measurementCollectionJobMVO The MeasurementCollectionJob to be patched (required) + * @param fields Comma-separated properties to be provided in response (optional) + * @return Success (status code 200) + * or Accepted (status code 202) + * or Bad Request (status code 400) + * or Unauthorized (status code 401) + * or Forbidden (status code 403) + * or Not Found (status code 404) + * or Method Not allowed (status code 405) + * or Conflict (status code 409) + * or Internal Server Error (status code 500) + * or Not Implemented (status code 501) + * or Service Unavailable (status code 503) + */ + @Operation( + operationId = "patchMeasurementCollectionJob", + summary = "Updates partially a MeasurementCollectionJob", + description = "This operation updates partially a MeasurementCollectionJob entity.", + tags = { "measurementCollectionJob" }, + responses = { + @ApiResponse(responseCode = "200", description = "Success", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = MeasurementCollectionJob.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = MeasurementCollectionJob.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = MeasurementCollectionJob.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = MeasurementCollectionJob.class)) + }), + @ApiResponse(responseCode = "202", description = "Accepted"), + @ApiResponse(responseCode = "400", description = "Bad Request", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "403", description = "Forbidden", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "404", description = "Not Found", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "405", description = "Method Not allowed", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "409", description = "Conflict", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "500", description = "Internal Server Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "501", description = "Not Implemented", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "503", description = "Service Unavailable", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.PATCH, + value = "/measurementCollectionJob/{id}", + produces = { "application/json", "application/merge-patch+json", "application/json-patch+json", "application/json-patch-query+json" }, + consumes = { "application/json", "application/merge-patch+json", "application/json-patch+json", "application/json-patch-query+json" } + ) + + default ResponseEntity patchMeasurementCollectionJob( + @Parameter(name = "id", description = "Identifier of the Resource", required = true, in = ParameterIn.PATH) @PathVariable("id") String id, + @Parameter(name = "MeasurementCollectionJobMVO", description = "The MeasurementCollectionJob to be patched", required = true) @Valid @RequestBody MeasurementCollectionJobMVO measurementCollectionJobMVO, + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"jobOnDemand\" : false, \"jobCollectionFilter\" : { \"mappings\" : [ { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } }, { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } } ], \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"searchTaskFilter\" : { \"mappings\" : [ { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } }, { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } } ], \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"outputFormat\" : \"outputFormat\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json-patch+json"))) { + String exampleString = "{ \"jobOnDemand\" : false, \"jobCollectionFilter\" : { \"mappings\" : [ { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } }, { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } } ], \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"searchTaskFilter\" : { \"mappings\" : [ { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } }, { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } } ], \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"outputFormat\" : \"outputFormat\" }"; + ApiUtil.setExampleResponse(request, "application/json-patch+json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json-patch-query+json"))) { + String exampleString = "{ \"jobOnDemand\" : false, \"jobCollectionFilter\" : { \"mappings\" : [ { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } }, { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } } ], \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"searchTaskFilter\" : { \"mappings\" : [ { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } }, { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } } ], \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"outputFormat\" : \"outputFormat\" }"; + ApiUtil.setExampleResponse(request, "application/json-patch-query+json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/merge-patch+json"))) { + String exampleString = "Custom MIME type example not yet supported: application/merge-patch+json"; + ApiUtil.setExampleResponse(request, "application/merge-patch+json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + + /** + * GET /measurementCollectionJob/{id} : Retrieves a MeasurementCollectionJob by ID + * This operation retrieves a MeasurementCollectionJob entity. Attribute selection enabled for all first level attributes. + * + * @param id Identifier of the Resource (required) + * @param fields Comma-separated properties to be provided in response (optional) + * @return Success (status code 200) + * or Bad Request (status code 400) + * or Unauthorized (status code 401) + * or Forbidden (status code 403) + * or Not Found (status code 404) + * or Method Not allowed (status code 405) + * or Internal Server Error (status code 500) + * or Not Implemented (status code 501) + * or Service Unavailable (status code 503) + */ + @Operation( + operationId = "retrieveMeasurementCollectionJob", + summary = "Retrieves a MeasurementCollectionJob by ID", + description = "This operation retrieves a MeasurementCollectionJob entity. Attribute selection enabled for all first level attributes.", + tags = { "measurementCollectionJob" }, + responses = { + @ApiResponse(responseCode = "200", description = "Success", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = MeasurementCollectionJob.class)) + }), + @ApiResponse(responseCode = "400", description = "Bad Request", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "403", description = "Forbidden", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "404", description = "Not Found", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "405", description = "Method Not allowed", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "500", description = "Internal Server Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "501", description = "Not Implemented", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "503", description = "Service Unavailable", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.GET, + value = "/measurementCollectionJob/{id}", + produces = { "application/json" } + ) + + default ResponseEntity retrieveMeasurementCollectionJob( + @Parameter(name = "id", description = "Identifier of the Resource", required = true, in = ParameterIn.PATH) @PathVariable("id") String id, + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"jobOnDemand\" : false, \"jobCollectionFilter\" : { \"mappings\" : [ { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } }, { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } } ], \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"searchTaskFilter\" : { \"mappings\" : [ { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } }, { \"filterTemplate\" : { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"name\" : \"name\", \"description\" : \"description\", \"id\" : \"6c088cf7f1bc\", \"href\" : \"https://host/dataFilerTemplate/6c088cf7f1bc\", \"@schemaLocation\" : \"@schemaLocation\" }, \"stringArray\" : { \"valueType\" : \"valueType\", \"value\" : [ \"Dallas\", \"Houston\", \"Paris\" ] } } ], \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\" }, \"outputFormat\" : \"outputFormat\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm628/api/MeasurementCollectionJobApiController.java b/src/main/java/org/etsi/osl/tmf/pm628/api/MeasurementCollectionJobApiController.java new file mode 100644 index 0000000000000000000000000000000000000000..f23964e5bed8bf11da16c34ca98d5c6b4f0a3557 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/api/MeasurementCollectionJobApiController.java @@ -0,0 +1,126 @@ +package org.etsi.osl.tmf.pm628.api; + +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import jakarta.validation.Valid; +import org.etsi.osl.tmf.pm628.model.MeasurementCollectionJob; +import org.etsi.osl.tmf.pm628.model.MeasurementCollectionJobFVO; +import org.etsi.osl.tmf.pm628.model.MeasurementCollectionJobMVO; +import org.etsi.osl.tmf.pm628.reposervices.MeasurementCollectionJobService; +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 org.springframework.web.context.request.NativeWebRequest; + +import javax.annotation.Generated; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-05-15T07:30:16.936523289Z[Etc/UTC]", comments = "Generator version: 7.6.0-SNAPSHOT") +@Controller +@RequestMapping("/monitoring/v5") +public class MeasurementCollectionJobApiController implements MeasurementCollectionJobApi { + + private static final Logger log = LoggerFactory.getLogger(MeasurementCollectionJobApiController.class); + + private final NativeWebRequest request; + + @Autowired + MeasurementCollectionJobService measurementCollectionJobService; + + @Autowired + public MeasurementCollectionJobApiController(NativeWebRequest request) { + this.request = request; + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + + @PreAuthorize("hasRole('ROLE_USER')") + @Override + public ResponseEntity createMeasurementCollectionJob( + @Parameter(name = "MeasurementCollectionJobFVO", description = "The MeasurementCollectionJob to be created", required = true) @Valid @RequestBody MeasurementCollectionJobFVO measurementCollectionJobFVO, + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields + ) { + try { + return new ResponseEntity(measurementCollectionJobService.createMeasurementCollectionJob(measurementCollectionJobFVO), 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("hasRole('ROLE_USER')") + @Override + public ResponseEntity deleteMeasurementCollectionJob( + @Parameter(name = "id", description = "Identifier of the Resource", required = true, in = ParameterIn.PATH) @PathVariable("id") String id + ) { + try { + return new ResponseEntity(measurementCollectionJobService.deleteMeasurementCollectionJob(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("hasRole('ROLE_USER')") + @Override + public ResponseEntity> listMeasurementCollectionJob( + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields, + @Parameter(name = "allParams", description = "Filters to be applied in the query", in = ParameterIn.QUERY) @Valid @RequestParam(value = "allParams", required = false) Map allParams, + @Parameter(name = "offset", description = "Requested index for start of resources to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "offset", required = false) Integer offset, + @Parameter(name = "limit", description = "Requested number of resources to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "limit", required = false) Integer limit + ) { + try { + if (allParams == null) + allParams = new HashMap<>(); + + return new ResponseEntity>(measurementCollectionJobService.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("hasRole('ROLE_USER')") + @Override + public ResponseEntity patchMeasurementCollectionJob( + @Parameter(name = "id", description = "Identifier of the Resource", required = true, in = ParameterIn.PATH) @PathVariable("id") String id, + @Parameter(name = "MeasurementCollectionJobMVO", description = "The MeasurementCollectionJob to be patched", required = true) @Valid @RequestBody MeasurementCollectionJobMVO measurementCollectionJobMVO, + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields + ) { + try { + return new ResponseEntity(measurementCollectionJobService.updateMeasurementCollectionJob(id, measurementCollectionJobMVO), 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("hasRole('ROLE_USER')") + @Override + public ResponseEntity retrieveMeasurementCollectionJob( + @Parameter(name = "id", description = "Identifier of the Resource", required = true, in = ParameterIn.PATH) @PathVariable("id") String id, + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields + ) { + try { + return new ResponseEntity(measurementCollectionJobService.findMeasurementCollectionJobByUuid(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/pm628/api/MeasurementCollectionJobApiRouteBuilder.java b/src/main/java/org/etsi/osl/tmf/pm628/api/MeasurementCollectionJobApiRouteBuilder.java new file mode 100644 index 0000000000000000000000000000000000000000..1368b31f762094d25724c53c5e895de760d00481 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/api/MeasurementCollectionJobApiRouteBuilder.java @@ -0,0 +1,93 @@ +package org.etsi.osl.tmf.pm628.api; + +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.pm628.model.MeasurementCollectionJobFVO; +import org.etsi.osl.tmf.pm628.model.MeasurementCollectionJobMVO; +import org.etsi.osl.tmf.pm628.reposervices.MeasurementCollectionJobService; +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; + +import java.io.IOException; + +@Configuration +@Component +public class MeasurementCollectionJobApiRouteBuilder extends RouteBuilder { + + private static final transient Log logger = LogFactory.getLog(ServiceOrderApiRouteBuilder.class.getName()); + + @Value("${PM_MEASUREMENT_COLLECTION_JOBS_GET}") + private String PM_GET_MEASUREMENT_COLLECTION_JOBS; + + @Value("${PM_MEASUREMENT_COLLECTION_GET_JOB_BY_ID}") + private String PM_GET_MEASUREMENT_COLLECTION_JOB_BY_ID; + + @Value("${PM_MEASUREMENT_COLLECTION_JOB_ADD}") + private String PM_ADD_MEASUREMENT_COLLECTION_JOB; + + @Value("${PM_MEASUREMENT_COLLECTION_JOB_CREATED}") + private String PM_CREATED_MEASUREMENT_COLLECTION_JOB; + + @Value("${PM_MEASUREMENT_COLLECTION_JOB_UPDATE}") + private String PM_UPDATE_MEASUREMENT_COLLECTION_JOB; + + @Autowired + private ProducerTemplate template; + + @Autowired + MeasurementCollectionJobService measurementCollectionJobService; + + @Autowired + private CentralLogger centralLogger; + + @Override + public void configure() throws Exception { + from(PM_GET_MEASUREMENT_COLLECTION_JOBS) + .log(LoggingLevel.INFO, log, PM_GET_MEASUREMENT_COLLECTION_JOBS + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .bean(measurementCollectionJobService, "findAllMeasurementCollectionJobs") + .convertBodyTo( String.class ); + + from(PM_GET_MEASUREMENT_COLLECTION_JOB_BY_ID) + .log(LoggingLevel.INFO, log, PM_GET_MEASUREMENT_COLLECTION_JOB_BY_ID + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .bean(measurementCollectionJobService, "findMeasurementCollectionJobByUuid") + .convertBodyTo( String.class ); + + from(PM_ADD_MEASUREMENT_COLLECTION_JOB) + .log(LoggingLevel.INFO, log, PM_ADD_MEASUREMENT_COLLECTION_JOB + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true").unmarshal() + .json(JsonLibrary.Jackson, MeasurementCollectionJobFVO.class, true) + .bean(measurementCollectionJobService, "createMeasurementCollectionJob(${body})") + .convertBodyTo( String.class ); + + from(PM_UPDATE_MEASUREMENT_COLLECTION_JOB) + .log(LoggingLevel.INFO, log, PM_UPDATE_MEASUREMENT_COLLECTION_JOB + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true").unmarshal() + .json(JsonLibrary.Jackson, MeasurementCollectionJobMVO.class, true) + .bean(measurementCollectionJobService, "updateMeasurementCollectionJob(${header.mcjid}, ${body})") + .convertBodyTo( String.class ); + } + + 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/pm628/api/MeasurementCollectionJobApiRouteBuilderEvents.java b/src/main/java/org/etsi/osl/tmf/pm628/api/MeasurementCollectionJobApiRouteBuilderEvents.java new file mode 100644 index 0000000000000000000000000000000000000000..8bbb2fbd8bcea828db4e0083c5db9815870bcceb --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/api/MeasurementCollectionJobApiRouteBuilderEvents.java @@ -0,0 +1,103 @@ +package org.etsi.osl.tmf.pm628.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.pm628.model.*; +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.springframework.transaction.annotation.Transactional; + +@Configuration +//@RefreshScope +@Component +public class MeasurementCollectionJobApiRouteBuilderEvents extends RouteBuilder{ + + private static final transient Log logger = LogFactory.getLog(MeasurementCollectionJobApiRouteBuilderEvents.class.getName()); + + + @Value("${EVENT_MEASUREMENT_COLLECTION_JOB_CREATE}") + private String EVENT_MEASUREMENT_COLLECTION_JOB_CREATE=""; + + @Value("${EVENT_MEASUREMENT_COLLECTION_JOB_DELETE}") + private String EVENT_MEASUREMENT_COLLECTION_JOB_DELETE=""; + + @Value("${EVENT_MEASUREMENT_COLLECTION_JOB_ATTRIBUTE_VALUE_CHANGED}") + private String EVENT_MEASUREMENT_COLLECTION_JOB_ATTRIBUTE_VALUE_CHANGED=""; + + @Value("${EVENT_MEASUREMENT_COLLECTION_JOB_EXECUTION_STATE_CHANGED}") + private String EVENT_MEASUREMENT_COLLECTION_JOB_EXECUTION_STATE_CHANGED=""; + + @Value("${spring.application.name}") + private String compname; + + @Autowired + private ProducerTemplate template; + + + @Autowired + private CentralLogger centralLogger; + + @Override + public void configure() throws Exception { + + } + + @Transactional public void publishEvent(final Event event, final String objId) { + event.setEventType(event.getClass().getName()); + logger.info("will send Event for type " + event.getEventType()); + + try{ + String msgtopic = ""; + + if (event instanceof MeasurementCollectionJobCreateEvent) { + msgtopic = EVENT_MEASUREMENT_COLLECTION_JOB_CREATE; + } else if (event instanceof MeasurementCollectionJobDeleteEvent) { + msgtopic = EVENT_MEASUREMENT_COLLECTION_JOB_DELETE; + } else if (event instanceof MeasurementCollectionJobAttributeValueChangeEvent) { + msgtopic = EVENT_MEASUREMENT_COLLECTION_JOB_ATTRIBUTE_VALUE_CHANGED; + } else if (event instanceof MeasurementCollectionJobExecutionStateChangeEvent) { + msgtopic = EVENT_MEASUREMENT_COLLECTION_JOB_EXECUTION_STATE_CHANGED; + } + + Map map = new HashMap<>(); + map.put("eventid", event.getEventId() ); + map.put("objId", objId ); //measurementcollectionjob id + + String apayload = toJsonString(event); + 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/pm628/api/PerformanceIndicatorGroupSpecificationApi.java b/src/main/java/org/etsi/osl/tmf/pm628/api/PerformanceIndicatorGroupSpecificationApi.java new file mode 100644 index 0000000000000000000000000000000000000000..e25a866c67752dbe03b4e46b7e393bb6f4e4b6cf --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/api/PerformanceIndicatorGroupSpecificationApi.java @@ -0,0 +1,690 @@ +/** + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (7.6.0-SNAPSHOT). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.pm628.api; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.ArraySchema; +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.tags.Tag; +import jakarta.validation.Valid; +import org.etsi.osl.tmf.common.model.Error; +import org.etsi.osl.tmf.pm628.model.PerformanceIndicatorGroupSpecification; +import org.etsi.osl.tmf.pm628.model.PerformanceIndicatorGroupSpecificationFVO; +import org.etsi.osl.tmf.pm628.model.PerformanceIndicatorGroupSpecificationMVO; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.context.request.NativeWebRequest; + +import javax.annotation.Generated; +import java.util.List; +import java.util.Optional; + +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-05-15T07:30:16.936523289Z[Etc/UTC]", comments = "Generator version: 7.6.0-SNAPSHOT") +@Validated +@Tag(name = "performanceIndicatorGroupSpecification", description = "Operations for PerformanceIndicatorGroupSpecification Resource") +public interface PerformanceIndicatorGroupSpecificationApi { + + default Optional getRequest() { + return Optional.empty(); + } + + /** + * POST /performanceIndicatorGroupSpecification : Creates a PerformanceIndicatorGroupSpecification + * This operation creates a PerformanceIndicatorGroupSpecification entity. + * + * @param performanceIndicatorGroupSpecificationFVO The PerformanceIndicatorGroupSpecification to be created (required) + * @param fields Comma-separated properties to be provided in response (optional) + * @return OK/Created (status code 201) + * or Accepted (status code 202) + * or Bad Request (status code 400) + * or Unauthorized (status code 401) + * or Forbidden (status code 403) + * or Not Found (status code 404) + * or Method Not allowed (status code 405) + * or Conflict (status code 409) + * or Internal Server Error (status code 500) + * or Not Implemented (status code 501) + * or Service Unavailable (status code 503) + */ + @Operation( + operationId = "createPerformanceIndicatorGroupSpecification", + summary = "Creates a PerformanceIndicatorGroupSpecification", + description = "This operation creates a PerformanceIndicatorGroupSpecification entity.", + tags = { "performanceIndicatorGroupSpecification" }, + responses = { + @ApiResponse(responseCode = "201", description = "OK/Created", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = PerformanceIndicatorGroupSpecification.class)) + }), + @ApiResponse(responseCode = "202", description = "Accepted"), + @ApiResponse(responseCode = "400", description = "Bad Request", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "403", description = "Forbidden", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "404", description = "Not Found", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "405", description = "Method Not allowed", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "409", description = "Conflict", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "500", description = "Internal Server Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "501", description = "Not Implemented", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "503", description = "Service Unavailable", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.POST, + value = "/performanceIndicatorGroupSpecification", + produces = { "application/json" }, + consumes = { "application/json" } + ) + + default ResponseEntity createPerformanceIndicatorGroupSpecification( + @Parameter(name = "PerformanceIndicatorGroupSpecificationFVO", description = "The PerformanceIndicatorGroupSpecification to be created", required = true) @Valid @RequestBody PerformanceIndicatorGroupSpecificationFVO performanceIndicatorGroupSpecificationFVO, + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"groupCategory\" : \"groupCategory\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\", \"performanceIndicatorSpecification\" : [ { \"version\" : \"version\" }, { \"version\" : \"version\" } ] }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + + /** + * DELETE /performanceIndicatorGroupSpecification/{id} : Deletes a PerformanceIndicatorGroupSpecification + * This operation deletes a PerformanceIndicatorGroupSpecification entity. + * + * @param id Identifier of the Resource (required) + * @return Accepted (status code 202) + * or Deleted (status code 204) + * or Bad Request (status code 400) + * or Unauthorized (status code 401) + * or Forbidden (status code 403) + * or Not Found (status code 404) + * or Method Not allowed (status code 405) + * or Conflict (status code 409) + * or Internal Server Error (status code 500) + * or Not Implemented (status code 501) + * or Service Unavailable (status code 503) + */ + @Operation( + operationId = "deletePerformanceIndicatorGroupSpecification", + summary = "Deletes a PerformanceIndicatorGroupSpecification", + description = "This operation deletes a PerformanceIndicatorGroupSpecification entity.", + tags = { "performanceIndicatorGroupSpecification" }, + responses = { + @ApiResponse(responseCode = "202", description = "Accepted"), + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad Request", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "403", description = "Forbidden", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "404", description = "Not Found", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "405", description = "Method Not allowed", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "409", description = "Conflict", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "500", description = "Internal Server Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "501", description = "Not Implemented", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "503", description = "Service Unavailable", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.DELETE, + value = "/performanceIndicatorGroupSpecification/{id}", + produces = { "application/json" } + ) + + default ResponseEntity deletePerformanceIndicatorGroupSpecification( + @Parameter(name = "id", description = "Identifier of the Resource", required = true, in = ParameterIn.PATH) @PathVariable("id") String id + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + + /** + * GET /performanceIndicatorGroupSpecification : List or find PerformanceIndicatorGroupSpecification objects + * List or find PerformanceIndicatorGroupSpecification objects + * + * @param fields Comma-separated properties to be provided in response (optional) + * @param offset Requested index for start of resources to be provided in response (optional) + * @param limit Requested number of resources to be provided in response (optional) + * @return Success (status code 200) + * or Bad Request (status code 400) + * or Unauthorized (status code 401) + * or Forbidden (status code 403) + * or Not Found (status code 404) + * or Method Not allowed (status code 405) + * or Internal Server Error (status code 500) + * or Not Implemented (status code 501) + * or Service Unavailable (status code 503) + */ + @Operation( + operationId = "listPerformanceIndicatorGroupSpecification", + summary = "List or find PerformanceIndicatorGroupSpecification objects", + description = "List or find PerformanceIndicatorGroupSpecification objects", + tags = { "performanceIndicatorGroupSpecification" }, + responses = { + @ApiResponse(responseCode = "200", description = "Success", content = { + @Content(mediaType = "application/json", array = @ArraySchema(schema = @Schema(implementation = PerformanceIndicatorGroupSpecification.class))) + }), + @ApiResponse(responseCode = "400", description = "Bad Request", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "403", description = "Forbidden", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "404", description = "Not Found", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "405", description = "Method Not allowed", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "500", description = "Internal Server Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "501", description = "Not Implemented", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "503", description = "Service Unavailable", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.GET, + value = "/performanceIndicatorGroupSpecification", + produces = { "application/json" } + ) + + default ResponseEntity> listPerformanceIndicatorGroupSpecification( + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields, + @Parameter(name = "offset", description = "Requested index for start of resources to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "offset", required = false) Integer offset, + @Parameter(name = "limit", description = "Requested number of resources to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "limit", required = false) Integer limit + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "[ { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"groupCategory\" : \"groupCategory\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\", \"performanceIndicatorSpecification\" : [ { \"version\" : \"version\" }, { \"version\" : \"version\" } ] }, { \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"groupCategory\" : \"groupCategory\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\", \"performanceIndicatorSpecification\" : [ { \"version\" : \"version\" }, { \"version\" : \"version\" } ] } ]"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + + /** + * PATCH /performanceIndicatorGroupSpecification/{id} : Updates partially a PerformanceIndicatorGroupSpecification + * This operation updates partially a PerformanceIndicatorGroupSpecification entity. + * + * @param id Identifier of the Resource (required) + * @param performanceIndicatorGroupSpecificationMVO The PerformanceIndicatorGroupSpecification to be patched (required) + * @param fields Comma-separated properties to be provided in response (optional) + * @return Success (status code 200) + * or Accepted (status code 202) + * or Bad Request (status code 400) + * or Unauthorized (status code 401) + * or Forbidden (status code 403) + * or Not Found (status code 404) + * or Method Not allowed (status code 405) + * or Conflict (status code 409) + * or Internal Server Error (status code 500) + * or Not Implemented (status code 501) + * or Service Unavailable (status code 503) + */ + @Operation( + operationId = "patchPerformanceIndicatorGroupSpecification", + summary = "Updates partially a PerformanceIndicatorGroupSpecification", + description = "This operation updates partially a PerformanceIndicatorGroupSpecification entity.", + tags = { "performanceIndicatorGroupSpecification" }, + responses = { + @ApiResponse(responseCode = "200", description = "Success", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = PerformanceIndicatorGroupSpecification.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = PerformanceIndicatorGroupSpecification.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = PerformanceIndicatorGroupSpecification.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = PerformanceIndicatorGroupSpecification.class)) + }), + @ApiResponse(responseCode = "202", description = "Accepted"), + @ApiResponse(responseCode = "400", description = "Bad Request", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "403", description = "Forbidden", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "404", description = "Not Found", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "405", description = "Method Not allowed", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "409", description = "Conflict", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "500", description = "Internal Server Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "501", description = "Not Implemented", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "503", description = "Service Unavailable", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.PATCH, + value = "/performanceIndicatorGroupSpecification/{id}", + produces = { "application/json", "application/merge-patch+json", "application/json-patch+json", "application/json-patch-query+json" }, + consumes = { "application/json", "application/merge-patch+json", "application/json-patch+json", "application/json-patch-query+json" } + ) + + default ResponseEntity patchPerformanceIndicatorGroupSpecification( + @Parameter(name = "id", description = "Identifier of the Resource", required = true, in = ParameterIn.PATH) @PathVariable("id") String id, + @Parameter(name = "PerformanceIndicatorGroupSpecificationMVO", description = "The PerformanceIndicatorGroupSpecification to be patched", required = true) @Valid @RequestBody PerformanceIndicatorGroupSpecificationMVO performanceIndicatorGroupSpecificationMVO, + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"groupCategory\" : \"groupCategory\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\", \"performanceIndicatorSpecification\" : [ { \"version\" : \"version\" }, { \"version\" : \"version\" } ] }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json-patch+json"))) { + String exampleString = "{ \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"groupCategory\" : \"groupCategory\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\", \"performanceIndicatorSpecification\" : [ { \"version\" : \"version\" }, { \"version\" : \"version\" } ] }"; + ApiUtil.setExampleResponse(request, "application/json-patch+json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json-patch-query+json"))) { + String exampleString = "{ \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"groupCategory\" : \"groupCategory\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\", \"performanceIndicatorSpecification\" : [ { \"version\" : \"version\" }, { \"version\" : \"version\" } ] }"; + ApiUtil.setExampleResponse(request, "application/json-patch-query+json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/merge-patch+json"))) { + String exampleString = "Custom MIME type example not yet supported: application/merge-patch+json"; + ApiUtil.setExampleResponse(request, "application/merge-patch+json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + + /** + * GET /performanceIndicatorGroupSpecification/{id} : Retrieves a PerformanceIndicatorGroupSpecification by ID + * This operation retrieves a PerformanceIndicatorGroupSpecification entity. Attribute selection enabled for all first level attributes. + * + * @param id Identifier of the Resource (required) + * @param fields Comma-separated properties to be provided in response (optional) + * @return Success (status code 200) + * or Bad Request (status code 400) + * or Unauthorized (status code 401) + * or Forbidden (status code 403) + * or Not Found (status code 404) + * or Method Not allowed (status code 405) + * or Internal Server Error (status code 500) + * or Not Implemented (status code 501) + * or Service Unavailable (status code 503) + */ + @Operation( + operationId = "retrievePerformanceIndicatorGroupSpecification", + summary = "Retrieves a PerformanceIndicatorGroupSpecification by ID", + description = "This operation retrieves a PerformanceIndicatorGroupSpecification entity. Attribute selection enabled for all first level attributes.", + tags = { "performanceIndicatorGroupSpecification" }, + responses = { + @ApiResponse(responseCode = "200", description = "Success", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = PerformanceIndicatorGroupSpecification.class)) + }), + @ApiResponse(responseCode = "400", description = "Bad Request", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "403", description = "Forbidden", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "404", description = "Not Found", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "405", description = "Method Not allowed", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "500", description = "Internal Server Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "501", description = "Not Implemented", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "503", description = "Service Unavailable", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.GET, + value = "/performanceIndicatorGroupSpecification/{id}", + produces = { "application/json" } + ) + + default ResponseEntity retrievePerformanceIndicatorGroupSpecification( + @Parameter(name = "id", description = "Identifier of the Resource", required = true, in = ParameterIn.PATH) @PathVariable("id") String id, + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"groupCategory\" : \"groupCategory\", \"name\" : \"name\", \"href\" : \"href\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\", \"performanceIndicatorSpecification\" : [ { \"version\" : \"version\" }, { \"version\" : \"version\" } ] }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm628/api/PerformanceIndicatorGroupSpecificationApiController.java b/src/main/java/org/etsi/osl/tmf/pm628/api/PerformanceIndicatorGroupSpecificationApiController.java new file mode 100644 index 0000000000000000000000000000000000000000..863725d0910017f226adb0745daeb617bf7534d0 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/api/PerformanceIndicatorGroupSpecificationApiController.java @@ -0,0 +1,28 @@ +package org.etsi.osl.tmf.pm628.api; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.context.request.NativeWebRequest; + +import javax.annotation.Generated; +import java.util.Optional; + +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-05-15T07:30:16.936523289Z[Etc/UTC]", comments = "Generator version: 7.6.0-SNAPSHOT") +@Controller +@RequestMapping("${openapi.performance.base-path:/tmf-api/performance/v5}") +public class PerformanceIndicatorGroupSpecificationApiController implements PerformanceIndicatorGroupSpecificationApi { + + private final NativeWebRequest request; + + @Autowired + public PerformanceIndicatorGroupSpecificationApiController(NativeWebRequest request) { + this.request = request; + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm628/api/PerformanceIndicatorSpecificationApi.java b/src/main/java/org/etsi/osl/tmf/pm628/api/PerformanceIndicatorSpecificationApi.java new file mode 100755 index 0000000000000000000000000000000000000000..f5c96ef885b2e767fc01120c1385a568ce0e6930 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/api/PerformanceIndicatorSpecificationApi.java @@ -0,0 +1,690 @@ +/** + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (7.6.0-SNAPSHOT). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.pm628.api; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.ArraySchema; +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.tags.Tag; +import jakarta.validation.Valid; +import org.etsi.osl.tmf.common.model.Error; +import org.etsi.osl.tmf.pm628.model.PerformanceIndicatorSpecification; +import org.etsi.osl.tmf.pm628.model.PerformanceIndicatorSpecificationFVO; +import org.etsi.osl.tmf.pm628.model.PerformanceIndicatorSpecificationMVO; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.context.request.NativeWebRequest; + +import javax.annotation.Generated; +import java.util.List; +import java.util.Optional; + +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-05-15T07:30:16.936523289Z[Etc/UTC]", comments = "Generator version: 7.6.0-SNAPSHOT") +@Validated +@Tag(name = "performanceIndicatorSpecification", description = "Operations for PerformanceIndicatorSpecification Resource") +public interface PerformanceIndicatorSpecificationApi { + + default Optional getRequest() { + return Optional.empty(); + } + + /** + * POST /performanceIndicatorSpecification : Creates a PerformanceIndicatorSpecification + * This operation creates a PerformanceIndicatorSpecification entity. + * + * @param performanceIndicatorSpecificationFVO The PerformanceIndicatorSpecification to be created (required) + * @param fields Comma-separated properties to be provided in response (optional) + * @return OK/Created (status code 201) + * or Accepted (status code 202) + * or Bad Request (status code 400) + * or Unauthorized (status code 401) + * or Forbidden (status code 403) + * or Not Found (status code 404) + * or Method Not allowed (status code 405) + * or Conflict (status code 409) + * or Internal Server Error (status code 500) + * or Not Implemented (status code 501) + * or Service Unavailable (status code 503) + */ + @Operation( + operationId = "createPerformanceIndicatorSpecification", + summary = "Creates a PerformanceIndicatorSpecification", + description = "This operation creates a PerformanceIndicatorSpecification entity.", + tags = { "performanceIndicatorSpecification" }, + responses = { + @ApiResponse(responseCode = "201", description = "OK/Created", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = PerformanceIndicatorSpecification.class)) + }), + @ApiResponse(responseCode = "202", description = "Accepted"), + @ApiResponse(responseCode = "400", description = "Bad Request", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "403", description = "Forbidden", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "404", description = "Not Found", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "405", description = "Method Not allowed", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "409", description = "Conflict", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "500", description = "Internal Server Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "501", description = "Not Implemented", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "503", description = "Service Unavailable", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.POST, + value = "/performanceIndicatorSpecification", + produces = { "application/json" }, + consumes = { "application/json" } + ) + + default ResponseEntity createPerformanceIndicatorSpecification( + @Parameter(name = "PerformanceIndicatorSpecificationFVO", description = "The PerformanceIndicatorSpecification to be created", required = true) @Valid @RequestBody PerformanceIndicatorSpecificationFVO performanceIndicatorSpecificationFVO, + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"derivationAlgorithm\" : \"derivationAlgorithm\", \"derivationMethod\" : \"derivationMethod\", \"performanceIndicatorSpecRelationship\" : [ { \"role\" : \"role\", \"relationshipType\" : \"relationshipType\", \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" } }, { \"role\" : \"role\", \"relationshipType\" : \"relationshipType\", \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" } } ], \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" }, \"name\" : \"name\", \"description\" : \"description\", \"perspective\" : \"perspective\", \"indicatorCategory\" : \"indicatorCategory\", \"indicatorUnit\" : \"indicatorUnit\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + + /** + * DELETE /performanceIndicatorSpecification/{id} : Deletes a PerformanceIndicatorSpecification + * This operation deletes a PerformanceIndicatorSpecification entity. + * + * @param id Identifier of the Resource (required) + * @return Accepted (status code 202) + * or Deleted (status code 204) + * or Bad Request (status code 400) + * or Unauthorized (status code 401) + * or Forbidden (status code 403) + * or Not Found (status code 404) + * or Method Not allowed (status code 405) + * or Conflict (status code 409) + * or Internal Server Error (status code 500) + * or Not Implemented (status code 501) + * or Service Unavailable (status code 503) + */ + @Operation( + operationId = "deletePerformanceIndicatorSpecification", + summary = "Deletes a PerformanceIndicatorSpecification", + description = "This operation deletes a PerformanceIndicatorSpecification entity.", + tags = { "performanceIndicatorSpecification" }, + responses = { + @ApiResponse(responseCode = "202", description = "Accepted"), + @ApiResponse(responseCode = "204", description = "Deleted"), + @ApiResponse(responseCode = "400", description = "Bad Request", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "403", description = "Forbidden", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "404", description = "Not Found", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "405", description = "Method Not allowed", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "409", description = "Conflict", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "500", description = "Internal Server Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "501", description = "Not Implemented", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "503", description = "Service Unavailable", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.DELETE, + value = "/performanceIndicatorSpecification/{id}", + produces = { "application/json" } + ) + + default ResponseEntity deletePerformanceIndicatorSpecification( + @Parameter(name = "id", description = "Identifier of the Resource", required = true, in = ParameterIn.PATH) @PathVariable("id") String id + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + + /** + * GET /performanceIndicatorSpecification : List or find PerformanceIndicatorSpecification objects + * List or find PerformanceIndicatorSpecification objects + * + * @param fields Comma-separated properties to be provided in response (optional) + * @param offset Requested index for start of resources to be provided in response (optional) + * @param limit Requested number of resources to be provided in response (optional) + * @return Success (status code 200) + * or Bad Request (status code 400) + * or Unauthorized (status code 401) + * or Forbidden (status code 403) + * or Not Found (status code 404) + * or Method Not allowed (status code 405) + * or Internal Server Error (status code 500) + * or Not Implemented (status code 501) + * or Service Unavailable (status code 503) + */ + @Operation( + operationId = "listPerformanceIndicatorSpecification", + summary = "List or find PerformanceIndicatorSpecification objects", + description = "List or find PerformanceIndicatorSpecification objects", + tags = { "performanceIndicatorSpecification" }, + responses = { + @ApiResponse(responseCode = "200", description = "Success", content = { + @Content(mediaType = "application/json", array = @ArraySchema(schema = @Schema(implementation = PerformanceIndicatorSpecification.class))) + }), + @ApiResponse(responseCode = "400", description = "Bad Request", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "403", description = "Forbidden", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "404", description = "Not Found", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "405", description = "Method Not allowed", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "500", description = "Internal Server Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "501", description = "Not Implemented", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "503", description = "Service Unavailable", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.GET, + value = "/performanceIndicatorSpecification", + produces = { "application/json" } + ) + + default ResponseEntity> listPerformanceIndicatorSpecification( + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields, + @Parameter(name = "offset", description = "Requested index for start of resources to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "offset", required = false) Integer offset, + @Parameter(name = "limit", description = "Requested number of resources to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "limit", required = false) Integer limit + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "[ { \"derivationAlgorithm\" : \"derivationAlgorithm\", \"derivationMethod\" : \"derivationMethod\", \"performanceIndicatorSpecRelationship\" : [ { \"role\" : \"role\", \"relationshipType\" : \"relationshipType\", \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" } }, { \"role\" : \"role\", \"relationshipType\" : \"relationshipType\", \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" } } ], \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" }, \"name\" : \"name\", \"description\" : \"description\", \"perspective\" : \"perspective\", \"indicatorCategory\" : \"indicatorCategory\", \"indicatorUnit\" : \"indicatorUnit\" }, { \"derivationAlgorithm\" : \"derivationAlgorithm\", \"derivationMethod\" : \"derivationMethod\", \"performanceIndicatorSpecRelationship\" : [ { \"role\" : \"role\", \"relationshipType\" : \"relationshipType\", \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" } }, { \"role\" : \"role\", \"relationshipType\" : \"relationshipType\", \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" } } ], \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" }, \"name\" : \"name\", \"description\" : \"description\", \"perspective\" : \"perspective\", \"indicatorCategory\" : \"indicatorCategory\", \"indicatorUnit\" : \"indicatorUnit\" } ]"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + + /** + * PATCH /performanceIndicatorSpecification/{id} : Updates partially a PerformanceIndicatorSpecification + * This operation updates partially a PerformanceIndicatorSpecification entity. + * + * @param id Identifier of the Resource (required) + * @param performanceIndicatorSpecificationMVO The PerformanceIndicatorSpecification to be patched (required) + * @param fields Comma-separated properties to be provided in response (optional) + * @return Success (status code 200) + * or Accepted (status code 202) + * or Bad Request (status code 400) + * or Unauthorized (status code 401) + * or Forbidden (status code 403) + * or Not Found (status code 404) + * or Method Not allowed (status code 405) + * or Conflict (status code 409) + * or Internal Server Error (status code 500) + * or Not Implemented (status code 501) + * or Service Unavailable (status code 503) + */ + @Operation( + operationId = "patchPerformanceIndicatorSpecification", + summary = "Updates partially a PerformanceIndicatorSpecification", + description = "This operation updates partially a PerformanceIndicatorSpecification entity.", + tags = { "performanceIndicatorSpecification" }, + responses = { + @ApiResponse(responseCode = "200", description = "Success", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = PerformanceIndicatorSpecification.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = PerformanceIndicatorSpecification.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = PerformanceIndicatorSpecification.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = PerformanceIndicatorSpecification.class)) + }), + @ApiResponse(responseCode = "202", description = "Accepted"), + @ApiResponse(responseCode = "400", description = "Bad Request", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "403", description = "Forbidden", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "404", description = "Not Found", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "405", description = "Method Not allowed", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "409", description = "Conflict", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "500", description = "Internal Server Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "501", description = "Not Implemented", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "503", description = "Service Unavailable", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/merge-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch+json", schema = @Schema(implementation = Error.class)), + @Content(mediaType = "application/json-patch-query+json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.PATCH, + value = "/performanceIndicatorSpecification/{id}", + produces = { "application/json", "application/merge-patch+json", "application/json-patch+json", "application/json-patch-query+json" }, + consumes = { "application/json", "application/merge-patch+json", "application/json-patch+json", "application/json-patch-query+json" } + ) + + default ResponseEntity patchPerformanceIndicatorSpecification( + @Parameter(name = "id", description = "Identifier of the Resource", required = true, in = ParameterIn.PATH) @PathVariable("id") String id, + @Parameter(name = "PerformanceIndicatorSpecificationMVO", description = "The PerformanceIndicatorSpecification to be patched", required = true) @Valid @RequestBody PerformanceIndicatorSpecificationMVO performanceIndicatorSpecificationMVO, + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"derivationAlgorithm\" : \"derivationAlgorithm\", \"derivationMethod\" : \"derivationMethod\", \"performanceIndicatorSpecRelationship\" : [ { \"role\" : \"role\", \"relationshipType\" : \"relationshipType\", \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" } }, { \"role\" : \"role\", \"relationshipType\" : \"relationshipType\", \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" } } ], \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" }, \"name\" : \"name\", \"description\" : \"description\", \"perspective\" : \"perspective\", \"indicatorCategory\" : \"indicatorCategory\", \"indicatorUnit\" : \"indicatorUnit\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json-patch+json"))) { + String exampleString = "{ \"derivationAlgorithm\" : \"derivationAlgorithm\", \"derivationMethod\" : \"derivationMethod\", \"performanceIndicatorSpecRelationship\" : [ { \"role\" : \"role\", \"relationshipType\" : \"relationshipType\", \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" } }, { \"role\" : \"role\", \"relationshipType\" : \"relationshipType\", \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" } } ], \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" }, \"name\" : \"name\", \"description\" : \"description\", \"perspective\" : \"perspective\", \"indicatorCategory\" : \"indicatorCategory\", \"indicatorUnit\" : \"indicatorUnit\" }"; + ApiUtil.setExampleResponse(request, "application/json-patch+json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json-patch-query+json"))) { + String exampleString = "{ \"derivationAlgorithm\" : \"derivationAlgorithm\", \"derivationMethod\" : \"derivationMethod\", \"performanceIndicatorSpecRelationship\" : [ { \"role\" : \"role\", \"relationshipType\" : \"relationshipType\", \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" } }, { \"role\" : \"role\", \"relationshipType\" : \"relationshipType\", \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" } } ], \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" }, \"name\" : \"name\", \"description\" : \"description\", \"perspective\" : \"perspective\", \"indicatorCategory\" : \"indicatorCategory\", \"indicatorUnit\" : \"indicatorUnit\" }"; + ApiUtil.setExampleResponse(request, "application/json-patch-query+json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/merge-patch+json"))) { + String exampleString = "Custom MIME type example not yet supported: application/merge-patch+json"; + ApiUtil.setExampleResponse(request, "application/merge-patch+json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + + /** + * GET /performanceIndicatorSpecification/{id} : Retrieves a PerformanceIndicatorSpecification by ID + * This operation retrieves a PerformanceIndicatorSpecification entity. Attribute selection enabled for all first level attributes. + * + * @param id Identifier of the Resource (required) + * @param fields Comma-separated properties to be provided in response (optional) + * @return Success (status code 200) + * or Bad Request (status code 400) + * or Unauthorized (status code 401) + * or Forbidden (status code 403) + * or Not Found (status code 404) + * or Method Not allowed (status code 405) + * or Internal Server Error (status code 500) + * or Not Implemented (status code 501) + * or Service Unavailable (status code 503) + */ + @Operation( + operationId = "retrievePerformanceIndicatorSpecification", + summary = "Retrieves a PerformanceIndicatorSpecification by ID", + description = "This operation retrieves a PerformanceIndicatorSpecification entity. Attribute selection enabled for all first level attributes.", + tags = { "performanceIndicatorSpecification" }, + responses = { + @ApiResponse(responseCode = "200", description = "Success", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = PerformanceIndicatorSpecification.class)) + }), + @ApiResponse(responseCode = "400", description = "Bad Request", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "403", description = "Forbidden", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "404", description = "Not Found", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "405", description = "Method Not allowed", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "500", description = "Internal Server Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "501", description = "Not Implemented", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "503", description = "Service Unavailable", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.GET, + value = "/performanceIndicatorSpecification/{id}", + produces = { "application/json" } + ) + + default ResponseEntity retrievePerformanceIndicatorSpecification( + @Parameter(name = "id", description = "Identifier of the Resource", required = true, in = ParameterIn.PATH) @PathVariable("id") String id, + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"derivationAlgorithm\" : \"derivationAlgorithm\", \"derivationMethod\" : \"derivationMethod\", \"performanceIndicatorSpecRelationship\" : [ { \"role\" : \"role\", \"relationshipType\" : \"relationshipType\", \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" } }, { \"role\" : \"role\", \"relationshipType\" : \"relationshipType\", \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" } } ], \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" }, \"name\" : \"name\", \"description\" : \"description\", \"perspective\" : \"perspective\", \"indicatorCategory\" : \"indicatorCategory\", \"indicatorUnit\" : \"indicatorUnit\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm628/api/PerformanceIndicatorSpecificationApiController.java b/src/main/java/org/etsi/osl/tmf/pm628/api/PerformanceIndicatorSpecificationApiController.java new file mode 100755 index 0000000000000000000000000000000000000000..552d12bb0e67ebe14a704dc0c6dc0f12765d8939 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/api/PerformanceIndicatorSpecificationApiController.java @@ -0,0 +1,123 @@ +package org.etsi.osl.tmf.pm628.api; + +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import jakarta.validation.Valid; +import org.etsi.osl.tmf.pm628.model.MeasurementCollectionJob; +import org.etsi.osl.tmf.pm628.model.PerformanceIndicatorSpecification; +import org.etsi.osl.tmf.pm628.model.PerformanceIndicatorSpecificationFVO; +import org.etsi.osl.tmf.pm628.model.PerformanceIndicatorSpecificationMVO; +import org.etsi.osl.tmf.pm628.reposervices.PerformanceIndicatorSpecificationService; +import org.etsi.osl.tmf.so641.api.ServiceOrderApiController; +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 org.springframework.web.context.request.NativeWebRequest; + +import javax.annotation.Generated; +import java.util.List; +import java.util.Optional; + +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-05-15T07:30:16.936523289Z[Etc/UTC]", comments = "Generator version: 7.6.0-SNAPSHOT") +@Controller +@RequestMapping("${openapi.performance.base-path:/tmf-api/performance/v5}") +public class PerformanceIndicatorSpecificationApiController implements PerformanceIndicatorSpecificationApi { + + private static final Logger log = LoggerFactory.getLogger(ServiceOrderApiController.class); + + private final NativeWebRequest request; + + @Autowired + PerformanceIndicatorSpecificationService performanceIndicatorSpecificationService; + + @Autowired + public PerformanceIndicatorSpecificationApiController(NativeWebRequest request) { + this.request = request; + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + + @PreAuthorize("hasRole('ROLE_USER')") + @Override + public ResponseEntity createPerformanceIndicatorSpecification( + @Parameter(name = "PerformanceIndicatorSpecificationFVO", description = "The PerformanceIndicatorSpecification to be created", required = true) @Valid @RequestBody PerformanceIndicatorSpecificationFVO performanceIndicatorSpecificationFVO, + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields + ) { + try { + return new ResponseEntity(performanceIndicatorSpecificationService.createPerformanceIndicatorSpecification(performanceIndicatorSpecificationFVO), 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("hasRole('ROLE_USER')") + @Override + public ResponseEntity deletePerformanceIndicatorSpecification( + @Parameter(name = "id", description = "Identifier of the Resource", required = true, in = ParameterIn.PATH) @PathVariable("id") String id + ) { + try { + return new ResponseEntity(performanceIndicatorSpecificationService.deletePerformanceIndicatorSpecification(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("hasRole('ROLE_USER')") + @Override + public ResponseEntity> listPerformanceIndicatorSpecification( + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields, + @Parameter(name = "offset", description = "Requested index for start of resources to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "offset", required = false) Integer offset, + @Parameter(name = "limit", description = "Requested number of resources to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "limit", required = false) Integer limit + ) { + try { + // #TODO: Add parameters to findAllPerformanceIndicatorSpecifications + return new ResponseEntity>(performanceIndicatorSpecificationService.findAllPerformanceIndicatorSpecifications(), 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("hasRole('ROLE_USER')") + @Override + public ResponseEntity patchPerformanceIndicatorSpecification( + @Parameter(name = "id", description = "Identifier of the Resource", required = true, in = ParameterIn.PATH) @PathVariable("id") String id, + @Parameter(name = "PerformanceIndicatorSpecificationMVO", description = "The PerformanceIndicatorSpecification to be patched", required = true) @Valid @RequestBody PerformanceIndicatorSpecificationMVO performanceIndicatorSpecificationMVO, + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields + ) { + try { + return new ResponseEntity(performanceIndicatorSpecificationService.updatePerformanceIndicatorSpecification(id, performanceIndicatorSpecificationMVO), 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("hasRole('ROLE_USER')") + @Override + public ResponseEntity retrievePerformanceIndicatorSpecification( + @Parameter(name = "id", description = "Identifier of the Resource", required = true, in = ParameterIn.PATH) @PathVariable("id") String id, + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields + ) { + try { + // #TODO: Add parameters to findPerformanceIndicatorSpecificationByUuid + return new ResponseEntity(performanceIndicatorSpecificationService.findPerformanceIndicatorSpecificationByUuid(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/pm628/api/PerformanceMeasurementApi.java b/src/main/java/org/etsi/osl/tmf/pm628/api/PerformanceMeasurementApi.java new file mode 100644 index 0000000000000000000000000000000000000000..cc3a71f6ba89dc68cde788a7e4a8321f083d69c3 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/api/PerformanceMeasurementApi.java @@ -0,0 +1,273 @@ +/** + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (7.6.0-SNAPSHOT). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.pm628.api; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.ArraySchema; +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.tags.Tag; +import jakarta.validation.Valid; +import org.etsi.osl.tmf.common.model.Error; +import org.etsi.osl.tmf.pm628.model.PerformanceMeasurement; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +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 org.springframework.web.context.request.NativeWebRequest; + +import javax.annotation.Generated; +import java.util.List; +import java.util.Optional; + +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-05-15T07:30:16.936523289Z[Etc/UTC]", comments = "Generator version: 7.6.0-SNAPSHOT") +@Validated +@Tag(name = "performanceMeasurement", description = "Operations for PerformanceMeasurement Resource") +public interface PerformanceMeasurementApi { + + default Optional getRequest() { + return Optional.empty(); + } + + /** + * GET /performanceMeasurement : List or find PerformanceMeasurement objects + * List or find PerformanceMeasurement objects + * + * @param fields Comma-separated properties to be provided in response (optional) + * @param offset Requested index for start of resources to be provided in response (optional) + * @param limit Requested number of resources to be provided in response (optional) + * @return Success (status code 200) + * or Bad Request (status code 400) + * or Unauthorized (status code 401) + * or Forbidden (status code 403) + * or Not Found (status code 404) + * or Method Not allowed (status code 405) + * or Internal Server Error (status code 500) + * or Not Implemented (status code 501) + * or Service Unavailable (status code 503) + */ + @Operation( + operationId = "listPerformanceMeasurement", + summary = "List or find PerformanceMeasurement objects", + description = "List or find PerformanceMeasurement objects", + tags = { "performanceMeasurement" }, + responses = { + @ApiResponse(responseCode = "200", description = "Success", content = { + @Content(mediaType = "application/json", array = @ArraySchema(schema = @Schema(implementation = PerformanceMeasurement.class))) + }), + @ApiResponse(responseCode = "400", description = "Bad Request", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "403", description = "Forbidden", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "404", description = "Not Found", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "405", description = "Method Not allowed", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "500", description = "Internal Server Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "501", description = "Not Implemented", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "503", description = "Service Unavailable", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.GET, + value = "/performanceMeasurement", + produces = { "application/json" } + ) + + default ResponseEntity> listPerformanceMeasurement( + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields, + @Parameter(name = "offset", description = "Requested index for start of resources to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "offset", required = false) Integer offset, + @Parameter(name = "limit", description = "Requested number of resources to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "limit", required = false) Integer limit + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "[ { \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" }, \"measurementCollectionJob\" : { }, \"description\" : \"description\", \"relatedMeasurement\" : [ { \"role\" : \"role\", \"relationshipType\" : \"relationshipType\", \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" }, \"relatedMeasurement\" : { \"version\" : \"version\" } }, { \"role\" : \"role\", \"relationshipType\" : \"relationshipType\", \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" }, \"relatedMeasurement\" : { \"version\" : \"version\" } } ] }, { \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" }, \"measurementCollectionJob\" : { }, \"description\" : \"description\", \"relatedMeasurement\" : [ { \"role\" : \"role\", \"relationshipType\" : \"relationshipType\", \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" }, \"relatedMeasurement\" : { \"version\" : \"version\" } }, { \"role\" : \"role\", \"relationshipType\" : \"relationshipType\", \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" }, \"relatedMeasurement\" : { \"version\" : \"version\" } } ] } ]"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + + /** + * GET /performanceMeasurement/{id} : Retrieves a PerformanceMeasurement by ID + * This operation retrieves a PerformanceMeasurement entity. Attribute selection enabled for all first level attributes. + * + * @param id Identifier of the Resource (required) + * @param fields Comma-separated properties to be provided in response (optional) + * @return Success (status code 200) + * or Bad Request (status code 400) + * or Unauthorized (status code 401) + * or Forbidden (status code 403) + * or Not Found (status code 404) + * or Method Not allowed (status code 405) + * or Internal Server Error (status code 500) + * or Not Implemented (status code 501) + * or Service Unavailable (status code 503) + */ + @Operation( + operationId = "retrievePerformanceMeasurement", + summary = "Retrieves a PerformanceMeasurement by ID", + description = "This operation retrieves a PerformanceMeasurement entity. Attribute selection enabled for all first level attributes.", + tags = { "performanceMeasurement" }, + responses = { + @ApiResponse(responseCode = "200", description = "Success", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = PerformanceMeasurement.class)) + }), + @ApiResponse(responseCode = "400", description = "Bad Request", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "403", description = "Forbidden", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "404", description = "Not Found", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "405", description = "Method Not allowed", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "500", description = "Internal Server Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "501", description = "Not Implemented", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "503", description = "Service Unavailable", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.GET, + value = "/performanceMeasurement/{id}", + produces = { "application/json" } + ) + + default ResponseEntity retrievePerformanceMeasurement( + @Parameter(name = "id", description = "Identifier of the Resource", required = true, in = ParameterIn.PATH) @PathVariable("id") String id, + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" }, \"measurementCollectionJob\" : { }, \"description\" : \"description\", \"relatedMeasurement\" : [ { \"role\" : \"role\", \"relationshipType\" : \"relationshipType\", \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" }, \"relatedMeasurement\" : { \"version\" : \"version\" } }, { \"role\" : \"role\", \"relationshipType\" : \"relationshipType\", \"validFor\" : { \"startDateTime\" : \"1985-04-12T23:20:50.52Z\", \"endDateTime\" : \"1985-04-12T23:20:50.52Z\" }, \"relatedMeasurement\" : { \"version\" : \"version\" } } ] }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm628/api/PerformanceMeasurementApiController.java b/src/main/java/org/etsi/osl/tmf/pm628/api/PerformanceMeasurementApiController.java new file mode 100644 index 0000000000000000000000000000000000000000..8118bf4d59125c79cd172799585c1f5de8c181cb --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/api/PerformanceMeasurementApiController.java @@ -0,0 +1,28 @@ +package org.etsi.osl.tmf.pm628.api; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.context.request.NativeWebRequest; + +import javax.annotation.Generated; +import java.util.Optional; + +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-05-15T07:30:16.936523289Z[Etc/UTC]", comments = "Generator version: 7.6.0-SNAPSHOT") +@Controller +@RequestMapping("${openapi.performance.base-path:/tmf-api/performance/v5}") +public class PerformanceMeasurementApiController implements PerformanceMeasurementApi { + + private final NativeWebRequest request; + + @Autowired + public PerformanceMeasurementApiController(NativeWebRequest request) { + this.request = request; + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm628/api/TrackingRecordApi.java b/src/main/java/org/etsi/osl/tmf/pm628/api/TrackingRecordApi.java new file mode 100644 index 0000000000000000000000000000000000000000..516e9741de4f19c5395c3c7c48dc2b41bfd0454c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/api/TrackingRecordApi.java @@ -0,0 +1,273 @@ +/** + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (7.6.0-SNAPSHOT). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +package org.etsi.osl.tmf.pm628.api; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.ArraySchema; +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.tags.Tag; +import jakarta.validation.Valid; +import org.etsi.osl.tmf.common.model.Error; +import org.etsi.osl.tmf.pm628.model.TrackingRecord; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +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 org.springframework.web.context.request.NativeWebRequest; + +import javax.annotation.Generated; +import java.util.List; +import java.util.Optional; + +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-05-15T07:30:16.936523289Z[Etc/UTC]", comments = "Generator version: 7.6.0-SNAPSHOT") +@Validated +@Tag(name = "trackingRecord", description = "Operations for TrackingRecord Resource") +public interface TrackingRecordApi { + + default Optional getRequest() { + return Optional.empty(); + } + + /** + * GET /trackingRecord : List or find TrackingRecord objects + * List or find TrackingRecord objects + * + * @param fields Comma-separated properties to be provided in response (optional) + * @param offset Requested index for start of resources to be provided in response (optional) + * @param limit Requested number of resources to be provided in response (optional) + * @return Success (status code 200) + * or Bad Request (status code 400) + * or Unauthorized (status code 401) + * or Forbidden (status code 403) + * or Not Found (status code 404) + * or Method Not allowed (status code 405) + * or Internal Server Error (status code 500) + * or Not Implemented (status code 501) + * or Service Unavailable (status code 503) + */ + @Operation( + operationId = "listTrackingRecord", + summary = "List or find TrackingRecord objects", + description = "List or find TrackingRecord objects", + tags = { "trackingRecord" }, + responses = { + @ApiResponse(responseCode = "200", description = "Success", content = { + @Content(mediaType = "application/json", array = @ArraySchema(schema = @Schema(implementation = TrackingRecord.class))) + }), + @ApiResponse(responseCode = "400", description = "Bad Request", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "403", description = "Forbidden", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "404", description = "Not Found", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "405", description = "Method Not allowed", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "500", description = "Internal Server Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "501", description = "Not Implemented", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "503", description = "Service Unavailable", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.GET, + value = "/trackingRecord", + produces = { "application/json" } + ) + + default ResponseEntity> listTrackingRecord( + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields, + @Parameter(name = "offset", description = "Requested index for start of resources to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "offset", required = false) Integer offset, + @Parameter(name = "limit", description = "Requested number of resources to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "limit", required = false) Integer limit + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "[ { \"systemId\" : \"systemId\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"description\" : \"[\\\"acknowledge\\\",\\\"clear\\\"]\", \"time\" : \"2000-01-23T04:56:07.000+00:00\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\", \"user\" : \"user\", \"characteristic\" : [ { \"characteristicRelationship\" : [ { \"@baseType\" : \"@baseType\", \"relationshipType\" : \"relationshipType\", \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\" }, { \"@baseType\" : \"@baseType\", \"relationshipType\" : \"relationshipType\", \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\" } ], \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\" }, { \"characteristicRelationship\" : [ { \"@baseType\" : \"@baseType\", \"relationshipType\" : \"relationshipType\", \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\" }, { \"@baseType\" : \"@baseType\", \"relationshipType\" : \"relationshipType\", \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\" } ], \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\" } ] }, { \"systemId\" : \"systemId\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"description\" : \"[\\\"acknowledge\\\",\\\"clear\\\"]\", \"time\" : \"2000-01-23T04:56:07.000+00:00\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\", \"user\" : \"user\", \"characteristic\" : [ { \"characteristicRelationship\" : [ { \"@baseType\" : \"@baseType\", \"relationshipType\" : \"relationshipType\", \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\" }, { \"@baseType\" : \"@baseType\", \"relationshipType\" : \"relationshipType\", \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\" } ], \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\" }, { \"characteristicRelationship\" : [ { \"@baseType\" : \"@baseType\", \"relationshipType\" : \"relationshipType\", \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\" }, { \"@baseType\" : \"@baseType\", \"relationshipType\" : \"relationshipType\", \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\" } ], \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\" } ] } ]"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + + /** + * GET /trackingRecord/{id} : Retrieves a TrackingRecord by ID + * This operation retrieves a TrackingRecord entity. Attribute selection enabled for all first level attributes. + * + * @param id Identifier of the Resource (required) + * @param fields Comma-separated properties to be provided in response (optional) + * @return Success (status code 200) + * or Bad Request (status code 400) + * or Unauthorized (status code 401) + * or Forbidden (status code 403) + * or Not Found (status code 404) + * or Method Not allowed (status code 405) + * or Internal Server Error (status code 500) + * or Not Implemented (status code 501) + * or Service Unavailable (status code 503) + */ + @Operation( + operationId = "retrieveTrackingRecord", + summary = "Retrieves a TrackingRecord by ID", + description = "This operation retrieves a TrackingRecord entity. Attribute selection enabled for all first level attributes.", + tags = { "trackingRecord" }, + responses = { + @ApiResponse(responseCode = "200", description = "Success", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = TrackingRecord.class)) + }), + @ApiResponse(responseCode = "400", description = "Bad Request", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "403", description = "Forbidden", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "404", description = "Not Found", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "405", description = "Method Not allowed", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "500", description = "Internal Server Error", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "501", description = "Not Implemented", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }), + @ApiResponse(responseCode = "503", description = "Service Unavailable", content = { + @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class)) + }) + } + ) + @RequestMapping( + method = RequestMethod.GET, + value = "/trackingRecord/{id}", + produces = { "application/json" } + ) + + default ResponseEntity retrieveTrackingRecord( + @Parameter(name = "id", description = "Identifier of the Resource", required = true, in = ParameterIn.PATH) @PathVariable("id") String id, + @Parameter(name = "fields", description = "Comma-separated properties to be provided in response", in = ParameterIn.QUERY) @Valid @RequestParam(value = "fields", required = false) String fields + ) { + getRequest().ifPresent(request -> { + for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"systemId\" : \"systemId\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"description\" : \"[\\\"acknowledge\\\",\\\"clear\\\"]\", \"time\" : \"2000-01-23T04:56:07.000+00:00\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\", \"user\" : \"user\", \"characteristic\" : [ { \"characteristicRelationship\" : [ { \"@baseType\" : \"@baseType\", \"relationshipType\" : \"relationshipType\", \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\" }, { \"@baseType\" : \"@baseType\", \"relationshipType\" : \"relationshipType\", \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\" } ], \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\" }, { \"characteristicRelationship\" : [ { \"@baseType\" : \"@baseType\", \"relationshipType\" : \"relationshipType\", \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\" }, { \"@baseType\" : \"@baseType\", \"relationshipType\" : \"relationshipType\", \"@type\" : \"@type\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\" } ], \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"valueType\" : \"valueType\", \"name\" : \"name\", \"id\" : \"id\", \"@schemaLocation\" : \"@schemaLocation\" } ] }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) { + String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }"; + ApiUtil.setExampleResponse(request, "application/json", exampleString); + break; + } + } + }); + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm628/api/TrackingRecordApiController.java b/src/main/java/org/etsi/osl/tmf/pm628/api/TrackingRecordApiController.java new file mode 100644 index 0000000000000000000000000000000000000000..702731b1e3d50bb93083d272637ee9cc5d44ef10 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/api/TrackingRecordApiController.java @@ -0,0 +1,28 @@ +package org.etsi.osl.tmf.pm628.api; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.context.request.NativeWebRequest; + +import javax.annotation.Generated; +import java.util.Optional; + +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-05-15T07:30:16.936523289Z[Etc/UTC]", comments = "Generator version: 7.6.0-SNAPSHOT") +@Controller +@RequestMapping("${openapi.performance.base-path:/tmf-api/performance/v5}") +public class TrackingRecordApiController implements TrackingRecordApi { + + private final NativeWebRequest request; + + @Autowired + public TrackingRecordApiController(NativeWebRequest request) { + this.request = request; + } + + @Override + public Optional getRequest() { + return Optional.ofNullable(request); + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm628/configuration/EnumConverterConfiguration.java b/src/main/java/org/etsi/osl/tmf/pm628/configuration/EnumConverterConfiguration.java new file mode 100644 index 0000000000000000000000000000000000000000..84451b93081920aa204ee7bc673ea56ac74afc46 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/configuration/EnumConverterConfiguration.java @@ -0,0 +1,133 @@ +package org.etsi.osl.tmf.pm628.configuration; + +import org.etsi.osl.tmf.pm628.model.*; +import org.etsi.osl.tmf.po622.model.OrderItemActionType; +import org.etsi.osl.tmf.ri639.model.ResourceAdministrativeStateType; +import org.etsi.osl.tmf.ri639.model.ResourceOperationalStateType; +import org.etsi.osl.tmf.ri639.model.ResourceUsageStateType; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.converter.Converter; + +@Configuration +public class EnumConverterConfiguration { + + @Bean(name = "org.openapitools.configuration.EnumConverterConfiguration.administrativeStateConverter") + Converter administrativeStateConverter() { + return new Converter() { + @Override + public AdministrativeState convert(String source) { + return AdministrativeState.fromValue(source); + } + }; + } + @Bean(name = "org.openapitools.configuration.EnumConverterConfiguration.collectionTypeConverter") + Converter collectionTypeConverter() { + return new Converter() { + @Override + public CollectionType convert(String source) { + return CollectionType.fromValue(source); + } + }; + } + @Bean(name = "org.openapitools.configuration.EnumConverterConfiguration.compressionEnumTypeConverter") + Converter compressionEnumTypeConverter() { + return new Converter() { + @Override + public CompressionEnumType convert(String source) { + return CompressionEnumType.fromValue(source); + } + }; + } + @Bean(name = "org.openapitools.configuration.EnumConverterConfiguration.executionStateTypeConverter") + Converter executionStateTypeConverter() { + return new Converter() { + @Override + public ExecutionStateType convert(String source) { + return ExecutionStateType.fromValue(source); + } + }; + } + @Bean(name = "org.openapitools.configuration.EnumConverterConfiguration.granularityConverter") + Converter granularityConverter() { + return new Converter() { + @Override + public Granularity convert(String source) { + return Granularity.fromValue(source); + } + }; + } + @Bean(name = "org.openapitools.configuration.EnumConverterConfiguration.indicatorTypeConverter") + Converter indicatorTypeConverter() { + return new Converter() { + @Override + public IndicatorType convert(String source) { + return IndicatorType.fromValue(source); + } + }; + } + @Bean(name = "org.openapitools.configuration.EnumConverterConfiguration.orderItemActionTypeConverter") + Converter orderItemActionTypeConverter() { + return new Converter() { + @Override + public OrderItemActionType convert(String source) { + return OrderItemActionType.fromValue(source); + } + }; + } + @Bean(name = "org.openapitools.configuration.EnumConverterConfiguration.packingEnumTypeConverter") + Converter packingEnumTypeConverter() { + return new Converter() { + @Override + public PackingEnumType convert(String source) { + return PackingEnumType.fromValue(source); + } + }; + } + @Bean(name = "org.openapitools.configuration.EnumConverterConfiguration.reportingPeriodConverter") + Converter reportingPeriodConverter() { + return new Converter() { + @Override + public ReportingPeriod convert(String source) { + return ReportingPeriod.fromValue(source); + } + }; + } + @Bean(name = "org.openapitools.configuration.EnumConverterConfiguration.resourceAdministrativeStateTypeConverter") + Converter resourceAdministrativeStateTypeConverter() { + return new Converter() { + @Override + public ResourceAdministrativeStateType convert(String source) { + return ResourceAdministrativeStateType.fromValue(source); + } + }; + } + @Bean(name = "org.openapitools.configuration.EnumConverterConfiguration.resourceOperationalStateTypeConverter") + Converter resourceOperationalStateTypeConverter() { + return new Converter() { + @Override + public ResourceOperationalStateType convert(String source) { + return ResourceOperationalStateType.fromValue(source); + } + }; + } + @Bean(name = "org.openapitools.configuration.EnumConverterConfiguration.resourceStatusTypeConverter") + Converter resourceStatusTypeConverter() { + return new Converter() { + @Override + public ResourceStatusType convert(String source) { + return ResourceStatusType.fromValue(source); + } + }; + } + @Bean(name = "org.openapitools.configuration.EnumConverterConfiguration.resourceUsageStateTypeConverter") + Converter resourceUsageStateTypeConverter() { + return new Converter() { + @Override + public ResourceUsageStateType convert(String source) { + return ResourceUsageStateType.fromValue(source); + } + }; + } + +} diff --git a/src/main/java/org/etsi/osl/tmf/pm628/configuration/SpringDocConfiguration.java b/src/main/java/org/etsi/osl/tmf/pm628/configuration/SpringDocConfiguration.java new file mode 100644 index 0000000000000000000000000000000000000000..3ef0a452a58704fa7dab637bad44467586137dad --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/configuration/SpringDocConfiguration.java @@ -0,0 +1,22 @@ +package org.etsi.osl.tmf.pm628.configuration; + +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.info.Info; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class SpringDocConfiguration { + + @Bean(name = "org.openapitools.configuration.SpringDocConfiguration.apiInfo") + OpenAPI apiInfo() { + return new OpenAPI() + .info( + new Info() + .title("Performance") + .description("TMF628 Performance Management API") + .version("5.0.0") + ) + ; + } +} \ No newline at end of file diff --git a/src/main/java/org/etsi/osl/tmf/pm628/repo/DataAccessEndpointRepository.java b/src/main/java/org/etsi/osl/tmf/pm628/repo/DataAccessEndpointRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..71ae6bc132c975cac4e54b9a999b06dbbbc4454d --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/repo/DataAccessEndpointRepository.java @@ -0,0 +1,13 @@ +package org.etsi.osl.tmf.pm628.repo; + +import org.etsi.osl.tmf.pm628.model.DataAccessEndpoint; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + +import java.util.Optional; + +@Repository +public interface DataAccessEndpointRepository extends CrudRepository, PagingAndSortingRepository { + Optional findByUuid(String uuid); +} diff --git a/src/main/java/org/etsi/osl/tmf/pm628/repo/MeasurementCollectionJobRepository.java b/src/main/java/org/etsi/osl/tmf/pm628/repo/MeasurementCollectionJobRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..444e9d0c0a7100a6db058e558bf67220eaca5e0a --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/repo/MeasurementCollectionJobRepository.java @@ -0,0 +1,16 @@ +package org.etsi.osl.tmf.pm628.repo; + +import org.etsi.osl.tmf.pm628.model.ExecutionStateType; +import org.etsi.osl.tmf.pm628.model.MeasurementCollectionJob; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + +import java.util.Optional; + +@Repository +public interface MeasurementCollectionJobRepository extends CrudRepository, PagingAndSortingRepository { + Optional findByUuid(String uuid); + + Iterable findByExecutionState(ExecutionStateType executionState); +} diff --git a/src/main/java/org/etsi/osl/tmf/pm628/repo/PerformanceIndicatorSpecificationRepository.java b/src/main/java/org/etsi/osl/tmf/pm628/repo/PerformanceIndicatorSpecificationRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..0764d9cf5eb21521e26c7f6fe7ddfedf0eac9a16 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/repo/PerformanceIndicatorSpecificationRepository.java @@ -0,0 +1,13 @@ +package org.etsi.osl.tmf.pm628.repo; + +import org.etsi.osl.tmf.pm628.model.PerformanceIndicatorSpecification; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + +import java.util.Optional; + +@Repository +public interface PerformanceIndicatorSpecificationRepository extends CrudRepository, PagingAndSortingRepository { + Optional findByUuid(String uuid); +} diff --git a/src/main/java/org/etsi/osl/tmf/pm628/reposervices/DataAccessEndpointService.java b/src/main/java/org/etsi/osl/tmf/pm628/reposervices/DataAccessEndpointService.java new file mode 100644 index 0000000000000000000000000000000000000000..cdf47ab7bf8d2cac38d076d7812984f3cc709666 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/reposervices/DataAccessEndpointService.java @@ -0,0 +1,71 @@ +package org.etsi.osl.tmf.pm628.reposervices; + + +import jakarta.validation.Valid; +import org.etsi.osl.tmf.pm628.model.DataAccessEndpoint; +import org.etsi.osl.tmf.pm628.model.DataAccessEndpointFVO; +import org.etsi.osl.tmf.pm628.model.DataAccessEndpointMVO; +import org.etsi.osl.tmf.pm628.model.DataAccessEndpointMapper; +import org.etsi.osl.tmf.pm628.repo.DataAccessEndpointRepository; +import org.mapstruct.factory.Mappers; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Optional; + +@Service +@Transactional +public class DataAccessEndpointService { + + private static final Logger log = LoggerFactory.getLogger(DataAccessEndpointService.class); + + private final DataAccessEndpointRepository dataAccessEndpointRepository; + + @Autowired + public DataAccessEndpointService(DataAccessEndpointRepository dataAccessEndpointRepository) { + this.dataAccessEndpointRepository = dataAccessEndpointRepository; + } + + public List findAllDataAccessEndpoints(){ + log.debug("DataAccessEndpoint LIST"); + return (List) dataAccessEndpointRepository.findAll(); + } + + public DataAccessEndpoint findDataAccessEndpointByUuid(String uuid){ + log.debug("DataAccessEndpoint FIND BY UUID"); + Optional dataAccessEndpoint = dataAccessEndpointRepository.findByUuid(uuid); + return dataAccessEndpoint.orElse(null); + } + + public DataAccessEndpoint createDataAccessEndpoint(DataAccessEndpointFVO dataAccessEndpointFVO){ + log.info("DataAccessEndpoint CREATE: {}",dataAccessEndpointFVO); + + DataAccessEndpointMapper mapper = Mappers.getMapper(DataAccessEndpointMapper.class); + DataAccessEndpoint dataAccessEndpoint = mapper.createDataAccessEndpoint(dataAccessEndpointFVO); + + return dataAccessEndpointRepository.save(dataAccessEndpoint); + } + + public DataAccessEndpoint updateDataAccessEndpoint(String uuid, @Valid DataAccessEndpointMVO dataAccessEndpointUpdate){ + log.info("DataAccessEndpoint UPDATE with UUID: {}", uuid); + DataAccessEndpoint dataAccessEndpoint = dataAccessEndpointRepository.findByUuid(uuid). + orElseThrow(() -> new IllegalArgumentException("No Data Access Endpoint with UUID: " + uuid)); + + DataAccessEndpointMapper mapper = Mappers.getMapper(DataAccessEndpointMapper.class); + + dataAccessEndpoint = mapper.updateDataAccessEndpoint(dataAccessEndpointUpdate, dataAccessEndpoint); + dataAccessEndpointRepository.save(dataAccessEndpoint); + return dataAccessEndpoint; + } + + public void deleteDataAccessEndpoint(String uuid){ + log.info("DataAccessEndpoint DELETE with UUID:{}", uuid); + DataAccessEndpoint dataAccessEndpoint = dataAccessEndpointRepository.findByUuid(uuid) + .orElseThrow(() -> new IllegalArgumentException("No Data Access Endpoint with UUID: " + uuid)); + dataAccessEndpointRepository.delete(dataAccessEndpoint); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pm628/reposervices/MeasurementCollectionJobService.java b/src/main/java/org/etsi/osl/tmf/pm628/reposervices/MeasurementCollectionJobService.java new file mode 100755 index 0000000000000000000000000000000000000000..8f2ab85f1eaffa68c3e11ee20a770f7010cd3f4c --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/reposervices/MeasurementCollectionJobService.java @@ -0,0 +1,396 @@ +package org.etsi.osl.tmf.pm628.reposervices; + +import jakarta.persistence.EntityManagerFactory; +import org.hibernate.query.Query; +import jakarta.validation.Valid; +import org.etsi.osl.tmf.pm628.api.MeasurementCollectionJobApiRouteBuilderEvents; +import org.etsi.osl.tmf.pm628.model.*; +import org.etsi.osl.tmf.pm628.repo.MeasurementCollectionJobRepository; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.mapstruct.factory.Mappers; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; +import java.util.*; + +@Service +@Transactional +public class MeasurementCollectionJobService { + + private static final Logger log = LoggerFactory.getLogger(MeasurementCollectionJobService.class); + + @Autowired + private final MeasurementCollectionJobRepository measurementCollectionJobRepository; + + @Autowired + MeasurementCollectionJobApiRouteBuilderEvents routeBuilderEvents; + + private SessionFactory sessionFactory; + + @Autowired + public MeasurementCollectionJobService(MeasurementCollectionJobRepository measurementCollectionJobRepository, EntityManagerFactory factory) { + this.measurementCollectionJobRepository = measurementCollectionJobRepository; + + if (factory.unwrap(SessionFactory.class) == null) { + throw new NullPointerException("factory is not a hibernate factory"); + } + this.sessionFactory = factory.unwrap(SessionFactory.class); + } + + public List findAllMeasurementCollectionJobs(){ + log.info("MeasurementCollectionJobService: LIST"); + return (List) measurementCollectionJobRepository.findAll(); + } + + public List findAllByExecutionState(ExecutionStateType executionState) { + log.info("find by state:" + executionState ); + return (List) this.measurementCollectionJobRepository.findByExecutionState(executionState); + } + + @Transactional + public List findAll(@Valid String fields, Map allParams) throws UnsupportedEncodingException { + Session session = sessionFactory.openSession(); + Transaction tx = session.beginTransaction(); + List> resultList = new ArrayList<>(); + + try { + StringBuilder sql = new StringBuilder("SELECT "); + sql.append("mcj.uuid as uuid, ") + .append("mcj.creationTime as creationTime, ") + .append("mcj.reportingPeriod as reportingPeriod, ") + .append("mcj.granularity as granularity, ") + .append("mcj.consumingApplicationId as consumingApplicationId, ") + .append("mcj.producingApplicationId as producingApplicationId, ") + .append("mcj.executionState as executionState, ") + .append("mcj.jobId as jobId, ") + // DataAccessEndpoint attributes + .append("dae.uuid as dataAccessEndpoint_uuid, ") + .append("dae.uri as dataAccessEndpoint_uri, ") + .append("dae.apiType as dataAccessEndpoint_apiType, ") + .append("dae.resourceStatus as dataAccessEndpoint_resourceStatus, ") + .append("dae.operationalState as dataAccessEndpoint_operationalState, ") + // DataAccessEndpoint uriQueryFilter mappings attributes + .append("map.filterTemplate.name as dae_uriqf_mapping_name, ") + .append("map.filterTemplate.description as dae_uriqf_mapping_description, ") + .append("map.stringArray.value as dae_uriqf_mapping_value, ") + .append("map.filterTemplate.id as dae_uriqf_mapping_id, ") + // DataAccessEndpoint resourceOrderItem attributes + .append("roi.resourceOrderHref as dae_resOrdItem_resourceOrderHref, ") + .append("roi.resourceOrderId as dae_resOrdItem_resourceOrderId, ") + .append("roi.itemAction as dae_resOrdItem_itemAction, ") + .append("roi.itemId as dae_resOrdItem_itemId, ") + .append("roi.role as dae_resOrdItem_role, ") + // ScheduleDefinition attributes + .append("sd.scheduleDefinitionStartTime as scheduleDefinition_startTime, ") + .append("sd.scheduleDefinitionEndTime as scheduleDefinition_endTime, ") + .append("sd.recurringFrequency as scheduleDefinition_recurringFrequency, ") + .append("sd.excludedDate as scheduleDefinition_excludedDate, ") + .append("sd.scheduleDefinitionHourRange as scheduleDefinition_hourRange, ") + .append("sd.monthlyScheduleDayOfMonthDefinition as scheduleDefinition_monthlyScheduleDayOfMonthDefinition, ") + .append("sd.dateScheduleDefintion as scheduleDefinition_dateScheduleDefintion, ") + .append("wsd.dates as scheduleDefinition_weeklyScheduledDefinition_Dates, ") + .append("sd.monthlyScheduleDayOfWeekDefinition.recurringDaySequence as scheduleDefinition_monthlyScheduleDayOfWeekDefinition_recurringDaySequence, ") + .append("domr.dates as scheduleDefinition_monthlyScheduleDayOfWeekDefinition_dayOfMonthRecurrence_dates "); + + if (fields != null && !fields.isEmpty()) { + String[] fieldArray = fields.split(","); + for (String field : fieldArray) { + sql.append(", mcj.").append(field.trim()).append(" as ").append(field.trim()); + } + } + + sql.append(" FROM PM628_MCJob mcj ") + .append("LEFT JOIN mcj.dataAccessEndpoint dae ") + .append("LEFT JOIN dae.uriQueryFilter.mappings map ") + .append("LEFT JOIN dae.resourceOrderItem roi ") + .append("LEFT JOIN mcj.scheduleDefinition sd ") + .append("LEFT JOIN sd.weeklyScheduledDefinition wsd ") + .append("LEFT JOIN sd.monthlyScheduleDayOfWeekDefinition.dayOfMonthRecurrence domr "); + + if (!allParams.isEmpty()) { + sql.append(" WHERE "); + for (String paramName : allParams.keySet()) { + sql.append("mcj.").append(paramName).append(" LIKE :").append(paramName).append(" AND "); + } + sql.setLength(sql.length() - 5); // Remove the last " AND " + } + + sql.append(" ORDER BY mcj.creationTime DESC"); + + Query query = session.createQuery(sql.toString()); + for (Map.Entry entry : allParams.entrySet()) { + query.setParameter(entry.getKey(), "%" + URLDecoder.decode(entry.getValue(), StandardCharsets.UTF_8.toString()) + "%"); + } + + List queryResult = query.list(); + Map> mcJobMap = new LinkedHashMap<>(); + Map> daeMap = new LinkedHashMap<>(); + Map> sdMap = new LinkedHashMap<>(); + + for (Object[] row : queryResult) { + String mcjUuid = (String) row[0]; + + // If this mcjUuid hasn't been seen, create a new entry for it + mcJobMap.computeIfAbsent(mcjUuid, k -> { + Map mcJobData = new LinkedHashMap<>(); + mcJobData.put("uuid", row[0]); + mcJobData.put("creationTime", row[1]); + mcJobData.put("reportingPeriod", row[2]); + mcJobData.put("granularity", row[3]); + mcJobData.put("consumingApplicationId", row[4]); + mcJobData.put("producingApplicationId", row[5]); + mcJobData.put("executionState", row[6]); + mcJobData.put("jobId", row[7]); + mcJobData.put("dataAccessEndpoint", new ArrayList>()); + mcJobData.put("scheduleDefinition", new ArrayList>()); + + if (fields != null && !fields.isEmpty()) { + String[] fieldArray = fields.split(","); + for (int i = 0; i < fieldArray.length; i++) { + mcJobData.put(fieldArray[i].trim(), row[9 + i]); + } + } + return mcJobData; + }); + + String daeUuid = (String) row[8]; + + // Check if DataAccessEndpoint fields are null; if so, skip adding it + if (daeUuid != null) { + Map daeData = daeMap.computeIfAbsent(daeUuid, k -> { + Map newDaeData = new LinkedHashMap<>(); + newDaeData.put("uuid", row[8]); + newDaeData.put("uri", row[9]); + newDaeData.put("apiType", row[10]); + newDaeData.put("resourceStatus", row[11]); + newDaeData.put("operationalState", row[12]); + newDaeData.put("uriQueryFilter", new LinkedHashMap()); + newDaeData.put("resourceOrderItem", new ArrayList>()); + ((List>) mcJobMap.get(mcjUuid).get("dataAccessEndpoint")).add(newDaeData); + return newDaeData; + }); + + // Create uriQueryFilter map and add mappings + Map uriQueryFilter = (Map) daeData.get("uriQueryFilter"); + Set> mappingsSet = (Set>) uriQueryFilter.computeIfAbsent("mappings", k -> new LinkedHashSet<>()); + + // Check if mapping fields are null; if so, skip adding it + if (row[13] != null || row[14] != null || row[15] != null || row[16] != null) { + Map mappingData = new LinkedHashMap<>(); + mappingData.put("name", row[13]); + mappingData.put("description", row[14]); + mappingData.put("value", row[15]); + mappingData.put("id", row[16]); + mappingsSet.add(mappingData); + } + + // Retrieve resourceOrderItem and add to DAE + List> roiList = (List>) daeData.get("resourceOrderItem"); + + // Check if resource order item fields are null; if so, skip adding it + if (row[17] != null || row[18] != null || row[19] != null || row[20] != null || row[21] != null) { + Map roiData = new LinkedHashMap<>(); + roiData.put("resourceOrderHref", row[17]); + roiData.put("resourceOrderId", row[18]); + roiData.put("itemAction", row[19]); + roiData.put("itemId", row[20]); + roiData.put("role", row[21]); + roiList.add(roiData); + } + } + + // Check if ScheduleDefinition fields are null; if so, skip adding it + if (row[22] != null || row[23] != null || row[24] != null || row[25] != null || row[26] != null || row[27] != null || row[28] != null || row[29] != null | row[30] != null) { + String sdUuid = mcjUuid + "_" + row[22] + "_" + row[23]; // Unique key for schedule definition + + Map sdData = sdMap.computeIfAbsent(sdUuid, k -> { + Map newSdData = new LinkedHashMap<>(); + newSdData.put("scheduleDefinitionStartTime", row[22]); + newSdData.put("scheduleDefinitionEndTime", row[23]); + newSdData.put("recurringFrequency", row[24]); + newSdData.put("excludedDate", new LinkedHashSet<>()); + newSdData.put("scheduleDefinitionHourRange", row[26]); + newSdData.put("monthlyScheduleDayOfMonthDefinition", new LinkedHashSet<>()); + newSdData.put("dateScheduleDefintion", new LinkedHashSet<>()); + newSdData.put("weeklyScheduledDefinition", new LinkedHashMap<>()); + newSdData.put("monthlyScheduleDayOfWeekDefinition", new LinkedHashMap<>()); + ((List>) mcJobMap.get(mcjUuid).get("scheduleDefinition")).add(newSdData); + return newSdData; + }); + + // Add excludedDate + if (row[25] != null) { + ((Set) sdData.get("excludedDate")).add(row[25]); + } + + // Add monthlyScheduleDayOfMonthDefinition + if (row[27] != null) { + ((Set) sdData.get("monthlyScheduleDayOfMonthDefinition")).add(row[27]); + } + + // Add dateScheduleDefintion + if (row[28] != null) { + ((Set) sdData.get("dateScheduleDefintion")).add(row[28]); + } + + // Add weeklyScheduledDefinition + Map weeklyScheduledDefinition = (Map) sdData.get("weeklyScheduledDefinition"); + if (row[29] != null) { + Set> dayOfWeekRecurrence = (Set>) weeklyScheduledDefinition.computeIfAbsent("dayOfWeekRecurrence", k -> new LinkedHashSet<>()); + Map wsdData = new LinkedHashMap<>(); + wsdData.put("dates", row[29]); + dayOfWeekRecurrence.add(wsdData); + } + + // Add monthlyScheduleDayOfWeekDefinition + Map monthlyScheduleDayOfWeekDefinition = (Map) sdData.get("monthlyScheduleDayOfWeekDefinition"); + if (row[30] != null) { + monthlyScheduleDayOfWeekDefinition.put("recurringDaySequence", row[30]); + } + if (row[31] != null) { + Set> dayOfMonthRecurrence = (Set>) monthlyScheduleDayOfWeekDefinition.computeIfAbsent("dayOfMonthRecurrence", k -> new LinkedHashSet<>()); + Map domrData = new LinkedHashMap<>(); + domrData.put("dates", row[31]); + dayOfMonthRecurrence.add(domrData); + } + } + } + resultList.addAll(mcJobMap.values()); + } catch (Exception e) { + if (tx != null) { + tx.rollback(); + } + log.error("Error executing query", e); + } finally { + tx.commit(); + session.close(); + } + + return resultList; + } + + public MeasurementCollectionJob findMeasurementCollectionJobByUuid(String uuid){ + log.debug("MeasurementCollectionJob FIND BY UUID"); + Optional measurementCollectionJob = measurementCollectionJobRepository.findByUuid(uuid); + return measurementCollectionJob.orElse(null); + } + + public MeasurementCollectionJob createMeasurementCollectionJob(MeasurementCollectionJobFVO measurementCollectionJobFVO){ + log.info("MeasurementCollectionJob CREATE: {}", measurementCollectionJobFVO); + + MeasurementCollectionJobMapper mapper = Mappers.getMapper(MeasurementCollectionJobMapper.class); + MeasurementCollectionJob mcj = mapper.createMeasurementCollectionJob(measurementCollectionJobFVO); + + raiseMCJCreateNotification(mcj); + + return this.measurementCollectionJobRepository.save(mcj); + } + + public MeasurementCollectionJob updateMeasurementCollectionJob(String uuid, @Valid MeasurementCollectionJobMVO measurementCollectionJobUpdate){ + log.info("MeasurementCollectionJob UPDATE with UUID: {}", uuid); + + MeasurementCollectionJob measurementCollectionJob = measurementCollectionJobRepository.findByUuid(uuid). + orElseThrow(() -> new IllegalArgumentException("No MeasurementCollectionJob with UUID: " + uuid)); + + ExecutionStateType originalExecutionState = measurementCollectionJob.getExecutionState(); + boolean executionStateChanged = false; + + MeasurementCollectionJobMapper mapper = Mappers.getMapper(MeasurementCollectionJobMapper.class); + measurementCollectionJob = mapper.updateMeasurementCollectionJob(measurementCollectionJobUpdate, measurementCollectionJob); + + this.measurementCollectionJobRepository.save(measurementCollectionJob); + + // This may be unnecessary since MeasurementCollectionJobMVO doesn't have the executionState attribute + executionStateChanged = !originalExecutionState.equals(measurementCollectionJob.getExecutionState()); + + if (executionStateChanged) { + raiseMCJExecutionStateChangeNotification(measurementCollectionJob); + } else { + raiseMCJAttributeValueChangeNotification(measurementCollectionJob); + } + + return measurementCollectionJob; + } + + public Void deleteMeasurementCollectionJob(String uuid){ + log.info("MeasurementCollectionJob DELETE with UUID:{}", uuid); + MeasurementCollectionJob measurementCollectionJob = measurementCollectionJobRepository.findByUuid(uuid) + .orElseThrow(() -> new IllegalArgumentException("No MeasurementCollectionJob with UUID: " + uuid)); + measurementCollectionJobRepository.delete(measurementCollectionJob); + + raiseMCJDeleteNotification(measurementCollectionJob); + + return null; + } + + private void raiseMCJCreateNotification(MeasurementCollectionJob mcj){ + // Create the event payload + MeasurementCollectionJobRef ref = new MeasurementCollectionJobRef(); + ref.setId(mcj.getUuid()); + ref.setHref(mcj.getHref()); + + MeasurementCollectionJobCreateEventPayload payload = new MeasurementCollectionJobCreateEventPayload(); + payload.setMeasurementCollectionJob(ref); + + // Create the event + MeasurementCollectionJobCreateEvent event = new MeasurementCollectionJobCreateEvent(); + event.setTitle("MeasurementCollectionJob created"); + event.setDescription("MeasurementCollectionJob with UUID: " + mcj.getUuid() + " has been created"); + event.setEvent(payload); + + routeBuilderEvents.publishEvent(event, mcj.getUuid()); + } + + private void raiseMCJAttributeValueChangeNotification(MeasurementCollectionJob mcj){ + + // Create the event payload + MeasurementCollectionJobAttributeValueChangeEventPayload payload = new MeasurementCollectionJobAttributeValueChangeEventPayload(); + payload.setMeasurementCollectionJob(mcj); + + // Create the event + MeasurementCollectionJobAttributeValueChangeEvent event = new MeasurementCollectionJobAttributeValueChangeEvent(); + event.setTitle("MeasurementCollectionJob attribute value changed"); + event.setDescription("MeasurementCollectionJob with UUID: " + mcj.getUuid() + " has been updated"); + event.setEvent(payload); + + routeBuilderEvents.publishEvent(event, mcj.getUuid()); + } + + private void raiseMCJExecutionStateChangeNotification(MeasurementCollectionJob mcj){ + + // Create the event payload + MeasurementCollectionJobExecutionStateChangeEventPayload payload = new MeasurementCollectionJobExecutionStateChangeEventPayload(); + payload.setMeasurementCollectionJob(mcj); + + // Create the event + MeasurementCollectionJobExecutionStateChangeEvent event = new MeasurementCollectionJobExecutionStateChangeEvent(); + event.setTitle("MeasurementCollectionJob execution state changed"); + event.setDescription("MeasurementCollectionJob with UUID: " + mcj.getUuid() + " execution state has been updated"); + event.setEvent(payload); + + routeBuilderEvents.publishEvent(event, mcj.getUuid()); + } + + private void raiseMCJDeleteNotification(MeasurementCollectionJob mcj){ + + // Create the event payload + MeasurementCollectionJobDeleteEventPayload payload = new MeasurementCollectionJobDeleteEventPayload(); + payload.setMeasurementCollectionJob(mcj); + + // Create the event + MeasurementCollectionJobDeleteEvent event = new MeasurementCollectionJobDeleteEvent(); + event.setTitle("MeasurementCollectionJob deleted"); + event.setDescription("MeasurementCollectionJob with UUID: " + mcj.getUuid() + " execution state has been deleted"); + event.setEvent(payload); + + routeBuilderEvents.publishEvent(event, mcj.getUuid()); + } +} diff --git a/src/main/java/org/etsi/osl/tmf/pm628/reposervices/PerformanceIndicatorSpecificationService.java b/src/main/java/org/etsi/osl/tmf/pm628/reposervices/PerformanceIndicatorSpecificationService.java new file mode 100644 index 0000000000000000000000000000000000000000..83135282460701f9b17178258a96c53d56bf5b11 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/pm628/reposervices/PerformanceIndicatorSpecificationService.java @@ -0,0 +1,68 @@ +package org.etsi.osl.tmf.pm628.reposervices; + +import org.etsi.osl.tmf.pm628.model.*; +import org.etsi.osl.tmf.pm628.repo.PerformanceIndicatorSpecificationRepository; +import org.mapstruct.factory.Mappers; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +@Service +@Transactional +public class PerformanceIndicatorSpecificationService { + private static final Logger log = LoggerFactory.getLogger(MeasurementCollectionJobService.class); + + private final PerformanceIndicatorSpecificationRepository performanceIndicatorSpecificationRepository; + + @Autowired + public PerformanceIndicatorSpecificationService(PerformanceIndicatorSpecificationRepository performanceIndicatorSpecificationRepository) { + this.performanceIndicatorSpecificationRepository = performanceIndicatorSpecificationRepository; + } + + public List findAllPerformanceIndicatorSpecifications(){ + log.info("PerformanceIndicatorSpecificationService: LIST"); + return (List) performanceIndicatorSpecificationRepository.findAll(); + } + + public PerformanceIndicatorSpecification findPerformanceIndicatorSpecificationByUuid(String uuid){ + log.debug("PerformanceIndicatorSpecification FIND BY UUID"); + Optional performanceIndicatorSpecification = performanceIndicatorSpecificationRepository.findByUuid(uuid); + return performanceIndicatorSpecification.orElse(null); + } + + public PerformanceIndicatorSpecification createPerformanceIndicatorSpecification(PerformanceIndicatorSpecificationFVO performanceIndicatorSpecificationFVO){ + log.info("PerformanceIndicatorSpecification CREATE: {}", performanceIndicatorSpecificationFVO); + + PerformanceIndicatorSpecificationMapper mapper = Mappers.getMapper(PerformanceIndicatorSpecificationMapper.class); + PerformanceIndicatorSpecification pis = mapper.createPerformanceIndicatorSpecification(performanceIndicatorSpecificationFVO); + + return performanceIndicatorSpecificationRepository.save(pis); + } + + public PerformanceIndicatorSpecification updatePerformanceIndicatorSpecification(String uuid, PerformanceIndicatorSpecificationMVO performanceIndicatorSpecificationMVO){ + log.info("PerformanceIndicatorSpecification UPDATE with UUID: {}", uuid); + PerformanceIndicatorSpecification performanceIndicatorSpecification = performanceIndicatorSpecificationRepository.findByUuid(uuid). + orElseThrow(() -> new IllegalArgumentException("No PerformanceIndicatorSpecification with UUID: " + uuid)); + + PerformanceIndicatorSpecificationMapper mapper = Mappers.getMapper(PerformanceIndicatorSpecificationMapper.class); + performanceIndicatorSpecification = mapper.updatePerformanceIndicatorSpecification(performanceIndicatorSpecificationMVO, performanceIndicatorSpecification); + + performanceIndicatorSpecificationRepository.save(performanceIndicatorSpecification); + return performanceIndicatorSpecification; + } + + public Void deletePerformanceIndicatorSpecification(String uuid){ + log.info("PerformanceIndicatorSpecification DELETE with UUID:{}", uuid); + PerformanceIndicatorSpecification performanceIndicatorSpecification = performanceIndicatorSpecificationRepository.findByUuid(uuid) + .orElseThrow(() -> new IllegalArgumentException("No PerformanceIndicatorSpecification with UUID: " + uuid)); + performanceIndicatorSpecificationRepository.delete(performanceIndicatorSpecification); + + return null; + } +} 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 index 59e04eaa6022e9d37affddd650e6be50dc08545f..79b2f433e1e712e13c9a5eea8f967de513ebea29 100644 --- a/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceSpecificationApiRouteBuilder.java +++ b/src/main/java/org/etsi/osl/tmf/rcm634/api/ResourceSpecificationApiRouteBuilder.java @@ -35,8 +35,8 @@ public class ResourceSpecificationApiRouteBuilder extends RouteBuilder { private String CATALOG_GET_RESOURCESPEC_BY_ID = ""; - @Value("${CATALOG_GET_RESOURCESPEC_BY_ΝAME_CATEGORY}") - private String CATALOG_GET_RESOURCESPEC_BY_ΝAME_CATEGORY = ""; + @Value("${CATALOG_GET_RESOURCESPEC_BY_NAME_CATEGORY}") + private String CATALOG_GET_RESOURCESPEC_BY_NAME_CATEGORY = ""; @Autowired private ProducerTemplate template; @@ -79,8 +79,8 @@ public class ResourceSpecificationApiRouteBuilder extends RouteBuilder { .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!") + from( CATALOG_GET_RESOURCESPEC_BY_NAME_CATEGORY ) + .log(LoggingLevel.INFO, log, CATALOG_GET_RESOURCESPEC_BY_NAME_CATEGORY + " message received!") .to("log:DEBUG?showBody=true&showHeaders=true") .bean( resourceSpecificationRepoService, "findByNameAndCategoryAndVersionEager(${header.aname}, ${header.acategory}, ${header.aversion} )") .marshal().json( JsonLibrary.Jackson) 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 index 9e79d472e5903d40fea50714d745f4762057ae2b..7f522352b12b86bfa2404f994abd7d780dc2341c 100644 --- a/src/main/java/org/etsi/osl/tmf/ri639/reposervices/ResourceRepoService.java +++ b/src/main/java/org/etsi/osl/tmf/ri639/reposervices/ResourceRepoService.java @@ -60,6 +60,7 @@ 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.etsi.osl.tmf.sim638.service.ServiceRepoService; import org.hibernate.Hibernate; import org.hibernate.Session; import org.hibernate.SessionFactory; @@ -91,6 +92,9 @@ public class ResourceRepoService { @Autowired ResourceApiRouteBuilderEvents resourceApiRouteBuilder; + + @Autowired + ServiceRepoService serviceRepoService; @Autowired public ResourceRepoService(EntityManagerFactory factory) { @@ -445,6 +449,8 @@ public class ResourceRepoService { resource = this.resourceRepo.save(resource); + this.serviceRepoService.updateServicesHavingThisSupportingResource(resource); + if (resourceCharacteristicChanged) { raiseResourceAttributeValueChangeEventNotification(resource); } else if (resourceStateChanged) { 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 index 93afc976d554ffe86976320a3e0d56fd7b591191..b1e68771a517dcf2964a114df51ce35337396cfc 100644 --- a/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiRouteBuilder.java +++ b/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiRouteBuilder.java @@ -224,19 +224,19 @@ public class ServiceApiRouteBuilder extends RouteBuilder { - from( EVENT_RESOURCE_ATTRIBUTE_VALUE_CHANGED ) - .errorHandler(deadLetterChannel("direct:retriesDeadLetters") - .maximumRedeliveries(5) - .redeliveryDelay(1000).useOriginalMessage() - .logExhausted(true) - .logHandled(true) - .retriesExhaustedLogLevel(LoggingLevel.ERROR) - .retryAttemptedLogLevel(LoggingLevel.ERROR)) - - .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})"); +// from( EVENT_RESOURCE_ATTRIBUTE_VALUE_CHANGED ) +// .errorHandler(deadLetterChannel("direct:retriesDeadLetters") +// .maximumRedeliveries(5) +// .redeliveryDelay(1000).useOriginalMessage() +// .logExhausted(true) +// .logHandled(true) +// .retriesExhaustedLogLevel(LoggingLevel.ERROR) +// .retryAttemptedLogLevel(LoggingLevel.ERROR)) +// +// .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})"); 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 index 58b4c91cba358764d8120c62ce22af56f1cbe6f9..436cb6ce6a9690f44c63f2a89761123955b71e05 100644 --- a/src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java +++ b/src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java @@ -1111,11 +1111,9 @@ public class ServiceRepoService { @Transactional - public void resourceAttrChangedEvent(@Valid ResourceAttributeValueChangeNotification resNotif) { + public void updateServicesHavingThisSupportingResource(@Valid Resource res) { try { - 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() ); diff --git a/src/main/java/org/etsi/osl/tmf/util/RFC3339DateFormat.java b/src/main/java/org/etsi/osl/tmf/util/RFC3339DateFormat.java new file mode 100644 index 0000000000000000000000000000000000000000..357f0bbb7b2476d3557f3a9ad1883db85b55ae84 --- /dev/null +++ b/src/main/java/org/etsi/osl/tmf/util/RFC3339DateFormat.java @@ -0,0 +1,38 @@ +package org.etsi.osl.tmf.util; + +import com.fasterxml.jackson.databind.util.StdDateFormat; + +import java.text.DateFormat; +import java.text.FieldPosition; +import java.text.ParsePosition; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.TimeZone; + +public class RFC3339DateFormat extends DateFormat { + private static final long serialVersionUID = 1L; + private static final TimeZone TIMEZONE_Z = TimeZone.getTimeZone("UTC"); + + private final StdDateFormat fmt = new StdDateFormat() + .withTimeZone(TIMEZONE_Z) + .withColonInTimeZone(true); + + public RFC3339DateFormat() { + this.calendar = new GregorianCalendar(); + } + + @Override + public Date parse(String source, ParsePosition pos) { + return fmt.parse(source, pos); + } + + @Override + public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) { + return fmt.format(date, toAppendTo, fieldPosition); + } + + @Override + public Object clone() { + return this; + } +} \ No newline at end of file diff --git a/src/main/resources/application-testing.yml b/src/main/resources/application-testing.yml index b9e89cc5de12f717197a1d0ce97062dad6113315..719f8c57fedd3186a081820e20377eedd6965e36 100644 --- a/src/main/resources/application-testing.yml +++ b/src/main/resources/application-testing.yml @@ -105,6 +105,12 @@ 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" +PM_MEASUREMENT_COLLECTION_GET_JOB_BY_ID: "jms:queue:PM.MEASUREMENTCOLLECTIONJOB.GET_BY_ID" +PM_MEASUREMENT_COLLECTION_JOBS_GET: "jms:queue:PM.MEASUREMENTCOLLECTIONJOBS.GET" +PM_MEASUREMENT_COLLECTION_JOB_ADD: "jms:queue:PM.MEASUREMENTCOLLECTIONJOB.ADD" +PM_MEASUREMENT_COLLECTION_JOB_CREATED: "jms:queue:PM.MEASUREMENTCOLLECTIONJOB.CREATED" +PM_MEASUREMENT_COLLECTION_JOB_UPDATE: "jms:queue:PM.MEASUREMENTCOLLECTIONJOB.UPDATE" + #ALARMS ALARMS_ADD_ALARM: "jms:queue:ALARMS.ADD.ALARM" ALARMS_UPDATE_ALARM: "jms:queue:ALARMS.UPDATE.ALARM" @@ -126,6 +132,10 @@ 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" +EVENT_MEASUREMENT_COLLECTION_JOB_CREATE: "jms:topic:EVENT.MEASUREMENTCOLLECTIONJOB.CREATE" +EVENT_MEASUREMENT_COLLECTION_JOB_EXECUTION_STATE_CHANGED: "jms:topic:EVENT.MEASUREMENTCOLLECTIONJOB.STATECHANGED" +EVENT_MEASUREMENT_COLLECTION_JOB_DELETE: "jms:topic:EVENT.MEASUREMENTCOLLECTIONJOB.DELETE" +EVENT_MEASUREMENT_COLLECTION_JOB_ATTRIBUTE_VALUE_CHANGED: "jms:topic:EVENT.MEASUREMENTCOLLECTIONJOB.ATTRCHANGED" #QUEUE MESSSAGES WITH VNFNSD CATALOG NFV_CATALOG_GET_NSD_BY_ID: "jms:queue:NFVCATALOG.GET.NSD_BY_ID" @@ -140,7 +150,7 @@ 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" +CATALOG_GET_RESOURCESPEC_BY_NAME_CATEGORY: "jms:queue:CATALOG.GET.RESOURCESPEC_BY_NAME_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" diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index fb8fddc20895d76086621d9810638e9ebfbe9502..163f1d379831b166225b0ac421eb8a1998ed8993 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -135,6 +135,12 @@ 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" +PM_MEASUREMENT_COLLECTION_GET_JOB_BY_ID: "jms:queue:PM.MEASUREMENTCOLLECTIONJOB.GET_BY_ID" +PM_MEASUREMENT_COLLECTION_JOBS_GET: "jms:queue:PM.MEASUREMENTCOLLECTIONJOBS.GET" +PM_MEASUREMENT_COLLECTION_JOB_ADD: "jms:queue:PM.MEASUREMENTCOLLECTIONJOB.ADD" +PM_MEASUREMENT_COLLECTION_JOB_CREATED: "jms:queue:PM.MEASUREMENTCOLLECTIONJOB.CREATED" +PM_MEASUREMENT_COLLECTION_JOB_UPDATE: "jms:queue:PM.MEASUREMENTCOLLECTIONJOB.UPDATE" + #ALARMS ALARMS_ADD_ALARM: "jms:queue:ALARMS.ADD.ALARM" ALARMS_UPDATE_ALARM: "jms:queue:ALARMS.UPDATE.ALARM" @@ -156,6 +162,10 @@ 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" +EVENT_MEASUREMENT_COLLECTION_JOB_CREATE: "jms:topic:EVENT.MEASUREMENTCOLLECTIONJOB.CREATE" +EVENT_MEASUREMENT_COLLECTION_JOB_EXECUTION_STATE_CHANGED: "jms:topic:EVENT.MEASUREMENTCOLLECTIONJOB.STATECHANGED" +EVENT_MEASUREMENT_COLLECTION_JOB_DELETE: "jms:topic:EVENT.MEASUREMENTCOLLECTIONJOB.DELETE" +EVENT_MEASUREMENT_COLLECTION_JOB_ATTRIBUTE_VALUE_CHANGED: "jms:topic:EVENT.MEASUREMENTCOLLECTIONJOB.ATTRCHANGED" #QUEUE MESSSAGES WITH VNFNSD CATALOG NFV_CATALOG_GET_NSD_BY_ID: "jms:queue:NFVCATALOG.GET.NSD_BY_ID" @@ -172,7 +182,7 @@ 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" +CATALOG_GET_RESOURCESPEC_BY_NAME_CATEGORY: "jms:queue:CATALOG.GET.RESOURCESPEC_BY_NAME_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" diff --git a/src/test/java/org/etsi/osl/services/api/AlarmManagementIntegrationTest.java b/src/test/java/org/etsi/osl/services/api/AlarmManagementIntegrationTest.java index df10383d21e92755af3a08e5f41653dc8fdc7b2e..eb570b47b2d46d66387aab1dac7ccd62dfd037f4 100644 --- a/src/test/java/org/etsi/osl/services/api/AlarmManagementIntegrationTest.java +++ b/src/test/java/org/etsi/osl/services/api/AlarmManagementIntegrationTest.java @@ -54,6 +54,7 @@ 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.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; @@ -72,6 +73,7 @@ import org.springframework.web.context.WebApplicationContext; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK, classes = OpenAPISpringBoot.class) @AutoConfigureMockMvc @ActiveProfiles("testing") +@AutoConfigureTestDatabase public class AlarmManagementIntegrationTest { private static final transient Log logger = LogFactory.getLog(AlarmManagementIntegrationTest.class.getName()); @@ -249,22 +251,22 @@ public class AlarmManagementIntegrationTest { 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()); +// 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()); diff --git a/src/test/java/org/etsi/osl/services/api/ProductCatalogIntegrationTest.java b/src/test/java/org/etsi/osl/services/api/ProductCatalogIntegrationTest.java index fc2b66ebe395c7e0757ea686fa97a90a760f85de..80b58e3280d832daf4fd19c75f71783e60c65b8f 100644 --- a/src/test/java/org/etsi/osl/services/api/ProductCatalogIntegrationTest.java +++ b/src/test/java/org/etsi/osl/services/api/ProductCatalogIntegrationTest.java @@ -68,6 +68,7 @@ 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.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; @@ -84,7 +85,7 @@ import org.springframework.web.context.WebApplicationContext; @RunWith(SpringRunner.class) @Transactional @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK, classes = OpenAPISpringBoot.class) -//@AutoConfigureTestDatabase //this automatically uses h2 +@AutoConfigureTestDatabase //this automatically uses h2 @AutoConfigureMockMvc @ActiveProfiles("testing") public class ProductCatalogIntegrationTest { diff --git a/src/test/java/org/etsi/osl/services/api/ResourceCatalogIntegrationTest.java b/src/test/java/org/etsi/osl/services/api/ResourceCatalogIntegrationTest.java index 02aa8e095c94224861e518136431600a89d9f4c9..1d287685261b7d6956b648597b11cc14a66d915c 100644 --- a/src/test/java/org/etsi/osl/services/api/ResourceCatalogIntegrationTest.java +++ b/src/test/java/org/etsi/osl/services/api/ResourceCatalogIntegrationTest.java @@ -106,11 +106,11 @@ public class ResourceCatalogIntegrationTest { private static final transient Log logger = LogFactory.getLog( ResourceCatalogIntegrationTest.class.getName()); - private static final int FIXED_BOOTSTRAPS_SPECS = 7; + private static final int FIXED_BOOTSTRAPS_SPECS = 9; private static final int FIXED_BOOTSTRAPS_CATEGORIES = 3; private static final int FIXED_BOOTSTRAPS_PHYSICAL_SPECS = 1; private static final int FIXED_BOOTSTRAPS_NETWORK_SPECS = 3; - private static final int FIXED_BOOTSTRAPS_LOGICAL_SPECS = 6; + private static final int FIXED_BOOTSTRAPS_LOGICAL_SPECS = 8; @Autowired private MockMvc mvc; diff --git a/src/test/java/org/etsi/osl/services/api/ResourceInventoryIntegrationTest.java b/src/test/java/org/etsi/osl/services/api/ResourceInventoryIntegrationTest.java index ee4d7a4f59c3385015c424b3dbe7d4182e965ca8..fd6989ed6c0212c86c9d1a481e4a4c9ba155b1fa 100644 --- a/src/test/java/org/etsi/osl/services/api/ResourceInventoryIntegrationTest.java +++ b/src/test/java/org/etsi/osl/services/api/ResourceInventoryIntegrationTest.java @@ -70,6 +70,7 @@ 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.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; @@ -87,7 +88,7 @@ import org.springframework.web.context.WebApplicationContext; @RunWith(SpringRunner.class) @Transactional @SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.MOCK , classes = OpenAPISpringBoot.class) -//@AutoConfigureTestDatabase //this automatically uses h2 +@AutoConfigureTestDatabase //this automatically uses h2 @AutoConfigureMockMvc @ActiveProfiles("testing") //@TestPropertySource( diff --git a/src/test/java/org/etsi/osl/services/api/ResourceOrderIntegrationTest.java b/src/test/java/org/etsi/osl/services/api/ResourceOrderIntegrationTest.java index 592b6e4d42d9e475a4ed4a2bae0878cab8a091dd..2a60d583b43093fa9170fb15a1af3185fb1d7932 100644 --- a/src/test/java/org/etsi/osl/services/api/ResourceOrderIntegrationTest.java +++ b/src/test/java/org/etsi/osl/services/api/ResourceOrderIntegrationTest.java @@ -148,7 +148,6 @@ public class ResourceOrderIntegrationTest { .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() diff --git a/src/test/java/org/etsi/osl/services/api/ServiceCatalogIntegrationTest.java b/src/test/java/org/etsi/osl/services/api/ServiceCatalogIntegrationTest.java index 511e46c84b9ab994d590da4509d15973b09554c7..807e356072382992b7e28cef11a50efe9ba29558 100644 --- a/src/test/java/org/etsi/osl/services/api/ServiceCatalogIntegrationTest.java +++ b/src/test/java/org/etsi/osl/services/api/ServiceCatalogIntegrationTest.java @@ -83,6 +83,7 @@ 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.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; @@ -103,7 +104,7 @@ import net.minidev.json.JSONObject; @RunWith(SpringRunner.class) @Transactional @SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.MOCK , classes = OpenAPISpringBoot.class) -//@AutoConfigureTestDatabase //this automatically uses h2 +@AutoConfigureTestDatabase //this automatically uses h2 @AutoConfigureMockMvc @ActiveProfiles("testing") //@TestPropertySource( @@ -965,6 +966,7 @@ public class ServiceCatalogIntegrationTest { } assertThat(userPartyRoleOwnerexists ).isTrue() ; + List allSpecs = specRepoService.findAll(); 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 diff --git a/src/test/java/org/etsi/osl/services/api/pm628/MeasurementCollectionJobApiControllerTest.java b/src/test/java/org/etsi/osl/services/api/pm628/MeasurementCollectionJobApiControllerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..40a2697c2ed42e1a4e955744fe733cfeca4776c7 --- /dev/null +++ b/src/test/java/org/etsi/osl/services/api/pm628/MeasurementCollectionJobApiControllerTest.java @@ -0,0 +1,249 @@ +package org.etsi.osl.services.api.pm628; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.commons.io.IOUtils; +import org.etsi.osl.tmf.JsonUtils; +import org.etsi.osl.tmf.OpenAPISpringBoot; +import org.etsi.osl.tmf.pm628.model.*; +import org.etsi.osl.tmf.pm628.reposervices.MeasurementCollectionJobService; +import org.etsi.osl.tmf.ri639.model.ResourceAdministrativeStateType; +import org.etsi.osl.tmf.ri639.model.ResourceOperationalStateType; +import org.etsi.osl.tmf.ri639.model.ResourceUsageStateType; +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; + +import java.io.*; +import java.net.URI; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; + +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; + +@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 MeasurementCollectionJobApiControllerTest { + + private static final int FIXED_BOOTSTRAPS_JOBS = 0; + + @Autowired + private MockMvc mvc; + + @Autowired + private WebApplicationContext context; + + @Autowired + private ObjectMapper objectMapper; + + @Autowired + private FilterChainProxy springSecurityFilterChain; + + @Autowired + MeasurementCollectionJobService measurementCollectionJobService; + + @Before + public void setup() throws Exception { + mvc = MockMvcBuilders.webAppContextSetup(context). + apply(springSecurity(springSecurityFilterChain)).build(); + + } + + @WithMockUser(username="osadmin", roles = {"USER","ADMIN"}) + @Test + public void testFindAllMeasurementCollectionJobs() throws Exception { + String response = mvc + .perform(MockMvcRequestBuilders.get("/monitoring/v5/measurementCollectionJob") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); + + List mcjList = objectMapper.readValue(response, new TypeReference>() {}); + assertThat(mcjList.size()).isEqualTo(0); + } + + @WithMockUser(username="osadmin", roles = {"USER","ADMIN"}) + @Test + public void testFindMeasurementCollectionJobByUuid() throws Exception { + String response = createMeasurementCollectionJob(); + MeasurementCollectionJob mcj = JsonUtils.toJsonObj(response, MeasurementCollectionJob.class); + String id = mcj.getUuid(); + + String response2 = mvc + .perform(MockMvcRequestBuilders.get("/monitoring/v5/measurementCollectionJob/" + id) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); + + MeasurementCollectionJob mcj2 = JsonUtils.toJsonObj(response2, MeasurementCollectionJob.class); + + assertThat(mcj2.getConsumingApplicationId()).isEqualTo(mcj.getConsumingApplicationId()); + assertThat(mcj2.getJobId()).isEqualTo(mcj.getJobId()); + assertThat(mcj2.getAdminState()).isEqualTo(mcj.getAdminState()); + assertThat(mcj2.getExecutionState()).isEqualTo(mcj.getExecutionState()); + assertThat(mcj2.getGranularity()).isEqualTo(mcj.getGranularity()); + assertThat(mcj2.getReportingPeriod()).isEqualTo(mcj.getReportingPeriod()); + } + + @WithMockUser(username="osadmin", roles = {"USER","ADMIN"}) + @Test + public void testCreateMeasurementCollectionJob() throws Exception { + String response = createMeasurementCollectionJob(); + MeasurementCollectionJob mcj = JsonUtils.toJsonObj(response, MeasurementCollectionJob.class); + + assertThat(mcj.getConsumingApplicationId()).isEqualTo("4000"); + assertThat(mcj.getJobId()).isEqualTo("400"); + assertThat(mcj.getAdminState()).isEqualTo(AdministrativeState.LOCKED); + assertThat(mcj.getExecutionState()).isEqualTo(ExecutionStateType.ACKNOWLEDGED); + assertThat(mcj.getGranularity()).isEqualTo(Granularity.fromValue("g_1mn")); + assertThat(mcj.getReportingPeriod()).isEqualTo(ReportingPeriod.fromValue("r_1mn")); + } + + @WithMockUser(username="osadmin", roles = {"USER","ADMIN"}) + @Test + public void testUpdateMeasurementCollectionJob() throws Exception { + String response = createMeasurementCollectionJob(); + MeasurementCollectionJob mcj = JsonUtils.toJsonObj(response, MeasurementCollectionJob.class); + String id = mcj.getUuid(); + + MeasurementCollectionJobMVO mcjMVO = new MeasurementCollectionJobMVO(); + mcjMVO.setOutputFormat("Test Output Format"); + mcjMVO.setGranularity(Granularity.G_5MN); + mcjMVO.setReportingPeriod(ReportingPeriod.R_1H); + + List daeList =new ArrayList<>(); + DataAccessEndpointMVO daeMVO = new DataAccessEndpointMVO(); + daeMVO.setUri(URI.create("https://test.com")); + daeMVO.setApiType("Test API type"); + daeMVO.setValue("Test value"); + daeMVO.setCategory("Test category"); + daeMVO.setDescription("Test description"); + daeMVO.setName("Test name"); + daeMVO.setEndOperatingDate(OffsetDateTime.now()); + daeMVO.setAdministrativeState(ResourceAdministrativeStateType.LOCKED); + daeMVO.setOperationalState(ResourceOperationalStateType.ENABLE); + daeMVO.setResourceStatus(ResourceStatusType.AVAILABLE); + daeMVO.setUsageState(ResourceUsageStateType.IDLE); + + DataFilterMapMVO dfmMVO = new DataFilterMapMVO(); + List mappings = new ArrayList<>(); + + DataFilterMapItemMVO dfmiMVO = new DataFilterMapItemMVO(); + + // Set filterTemplate value for dfmiMVO + DataFilterTemplateMVO dftMVO = new DataFilterTemplateMVO(); + dftMVO.setName("Test DataFilterTemplate"); + dftMVO.setDescription("A Test DataFilterTemplate"); + dfmiMVO.setFilterTemplate(dftMVO); + + // Set stringArray value for dfmiMVO + DataFilterAttributeStringArray dfasa = new DataFilterAttributeStringArray(); + List list = new ArrayList<>(); + list.add("Test DataFilterAttributeString 1"); + list.add("Test DataFilterAttributeString 2"); + dfasa.setValue(list); + dfmiMVO.setStringArray(dfasa); + + mappings.add(dfmiMVO); + dfmMVO.setMappings(mappings); + daeMVO.setUriQueryFilter(dfmMVO); + daeList.add(daeMVO); + mcjMVO.setDataAccessEndpoint(daeList); + + String response2 = mvc + .perform(MockMvcRequestBuilders.patch("/monitoring/v5/measurementCollectionJob/" + id) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON).content(JsonUtils.toJson(mcjMVO))) + .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); + + MeasurementCollectionJob updatedMcj = JsonUtils.toJsonObj(response2, MeasurementCollectionJob.class); + + assertThat(updatedMcj.getOutputFormat()).isEqualTo("Test Output Format"); + assertThat(updatedMcj.getGranularity()).isEqualTo(Granularity.G_5MN); + assertThat(updatedMcj.getReportingPeriod()).isEqualTo(ReportingPeriod.R_1H); + + List dataAccessEndpointList = updatedMcj.getDataAccessEndpoint(); + DataAccessEndpoint updatedDae = dataAccessEndpointList.get(0); + assertThat(updatedDae.getUri()).isEqualTo(URI.create("https://test.com")); + assertThat(updatedDae.getApiType()).isEqualTo("Test API type"); + assertThat(updatedDae.getValue()).isEqualTo("Test value"); + assertThat(updatedDae.getCategory()).isEqualTo("Test category"); + assertThat(updatedDae.getDescription()).isEqualTo("Test description"); + assertThat(updatedDae.getName()).isEqualTo("Test name"); + assertThat(updatedDae.getEndOperatingDate()).isEqualTo(daeMVO.getEndOperatingDate()); + assertThat(updatedDae.getAdministrativeState()).isEqualTo(ResourceAdministrativeStateType.LOCKED); + assertThat(updatedDae.getOperationalState()).isEqualTo(ResourceOperationalStateType.ENABLE); + assertThat(updatedDae.getResourceStatus()).isEqualTo(ResourceStatusType.AVAILABLE); + assertThat(updatedDae.getUsageState()).isEqualTo(ResourceUsageStateType.IDLE); + } + + @WithMockUser(username="osadmin", roles = {"USER","ADMIN"}) + @Test + public void testDeleteMeasurementCollectionJob() throws Exception { + String response = createMeasurementCollectionJob(); + MeasurementCollectionJob mcj = JsonUtils.toJsonObj(response, MeasurementCollectionJob.class); + String id = mcj.getUuid(); + + mvc + .perform(MockMvcRequestBuilders.delete("/monitoring/v5/measurementCollectionJob/" + id) + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + assertThat(measurementCollectionJobService.findAllMeasurementCollectionJobs().size()).isEqualTo(FIXED_BOOTSTRAPS_JOBS); + } + + + + private String createMeasurementCollectionJob() throws Exception { + assertThat(measurementCollectionJobService.findAllMeasurementCollectionJobs().size()).isEqualTo(FIXED_BOOTSTRAPS_JOBS); + + File fvo = new File("src/test/resources/testMeasurementCollectionJobFVO.json"); + InputStream in = new FileInputStream(fvo); + String mcjFVOText = IOUtils.toString(in, "UTF-8"); + + MeasurementCollectionJobFVO mcjFVO = JsonUtils.toJsonObj(mcjFVOText, MeasurementCollectionJobFVO.class); + + String response = mvc + .perform(MockMvcRequestBuilders.post("/monitoring/v5/measurementCollectionJob") + .with( SecurityMockMvcRequestPostProcessors.csrf()) + .contentType(MediaType.APPLICATION_JSON).content(JsonUtils.toJson(mcjFVO))) + .andExpect(status().isOk()).andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); + + assertThat(measurementCollectionJobService.findAllMeasurementCollectionJobs().size()).isEqualTo(FIXED_BOOTSTRAPS_JOBS + 1); + + return response; + } +} diff --git a/src/test/java/org/etsi/osl/services/api/pm628/MeasurementCollectionJobServiceTest.java b/src/test/java/org/etsi/osl/services/api/pm628/MeasurementCollectionJobServiceTest.java new file mode 100644 index 0000000000000000000000000000000000000000..d718e0ab2f954b6ab5510258ee4a01911b596564 --- /dev/null +++ b/src/test/java/org/etsi/osl/services/api/pm628/MeasurementCollectionJobServiceTest.java @@ -0,0 +1,195 @@ +package org.etsi.osl.services.api.pm628; + +import org.apache.commons.io.IOUtils; +import org.etsi.osl.tmf.JsonUtils; +import org.etsi.osl.tmf.OpenAPISpringBoot; +import org.etsi.osl.tmf.pm628.model.*; +import org.etsi.osl.tmf.pm628.reposervices.MeasurementCollectionJobService; +import org.etsi.osl.tmf.ri639.model.ResourceAdministrativeStateType; +import org.etsi.osl.tmf.ri639.model.ResourceOperationalStateType; +import org.etsi.osl.tmf.ri639.model.ResourceUsageStateType; +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.security.test.context.support.WithMockUser; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.transaction.annotation.Transactional; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.net.URI; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +@RunWith(SpringRunner.class) +@Transactional +@SpringBootTest( + webEnvironment = SpringBootTest.WebEnvironment.MOCK, + classes = OpenAPISpringBoot.class +) +//@AutoConfigureTestDatabase //this automatically uses h2 +@AutoConfigureMockMvc +@ActiveProfiles("testing") +public class MeasurementCollectionJobServiceTest { + + private static final int FIXED_BOOTSTRAPS_JOBS = 0; + + @Autowired + MeasurementCollectionJobService measurementCollectionJobService; + + @WithMockUser(username="osadmin", roles = {"USER","ADMIN"}) + @Test + public void testFindAllMeasurementCollectionJobs() throws Exception { + createMeasurementCollectionJob(); + + List mcjList = measurementCollectionJobService.findAllMeasurementCollectionJobs(); + + assertThat(mcjList.size()).isEqualTo(FIXED_BOOTSTRAPS_JOBS + 1); + } + + @WithMockUser(username="osadmin", roles = {"USER","ADMIN"}) + @Test + public void testFindAllByExecutionState() throws Exception { + createMeasurementCollectionJob(); + + List mcjList = measurementCollectionJobService.findAllByExecutionState(ExecutionStateType.ACKNOWLEDGED); + + assertThat(mcjList.size()).isEqualTo(FIXED_BOOTSTRAPS_JOBS + 1); + } + + @WithMockUser(username="osadmin", roles = {"USER","ADMIN"}) + @Test + public void testFindMeasurementCollectionJobByUuid() throws Exception { + MeasurementCollectionJob mcj = createMeasurementCollectionJob(); + String id = mcj.getUuid(); + + MeasurementCollectionJob mcj2 = measurementCollectionJobService.findMeasurementCollectionJobByUuid(id); + + assertThat(mcj2.getConsumingApplicationId()).isEqualTo(mcj.getConsumingApplicationId()); + assertThat(mcj2.getJobId()).isEqualTo(mcj.getJobId()); + assertThat(mcj2.getAdminState()).isEqualTo(mcj.getAdminState()); + assertThat(mcj2.getExecutionState()).isEqualTo(mcj.getExecutionState()); + assertThat(mcj2.getGranularity()).isEqualTo(mcj.getGranularity()); + assertThat(mcj2.getReportingPeriod()).isEqualTo(mcj.getReportingPeriod()); + } + + @WithMockUser(username="osadmin", roles = {"USER","ADMIN"}) + @Test + public void testCreateMeasurementCollectionJob() throws Exception { + MeasurementCollectionJob mcj = createMeasurementCollectionJob(); + + assertThat(mcj.getConsumingApplicationId()).isEqualTo("4000"); + assertThat(mcj.getJobId()).isEqualTo("400"); + assertThat(mcj.getAdminState()).isEqualTo(AdministrativeState.LOCKED); + assertThat(mcj.getExecutionState()).isEqualTo(ExecutionStateType.ACKNOWLEDGED); + assertThat(mcj.getGranularity()).isEqualTo(Granularity.fromValue("g_1mn")); + assertThat(mcj.getReportingPeriod()).isEqualTo(ReportingPeriod.fromValue("r_1mn")); + } + + @WithMockUser(username="osadmin", roles = {"USER","ADMIN"}) + @Test + public void testUpdateMeasurementCollectionJob() throws Exception { + MeasurementCollectionJob mcj = createMeasurementCollectionJob(); + String id = mcj.getUuid(); + + MeasurementCollectionJobMVO mcjMVO = new MeasurementCollectionJobMVO(); + mcjMVO.setOutputFormat("Test Output Format"); + mcjMVO.setGranularity(Granularity.G_5MN); + mcjMVO.setReportingPeriod(ReportingPeriod.R_1H); + + List daeList =new ArrayList<>(); + DataAccessEndpointMVO daeMVO = new DataAccessEndpointMVO(); + daeMVO.setUri(URI.create("https://test.com")); + daeMVO.setApiType("Test API type"); + daeMVO.setValue("Test value"); + daeMVO.setCategory("Test category"); + daeMVO.setDescription("Test description"); + daeMVO.setName("Test name"); + daeMVO.setEndOperatingDate(OffsetDateTime.now()); + daeMVO.setAdministrativeState(ResourceAdministrativeStateType.LOCKED); + daeMVO.setOperationalState(ResourceOperationalStateType.ENABLE); + daeMVO.setResourceStatus(ResourceStatusType.AVAILABLE); + daeMVO.setUsageState(ResourceUsageStateType.IDLE); + + DataFilterMapMVO dfmMVO = new DataFilterMapMVO(); + List mappings = new ArrayList<>(); + + DataFilterMapItemMVO dfmiMVO = new DataFilterMapItemMVO(); + + // Set filterTemplate value for dfmiMVO + DataFilterTemplateMVO dftMVO = new DataFilterTemplateMVO(); + dftMVO.setName("Test DataFilterTemplate"); + dftMVO.setDescription("A Test DataFilterTemplate"); + dfmiMVO.setFilterTemplate(dftMVO); + + // Set stringArray value for dfmiMVO + DataFilterAttributeStringArray dfasa = new DataFilterAttributeStringArray(); + List list = new ArrayList<>(); + list.add("Test DataFilterAttributeString 1"); + list.add("Test DataFilterAttributeString 2"); + dfasa.setValue(list); + dfmiMVO.setStringArray(dfasa); + + mappings.add(dfmiMVO); + dfmMVO.setMappings(mappings); + daeMVO.setUriQueryFilter(dfmMVO); + daeList.add(daeMVO); + mcjMVO.setDataAccessEndpoint(daeList); + + MeasurementCollectionJob updatedMcj = measurementCollectionJobService.updateMeasurementCollectionJob(id, mcjMVO); + + assertThat(updatedMcj.getOutputFormat()).isEqualTo("Test Output Format"); + assertThat(updatedMcj.getGranularity()).isEqualTo(Granularity.G_5MN); + assertThat(updatedMcj.getReportingPeriod()).isEqualTo(ReportingPeriod.R_1H); + + List dataAccessEndpointList = updatedMcj.getDataAccessEndpoint(); + DataAccessEndpoint updatedDae = dataAccessEndpointList.get(0); + assertThat(updatedDae.getUri()).isEqualTo(URI.create("https://test.com")); + assertThat(updatedDae.getApiType()).isEqualTo("Test API type"); + assertThat(updatedDae.getValue()).isEqualTo("Test value"); + assertThat(updatedDae.getCategory()).isEqualTo("Test category"); + assertThat(updatedDae.getDescription()).isEqualTo("Test description"); + assertThat(updatedDae.getName()).isEqualTo("Test name"); + assertThat(updatedDae.getEndOperatingDate()).isEqualTo(daeMVO.getEndOperatingDate()); + assertThat(updatedDae.getAdministrativeState()).isEqualTo(ResourceAdministrativeStateType.LOCKED); + assertThat(updatedDae.getOperationalState()).isEqualTo(ResourceOperationalStateType.ENABLE); + assertThat(updatedDae.getResourceStatus()).isEqualTo(ResourceStatusType.AVAILABLE); + assertThat(updatedDae.getUsageState()).isEqualTo(ResourceUsageStateType.IDLE); + } + + @WithMockUser(username="osadmin", roles = {"USER","ADMIN"}) + @Test + public void testDeleteMeasurementCollectionJob() throws Exception { + MeasurementCollectionJob mcj = createMeasurementCollectionJob(); + String id = mcj.getUuid(); + + measurementCollectionJobService.deleteMeasurementCollectionJob(id); + + assertThat(measurementCollectionJobService.findAllMeasurementCollectionJobs().size()).isEqualTo(FIXED_BOOTSTRAPS_JOBS); + } + + + + private MeasurementCollectionJob createMeasurementCollectionJob() throws Exception { + assertThat(measurementCollectionJobService.findAllMeasurementCollectionJobs().size()).isEqualTo(FIXED_BOOTSTRAPS_JOBS); + + File fvo = new File("src/test/resources/testMeasurementCollectionJobFVO.json"); + InputStream in = new FileInputStream(fvo); + String mcjFVOText = IOUtils.toString(in, "UTF-8"); + + MeasurementCollectionJobFVO mcjFVO = JsonUtils.toJsonObj(mcjFVOText, MeasurementCollectionJobFVO.class); + + MeasurementCollectionJob response = measurementCollectionJobService.createMeasurementCollectionJob(mcjFVO); + + assertThat(measurementCollectionJobService.findAllMeasurementCollectionJobs().size()).isEqualTo(FIXED_BOOTSTRAPS_JOBS + 1); + + return response; + } +} diff --git a/src/test/java/org/etsi/osl/services/api/rcm634/ResourceSpecificationApiControllerTest.java b/src/test/java/org/etsi/osl/services/api/rcm634/ResourceSpecificationApiControllerTest.java index 1aa8d1ad93d816b0a087ba4380fad137c9238490..5dc588e8c8c92eb90f8eaa88fe5e45fb9b03306d 100644 --- a/src/test/java/org/etsi/osl/services/api/rcm634/ResourceSpecificationApiControllerTest.java +++ b/src/test/java/org/etsi/osl/services/api/rcm634/ResourceSpecificationApiControllerTest.java @@ -222,7 +222,7 @@ public class ResourceSpecificationApiControllerTest { .andReturn().getResponse().getContentAsString(); List listResSpecsResponse = JsonUtils.toListOfJsonObj(listResSpecsResponseString, LogicalResourceSpecification.class); - assertEquals(7, listResSpecsResponse.size()); + assertEquals(9, listResSpecsResponse.size()); mvc.perform(MockMvcRequestBuilders.get("/resourceCatalogManagement/v4/resourceSpecification") .contentType(MediaType.APPLICATION_JSON) diff --git a/src/test/java/org/etsi/osl/services/api/ri639/ResourceApiControllerTest.java b/src/test/java/org/etsi/osl/services/api/ri639/ResourceApiControllerTest.java index 9e2f8df94245b1dd78af3745ecdfbd2efeb737e5..408ce1fb2038bdc1573345477dc0bc92c05d26d1 100644 --- a/src/test/java/org/etsi/osl/services/api/ri639/ResourceApiControllerTest.java +++ b/src/test/java/org/etsi/osl/services/api/ri639/ResourceApiControllerTest.java @@ -28,6 +28,7 @@ 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.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.HttpStatus; @@ -48,6 +49,7 @@ import org.springframework.http.ResponseEntity; @Transactional @SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.MOCK , classes = OpenAPISpringBoot.class) @AutoConfigureMockMvc +@AutoConfigureTestDatabase @ActiveProfiles("testing") public class ResourceApiControllerTest { diff --git a/src/test/java/org/etsi/osl/services/api/scm633/HubApiControllerTest.java b/src/test/java/org/etsi/osl/services/api/scm633/HubApiControllerTest.java index 048ad19c20ee3c49ee427bf373885f4daa118d15..db51361f50c3dc04724dea3a43d21cdfd33304fa 100644 --- a/src/test/java/org/etsi/osl/services/api/scm633/HubApiControllerTest.java +++ b/src/test/java/org/etsi/osl/services/api/scm633/HubApiControllerTest.java @@ -17,6 +17,7 @@ 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.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; @@ -36,6 +37,7 @@ import org.springframework.web.context.WebApplicationContext; @SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.MOCK , classes = OpenAPISpringBoot.class) @AutoConfigureMockMvc @ActiveProfiles("testing") +@AutoConfigureTestDatabase //this automatically uses h2 public class HubApiControllerTest { @Autowired diff --git a/src/test/java/org/etsi/osl/services/api/scm633/ServiceCandidateApiControllerTest.java b/src/test/java/org/etsi/osl/services/api/scm633/ServiceCandidateApiControllerTest.java index c8ed3f474d664be8bc421378cd331111f479c8b2..be25caffe40d26ac1f86ca3e09c9ebfa1026bccc 100644 --- a/src/test/java/org/etsi/osl/services/api/scm633/ServiceCandidateApiControllerTest.java +++ b/src/test/java/org/etsi/osl/services/api/scm633/ServiceCandidateApiControllerTest.java @@ -25,6 +25,7 @@ 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.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; @@ -43,6 +44,7 @@ import org.springframework.web.context.WebApplicationContext; @Transactional @SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.MOCK , classes = OpenAPISpringBoot.class) @AutoConfigureMockMvc +@AutoConfigureTestDatabase //this automatically uses h2 @ActiveProfiles("testing") public class ServiceCandidateApiControllerTest { diff --git a/src/test/java/org/etsi/osl/services/api/scm633/ServiceCatalogApiControllerTest.java b/src/test/java/org/etsi/osl/services/api/scm633/ServiceCatalogApiControllerTest.java index 92b48d54028defe00acaa5f26c1f1f55f3f38219..65080e81409bd9ae8d8b6ad263ec0b4613a51484 100644 --- a/src/test/java/org/etsi/osl/services/api/scm633/ServiceCatalogApiControllerTest.java +++ b/src/test/java/org/etsi/osl/services/api/scm633/ServiceCatalogApiControllerTest.java @@ -25,6 +25,7 @@ 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.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; @@ -43,6 +44,7 @@ import org.springframework.web.context.WebApplicationContext; @Transactional @SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.MOCK , classes = OpenAPISpringBoot.class) @AutoConfigureMockMvc +@AutoConfigureTestDatabase //this automatically uses h2 @ActiveProfiles("testing") public class ServiceCatalogApiControllerTest { diff --git a/src/test/java/org/etsi/osl/services/api/scm633/ServiceCategoryApiControllerTest.java b/src/test/java/org/etsi/osl/services/api/scm633/ServiceCategoryApiControllerTest.java index 865ca45fc3cb0b2f30ac468a7ea1fbbe92f92606..4163c54fc4a5df05824c25afcd094ababd8dc869 100644 --- a/src/test/java/org/etsi/osl/services/api/scm633/ServiceCategoryApiControllerTest.java +++ b/src/test/java/org/etsi/osl/services/api/scm633/ServiceCategoryApiControllerTest.java @@ -16,6 +16,7 @@ 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.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; @@ -34,6 +35,7 @@ import org.springframework.web.context.WebApplicationContext; @Transactional @SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.MOCK , classes = OpenAPISpringBoot.class) @AutoConfigureMockMvc +@AutoConfigureTestDatabase //this automatically uses h2 @ActiveProfiles("testing") public class ServiceCategoryApiControllerTest { diff --git a/src/test/java/org/etsi/osl/services/api/scm633/ServiceSpecificationApiControllerTest.java b/src/test/java/org/etsi/osl/services/api/scm633/ServiceSpecificationApiControllerTest.java index e5aa51e2679c9804c6b0b34e2a7703b5a0d39abb..dea6f82aca386615db65e46c5d7e1b9e53550800 100644 --- a/src/test/java/org/etsi/osl/services/api/scm633/ServiceSpecificationApiControllerTest.java +++ b/src/test/java/org/etsi/osl/services/api/scm633/ServiceSpecificationApiControllerTest.java @@ -28,6 +28,7 @@ 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.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.HttpHeaders; @@ -48,6 +49,7 @@ import org.springframework.web.context.WebApplicationContext; @Transactional @SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.MOCK , classes = OpenAPISpringBoot.class) @AutoConfigureMockMvc +@AutoConfigureTestDatabase @ActiveProfiles("testing") public class ServiceSpecificationApiControllerTest { diff --git a/src/test/java/org/etsi/osl/services/api/sim638/ServiceRepoServiceTest.java b/src/test/java/org/etsi/osl/services/api/sim638/ServiceRepoServiceTest.java index 7b6b52c8390833edec7a1462a0e3551444f03327..4309b09e34f96c9967ee763447308b764da46083 100644 --- a/src/test/java/org/etsi/osl/services/api/sim638/ServiceRepoServiceTest.java +++ b/src/test/java/org/etsi/osl/services/api/sim638/ServiceRepoServiceTest.java @@ -40,7 +40,7 @@ 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 java.io.File; import java.io.FileInputStream; import java.io.InputStream; @@ -58,7 +58,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. @RunWith(SpringRunner.class) @Transactional @SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.MOCK , classes = OpenAPISpringBoot.class) -//@AutoConfigureTestDatabase //this automatically uses h2 +@AutoConfigureTestDatabase //this automatically uses h2 @AutoConfigureMockMvc @ActiveProfiles("testing") //@TestPropertySource( @@ -69,6 +69,7 @@ public class ServiceRepoServiceTest { @Autowired ServiceRepoService serviceRepoService; + @Autowired ResourceRepoService resourceRepoService; @@ -230,42 +231,106 @@ public class ServiceRepoServiceTest { // // org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC Connection [HikariPool-1 - Connection is not available, request timed out after 30000ms.] -// @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) -// @Test -// public void testResourceStateChangedEvent() throws Exception { -// String response = createService(); -// Service responsesService = JsonUtils.toJsonObj(response, Service.class); -// String id = responsesService.getId(); -// Set resourceRefSet = responsesService.getSupportingResource(); -// List resourceRefList = new ArrayList<>(resourceRefSet); -// -// assertThat(resourceRefList.size()).isEqualTo(1); -// ResourceRef firstResourceRef = resourceRefList.get(0); -// -// Resource resource = resourceRepoService.findByUuid(firstResourceRef.getId()); -// -// ResourceStateChangeNotification resourceCreateNotification = new ResourceStateChangeNotification(); -// ResourceStateChangeEvent event = new ResourceStateChangeEvent(); -// event.getEvent().setResource(resource); -// resourceCreateNotification.setEvent(event); -// -// serviceRepoService.resourceStateChangedEvent(resourceCreateNotification); -// Service updatedService = serviceRepoService.findByUuid(id); -// -// Set noteSet = updatedService.getNote(); -// List noteList = new ArrayList<>(noteSet); -// -// boolean expectedNoteExists = false; -// for (Note n : noteList) { -// if ( n.getText().contains("State Changed with status:") && n.getAuthor().equals("SIM638-API")) { -// expectedNoteExists= true; -// break; -// } -// } -// assertThat( expectedNoteExists ).isTrue(); -// } + @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) + @Test + public void testResourceStateChangedEvent() throws Exception { + String response = createService(); + Service responsesService = JsonUtils.toJsonObj(response, Service.class); + String id = responsesService.getId(); + Set resourceRefSet = responsesService.getSupportingResource(); + List resourceRefList = new ArrayList<>(resourceRefSet); + + assertThat(resourceRefList.size()).isEqualTo(1); + ResourceRef firstResourceRef = resourceRefList.get(0); + + Resource resource = resourceRepoService.findByUuid(firstResourceRef.getId()); + + ResourceStateChangeNotification resourceCreateNotification = new ResourceStateChangeNotification(); + ResourceStateChangeEvent event = new ResourceStateChangeEvent(); + event.getEvent().setResource(resource); + resourceCreateNotification.setEvent(event); + + serviceRepoService.resourceStateChangedEvent(resourceCreateNotification); + Service updatedService = serviceRepoService.findByUuid(id); + + Set noteSet = updatedService.getNote(); + List noteList = new ArrayList<>(noteSet); + + boolean expectedNoteExists = false; + for (Note n : noteList) { + if ( n.getText().contains("State Changed with status:") && n.getAuthor().equals("SIM638-API")) { + expectedNoteExists= true; + break; + } + } + assertThat( expectedNoteExists ).isTrue(); + } + @WithMockUser(username="osadmin", roles = {"ADMIN","USER"}) + @Test + public void testResourceAttrChangedEvent() throws Exception { + String response = createService(); + Service responsesService = JsonUtils.toJsonObj(response, Service.class); + String id = responsesService.getId(); + Set resourceRefSet = responsesService.getSupportingResource(); + List resourceRefList = new ArrayList<>(resourceRefSet); + + assertThat(resourceRefList.size()).isEqualTo(1); + ResourceRef firstResourceRef = resourceRefList.get(0); + + Resource resource = resourceRepoService.findByUuid(firstResourceRef.getId()); + assertThat( resource.getResourceCharacteristic().size() ).isEqualTo( 0 ); + + + + @Valid ResourceAttributeValueChangeNotification resNotid = new ResourceAttributeValueChangeNotification(); + ResourceAttributeValueChangeEvent event = new ResourceAttributeValueChangeEvent(); + event.getEvent().setResource(resource); + + resNotid.setEvent( event ); + + Service updatedService = serviceRepoService.findByUuid(id); + + assertThat( updatedService.getServiceCharacteristic().size() ).isEqualTo( 6 ); + assertThat( updatedService.getSupportingResource().size() ).isEqualTo( 1); + + ResourceUpdate resourceUpdate = new ResourceUpdate(); + + org.etsi.osl.tmf.ri639.model.Characteristic resCharacteristicItem = new org.etsi.osl.tmf.ri639.model.Characteristic(); + + resCharacteristicItem.setName( "newChar" ); + resCharacteristicItem.setValue( new Any("myval0")); + resourceUpdate.addResourceCharacteristicItem(resCharacteristicItem); + + + System.out.println("STEP 1 - =========================================== " +serviceRepoService.toString() ); + Resource nullResource = resourceRepoService.updateResource( resource.getId(), resourceUpdate, false); + resource = resourceRepoService.findByUuid(firstResourceRef.getId()); + assertThat( resource.getResourceCharacteristic().size() ).isEqualTo( 1 ); + + Thread.sleep(1000); + + System.out.println("STEP 3 - =========================================== " ); + updatedService = serviceRepoService.findByUuid(id); + assertThat( updatedService.getSupportingResource().size() ).isEqualTo( 1); + assertThat( updatedService.getServiceCharacteristic().size() ).isEqualTo( 7 ); + + Set noteSet = updatedService.getNote(); + List noteList = new ArrayList<>(noteSet); + + boolean expectedNoteExists = false; + for (Note n : noteList) { + if ( n.getText().contains("Service Characteristic changed") && n.getAuthor().equals("API")) { + expectedNoteExists= true; + break; + } + } + assertThat( expectedNoteExists ).isTrue(); + } + + + @Transactional private String createService() throws Exception { int servicesCount = serviceRepoService.findAll().size(); diff --git a/src/test/java/org/etsi/osl/services/api/so641/ServiceOrderApiControllerTest.java b/src/test/java/org/etsi/osl/services/api/so641/ServiceOrderApiControllerTest.java index 305d454c0c3391b3f454e05b56e7a0d72d6e45b0..ac1dad1cfe692094e836921057e074dba76fceb0 100644 --- a/src/test/java/org/etsi/osl/services/api/so641/ServiceOrderApiControllerTest.java +++ b/src/test/java/org/etsi/osl/services/api/so641/ServiceOrderApiControllerTest.java @@ -31,6 +31,7 @@ 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.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; @@ -50,7 +51,7 @@ import org.springframework.web.context.WebApplicationContext; webEnvironment = SpringBootTest.WebEnvironment.MOCK, classes = OpenAPISpringBoot.class ) -//@AutoConfigureTestDatabase //this automatically uses h2 +@AutoConfigureTestDatabase //this automatically uses h2 @AutoConfigureMockMvc @ActiveProfiles("testing") public class ServiceOrderApiControllerTest { diff --git a/src/test/java/org/etsi/osl/services/api/so641/ServiceOrderRepoServiceTest.java b/src/test/java/org/etsi/osl/services/api/so641/ServiceOrderRepoServiceTest.java index 2cc5b0e9f819bc1a94867eeeca9afb03773014bf..dc3a7c1e1367410141b4f0c1f78d571ab30b4618 100644 --- a/src/test/java/org/etsi/osl/services/api/so641/ServiceOrderRepoServiceTest.java +++ b/src/test/java/org/etsi/osl/services/api/so641/ServiceOrderRepoServiceTest.java @@ -26,6 +26,7 @@ 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.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; @@ -45,7 +46,7 @@ import org.springframework.web.context.WebApplicationContext; webEnvironment = SpringBootTest.WebEnvironment.MOCK, classes = OpenAPISpringBoot.class ) -//@AutoConfigureTestDatabase //this automatically uses h2 +@AutoConfigureTestDatabase //this automatically uses h2 @AutoConfigureMockMvc @ActiveProfiles("testing") public class ServiceOrderRepoServiceTest { diff --git a/src/test/java/org/etsi/osl/services/reposervices/scm633/ServiceSpecificationRepoServiceTest.java b/src/test/java/org/etsi/osl/services/reposervices/scm633/ServiceSpecificationRepoServiceTest.java index c5e308251e6bfdef4a532431393d966cc46d86fa..8033d6cb3ec915a6a75f5b0eb2a69ed436b61d50 100644 --- a/src/test/java/org/etsi/osl/services/reposervices/scm633/ServiceSpecificationRepoServiceTest.java +++ b/src/test/java/org/etsi/osl/services/reposervices/scm633/ServiceSpecificationRepoServiceTest.java @@ -37,18 +37,23 @@ import org.mockito.Mock; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; - +import org.springframework.transaction.annotation.Transactional; import com.fasterxml.jackson.databind.ObjectMapper; import jakarta.validation.Valid; @RunWith(SpringRunner.class) @ActiveProfiles("testing") -@SpringBootTest(classes = OpenAPISpringBoot.class) +@Transactional +@SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.MOCK , classes = OpenAPISpringBoot.class) +@AutoConfigureMockMvc +@AutoConfigureTestDatabase public class ServiceSpecificationRepoServiceTest { @Autowired diff --git a/src/test/java/org/etsi/osl/services/service/ServiceRepoServiceTest.java b/src/test/java/org/etsi/osl/services/service/ServiceNSLCMRepoServiceTest.java similarity index 98% rename from src/test/java/org/etsi/osl/services/service/ServiceRepoServiceTest.java rename to src/test/java/org/etsi/osl/services/service/ServiceNSLCMRepoServiceTest.java index fbd4718e3c0840e3b14a275059ee1f94a871a7d4..29ea3bde1c624ee38a98240ce67fc30710ce83cc 100644 --- a/src/test/java/org/etsi/osl/services/service/ServiceRepoServiceTest.java +++ b/src/test/java/org/etsi/osl/services/service/ServiceNSLCMRepoServiceTest.java @@ -37,21 +37,25 @@ import org.mockito.Mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.SpyBean; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; - +import org.springframework.transaction.annotation.Transactional; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.ArrayNode; @RunWith(SpringRunner.class) +@Transactional +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK, classes = OpenAPISpringBoot.class) +@AutoConfigureTestDatabase //this automatically uses h2 +@AutoConfigureMockMvc @ActiveProfiles("testing") -@SpringBootTest(classes = OpenAPISpringBoot.class) -//@DataJpaTest -public class ServiceRepoServiceTest { +public class ServiceNSLCMRepoServiceTest { @Mock private ServiceRepository serviceRepository; diff --git a/src/test/resources/testMeasurementCollectionJobFVO.json b/src/test/resources/testMeasurementCollectionJobFVO.json new file mode 100644 index 0000000000000000000000000000000000000000..3854d4e47a8bacd2af998805f2ffdf3033c27a8e --- /dev/null +++ b/src/test/resources/testMeasurementCollectionJobFVO.json @@ -0,0 +1,271 @@ +{ + "consumingApplicationId": "4000", + "creationTime": "2020-06-23T14:12:01.078Z", + "jobId": "400", + "jobPriority": 3, + "lastModifiedTime": "2020-06-23T14:12:01.079Z", + "outputFormat": "string", + "producingApplicationId": "NT_101", + "adminState": "locked", + "executionState": "acknowledged", + "fileTransferData": [ + { + "fileFormat": "csv", + "fileLocation": "https://host:port/tmf-api/performanceManagement/v5/FileTransferData", + "transportProtocol": "ftp", + "compressionType": { + "compressionEnumType": "no_compression" + }, + "packingType": { + "packingEnumType": "NO_PACKING" + }, + "retentionPeriod": { + "amount": 1, + "units": "month" + }, + "@baseType": "FileTransferData", + "@schemaLocation": "https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation", + "@type": "FileTransferData" + } + ], + "granularity": "g_1mn", + "performanceIndicatorGroupSpecification": [ + { + "name": "My critical performance indicators", + "groupCategory": "CPUGroup", + "performanceIndicatorSpecification": [ + { + "uuid": "5000", + "href": "https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/5000", + "@type": "PerformanceIndicatorSpecificationRef" + } + ], + "@baseType": "PerformanceIndicatorGroupSpecification", + "@schemaLocation": "https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorGroupSpecification.schema.json", + "@type": "PerformanceIndicatorGroupSpecification" + } + ], + "performanceIndicatorSpecification": [ + { + "uuid": "101", + "href": "https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecification/101", + "derivationAlgorithm": "na", + "derivationMethod": "average", + "description": "The average CPU speed", + "indicatorCategory": "CPU", + "indicatorUnit": "GHz", + "name": "CPU Speed", + "perspective": "aggregation over a collection of systems", + "collectionType": "cumulative", + "indicatorType": "float", + "performanceIndicatorSpecRelationship": [ + { + "uuid": "321", + "href": "https://host:port/tmf-api/performanceManagement/v5/performanceIndicatorSpecRelationship/321", + "relationshipType": "reliesOn", + "validFor": { + "endDateTime": "1985-04-12T23:20:50.52Z", + "startDateTime": "1985-04-12T23:20:50.52Z" + }, + "@baseType": "PerformanceIndicatorSpecRelationship", + "@schemaLocation": "https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecRelationship.schema.json", + "@type": "PerformanceIndicatorSpecRelationship" + } + ], + "validFor": { + "endDateTime": "1985-04-12T23:20:50.52Z", + "startDateTime": "1985-04-12T23:20:50.52Z" + }, + "@baseType": "PerformanceIndicatorSpecification", + "@schemaLocation": "https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/PerformanceIndicatorSpecification.schema.json", + "@type": "PerformanceIndicatorSpecification" + } + ], + "reportingPeriod": "r_1mn", + "scheduleDefinition": [ + { + "recurringFrequency": "weekly", + "scheduleDefinitionEndTime": "2020-06-23T14:12:01.080Z", + "scheduleDefinitionHourRange": "2", + "scheduleDefinitionStartTime": "2020-06-23T14:12:01.080Z", + "WeeklyScheduledDefinition": [ + { + "dates": "2020-06-23T14:12:01.080Z", + "@baseType": "WeeklyScheduledDefinition", + "@schemaLocation": "https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/WeeklyScheduledDefinition.schema.json", + "@type": "WeeklyScheduledDefinition" + } + ], + "@baseType": "ScheduleDefinition", + "@schemaLocation": "https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/ScheduleDefinition.schema.json", + "@type": "ScheduleDefinition" + }, + { + "recurringFrequency": "daily", + "scheduleDefinitionEndTime": "2026-06-23T14:12:01.080Z", + "scheduleDefinitionHourRange": "3", + "scheduleDefinitionStartTime": "2024-06-23T14:12:01.080Z", + "excludedDate": [ + "2024-07-23T14:12:01.080Z", + "2024-08-23T14:12:01.080Z" + ], + "WeeklyScheduledDefinition": [ + { + "dates": "2020-06-23T14:12:01.080Z", + "@baseType": "WeeklyScheduledDefinition", + "@schemaLocation": "https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/WeeklyScheduledDefinition.schema.json", + "@type": "WeeklyScheduledDefinition" + }, + { + "dates": "2025-06-23T14:12:01.080Z", + "@baseType": "WeeklyScheduledDefinition", + "@schemaLocation": "https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/WeeklyScheduledDefinition.schema.json", + "@type": "WeeklyScheduledDefinition" + } + ], + "monthlyScheduleDayOfMonthDefinition": [ + "2024-09-23T14:12:01.080Z", + "2024-10-23T14:12:01.080Z" + ], + "MonthlyScheduleDayOfWeekDefinition": { + "dayOfMonthRecurrence": [ + { + "dates": "2025-06-23T14:12:01.080Z", + "@baseType": "DayOfMonthRecurrence", + "@schemaLocation": "https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/DayOfMonthRecurrence.schema.json", + "@type": "DayOfMonthRecurrence" + }, + { + "dates": "2025-07-23T14:12:01.080Z", + "@baseType": "DayOfMonthRecurrence", + "@schemaLocation": "https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/DayOfMonthRecurrence.schema.json", + "@type": "DayOfMonthRecurrence" + } + ], + "recurringDaySequence": "first", + "@baseType": "MonthlyScheduleDayOfWeekDefinition", + "@schemaLocation": "https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/MonthlyScheduleDayOfWeekDefinition.schema.json", + "@type": "MonthlyScheduleDayOfWeekDefinition" + }, + "dateScheduleDefintion": [ + "2024-11-23T14:12:01.080Z", + "2024-12-23T14:12:01.080Z" + ], + "@baseType": "ScheduleDefinition", + "@schemaLocation": "https://host:port/tmf-api/performanceManagement/v5/schemas/Tmf/common/ScheduleDefinition.schema.json", + "@type": "ScheduleDefinition" + } + ], + "trackingRecord": [ + { + "href": "https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation", + "description": "NT_101 tracking", + "systemId": "NT_101", + "time": "2020-06-23T17:55:51.671Z", + "user": "NP1", + "@baseType": "TrackingRecord", + "@schemaLocation": "https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation", + "@type": "TrackingRecord" + } + ], + "dataAccessEndpoint": [ + { + "href": "https://host:port/tmf-api/performanceManagement/v5/dataAccessEndpoint/123-xxx", + "apiType": "REST", + "category": "topic", + "description": "Measurement collection job 123-xxx subscriber topic", + "endOperatingDate": "2022-05-13T10:13:42.971Z", + "name": "123-xxx subscriber topic", + "resourceVersion": "1.0", + "startOperatingDate": "2022-05-13T10:13:42.971Z", + "uri": "https://pubsub.googleapis.com/v1/", + "uriQueryFilter": { + "mappings": [ + { + "filterTemplate": { + "name": "myRangeFilterSearch0", + "@type": "DataFilterTemplateRange", + "description": "A Test filter template" + }, + "stringArray": { + "value": [ + "field01", + "field02", + "field03" + ], + "@type": "DataFilterAttributeStringArray" + } + }, + { + "filterTemplate": { + "name": "myRegExSampleSearch0", + "@type": "DataFilterTemplateRegex", + "description": "Another test filter template" + }, + "stringArray": { + "value": [ + "field11", + "field12", + "field13" + ], + "@type": "DataFilterAttributeStringArray" + } + }, + { + "filterTemplate": { + "name": "myBooleanFilterSearch0", + "@type": "DataFilterTemplateBoolean" + }, + "stringArray": { + "value": [ + "field1", + "field2", + "field3" + ], + "@type": "DataFilterAttributeStringArray" + } + } + ], + "@type": "DataFilterMap" + }, + "value": "myLogicalResourceValue", + "administrativeState": "locked", + "operationalState": "enable", + "resourceCharacteristic": [ + { + "name": "myCharName", + "valueType": "string", + "characteristicRelationship": [ + { + "relationshipType": "string", + "@baseType": "CharacteristicRelationship", + "@schemaLocation": "https://myschemas.com/CharacteristicRelationship.schema.json", + "@type": "CharacteristicRelationship" + } + ], + "@baseType": "Characteristic", + "@schemaLocation": "https://myschemas.com/StringCharacteristic.schema.json", + "@type": "StringCharacteristic" + } + ], + "resourceSpecification": { + "id": "1", + "href": "https://host:port/tmf-api/performanceManagement/v5/ResourceSpecification/1", + "name": "mySpecName", + "version": "1.0", + "@baseType": "ResourceSpecification", + "@schemaLocation": "https://mySchemas.com/ResourceSpecification.schema.json", + "@type": "ResourceSpecification", + "@referredType": "ResourceSpecification" + }, + "resourceStatus": "standby", + "usageState": "idle", + "@baseType": "DataAccessEndpoint", + "@schemaLocation": "https://myschemas.com/dataAccessEndpoint", + "@type": "DataAccessEndpoint" + } + ], + "@baseType": "MeasurementCollectionJob", + "@schemaLocation": "https://host:port/tmf-api/performanceManagement/v5/fileTransferLocation", + "@type": "MeasurementCollectionJob" +} \ No newline at end of file