github.com/free5gc/openapi@v1.0.8/Nnrf_AccessToken/api/openapi.yaml (about)

     1  openapi: 3.0.0
     2  info:
     3    description: NRF OAuth2 Authorization
     4    title: NRF OAuth2
     5    version: 1.0.0
     6  externalDocs:
     7    description: 3GPP TS 29.510 V15.2.0; 5G System; Network Function Repository Services; Stage 3
     8    url: http://www.3gpp.org/ftp/Specs/archive/29_series/29.510/
     9  servers:
    10  - url: /
    11  paths:
    12    /oauth2/token:
    13      post:
    14        operationId: AccessTokenRequest
    15        requestBody:
    16          content:
    17            application/x-www-form-urlencoded:
    18              schema:
    19                $ref: '#/components/schemas/AccessTokenReq'
    20          required: true
    21        responses:
    22          200:
    23            content:
    24              application/json:
    25                schema:
    26                  $ref: '#/components/schemas/AccessTokenRsp'
    27            description: Successful Access Token Request
    28            headers:
    29              Cache-Control:
    30                $ref: '#/components/headers/cache-control'
    31              Pragma:
    32                $ref: '#/components/headers/pragma'
    33          400:
    34            content:
    35              application/json:
    36                schema:
    37                  $ref: '#/components/schemas/AccessTokenErr'
    38            description: Error in the Access Token Request
    39            headers:
    40              Cache-Control:
    41                $ref: '#/components/headers/cache-control'
    42              Pragma:
    43                $ref: '#/components/headers/pragma'
    44        summary: Access Token Request
    45        tags:
    46        - Access Token Request
    47  components:
    48    headers:
    49      cache-control:
    50        explode: false
    51        required: true
    52        schema:
    53          enum:
    54          - no-store
    55          type: string
    56        style: simple
    57      pragma:
    58        explode: false
    59        required: true
    60        schema:
    61          enum:
    62          - no-cache
    63          type: string
    64        style: simple
    65    schemas:
    66      AccessTokenReq:
    67        properties:
    68          grant_type:
    69            enum:
    70            - client_credentials
    71            type: string
    72          nfInstanceId:
    73            format: uuid
    74            type: string
    75          nfType:
    76            $ref: '#/components/schemas/NFType'
    77          targetNfType:
    78            $ref: '#/components/schemas/NFType'
    79          scope:
    80            pattern: ^([a-zA-Z0-9_-]+)( [a-zA-Z0-9_-]+)*$
    81            type: string
    82          targetNfInstanceId:
    83            format: uuid
    84            type: string
    85          requesterPlmn:
    86            $ref: '#/components/schemas/PlmnId'
    87          targetPlmn:
    88            $ref: '#/components/schemas/PlmnId'
    89        required:
    90        - grant_type
    91        - nfInstanceId
    92        - scope
    93        type: object
    94      AccessTokenRsp:
    95        example:
    96          access_token: access_token
    97          scope: scope
    98          token_type: token_type
    99          expires_in: 0
   100        properties:
   101          access_token:
   102            description: JWS Compact Serialized representation of JWS signed JSON object (AccessTokenClaims)
   103            type: string
   104          token_type:
   105            type: string
   106          expires_in:
   107            format: int32
   108            type: integer
   109          scope:
   110            pattern: ^([a-zA-Z0-9_-]+)( [a-zA-Z0-9_-]+)*$
   111            type: string
   112        required:
   113        - access_token
   114        - token_type
   115        type: object
   116      AccessTokenClaims:
   117        properties:
   118          issuer:
   119            format: uuid
   120            type: string
   121          subject:
   122            type: string
   123          audience:
   124            anyOf:
   125            - $ref: '#/components/schemas/NFType'
   126            - items:
   127                $ref: '#/components/schemas/NfInstanceId'
   128              minItems: 1
   129              type: array
   130          scope:
   131            pattern: ^([a-zA-Z0-9_-]+)( [a-zA-Z0-9_-]+)*$
   132            type: string
   133          expiration:
   134            format: int32
   135            type: integer
   136        required:
   137        - audience
   138        - expiration
   139        - issuer
   140        - scope
   141        - subject
   142        type: object
   143      AccessTokenErr:
   144        properties:
   145          error:
   146            enum:
   147            - invalid_request
   148            - invalid_client
   149            - invalid_grant
   150            - unauthorized_client
   151            - unsupported_grant_type
   152            - invalid_scope
   153            type: string
   154          error_description:
   155            type: string
   156          error_uri:
   157            type: string
   158        required:
   159        - error
   160        type: object
   161      NfInstanceId:
   162        format: uuid
   163        type: string
   164      NFType:
   165        enum:
   166        - NRF
   167        - UDM
   168        - AMF
   169        - SMF
   170        - AUSF
   171        - NEF
   172        - PCF
   173        - SMSF
   174        - NSSF
   175        - UDR
   176        - LMF
   177        - GMLC
   178        - 5G_EIR
   179        - SEPP
   180        - UPF
   181        - N3IWF
   182        - AF
   183        - UDSF
   184        - BSF
   185        - CHF
   186        - NWDAF
   187        type: string
   188      PlmnId:
   189        properties:
   190          mcc:
   191            pattern: ^\d{3}$
   192            type: string
   193          mnc:
   194            pattern: ^\d{2,3}$
   195            type: string
   196        required:
   197        - mcc
   198        - mnc
   199        type: object
   200      Mcc:
   201        pattern: ^\d{3}$
   202        type: string
   203      Mnc:
   204        pattern: ^\d{2,3}$
   205        type: string