getSessionEmbedUrl method

Future<GetSessionEmbedUrlResponse> getSessionEmbedUrl({
  1. required String awsAccountId,
  2. String? entryPoint,
  3. int? sessionLifetimeInMinutes,
  4. String? userArn,
})

Generates a session URL and authorization code that you can use to embed the Amazon QuickSight console in your web server code. Use GetSessionEmbedUrl where you want to provide an authoring portal that allows users to create data sources, datasets, analyses, and dashboards. The users who access an embedded QuickSight console need belong to the author or admin security cohort. If you want to restrict permissions to some of these features, add a custom permissions profile to the user with the UpdateUser API operation. Use RegisterUser API operation to add a new user with a custom permission profile attached. For more information, see the following sections in the Amazon QuickSight User Guide:

May throw AccessDeniedException. May throw InvalidParameterValueException. May throw ResourceExistsException. May throw ResourceNotFoundException. May throw ThrottlingException. May throw QuickSightUserNotFoundException. May throw SessionLifetimeInMinutesInvalidException. May throw UnsupportedUserEditionException. May throw InternalFailureException.

Parameter awsAccountId : The ID for the AWS account associated with your QuickSight subscription.

Parameter entryPoint : The URL you use to access the embedded session. The entry point URL is constrained to the following paths:

  • /start
  • /start/analyses
  • /start/dashboards
  • /start/favorites
  • /dashboards/DashboardId - where DashboardId is the actual ID key from the QuickSight console URL of the dashboard
  • /analyses/AnalysisId - where AnalysisId is the actual ID key from the QuickSight console URL of the analysis

Parameter sessionLifetimeInMinutes : How many minutes the session is valid. The session lifetime must be 15-600 minutes.

Parameter userArn : The Amazon QuickSight user's Amazon Resource Name (ARN), for use with QUICKSIGHT identity type. You can use this for any type of Amazon QuickSight users in your account (readers, authors, or admins). They need to be authenticated as one of the following:

  1. Active Directory (AD) users or group members
  2. Invited nonfederated users
  3. AWS Identity and Access Management (IAM) users and IAM role-based sessions authenticated through Federated Single Sign-On using SAML, OpenID Connect, or IAM federation
Omit this parameter for users in the third group, IAM users and IAM role-based sessions.

Implementation

Future<GetSessionEmbedUrlResponse> getSessionEmbedUrl({
  required String awsAccountId,
  String? entryPoint,
  int? sessionLifetimeInMinutes,
  String? userArn,
}) async {
  ArgumentError.checkNotNull(awsAccountId, 'awsAccountId');
  _s.validateStringLength(
    'awsAccountId',
    awsAccountId,
    12,
    12,
    isRequired: true,
  );
  _s.validateStringLength(
    'entryPoint',
    entryPoint,
    1,
    1000,
  );
  _s.validateNumRange(
    'sessionLifetimeInMinutes',
    sessionLifetimeInMinutes,
    15,
    600,
  );
  final $query = <String, List<String>>{
    if (entryPoint != null) 'entry-point': [entryPoint],
    if (sessionLifetimeInMinutes != null)
      'session-lifetime': [sessionLifetimeInMinutes.toString()],
    if (userArn != null) 'user-arn': [userArn],
  };
  final response = await _protocol.send(
    payload: null,
    method: 'GET',
    requestUri:
        '/accounts/${Uri.encodeComponent(awsAccountId)}/session-embed-url',
    queryParams: $query,
    exceptionFnMap: _exceptionFns,
  );
  return GetSessionEmbedUrlResponse.fromJson(response);
}