1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
|
// Code generated by smithy-go-codegen DO NOT EDIT.
package quicksight
import (
"context"
"fmt"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
// Generates a session URL and authorization code that you can use to embed the
// Amazon 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
// Amazon 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 (https://docs.aws.amazon.com/quicksight/latest/APIReference/API_UpdateUser.html)
// API operation. Use RegisterUser (https://docs.aws.amazon.com/quicksight/latest/APIReference/API_RegisterUser.html)
// 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:
// - Embedding Analytics (https://docs.aws.amazon.com/quicksight/latest/user/embedded-analytics.html)
// - Customizing Access to the Amazon QuickSight Console (https://docs.aws.amazon.com/quicksight/latest/user/customizing-permissions-to-the-quicksight-console.html)
func (c *Client) GetSessionEmbedUrl(ctx context.Context, params *GetSessionEmbedUrlInput, optFns ...func(*Options)) (*GetSessionEmbedUrlOutput, error) {
if params == nil {
params = &GetSessionEmbedUrlInput{}
}
result, metadata, err := c.invokeOperation(ctx, "GetSessionEmbedUrl", params, optFns, c.addOperationGetSessionEmbedUrlMiddlewares)
if err != nil {
return nil, err
}
out := result.(*GetSessionEmbedUrlOutput)
out.ResultMetadata = metadata
return out, nil
}
type GetSessionEmbedUrlInput struct {
// The ID for the Amazon Web Services account associated with your Amazon
// QuickSight subscription.
//
// This member is required.
AwsAccountId *string
// 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
// Amazon QuickSight console URL of the dashboard
// - /analyses/AnalysisId - where AnalysisId is the actual ID key from the Amazon
// QuickSight console URL of the analysis
EntryPoint *string
// How many minutes the session is valid. The session lifetime must be 15-600
// minutes.
SessionLifetimeInMinutes *int64
// 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:
// - Active Directory (AD) users or group members
// - Invited nonfederated users
// - 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.
UserArn *string
noSmithyDocumentSerde
}
type GetSessionEmbedUrlOutput struct {
// A single-use URL that you can put into your server-side web page to embed your
// Amazon QuickSight session. This URL is valid for 5 minutes. The API operation
// provides the URL with an auth_code value that enables one (and only one)
// sign-on to a user session that is valid for 10 hours.
EmbedUrl *string
// The Amazon Web Services request ID for this operation.
RequestId *string
// The HTTP status of the request.
Status int32
// Metadata pertaining to the operation's result.
ResultMetadata middleware.Metadata
noSmithyDocumentSerde
}
func (c *Client) addOperationGetSessionEmbedUrlMiddlewares(stack *middleware.Stack, options Options) (err error) {
if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
return err
}
err = stack.Serialize.Add(&awsRestjson1_serializeOpGetSessionEmbedUrl{}, middleware.After)
if err != nil {
return err
}
err = stack.Deserialize.Add(&awsRestjson1_deserializeOpGetSessionEmbedUrl{}, middleware.After)
if err != nil {
return err
}
if err := addProtocolFinalizerMiddlewares(stack, options, "GetSessionEmbedUrl"); err != nil {
return fmt.Errorf("add protocol finalizers: %v", err)
}
if err = addlegacyEndpointContextSetter(stack, options); err != nil {
return err
}
if err = addSetLoggerMiddleware(stack, options); err != nil {
return err
}
if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
return err
}
if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
return err
}
if err = addResolveEndpointMiddleware(stack, options); err != nil {
return err
}
if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
return err
}
if err = addRetryMiddlewares(stack, options); err != nil {
return err
}
if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
return err
}
if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
return err
}
if err = addClientUserAgent(stack, options); err != nil {
return err
}
if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
return err
}
if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
return err
}
if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil {
return err
}
if err = addOpGetSessionEmbedUrlValidationMiddleware(stack); err != nil {
return err
}
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetSessionEmbedUrl(options.Region), middleware.Before); err != nil {
return err
}
if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
return err
}
if err = addRequestIDRetrieverMiddleware(stack); err != nil {
return err
}
if err = addResponseErrorMiddleware(stack); err != nil {
return err
}
if err = addRequestResponseLogging(stack, options); err != nil {
return err
}
if err = addDisableHTTPSMiddleware(stack, options); err != nil {
return err
}
return nil
}
func newServiceMetadataMiddleware_opGetSessionEmbedUrl(region string) *awsmiddleware.RegisterServiceMetadata {
return &awsmiddleware.RegisterServiceMetadata{
Region: region,
ServiceID: ServiceID,
OperationName: "GetSessionEmbedUrl",
}
}
|