From ae0f2c30c2a1d97c36912357bb015c18c60c19b2 Mon Sep 17 00:00:00 2001 From: bouaziziim Date: Wed, 8 Jul 2020 07:10:22 +0200 Subject: [PATCH] Update 3gpp-m1.yaml --- 3gpp-m1.yaml | 481 +++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 349 insertions(+), 132 deletions(-) diff --git a/3gpp-m1.yaml b/3gpp-m1.yaml index f6777fa..01cd415 100644 --- a/3gpp-m1.yaml +++ b/3gpp-m1.yaml @@ -1,15 +1,15 @@ openapi: 3.0.0 servers: - - description: 3GPP M1 Interface - url: https://forge.etsi.org/rep/3GPP/sa4/ts-26512/3gpp-m1/1.0.0 - - url: 'https://www.3gpp.org/3gpp-m1/v1' +# Added by API Auto Mocking Plugin + - description: 3GPP SA4 5G Media Streaming Interfaces + url: https://virtserver.swaggerhub.com/ibouazizi/3gpp-m1d/1.0.0 + - url: 'https://www.3gpp.org/3gpp-m1d/v1' description: 5G Media Provisioning Interface variables: {} info: - description: Documentation of the 3GPP M1 Provisioning interface. + description: Documentation of the 3GPP M1d Provisioning interface. version: 1.0.0 title: 3GPP M1d interface - termsOfService: 'http://swagger.io/terms/' contact: email: bouazizi@qti.qualcomm.com license: @@ -22,12 +22,12 @@ tags: description: Find out more url: 'http://www.3gpp.org' paths: - /provisionings: + /provisioning-sessions: get: summary: 'List of all Provisionings' description: '' parameters: - - name: provisioningId + - name: provisioningSessionId in: query required: false schema: @@ -36,42 +36,49 @@ paths: operationId: 'listProvisionings' responses: '200': - description: list of Provisionings + description: list of Provisioning Sessions content: application/json: schema: - $ref: '#/components/schemas/Provisioning' + $ref: '#/components/schemas/ProvisioningSession' post: - summary: 'Create a new Provisioning' + summary: 'Create a new Provisioning Session' description: '' + requestBody: + description: initial configuration of new Provisioning Session + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ProvisioningSession' parameters: [] - operationId: 'Create a new Provisioning' + operationId: 'Create a new Provisioning Session' responses: '201': description: Created - /provisionings/{provisioningId}: + /provisioning-sessions/{provisioningSessionId}: parameters: - - name: provisioningId + - name: provisioningSessionId in: path required: true schema: type: string - description: A unique identifier of the Provisioning + description: A unique identifier of the Provisioning Session get: - summary: 'Get Provisioning' + summary: 'Get Provisioning Session' description: '' parameters: [] operationId: 'getProvisioningById' responses: '200': - description: list of Provisionings + description: list of Provisioning sessions content: application/json: schema: - $ref: '#/components/schemas/Provisioning' + $ref: '#/components/schemas/ProvisioningSession' put: - summary: 'Update a Provisioning' + summary: 'Update a Provisioning Session' description: '' parameters: [] operationId: '' @@ -87,97 +94,100 @@ paths: default: description: Default response - /provisionings/{provisioningId}/ingests: + /provisioning-sessions/{provisioningSessionId}/content-hosting-configurations: parameters: - - name: provisioningId + - name: provisioningSessionId in: path required: true schema: type: string - description: A unique identifier of the Provisioning + description: 'A unique identifier of the Provisioning' get: - summary: '' - description: '' + summary: 'retrieve an existing Content Hosting Configuration' + description: 'retrieve an existing Content Hosting Configuration' parameters: - - name: ingestId + - name: contentHostingConfigurationId in: query required: false schema: type: string - description: A unique identifier of the Ingest - operationId: listIngests + description: A unique identifier of the Content Hosting Configuration responses: '200': - description: The identified Provisioning + description: The Content Hosting Configuration content: application/json: schema: - $ref: '#/components/schemas/Ingest' + $ref: '#/components/schemas/ContentHostingConfiguration' post: - summary: '' - description: '' - parameters: [] - operationId: createIngest + summary: 'create a Content Hosting Configuration' + description: 'Used to retrieve an existing Content Hosting Configuration' responses: '201': description: Created + headers: + Location: + description: 'Location of the newly created Content Hosting Configuration' + schema: + type: string + + content: + application/json: + schema: + $ref: '#/components/schemas/ContentHostingConfiguration' - /provisionings/{provisioningId}/ingests/{ingestId}: + /provisioning-sessions/{provisioningSessionId}/content-hosting-configuration/{contentHostingConfigurationId}: parameters: - - name: provisioningId + - name: provisioningSessionId in: path required: true schema: type: string - description: A unique identifier of the Provisioning - - name: ingestId + description: A unique identifier of the Provisioning Session + - name: contentHostingConfigurationId in: path required: true schema: type: string - description: A unique identifier of the Ingest + description: A unique identifier of the Content Hosting Configuration + get: + summary: 'retrieve an existing Content Hosting Configuration' + description: 'retrieve an existing Content Hosting Configuration' + responses: + '200': + description: The identified Provisioning + content: + application/json: + schema: + $ref: '#/components/schemas/ContentHostingConfiguration' put: summary: '' description: '' - parameters: - - name: ingestId - in: path - required: true - schema: - type: string - operationId: updateIngest responses: default: description: '' delete: summary: '' description: '' - parameters: - - name: ingestId - in: query - required: false - schema: - type: string - operationId: deleteIngest responses: default: description: Default response - /provisionings/{provisioningId}/ingests/{ingestId}/purge: + /provisioning-sessions/{provisioningSessionId}/content-hosting-configuration/{contentHostingConfigurationId}/purge: parameters: - - name: provisioningId + - name: provisioningSessionId in: path required: true schema: type: string description: A unique identifier of the Provisioning - - name: ingestId + - name: contentHostingConfigurationId in: path required: true schema: type: string - description: A unique identifier of the Ingest + description: A unique identifier of the Content Hosting Configuration post: summary: 'Purge the content of the cache' @@ -193,22 +203,138 @@ paths: responses: '200': description: 'Content was purged successfully' + /provisioning-sessions/{provisioningSessionId}/certificates: + parameters: + - name: provisioningSessionId + in: path + required: true + schema: + type: string + description: 'A unique identifier of the the Provisioning' + post: + summary: 'Create a new security certificate' + description: '' + responses: + '200': + description: 'The generated certificate' + headers: + Location: + description: 'Location of the newly created server certificate' + schema: + type: string + content: + 'application/x-pem-file': + schema: + type: string + get: + summary: 'retrieve previously uploaded server certificate' + parameters: + - name: certificateId + in: path + required: true + schema: + type: string + description: 'A unisque identifier of the server certificate' + responses: + '200': + description: 'the server certificate' + content: + 'application/x-pem-file': + schema: + type: string + /provisioning-sessions/{provisioningSessionId}/consumption-reporting-configuration: + parameters: + - name: provisioningSessionId + in: path + required: true + schema: + type: string + description: 'A unique identifier of the Provisioning' + post: + summary: 'Activate the consumption reporting procedure' + description: 'Activate the consumption reporting procedure' + responses: + '200': + description: 'the consumption reporting is successfully activate' + get: + summary: 'Retrieve the consumption reporting configuration' + description: 'retrieve the consumption reporting configuration' + responses: + '200': + description: 'a description of the consumption reporting configuration' + content: + application/json: + schema: + $ref: '#/components/schemas/ConsumptionReportingConfiguration' + /provisioning-sessions/{provisioningSessionId}/policy-templates: + parameters: + - name: provisioningSessionId + in: path + required: true + schema: + type: string + description: 'A unique identifier of the Provisioning Session' + post: + summary: 'Create a new Policy Template' + description: 'create a new Policy Template' + responses: + '201': + description: 'the newly created Policy Template' + content: + application/json: + schema: + $ref: '#/components/schemas/PolicyTemplate' + /provisioning-sessions/{provisioningSessionId}/policy-templates/{policyTemplateId}: + parameters: + - name: provisioningSessionId + in: path + required: true + schema: + type: string + description: 'A unique identifier of the Provisioning Session' + - name: policyTemplateId + in: path + required: true + schema: + type: string + description: 'A unique identifier of the Policy Template' + get: + summary: 'retrieve a description of the Policy Template' + description: 'retrieve a description of the Policy Template' + responses: + '200': + description: 'a description of the Policy Template' + content: + application/json: + schema: + $ref: '#/components/schemas/PolicyTemplate' + put: + summary: 'modify the configuration of a Policy Template' + description: '' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PolicyTemplate' + responses: + '200': + description: 'update a policy template' + content: + application/json: + schema: + $ref: '#/components/schemas/PolicyTemplate' + delete: + summary: 'delete a Policy Template' + description: 'delete a Policy Template' + responses: + '200': + description: 'a Policy Template is deleted' externalDocs: description: TS 26.512 url: 'http://www.3gpp.org/DynaReport/26346.htm' components: schemas: - ApiResponse: - type: object - properties: - code: - type: integer - format: int32 - type: - type: string - message: - type: string - Provisioning: + ProvisioningSession: type: object required: - id @@ -216,7 +342,7 @@ components: id: type: integer format: int64 - Ingest: + ContentHostingConfiguration: type: object required: - id @@ -225,88 +351,93 @@ components: id: type: integer format: int64 - origin: + ingestConfiguration: + $ref: '#/components/schemas/IngestConfiguration' + distributionConfiguration: + type: array + items: + $ref: '#/components/schemas/DistributionConfiguration' + IngestConfiguration: + type: object + properties: + name: + type: string + path: + type: string + pull: + type: boolean + protocol: + type: string + enum: + - dashifpush + entryPoint: + type: string + xml: + name: IngestConfiguration + DistributionConfiguration: + type: object + properties: + contentPreparationTemplateId: + type: string + targetDomain: + type: string + originDomain: + type: string + pathRewriteRules: + type: array + items: + $ref: '#/components/schemas/PathRewriteRule' + cacheConfiguration: + type: array + items: + $ref: '#/components/schemas/CachingConfiguration' + geoFencing: + type: array + items: + $ref: '#/components/schemas/Geo' + urlSignature: type: object properties: - name: + urlPattern: type: string - path: + tokenName: type: string - pull: - type: boolean - protocol: + passphraseName: type: string - enum: - - dashifpush - entryPoint: + passphrase: type: string - xml: - name: Category - cache: - type: array - items: - $ref: '#/components/schemas/Cache' - configuration: - type: object - properties: - contentPreparation: - type: object - properties: - mimeType: - type: string - content: - type: string - targetDomain: + tokenExpiryName: type: string - originDomain: + useIPAddress: + type: boolean + ipAddressName: type: string - geoFencing: - type: array - items: - $ref: '#/components/schemas/Geo' - urlSignature: - type: object - properties: - pattern: - type: string - tokenName: - type: string - passphraseName: - type: string - passphrase: - type: string - ttlName: - type: string - useIPAddress: - type: boolean - ipAddressName: - type: string certificateId: type: integer xml: - name: Ingest - Cache: + name: DistributionConfiguration + PathRewriteRule: type: object properties: - pattern: + originPathPattern: type: string - originCacheHeaders: - type: boolean - default: true - cacheDirectives: + distributionPath: + type: string + CachingConfiguration: + type: object + properties: + urlPatternFilter: + type: string + cachingDirectives: type: object properties: - no-cache: - type: boolean - http-method-filter: - type: array - items: - type: string - status-cod-filter: + statusCodeFilters: type: array items: type: integer - cdn-ttl: + noCache: + type: boolean + maxAge: type: integer format: int32 Geo: @@ -317,12 +448,97 @@ components: enum: - cell - city + locations: + type: array + items: + type: string Pattern: type: object properties: pattern: type: string - + ConsumptionReportingConfiguration: + type: object + properties: + reportingInterval: + $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29122_CommonData.yaml#/components/schemas/DurationSec' + samplePercentage: + type: number + format: float + minimum: 0.0 + maximum: 100.0 + locationType: + $ref: '#/components/schemas/Geo' + PolicyTemplate: + type: object + required: + [policyTemplateId] + properties: + policyTemplateId: + type: integer + state: + type: string + default: 'suspended' + enum: ['pending', 'ready', 'suspended'] + apiEndPoint: + type: string + apiType: + type: string + default: 'N5' + enum: ['N5', 'N33'] + externalReference: + type: string + qosSpecification: + $ref: '#/components/schemas/QoSSpecification' + applicationSessionContext: + $ref: '#/components/schemas/ApplicationSessionContext' + chargingSpecification: + $ref: '#/components/schemas/ChargingSpecification' + QoSSpecification: + type: object + properties: + marBwUl: + $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/BitRate' + marBwDl: + $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/BitRate' + maxPacketLossRateDl: + $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/PacketLossRateRm' + maxPacketLossRateUl: + $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/PacketLossRateRm' + maxSuppBwDl: + $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/BitRate' + maxSuppBwUl: + $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/BitRate' + minDesBwDl: + $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/BitRate' + minDesBwUl: + $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/BitRate' + mirBwUl: + $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/BitRate' + mirBwDl: + $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/BitRate' + ApplicationSessionContext: + type: object + properties: + afAppId: + $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/AfAppId' + sliceInfo: + $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/Snssai' + dnn: + $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/Dnn' + aspId: + $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/AspId' + ChargingSpecification: + type: object + properties: + sponId: + type: string + sponStatus: + $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/SponsoringStatus' + gpsi: + type: array + items: + $ref: 'https://forge.etsi.org/rep/3GPP/5G_APIs/blob/master/TS29571_CommonData.yaml#/components/schemas/Gpsi' securitySchemes: m1d_auth: type: oauth2 @@ -336,4 +552,5 @@ components: admin: Grants access to admin operations links: {} callbacks: {} -security: [] \ No newline at end of file +security: +- m1d_auth: [] \ No newline at end of file -- GitLab