code: def init_sts_session(profile_name, credentials, duration = 28800, session_name = None, save_creds = True):
      
      # Set STS arguments
      sts_args = {
          'DurationSeconds': duration
      }
      # Prompt for MFA code if MFA serial present
      if 'SerialNumber' in credentials and credentials['SerialNumber']:
          if not credentials['TokenCode']:
              credentials['TokenCode'] = prompt_4_mfa_code()
              if credentials['TokenCode'] == 'q':
                  credentials['SerialNumber'] = None
          sts_args['TokenCode'] = credentials['TokenCode']
          sts_args['SerialNumber'] = credentials['SerialNumber']
      # Init session
      sts_client = boto3.session.Session(credentials['AccessKeyId'], credentials['SecretAccessKey']).client('sts')
      sts_response = sts_client.get_session_token(**sts_args)
      if save_creds:
          # Move long-lived credentials if needed
          if not profile_name.endswith('-nomfa') and credentials['AccessKeyId'].startswith('AKIA'):
              write_creds_to_aws_credentials_file(profile_name + '-nomfa', credentials)
          # Save STS values in the .aws/credentials file
          write_creds_to_aws_credentials_file(profile_name, sts_response['Credentials'])
      return sts_response['Credentials']
docs: Fetch STS credentials
  
      :param profile_name:
      :param credentials:
      :param duration:
      :param session_name:
      :param save_creds:
      :return: