diff --git a/OpenAPI/EdgeNRM.yaml b/OpenAPI/EdgeNRM.yaml new file mode 100644 index 0000000000000000000000000000000000000000..d811e1e5ae4f86f698b41501b8321319e744c05f --- /dev/null +++ b/OpenAPI/EdgeNRM.yaml @@ -0,0 +1,228 @@ +openapi: 3.0.1 +info: + title: 3GPP Edge NRM + version: 17.0.0 + description: >- + OAS 3.0.1 specification of the Edge NRM + © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). + All rights reserved. +externalDocs: + description: 3GPP TS 28.538; Edge NRM + url: http://www.3gpp.org/ftp/Specs/archive/28_series/28.538/ +paths: {} +components: + schemas: + +#-------- Definition of types----------------------------------------------------- + ServingLocation: + type: object + properties: + geographicalLocation: + $ref: '#/components/schemas/GeoLoc' + topologicalLocation: + $ref: '#/components/schemas/TopologicalServiceArea' + TopologicalServiceArea: + type: object + properties: + cellIdList: + type: integer + trackingAreaIdList: + $ref: 'nrNrm.yaml#/components/schemas/Tai' + servingPLMN: + $ref: 'nrNrm.yaml#/components/schemas/PlmnId' + GeoLoc: + type: object + properties: + geographicalCoordinates: + $ref: '#/components/schemas/GeographicalCoordinates' + civicLocation: + type: string + GeographicalCoordinates: + type: object + properties: + lattitude: + type: integer + longitude: + type: integer + EDNConnectionInfo: + type: object + properties: + dNN: + type: string + eDNServiceArea: + $ref: '#/components/schemas/ServingLocation' + AffinityAntiAffinity: + type: object + properties: + affinityEAS: + type: string + antiAffinityEAS: + type: string + VirtualResource: + type: object + properties: + virtualMemory: + type: integer + virtualDisk: + type: integer + SoftwareImageInfo: + type: object + properties: + minimumDisk: + type: integer + minimumRAM: + type: integer + swImageRef: + type: string + + +#-------- Definition of concrete IOCs -------------------------------------------- + + SubNetwork-Single: + allOf: + - $ref: 'genericNrm.yaml#/components/schemas/Top' + - type: object + properties: + attributes: + allOf: + - $ref: 'genericNrm.yaml#/components/schemas/SubNetwork-Attr' + - type: object + properties: + Subnetwork: + $ref: '#/components/schemas/SubNetwork-Multiple' + ECSFunction: + $ref: '#/components/schemas/ECSFunction-Multiple' + EdgeDataNetwork: + $ref: '#/components/schemas/EdgeDataNetwork-Multiple' + - $ref: 'genericNrm.yaml#/components/schemas/SubNetwork-ncO' + + EdgeDataNetwork-Single: + allOf: + - $ref: 'genericNrm.yaml#/components/schemas/Top' + - type: object + properties: + ednIdentifier: + type: string + eDNConnectionInfo: + $ref: '#/components/schemas/EDNConnectionInfo' + - type: object + properties: + EASFunction: + $ref: '#/components/schemas/EASFunction-Multiple' + EESFunction: + $ref: '#/components/schemas/EESFunction-Multiple' + + EASFunction-Single: + allOf: + - $ref: 'genericNrm.yaml#/components/schemas/Top' + - type: object + properties: + attributes: + allOf: + - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr' + - type: object + properties: + eASIdentifier: + type: string + eESAddress: + type: string + eASRequirementsRef: + $ref: 'comDefs.yaml#/components/schemas/Dn' + eASAddress: + type: string + - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO' + EESFunction-Single: + allOf: + - $ref: 'genericNrm.yaml#/components/schemas/Top' + - type: object + properties: + attributes: + allOf: + - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr' + - type: object + properties: + eESIdentifier: + type: string + eESServingLocation: + $ref: '#/components/schemas/ServingLocation' + eESAddress: + type: string + softwareImageInfo: + $ref: '#/components/schemas/SoftwareImageInfo' + serviceContinuitySupport: + type: boolean + eASFunctonRef: + $ref: 'comDefs.yaml#/components/schemas/DnList' + - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO' + + ECSFunction-Single: + allOf: + - $ref: 'genericNrm.yaml#/components/schemas/Top' + - type: object + properties: + attributes: + allOf: + - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr' + - type: object + properties: + eCSAddress: + type: string + providerIdentifier: + type: string + edgeDataNetworkRef: + $ref: 'comDefs.yaml#/components/schemas/DnList' + eESFuncitonRef: + $ref: 'comDefs.yaml#/components/schemas/Dn' + softwareImageInfo: + $ref: '#/components/schemas/SoftwareImageInfo' + - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-ncO' + + EASRequirements-Single: + allOf: + - $ref: 'genericNrm.yaml#/components/schemas/Top' + - type: object + properties: + requiredEASservingLocation: + $ref: '#/components/schemas/ServingLocation' + affinityAntiAffinity: + $ref: '#/components/schemas/AffinityAntiAffinity' + serviceContinuity: + type: boolean + virtualResource: + $ref: '#/components/schemas/VirtualResource' + softwareImageInfo: + $ref: '#/components/schemas/SoftwareImageInfo' + +#-------- Definition of JSON arrays for name-contained IOCs ---------------------- + + SubNetwork-Multiple: + type: array + items: + $ref: '#/components/schemas/SubNetwork-Single' + EASFunction-Multiple: + type: array + items: + $ref: '#/components/schemas/EASFunction-Single' + ECSFunction-Multiple: + type: array + items: + $ref: '#/components/schemas/ECSFunction-Single' + EESFunction-Multiple: + type: array + items: + $ref: '#/components/schemas/EESFunction-Single' + EdgeDataNetwork-Multiple: + type: array + items: + $ref: '#/components/schemas/EdgeDataNetwork-Single' + +#--------------------------------- Definition ------------------------------------ + + resources-edgeNrm: + oneOf: + - $ref: '#/components/schemas/SubNetwork-Single' + - $ref: '#/components/schemas/EASFunction-Single' + - $ref: '#/components/schemas/ECSFunction-Single' + - $ref: '#/components/schemas/EESFunction-Single' + - $ref: '#/components/schemas/EdgeDataNetwork-Single' + - $ref: '#/components/schemas/EASRequirements-Single'