1// Code generated by smithy-go-codegen DO NOT EDIT. 2 3package personalize 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/smithy-go/middleware" 10 smithyhttp "github.com/aws/smithy-go/transport/http" 11) 12 13// Creates an empty dataset group. A dataset group contains related datasets that 14// supply data for training a model. A dataset group can contain at most three 15// datasets, one for each type of dataset: 16// 17// * Interactions 18// 19// * Items 20// 21// * Users 22// 23// To 24// train a model (create a solution), a dataset group that contains an Interactions 25// dataset is required. Call CreateDataset to add a dataset to the group. A dataset 26// group can be in one of the following states: 27// 28// * CREATE PENDING > CREATE 29// IN_PROGRESS > ACTIVE -or- CREATE FAILED 30// 31// * DELETE PENDING 32// 33// To get the status of 34// the dataset group, call DescribeDatasetGroup. If the status shows as CREATE 35// FAILED, the response includes a failureReason key, which describes why the 36// creation failed. You must wait until the status of the dataset group is ACTIVE 37// before adding a dataset to the group. You can specify an AWS Key Management 38// Service (KMS) key to encrypt the datasets in the group. If you specify a KMS 39// key, you must also include an AWS Identity and Access Management (IAM) role that 40// has permission to access the key. APIs that require a dataset group ARN in the 41// request 42// 43// * CreateDataset 44// 45// * CreateEventTracker 46// 47// * CreateSolution 48// 49// Related 50// APIs 51// 52// * ListDatasetGroups 53// 54// * DescribeDatasetGroup 55// 56// * DeleteDatasetGroup 57func (c *Client) CreateDatasetGroup(ctx context.Context, params *CreateDatasetGroupInput, optFns ...func(*Options)) (*CreateDatasetGroupOutput, error) { 58 if params == nil { 59 params = &CreateDatasetGroupInput{} 60 } 61 62 result, metadata, err := c.invokeOperation(ctx, "CreateDatasetGroup", params, optFns, addOperationCreateDatasetGroupMiddlewares) 63 if err != nil { 64 return nil, err 65 } 66 67 out := result.(*CreateDatasetGroupOutput) 68 out.ResultMetadata = metadata 69 return out, nil 70} 71 72type CreateDatasetGroupInput struct { 73 74 // The name for the new dataset group. 75 // 76 // This member is required. 77 Name *string 78 79 // The Amazon Resource Name (ARN) of a KMS key used to encrypt the datasets. 80 KmsKeyArn *string 81 82 // The ARN of the IAM role that has permissions to access the KMS key. Supplying an 83 // IAM role is only valid when also specifying a KMS key. 84 RoleArn *string 85} 86 87type CreateDatasetGroupOutput struct { 88 89 // The Amazon Resource Name (ARN) of the new dataset group. 90 DatasetGroupArn *string 91 92 // Metadata pertaining to the operation's result. 93 ResultMetadata middleware.Metadata 94} 95 96func addOperationCreateDatasetGroupMiddlewares(stack *middleware.Stack, options Options) (err error) { 97 err = stack.Serialize.Add(&awsAwsjson11_serializeOpCreateDatasetGroup{}, middleware.After) 98 if err != nil { 99 return err 100 } 101 err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpCreateDatasetGroup{}, middleware.After) 102 if err != nil { 103 return err 104 } 105 if err = addSetLoggerMiddleware(stack, options); err != nil { 106 return err 107 } 108 if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { 109 return err 110 } 111 if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { 112 return err 113 } 114 if err = addResolveEndpointMiddleware(stack, options); err != nil { 115 return err 116 } 117 if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { 118 return err 119 } 120 if err = addRetryMiddlewares(stack, options); err != nil { 121 return err 122 } 123 if err = addHTTPSignerV4Middleware(stack, options); err != nil { 124 return err 125 } 126 if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { 127 return err 128 } 129 if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { 130 return err 131 } 132 if err = addClientUserAgent(stack); err != nil { 133 return err 134 } 135 if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { 136 return err 137 } 138 if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { 139 return err 140 } 141 if err = addOpCreateDatasetGroupValidationMiddleware(stack); err != nil { 142 return err 143 } 144 if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateDatasetGroup(options.Region), middleware.Before); err != nil { 145 return err 146 } 147 if err = addRequestIDRetrieverMiddleware(stack); err != nil { 148 return err 149 } 150 if err = addResponseErrorMiddleware(stack); err != nil { 151 return err 152 } 153 if err = addRequestResponseLogging(stack, options); err != nil { 154 return err 155 } 156 return nil 157} 158 159func newServiceMetadataMiddleware_opCreateDatasetGroup(region string) *awsmiddleware.RegisterServiceMetadata { 160 return &awsmiddleware.RegisterServiceMetadata{ 161 Region: region, 162 ServiceID: ServiceID, 163 SigningName: "personalize", 164 OperationName: "CreateDatasetGroup", 165 } 166} 167