diff options
Diffstat (limited to 'onap_data_provider')
-rw-r--r-- | onap_data_provider/resources/resource_creator.py | 27 | ||||
-rw-r--r-- | onap_data_provider/schemas/infra_2_0.schema | 757 | ||||
-rw-r--r-- | onap_data_provider/validator.py | 2 | ||||
-rw-r--r-- | onap_data_provider/versions.py | 5 |
4 files changed, 787 insertions, 4 deletions
diff --git a/onap_data_provider/resources/resource_creator.py b/onap_data_provider/resources/resource_creator.py index 7bd61bc..35959f1 100644 --- a/onap_data_provider/resources/resource_creator.py +++ b/onap_data_provider/resources/resource_creator.py @@ -61,96 +61,117 @@ class ResourceCreator(ABC): VersionsEnum.NONE: AaiServiceResource, VersionsEnum.V1_0: AaiServiceResource, VersionsEnum.V1_1: AaiServiceResource, + VersionsEnum.V2_0: AaiServiceResource, }, "cloud-region": { VersionsEnum.NONE: CloudRegionResource, VersionsEnum.V1_0: CloudRegionResource, VersionsEnum.V1_1: CloudRegionResource, + VersionsEnum.V2_0: CloudRegionResource, }, "complex": { VersionsEnum.NONE: ComplexResource, VersionsEnum.V1_0: ComplexResource, VersionsEnum.V1_1: ComplexResource, + VersionsEnum.V2_0: ComplexResource, }, "customer": { VersionsEnum.NONE: CustomerResource, VersionsEnum.V1_0: CustomerResource, VersionsEnum.V1_1: CustomerResource, + VersionsEnum.V2_0: CustomerResource, }, "vsp": { VersionsEnum.NONE: VspResource, VersionsEnum.V1_0: VspResource, VersionsEnum.V1_1: VspResource, + VersionsEnum.V2_0: VspResource, }, "service": { VersionsEnum.NONE: ServiceResource, VersionsEnum.V1_0: ServiceResource, VersionsEnum.V1_1: ServiceResource, + VersionsEnum.V2_0: ServiceResource, }, "vendor": { VersionsEnum.NONE: VendorResource, VersionsEnum.V1_0: VendorResource, VersionsEnum.V1_1: VendorResource, + VersionsEnum.V2_0: VendorResource, }, "pnf": { VersionsEnum.NONE: PnfResource, VersionsEnum.V1_0: PnfResource, VersionsEnum.V1_1: PnfResource, + VersionsEnum.V2_0: PnfResource, }, "vnf": { VersionsEnum.NONE: VnfResource, VersionsEnum.V1_0: VnfResource, VersionsEnum.V1_1: VnfResource, + VersionsEnum.V2_0: VnfResource, }, "service-instance": { VersionsEnum.NONE: ServiceInstanceResource, VersionsEnum.V1_0: ServiceInstanceResource, VersionsEnum.V1_1: ServiceInstanceResource_1_1, + VersionsEnum.V2_0: ServiceInstanceResource_1_1, }, "line-of-business": { VersionsEnum.NONE: LineOfBusinessResource, VersionsEnum.V1_0: LineOfBusinessResource, VersionsEnum.V1_1: LineOfBusinessResource, + VersionsEnum.V2_0: LineOfBusinessResource, }, "project": { VersionsEnum.NONE: ProjectResource, VersionsEnum.V1_0: ProjectResource, VersionsEnum.V1_1: ProjectResource, + VersionsEnum.V2_0: ProjectResource, }, "platform": { VersionsEnum.NONE: PlatformResource, VersionsEnum.V1_0: PlatformResource, VersionsEnum.V1_1: PlatformResource, + VersionsEnum.V2_0: PlatformResource, }, "owning-entity": { VersionsEnum.NONE: OwningEntityResource, VersionsEnum.V1_0: OwningEntityResource, VersionsEnum.V1_1: OwningEntityResource, + VersionsEnum.V2_0: OwningEntityResource, }, "msb-k8s-definition": { VersionsEnum.NONE: MsbK8SDefinitionResource, VersionsEnum.V1_0: MsbK8SDefinitionResource, VersionsEnum.V1_1: MsbK8SDefinitionResource, + VersionsEnum.V2_0: MsbK8SDefinitionResource, }, "data-dictionaries": { VersionsEnum.NONE: DataDictionarySetResource, VersionsEnum.V1_0: DataDictionarySetResource, VersionsEnum.V1_1: DataDictionarySetResource, + VersionsEnum.V2_0: DataDictionarySetResource, }, "blueprint": { VersionsEnum.V1_1: BlueprintResource, + VersionsEnum.V2_0: BlueprintResource, }, "blueprint-resource-template": { VersionsEnum.V1_1: BlueprintResourceTemplateResource, + VersionsEnum.V2_0: BlueprintResourceTemplateResource, }, "cps-dataspace": { - VersionsEnum.V1_1: DataspaceResource + VersionsEnum.V1_1: DataspaceResource, + VersionsEnum.V2_0: DataspaceResource }, "cps-schema-set": { - VersionsEnum.V1_1: SchemaSetResource + VersionsEnum.V1_1: SchemaSetResource, + VersionsEnum.V2_0: SchemaSetResource }, "cps-anchor": { - VersionsEnum.V1_1: AnchorResource + VersionsEnum.V1_1: AnchorResource, + VersionsEnum.V2_0: AnchorResource } } diff --git a/onap_data_provider/schemas/infra_2_0.schema b/onap_data_provider/schemas/infra_2_0.schema new file mode 100644 index 0000000..59c6298 --- /dev/null +++ b/onap_data_provider/schemas/infra_2_0.schema @@ -0,0 +1,757 @@ +--- +"$schema": "https://json-schema.org/draft/2020-12/schema" +type: object +properties: + aai-services: + type: array + additionalItems: + - type: object + properties: + aai-service: + type: object + properties: + service-id: + type: string + service-description: + type: string + required: + - service-id + - service-description + required: + - aai-service + owning-entities: &owning_entities + type: array + additionalItems: + type: object + properties: + owning-entity: + type: object + properties: + name: + type: string + $anchor: + type: string + required: + - name + required: + - owning-entity + projects: &projects + type: array + additionalItems: + type: object + properties: + project: + type: object + properties: + name: + type: string + required: + - name + required: + - project + platforms: + type: array + additionalItems: + type: object + properties: + platform: + type: object + properties: + name: + type: string + required: + - name + required: + - platform + lines-of-business: &lines_of_business + type: array + additionalItems: + type: object + properties: + line-of-business: + type: object + properties: + name: + type: string + required: + - name + required: + - line-of-business + complexes: + type: array + additionalItems: + type: object + properties: + complex: + type: object + properties: + physical-location-id: + type: string + complex-name: + type: string + data-center-code: + type: string + identity-url: + type: string + physical-location-type: + type: string + street1: + type: string + street2: + type: string + city: + type: string + state: + type: string + postal-code: + type: string + country: + type: string + region: + type: string + latitude: + type: string + longitude: + type: string + elevation: + type: string + lata: + type: string + required: + - physical-location-id + required: + - complex + cloud-regions: + type: array + additionalItems: + type: object + properties: + cloud-region: + type: object + properties: + cloud-owner: + type: string + cloud-region-id: + type: string + orchestration-disabled: + type: boolean + in-maint: + type: boolean + tenants: + type: array + additionalItems: + type: object + properties: + tenant-id: + type: string + tenant-name: + type: string + tenant-context: + type: string + lines_of_business: *lines_of_business + owning_entities: *owning_entities + required: + - tenant-id + - tenant-name + esr-system-infos: + type: array + additionalItems: + type: object + properties: + esr-system-info-id: + type: string + user-name: + type: string + password: + type: string + system-type: + type: string + service-url: + type: string + cloud-domain: + type: string + default-tenant: + type: string + required: + - esr-system-info-id + - user-name + - password + - system-type + - service-url + - cloud-domain + complex: + type: object + properties: + physical-location-id: + type: string + required: + - physical-location-id + availability-zones: + type: array + additionalItems: + type: object + properties: + availability-zone-name: + type: string + hypervisor-type: + type: string + required: + - availability-zone-name + - hypervisor-type + projects: *projects + required: + - cloud-owner + - cloud-region-id + - orchestration-disabled + - in-maint + required: + - cloud-region + customers: + type: array + additionalItems: + type: object + properties: + customer: + type: object + properties: + global-customer-id: + type: string + subscriber-name: + type: string + subscriber-type: + type: string + service-subscriptions: + type: array + additionalItems: + type: object + properties: + service-type: + type: string + tenants: + type: array + additionalItems: + type: object + properties: + tenant-id: + type: string + cloud-owner: + type: string + cloud-region-id: + type: string + required: + - tenant-id + - cloud-owner + - cloud-region-id + required: + - service-type + required: + - global-customer-id + - subscriber-name + - subscriber-type + required: + - customer + vendors: + type: array + additionalItems: + type: object + properties: + vendor: + type: object + properties: + name: + type: string + required: + - name + required: + - vendor + vsps: + type: array + additionalItems: + type: object + properties: + vsp: + type: object + properties: + name: + type: string + vendor: + type: string + package: + type: string + required: + - name + - vendor + - package + required: + - vsp + services: + type: array + additionalItems: + type: object + properties: + service: + type: object + properties: + name: + type: string + resources: + type: array + additionalItems: + type: object + properties: + name: + type: string + type: + type: string + properties: # Adding a prop to a component is senseless. + type: array + additionalItems: + type: object + properties: + name: + type: string + value: + type: + - string + - number + - boolean + required: + - name + - value + required: + - name + - type + properties: &props + type: array + additionalItems: + type: object + properties: + name: + type: string + type: + type: string + value: + type: + - string + - number + - boolean + anyOf: + - required: + - name + - type + - required: + - name + - value + inputs: &inputs + type: array + additionalItems: + type: object + properties: + name: + type: string + type: + type: string + nested-input: + type: boolean + resource-property: + type: boolean + resource: + type: string + value: + type: + - string + - number + - boolean + anyOf: + - required: + - name + - type + - required: + - name + - value + - required: + - name + - nested-input + - resource + required: + - name + required: + - service + pnfs: + type: array + additionalItems: + type: object + properties: + pnf: + type: object + properties: + name: + type: string + vendor: + type: string + vsp: + type: string + category: + type: string + subcategory: + type: string + vendor: + type: string + deployment_artifact: + type: object + properties: + artifact_type: + type: string + artifact_name: + type: string + artifact_label: + type: string + artifact_file_name: + type: string + required: + - artifact_type + - artifact_name + - artifact_label + - artifact_file_name + properties: *props + inputs: *props + resources: + type: array + additionalItems: + - type: object + properties: + xnf_type: + type: string + name: + type: string + required: + - xnf_type + - name + required: + - name + required: + - pnf + vnfs: + type: array + additionalItems: + type: object + properties: + vnf: + type: object + properties: + name: + type: string + vsp: + type: string + category: + type: string + subcategory: + type: string + vendor: + type: string + deployment_artifact: + type: object + properties: + artifact_type: + type: string + artifact_name: + type: string + artifact_label: + type: string + artifact_file_name: + type: string + required: + - artifact_type + - artifact_name + - artifact_label + - artifact_file_name + properties: *props + inputs: *props + resources: + type: array + additionalItems: + - type: object + properties: + xnf_type: + type: string + name: + type: string + required: + - xnf_type + - name + required: + - name + required: + - vnf + service-instances: + type: array + additionalItems: + type: object + properties: + service-instance: + type: object + properties: + service_instance_name: + type: string + service_name: + type: string + cloud_region: + type: string + customer_id: + type: string + owning_entity: + type: string + project: + type: string + platform: + type: string + line_of_business: + type: string + cloud_region_id: + type: string + cloud_owner: + type: string + timeout: + type: number + minimum: 1 + maximum: 99999 + aai_service: + type: string + tenant_id: + type: string + tenant_name: + type: string + service_subscription_type: + type: string + instantiation_parameters: + type: array + additionalItems: + type: object + properties: + vnf_name: + type: string + sec_group: + type: string + public_net_id: + type: string + onap_private_net_id: + type: string + onap_private_subnet_id: + type: string + image_name: + type: string + flavor_name: + type: string + install_script_version: + type: string + demo_artifacts_version: + type: string + cloud_env: + type: string + aic-cloud-region: + type: string + pub_key: + type: string + required: + - service_instance_name + - service_name + - customer_id + - owning_entity + - project + - platform + - line_of_business + - aai_service + msb-k8s-definitionss: + type: array + additionalItems: + type: object + properties: + name: + type: string + version: + type: string + chart-name: + type: string + description: + type: string + artifact: + type: string + profiles: + type: array + additionalItems: + - type: object + properties: + name: + type: string + namespace: + type: string + k8s-version: + type: string + artifact: + type: string + required: + - name + - namespace + - k8s-version + - artifact + required: + - name + - version + - artifact + data-dictionaries-sets: + type: array + additionalItems: + - type: object + properties: + data-dictionaries: + type: object + properties: + file-path: + type: string + required: + - file-path + required: + - data-dictionaries + blueprints: + type: array + additionalItems: + - type: object + properties: + blueprint: + type: object + properites: + blueprint-file-path: + type: string + required: + - blueprint-file-path + required: + - blueprint + blueprint-resource-templates: + type: array + additionalItems: + - type: object + properties: + blueprint-resource-template: + type: object + properties: + blueprint-name: + type: string + blueprint-version: + type: string + artifact-name: + type: string + resolution-key: + type: string + resource-type: + type: string + resource-id: + type: string + data: + type: string + data-file: + type: string + anyOf: + - required: + - blueprint-name + - blueprint-version + - artifact-name + - resolution-key + - data + - required: + - blueprint-name + - blueprint-version + - artifact-name + - resource-type + - resource-id + - data + - required: + - blueprint-name + - blueprint-version + - artifact-name + - resolution-key + - data-file + - required: + - blueprint-name + - blueprint-version + - artifact-name + - resource-type + - resource-id + - data-file + cps-dataspaces: + type: array + additionalItems: + - type: object + properties: + cps-dataspace: + type: object + properties: + dataspace-name: + type: string + schema-sets: + type: array + additionalItems: + - type: object + properties: + schema-set-name: + type: string + schema-set-file: + type: string + required: + - schema-set-name + - schema-set-file + anchors: + type: array + additionalItems: + - type: object + properties: + anchor-name: + type: string + schema-set-name: + type: string + required: + - anchor-name + - schema-set-name + required: + - dataspace-name + required: + - cps-dataspace + cps-schema-sets: + type: array + additionalItems: + - type: object + properties: + cps-schema-set: + type: object + properties: + schema-set-name: + type: string + schema-set-file: + type: string + dataspace-name: + type: string + required: + - schema-set-name + - schema-set-file + - dataspace-name + required: + - cps-schema-set + cps-anchors: + type: array + additionalItems: + - type: object + properties: + cps-anchor: + type: object + properties: + anchor-name: + type: string + dataspace-name: + type: string + schema-set-name: + type: string + required: + - anchor-name + - dataspace-name + - schema-set-name + required: + - cps-anchor diff --git a/onap_data_provider/validator.py b/onap_data_provider/validator.py index 3589f85..3166deb 100644 --- a/onap_data_provider/validator.py +++ b/onap_data_provider/validator.py @@ -18,7 +18,7 @@ from typing import Any, Dict import yaml -from jsonschema import validate # type: ignore +from jsonschema import validate from .versions import VersionsEnum diff --git a/onap_data_provider/versions.py b/onap_data_provider/versions.py index 7651bec..da31723 100644 --- a/onap_data_provider/versions.py +++ b/onap_data_provider/versions.py @@ -36,6 +36,11 @@ class VersionsEnum(Enum): schema_path=Path(Path(__file__).parent, "schemas/infra.schema"), deprecated=False, ) + V2_0 = Version( + version_number="2.0", + schema_path=Path(Path(__file__).parent, "schemas/infra_2_0.schema"), + deprecated=False, + ) NONE = Version( version_number="None", schema_path=Path(Path(__file__).parent, "schemas/infra.schema"), |