> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ulm.m1amdocs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Returns a user's switch authorization code

> Sends a request for an authorization code required to obtain an access token that belongs to another user in a group. This "other user" is identified by targetUserId in the request body. The authentication object contains information about the "authorizing user". An "authorizing user" can be either the target user or an user with group admin privileges.



## OpenAPI

````yaml /portal/Amdocs_Media-ULM-Released-resolved.yaml post /group/{groupId}/authorizeSwitch
openapi: 3.0.1
info:
  title: Connect APIs
  description: >-
    The Connect/ULM APIs enables clients to manage all aspects against Connect's
    data entities that they are permitted to manage. The data entities supported
    include: (1) USER - a unique individual, (2) RUNTIME - endpoint to which
    services are delivered (e.g. mobile tablet, browser), (3) GROUP - a
    collection of user entities, (4) ACCOUNT - relationship between a USER and
    service provider, (5) SUBSCRIPTION - package of entitlements to a specific
    service, and (6) FEATURE - fine-grained entitlement that defines what a user
    can do for a particular service.


    The APIs offer endpoints for users to onboard, authenticate and manage their
    profile. Please review our OIDC APIs that can be accessed through an active
    web session within the application (i.e. any JavaScript running on the
    server itself) or through authorizing a client application through OIDC or
    OAuth 2.0.


    The majority of these APIs require a user context (session cookie or access
    token) to access their functionality.


    All of the APIs can be accessed via a organization specific domain that was
    provided to you during onboarding.
  version: Draft-GO
servers:
  - url: https://nxt-ulm-pdt.m1amdocs.io/platform/rest/v85
security:
  - cookieAuth: []
  - OIDC: []
tags:
  - name: Account
    description: ULM Account APIs enable standard CRUD operations on ULM account entities.
  - name: Authentication
    description: >-
      Connect authentication APIs open and close user sessions (user login and
      logout).
  - name: Group and Soft Profile
    description: >-
      Connect Group and Soft Profile APIs enable clients to perform group
      management and soft profile functions. A group is a collection of one or
      more Connect entities, typically a user entity. For example, a group can
      be a household that contains 4 users all within the same family. A Soft
      Profile User is a user that can be a minor user or guest user, and they
      are not required to sign up or subscribe to a service. For example, a Soft
      Profile User can be a minor that does not have an email and therefore can
      only access the services if the parent is first authenticated.
  - name: Process
    description: >-
      Connect Process APIs initiate process steps. Connect's library of
      processes include for example Onboarding with Email and Password. These
      processes are intended to provided an preset user journey that your UI can
      follow in steps. 


      A step can be an inital step, one of many subsequent steps, or a final
      step. Some processes may only require one step from start to end.
  - name: Runtime
    description: >-
      Connect Runtimes APIs enables retrieval of Devices that are used by Users
      to interact with ULM.
  - name: Subscription
    description: >-
      Connect Subscription APIs enable standard CRUD operations on a
      subscription entity.
  - name: User
    description: Connect User APIs enable standard CRUD operations on a user entity.
paths:
  /group/{groupId}/authorizeSwitch:
    post:
      tags:
        - Group and Soft Profile
      summary: Returns a user's switch authorization code
      description: >-
        Sends a request for an authorization code required to obtain an access
        token that belongs to another user in a group. This "other user" is
        identified by targetUserId in the request body. The authentication
        object contains information about the "authorizing user". An
        "authorizing user" can be either the target user or an user with group
        admin privileges.
      operationId: authorizeGroupUserSwitch
      parameters:
        - name: groupId
          in: path
          description: 'The unique ID number of the group '
          required: true
          style: simple
          explode: false
          schema:
            type: integer
            format: int64
          example: 114
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SwitchUserAuthorizationRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SwitchUserAuthorizationResponse'
        '400':
          description: Invalid Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SwitchUserAuthorizationResponse400'
        '401':
          description: Authentication Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SwitchUserAuthorizationResponse401'
        '403':
          description: Authorization Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Generic403Dto'
components:
  schemas:
    SwitchUserAuthorizationRequest:
      required:
        - authentication
        - targetUserId
      type: object
      properties:
        targetUserId:
          $ref: '#/components/schemas/EntityId'
        authentication:
          $ref: '#/components/schemas/AuthenticationDto'
      description: >-
        The switch authorization request contains the required information for a
        user to request an authorization code for obtaining an access token that
        belongs to another user in a group. This "other user" is identified by
        targetUserId. The authentication object contains information about the
        "authorizing user". An "authorizing user" can be either the target user
        or an user with group admin privileges.
    SwitchUserAuthorizationResponse:
      type: object
      properties:
        authorizationCode:
          type: string
    SwitchUserAuthorizationResponse400:
      type: object
      properties:
        fieldErrors:
          type: array
          items:
            $ref: '#/components/schemas/SwitchUserAuthorizationResponse400FieldErrors'
        operationErrors:
          type: array
          items:
            $ref: >-
              #/components/schemas/SwitchUserAuthorizationResponse400OperationErrors
    SwitchUserAuthorizationResponse401:
      type: object
      properties:
        operationErrors:
          type: array
          items:
            $ref: >-
              #/components/schemas/SwitchUserAuthorizationResponse401OperationErrors
    Generic403Dto:
      type: object
      properties:
        operationError:
          deprecated: true
          allOf:
            - $ref: '#/components/schemas/OperationErrorDto'
        stackTrace:
          type: string
          description: Optional, returned only in debug mode.
        operationErrors:
          type: array
          items:
            $ref: '#/components/schemas/Generic403DtoOperationErrors'
      description: General Payload for Authorization Error.
    EntityId:
      type: integer
      description: The unique ID of an entity.
      format: int64
      example: 1
    AuthenticationDto:
      required:
        - userId
      type: object
      properties:
        userId:
          $ref: '#/components/schemas/EntityId'
        credential:
          type: string
          description: >-
            The password, PIN or other login credential supplied by the user
            identified by userId.
          example: changeme
        credentialType:
          type: string
          description: The type of the credential field.
          enum:
            - password
            - pin
      description: >-
        The data model that contains the values to be provided for
        authentication.
    SwitchUserAuthorizationResponse400FieldErrors:
      type: object
      properties:
        field:
          type: string
          example: user
        code:
          type: string
          example: invalid-input-error
          deprecated: true
        code_v2:
          type: string
          enum:
            - invalid-input-error
        message:
          type: string
          example: Value is not supported
        rejectedValue:
          type: string
          description: only available in test environment
          example: '5'
    SwitchUserAuthorizationResponse400OperationErrors:
      type: object
      properties:
        code:
          type: string
          enum:
            - group-not-found
            - user-not-found
        message:
          type: string
          example: Group Not Found
    SwitchUserAuthorizationResponse401OperationErrors:
      type: object
      properties:
        code:
          type: string
          enum:
            - authentication-required
        message:
          type: string
          example: Full authentication required
    OperationErrorDto:
      title: OperationErrorDto
      required:
        - code
      type: object
      properties:
        code:
          type: string
          description: The business error code
        message:
          type: string
          description: The message that describes the error
          example: Bad user input
        type:
          type: string
          description: >-
            The exception class that caused the error, returned only in debug
            mode.
          deprecated: true
        authorities:
          type: array
          description: Returned only in debug mode.
          items:
            type: string
      description: The data model that contains the Operation Error response details.
    Generic403DtoOperationErrors:
      type: object
      properties:
        code:
          type: string
          enum:
            - ACCESS_FORBIDDEN
            - security-challenge-failed
        message:
          type: string
          example: Access Denied
  securitySchemes:
    cookieAuth:
      type: apiKey
      name: JSESSIONID
      in: cookie
    OIDC:
      type: oauth2
      description: OAuth 2.0 Authentication
      flows:
        implicit:
          authorizationUrl: /oidc/authorize
          scopes:
            openid: >-
              Enables OIDC by requesting the ID Token. Without this scope, the
              request is merely OAuth 2.0
            profile: Requests the claims name, family_name, given_name, and picture
            email: Requests the claims email and email_verified
            phone: Requests the claims phone_number and phone_number_verified
            offline_access: Requests that a refresh token be issued.
            entitlements: Enables the "entitlements" claim.
        password:
          tokenUrl: /oidc/token
          scopes:
            openid: >-
              Enables OIDC by requesting the ID Token. Without this scope, the
              request is merely OAuth 2.0
            profile: Requests the claims name, family_name, given_name, and picture
            email: Requests the claims email and email_verified
            phone: Requests the claims phone_number and phone_number_verified
            entitlements: Enables the "entitlements" claim.
        clientCredentials:
          tokenUrl: /oidc/token
          scopes:
            openid: >-
              Enables OIDC by requesting the ID Token. Without this scope, the
              request is merely OAuth 2.0
            profile: Requests the claims name, family_name, given_name, and picture
            email: Requests the claims email and email_verified
            phone: Requests the claims phone_number and phone_number_verified
            entitlements: Enables the "entitlements" claim.
        authorizationCode:
          authorizationUrl: /oidc/authorize
          tokenUrl: /oidc/token
          scopes:
            openid: >-
              Enables OIDC by requesting the ID Token. Without this scope, the
              request is merely OAuth 2.0
            profile: Requests the claims name, family_name, given_name, and picture
            email: Requests the claims email and email_verified
            phone: Requests the claims phone_number and phone_number_verified
            offline_access: Requests that a refresh token be issued.
            entitlements: Enables the "entitlements" claim.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.