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 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221
|
// 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/aws-sdk-go-v2/service/quicksight/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
// Generates a temporary session URL and authorization code(bearer token) that you
// can use to embed an Amazon QuickSight read-only dashboard in your website or
// application. Before you use this command, make sure that you have configured the
// dashboards and permissions. Currently, you can use GetDashboardEmbedURL only
// from the server, not from the user's browser. The following rules apply to the
// generated URL:
// - They must be used together.
// - They can be used one time only.
// - They are valid for 5 minutes after you run this command.
// - You are charged only when the URL is used or there is interaction with
// Amazon QuickSight.
// - The resulting user session is valid for 15 minutes (default) up to 10 hours
// (maximum). You can use the optional SessionLifetimeInMinutes parameter to
// customize session duration.
//
// For more information, see Embedding Analytics Using GetDashboardEmbedUrl (https://docs.aws.amazon.com/quicksight/latest/user/embedded-analytics-deprecated.html)
// in the Amazon QuickSight User Guide. For more information about the high-level
// steps for embedding and for an interactive demo of the ways you can customize
// embedding, visit the Amazon QuickSight Developer Portal (https://docs.aws.amazon.com/quicksight/latest/user/quicksight-dev-portal.html)
// .
func (c *Client) GetDashboardEmbedUrl(ctx context.Context, params *GetDashboardEmbedUrlInput, optFns ...func(*Options)) (*GetDashboardEmbedUrlOutput, error) {
if params == nil {
params = &GetDashboardEmbedUrlInput{}
}
result, metadata, err := c.invokeOperation(ctx, "GetDashboardEmbedUrl", params, optFns, c.addOperationGetDashboardEmbedUrlMiddlewares)
if err != nil {
return nil, err
}
out := result.(*GetDashboardEmbedUrlOutput)
out.ResultMetadata = metadata
return out, nil
}
type GetDashboardEmbedUrlInput struct {
// The ID for the Amazon Web Services account that contains the dashboard that
// you're embedding.
//
// This member is required.
AwsAccountId *string
// The ID for the dashboard, also added to the Identity and Access Management
// (IAM) policy.
//
// This member is required.
DashboardId *string
// The authentication method that the user uses to sign in.
//
// This member is required.
IdentityType types.EmbeddingIdentityType
// A list of one or more dashboard IDs that you want anonymous users to have
// tempporary access to. Currently, the IdentityType parameter must be set to
// ANONYMOUS because other identity types authenticate as Amazon QuickSight or IAM
// users. For example, if you set " --dashboard-id dash_id1 --dashboard-id dash_id2
// dash_id3 identity-type ANONYMOUS ", the session can access all three dashboards.
AdditionalDashboardIds []string
// The Amazon QuickSight namespace that contains the dashboard IDs in this
// request. If you're not using a custom namespace, set Namespace = default .
Namespace *string
// Remove the reset button on the embedded dashboard. The default is FALSE, which
// enables the reset button.
ResetDisabled bool
// How many minutes the session is valid. The session lifetime must be 15-600
// minutes.
SessionLifetimeInMinutes *int64
// Adds persistence of state for the user session in an embedded dashboard.
// Persistence applies to the sheet and the parameter settings. These are control
// settings that the dashboard subscriber (Amazon QuickSight reader) chooses while
// viewing the dashboard. If this is set to TRUE , the settings are the same when
// the subscriber reopens the same dashboard URL. The state is stored in Amazon
// QuickSight, not in a browser cookie. If this is set to FALSE, the state of the
// user session is not persisted. The default is FALSE .
StatePersistenceEnabled bool
// Remove the undo/redo button on the embedded dashboard. The default is FALSE,
// which enables the undo/redo button.
UndoRedoDisabled bool
// The Amazon QuickSight user's Amazon Resource Name (ARN), for use with QUICKSIGHT
// identity type. You can use this for any Amazon QuickSight users in your account
// (readers, authors, or admins) 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
}
// Output returned from the GetDashboardEmbedUrl operation.
type GetDashboardEmbedUrlOutput struct {
// A single-use URL that you can put into your server-side webpage to embed your
// dashboard. 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) addOperationGetDashboardEmbedUrlMiddlewares(stack *middleware.Stack, options Options) (err error) {
if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
return err
}
err = stack.Serialize.Add(&awsRestjson1_serializeOpGetDashboardEmbedUrl{}, middleware.After)
if err != nil {
return err
}
err = stack.Deserialize.Add(&awsRestjson1_deserializeOpGetDashboardEmbedUrl{}, middleware.After)
if err != nil {
return err
}
if err := addProtocolFinalizerMiddlewares(stack, options, "GetDashboardEmbedUrl"); 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 = addOpGetDashboardEmbedUrlValidationMiddleware(stack); err != nil {
return err
}
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetDashboardEmbedUrl(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_opGetDashboardEmbedUrl(region string) *awsmiddleware.RegisterServiceMetadata {
return &awsmiddleware.RegisterServiceMetadata{
Region: region,
ServiceID: ServiceID,
OperationName: "GetDashboardEmbedUrl",
}
}
|