1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package quicksight
4
5import (
6	"context"
7	awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
8	"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
9	"github.com/aws/aws-sdk-go-v2/service/quicksight/types"
10	"github.com/aws/smithy-go/middleware"
11	smithyhttp "github.com/aws/smithy-go/transport/http"
12)
13
14// Creates a dataset.
15func (c *Client) CreateDataSet(ctx context.Context, params *CreateDataSetInput, optFns ...func(*Options)) (*CreateDataSetOutput, error) {
16	if params == nil {
17		params = &CreateDataSetInput{}
18	}
19
20	result, metadata, err := c.invokeOperation(ctx, "CreateDataSet", params, optFns, c.addOperationCreateDataSetMiddlewares)
21	if err != nil {
22		return nil, err
23	}
24
25	out := result.(*CreateDataSetOutput)
26	out.ResultMetadata = metadata
27	return out, nil
28}
29
30type CreateDataSetInput struct {
31
32	// The Amazon Web Services account ID.
33	//
34	// This member is required.
35	AwsAccountId *string
36
37	// An ID for the dataset that you want to create. This ID is unique per Amazon Web
38	// Services Region; for each Amazon Web Services account.
39	//
40	// This member is required.
41	DataSetId *string
42
43	// Indicates whether you want to import the data into SPICE.
44	//
45	// This member is required.
46	ImportMode types.DataSetImportMode
47
48	// The display name for the dataset.
49	//
50	// This member is required.
51	Name *string
52
53	// Declares the physical tables that are available in the underlying data sources.
54	//
55	// This member is required.
56	PhysicalTableMap map[string]types.PhysicalTable
57
58	// Groupings of columns that work together in certain Amazon QuickSight features.
59	// Currently, only geospatial hierarchy is supported.
60	ColumnGroups []types.ColumnGroup
61
62	// A set of one or more definitions of a ColumnLevelPermissionRule.
63	ColumnLevelPermissionRules []types.ColumnLevelPermissionRule
64
65	// The usage configuration to apply to child datasets that reference this dataset
66	// as a source.
67	DataSetUsageConfiguration *types.DataSetUsageConfiguration
68
69	// The folder that contains fields and nested subfolders for your dataset.
70	FieldFolders map[string]types.FieldFolder
71
72	// Configures the combination and transformation of the data from the physical
73	// tables.
74	LogicalTableMap map[string]types.LogicalTable
75
76	// A list of resource permissions on the dataset.
77	Permissions []types.ResourcePermission
78
79	// The row-level security configuration for the data that you want to create.
80	RowLevelPermissionDataSet *types.RowLevelPermissionDataSet
81
82	// The configuration of tags on a dataset to set row-level security. Row-level
83	// security tags are currently supported for anonymous embedding only.
84	RowLevelPermissionTagConfiguration *types.RowLevelPermissionTagConfiguration
85
86	// Contains a map of the key-value pairs for the resource tag or tags assigned to
87	// the dataset.
88	Tags []types.Tag
89
90	noSmithyDocumentSerde
91}
92
93type CreateDataSetOutput struct {
94
95	// The Amazon Resource Name (ARN) of the dataset.
96	Arn *string
97
98	// The ID for the dataset that you want to create. This ID is unique per Amazon Web
99	// Services Region; for each Amazon Web Services account.
100	DataSetId *string
101
102	// The ARN for the ingestion, which is triggered as a result of dataset creation if
103	// the import mode is SPICE.
104	IngestionArn *string
105
106	// The ID of the ingestion, which is triggered as a result of dataset creation if
107	// the import mode is SPICE.
108	IngestionId *string
109
110	// The Amazon Web Services request ID for this operation.
111	RequestId *string
112
113	// The HTTP status of the request.
114	Status int32
115
116	// Metadata pertaining to the operation's result.
117	ResultMetadata middleware.Metadata
118
119	noSmithyDocumentSerde
120}
121
122func (c *Client) addOperationCreateDataSetMiddlewares(stack *middleware.Stack, options Options) (err error) {
123	err = stack.Serialize.Add(&awsRestjson1_serializeOpCreateDataSet{}, middleware.After)
124	if err != nil {
125		return err
126	}
127	err = stack.Deserialize.Add(&awsRestjson1_deserializeOpCreateDataSet{}, middleware.After)
128	if err != nil {
129		return err
130	}
131	if err = addSetLoggerMiddleware(stack, options); err != nil {
132		return err
133	}
134	if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
135		return err
136	}
137	if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
138		return err
139	}
140	if err = addResolveEndpointMiddleware(stack, options); err != nil {
141		return err
142	}
143	if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
144		return err
145	}
146	if err = addRetryMiddlewares(stack, options); err != nil {
147		return err
148	}
149	if err = addHTTPSignerV4Middleware(stack, options); err != nil {
150		return err
151	}
152	if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
153		return err
154	}
155	if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
156		return err
157	}
158	if err = addClientUserAgent(stack); err != nil {
159		return err
160	}
161	if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
162		return err
163	}
164	if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
165		return err
166	}
167	if err = addOpCreateDataSetValidationMiddleware(stack); err != nil {
168		return err
169	}
170	if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateDataSet(options.Region), middleware.Before); err != nil {
171		return err
172	}
173	if err = addRequestIDRetrieverMiddleware(stack); err != nil {
174		return err
175	}
176	if err = addResponseErrorMiddleware(stack); err != nil {
177		return err
178	}
179	if err = addRequestResponseLogging(stack, options); err != nil {
180		return err
181	}
182	return nil
183}
184
185func newServiceMetadataMiddleware_opCreateDataSet(region string) *awsmiddleware.RegisterServiceMetadata {
186	return &awsmiddleware.RegisterServiceMetadata{
187		Region:        region,
188		ServiceID:     ServiceID,
189		SigningName:   "quicksight",
190		OperationName: "CreateDataSet",
191	}
192}
193