> ## 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.

# Switch session to another group User

> The API switches the security context 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 privilege.



## OpenAPI

````yaml /portal/Amdocs_Media-ULM-Released-resolved.yaml post /session/switch
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:
  /session/switch:
    post:
      tags:
        - Group and Soft Profile
        - Authentication
      summary: Switch session to another group User
      description: >-
        The API switches the security context 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 privilege.
      operationId: switchUserGroupSession
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SwitchUserRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionSwitchResponse'
        '401':
          description: Authentication Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Generic401Dto'
        '403':
          description: Authorization Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Generic403Dto'
components:
  schemas:
    SwitchUserRequest:
      required:
        - authentication
        - groupId
        - targetUserId
      type: object
      properties:
        groupId:
          $ref: '#/components/schemas/EntityId'
        targetUserId:
          $ref: '#/components/schemas/EntityId'
        guid:
          type: string
        authentication:
          $ref: '#/components/schemas/AuthenticationDto'
      description: >-
        The switch user request contains the required information for a user to
        switch the security context 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.
    SessionSwitchResponse:
      type: object
      properties:
        lastStep:
          type: boolean
          example: true
        runtimeId:
          $ref: '#/components/schemas/EntityId'
        userId:
          $ref: '#/components/schemas/EntityId'
        userAuthenticated:
          type: boolean
    Generic401Dto:
      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/Generic401DtoOperationErrors'
      description: General Payload for Authentication Error.
    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.
    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.
    Generic401DtoOperationErrors:
      type: object
      properties:
        code:
          type: string
          enum:
            - authentication-required
        message:
          type: string
          example: Full Authentication Required
    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.