openapi: 3.0.0 info: version: '1.0.2' title: 'NRF OAuth2' description: | NRF OAuth2 Authorization. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. paths: /oauth2/token: post: summary: Access Token Request operationId: AccessTokenRequest tags: - Access Token Request requestBody: content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/AccessTokenReq' required: true responses: '200': description: Successful Access Token Request content: application/json: schema: $ref: '#/components/schemas/AccessTokenRsp' headers: Cache-Control: $ref: '#/components/headers/cache-control' Pragma: $ref: '#/components/headers/pragma' '307': description: Temporary Redirect '400': description: Error in the Access Token Request content: application/json: schema: $ref: '#/components/schemas/AccessTokenErr' headers: Cache-Control: $ref: '#/components/headers/cache-control' Pragma: $ref: '#/components/headers/pragma' '401': $ref: 'TS29571_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29571_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29571_CommonData.yaml#/components/responses/404' '411': $ref: 'TS29571_CommonData.yaml#/components/responses/411' '413': $ref: 'TS29571_CommonData.yaml#/components/responses/413' '415': $ref: 'TS29571_CommonData.yaml#/components/responses/415' '429': $ref: 'TS29571_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29571_CommonData.yaml#/components/responses/500' '501': $ref: 'TS29571_CommonData.yaml#/components/responses/501' '503': $ref: 'TS29571_CommonData.yaml#/components/responses/503' default: $ref: 'TS29571_CommonData.yaml#/components/responses/default' components: headers: cache-control: required: true schema: type: string enum: - no-store pragma: required: true schema: type: string enum: - no-cache schemas: AccessTokenReq: type: object required: - grant_type - nfInstanceId - scope properties: grant_type: type: string enum: - client_credentials nfInstanceId: $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId' nfType: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/NFType' targetNfType: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/NFType' scope: type: string pattern: '^([a-zA-Z0-9_-]+)( [a-zA-Z0-9_-]+)*$' targetNfInstanceId: $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId' requesterPlmn: $ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnId' targetPlmn: $ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnId' AccessTokenRsp: type: object required: - access_token - token_type properties: access_token: type: string description: JWS Compact Serialized representation of JWS signed JSON object (AccessTokenClaims) token_type: type: string enum: - Bearer expires_in: type: integer scope: type: string pattern: '^([a-zA-Z0-9_-]+)( [a-zA-Z0-9_-]+)*$' AccessTokenClaims: type: object required: - iss - sub - aud - scope - exp properties: iss: $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId' sub: $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId' aud: anyOf: - $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/NFType' - type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId' minItems: 1 scope: type: string pattern: '^([a-zA-Z0-9_-]+)( [a-zA-Z0-9_-]+)*$' exp: type: integer consumerPlmnId: $ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnId' producerPlmnId: $ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnId' AccessTokenErr: type: object required: - error properties: error: type: string enum: - invalid_request - invalid_client - invalid_grant - unauthorized_client - unsupported_grant_type - invalid_scope error_description: type: string error_uri: type: string externalDocs: description: 3GPP TS 29.510 V15.3.0; 5G System; Network Function Repository Services; Stage 3 url: 'http://www.3gpp.org/ftp/Specs/archive/29_series/29.510/'