// Code generated by smithy-go-codegen DO NOT EDIT.

package types

import (
	smithydocument "github.com/aws/smithy-go/document"
	"time"
)

// Describes a custom algorithm.
type Algorithm struct {

	// The Amazon Resource Name (ARN) of the algorithm.
	AlgorithmArn *string

	// The URI of the Docker container for the algorithm image.
	AlgorithmImage *AlgorithmImage

	// The date and time (in Unix time) that the algorithm was created.
	CreationDateTime *time.Time

	// Specifies the default hyperparameters, their ranges, and whether they are
	// tunable. A tunable hyperparameter can have its value determined during
	// hyperparameter optimization (HPO).
	DefaultHyperParameterRanges *DefaultHyperParameterRanges

	// Specifies the default hyperparameters.
	DefaultHyperParameters map[string]string

	// Specifies the default maximum number of training jobs and parallel training
	// jobs.
	DefaultResourceConfig map[string]string

	// The date and time (in Unix time) that the algorithm was last updated.
	LastUpdatedDateTime *time.Time

	// The name of the algorithm.
	Name *string

	// The Amazon Resource Name (ARN) of the role.
	RoleArn *string

	// The training input mode.
	TrainingInputMode *string

	noSmithyDocumentSerde
}

// Describes an algorithm image.
type AlgorithmImage struct {

	// The URI of the Docker container for the algorithm image.
	//
	// This member is required.
	DockerURI *string

	// The name of the algorithm image.
	Name *string

	noSmithyDocumentSerde
}

// When the solution performs AutoML (performAutoML is true in CreateSolution
// (https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSolution.html)),
// Amazon Personalize determines which recipe, from the specified list, optimizes
// the given metric. Amazon Personalize then uses that recipe for the solution.
type AutoMLConfig struct {

	// The metric to optimize.
	MetricName *string

	// The list of candidate recipes.
	RecipeList []string

	noSmithyDocumentSerde
}

// When the solution performs AutoML (performAutoML is true in CreateSolution
// (https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSolution.html)),
// specifies the recipe that best optimized the specified metric.
type AutoMLResult struct {

	// The Amazon Resource Name (ARN) of the best recipe.
	BestRecipeArn *string

	noSmithyDocumentSerde
}

// Contains information on a batch inference job.
type BatchInferenceJob struct {

	// The Amazon Resource Name (ARN) of the batch inference job.
	BatchInferenceJobArn *string

	// A string to string map of the configuration details of a batch inference job.
	BatchInferenceJobConfig *BatchInferenceJobConfig

	// The time at which the batch inference job was created.
	CreationDateTime *time.Time

	// If the batch inference job failed, the reason for the failure.
	FailureReason *string

	// The ARN of the filter used on the batch inference job.
	FilterArn *string

	// The Amazon S3 path that leads to the input data used to generate the batch
	// inference job.
	JobInput *BatchInferenceJobInput

	// The name of the batch inference job.
	JobName *string

	// The Amazon S3 bucket that contains the output data generated by the batch
	// inference job.
	JobOutput *BatchInferenceJobOutput

	// The time at which the batch inference job was last updated.
	LastUpdatedDateTime *time.Time

	// The number of recommendations generated by the batch inference job. This number
	// includes the error messages generated for failed input records.
	NumResults *int32

	// The ARN of the Amazon Identity and Access Management (IAM) role that requested
	// the batch inference job.
	RoleArn *string

	// The Amazon Resource Name (ARN) of the solution version from which the batch
	// inference job was created.
	SolutionVersionArn *string

	// The status of the batch inference job. The status is one of the following
	// values:
	//
	// * PENDING
	//
	// * IN PROGRESS
	//
	// * ACTIVE
	//
	// * CREATE FAILED
	Status *string

	noSmithyDocumentSerde
}

// The configuration details of a batch inference job.
type BatchInferenceJobConfig struct {

	// A string to string map specifying the exploration configuration hyperparameters,
	// including explorationWeight and explorationItemAgeCutOff, you want to use to
	// configure the amount of item exploration Amazon Personalize uses when
	// recommending items. See User-Personalization
	// (https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html).
	ItemExplorationConfig map[string]string

	noSmithyDocumentSerde
}

// The input configuration of a batch inference job.
type BatchInferenceJobInput struct {

	// The URI of the Amazon S3 location that contains your input data. The Amazon S3
	// bucket must be in the same region as the API endpoint you are calling.
	//
	// This member is required.
	S3DataSource *S3DataConfig

	noSmithyDocumentSerde
}

// The output configuration parameters of a batch inference job.
type BatchInferenceJobOutput struct {

	// Information on the Amazon S3 bucket in which the batch inference job's output is
	// stored.
	//
	// This member is required.
	S3DataDestination *S3DataConfig

	noSmithyDocumentSerde
}

// A truncated version of the BatchInferenceJob
// (https://docs.aws.amazon.com/personalize/latest/dg/API_BatchInferenceJob.html).
// The ListBatchInferenceJobs
// (https://docs.aws.amazon.com/personalize/latest/dg/API_ListBatchInferenceJobs.html)
// operation returns a list of batch inference job summaries.
type BatchInferenceJobSummary struct {

	// The Amazon Resource Name (ARN) of the batch inference job.
	BatchInferenceJobArn *string

	// The time at which the batch inference job was created.
	CreationDateTime *time.Time

	// If the batch inference job failed, the reason for the failure.
	FailureReason *string

	// The name of the batch inference job.
	JobName *string

	// The time at which the batch inference job was last updated.
	LastUpdatedDateTime *time.Time

	// The ARN of the solution version used by the batch inference job.
	SolutionVersionArn *string

	// The status of the batch inference job. The status is one of the following
	// values:
	//
	// * PENDING
	//
	// * IN PROGRESS
	//
	// * ACTIVE
	//
	// * CREATE FAILED
	Status *string

	noSmithyDocumentSerde
}

// Contains information on a batch segment job.
type BatchSegmentJob struct {

	// The Amazon Resource Name (ARN) of the batch segment job.
	BatchSegmentJobArn *string

	// The time at which the batch segment job was created.
	CreationDateTime *time.Time

	// If the batch segment job failed, the reason for the failure.
	FailureReason *string

	// The ARN of the filter used on the batch segment job.
	FilterArn *string

	// The Amazon S3 path that leads to the input data used to generate the batch
	// segment job.
	JobInput *BatchSegmentJobInput

	// The name of the batch segment job.
	JobName *string

	// The Amazon S3 bucket that contains the output data generated by the batch
	// segment job.
	JobOutput *BatchSegmentJobOutput

	// The time at which the batch segment job last updated.
	LastUpdatedDateTime *time.Time

	// The number of predicted users generated by the batch segment job for each line
	// of input data.
	NumResults *int32

	// The ARN of the Amazon Identity and Access Management (IAM) role that requested
	// the batch segment job.
	RoleArn *string

	// The Amazon Resource Name (ARN) of the solution version used by the batch segment
	// job to generate batch segments.
	SolutionVersionArn *string

	// The status of the batch segment job. The status is one of the following
	// values:
	//
	// * PENDING
	//
	// * IN PROGRESS
	//
	// * ACTIVE
	//
	// * CREATE FAILED
	Status *string

	noSmithyDocumentSerde
}

// The input configuration of a batch segment job.
type BatchSegmentJobInput struct {

	// The configuration details of an Amazon S3 input or output bucket.
	//
	// This member is required.
	S3DataSource *S3DataConfig

	noSmithyDocumentSerde
}

// The output configuration parameters of a batch segment job.
type BatchSegmentJobOutput struct {

	// The configuration details of an Amazon S3 input or output bucket.
	//
	// This member is required.
	S3DataDestination *S3DataConfig

	noSmithyDocumentSerde
}

// A truncated version of the BatchSegmentJob
// (https://docs.aws.amazon.com/personalize/latest/dg/API_BatchSegmentJob.html)
// datatype. ListBatchSegmentJobs
// (https://docs.aws.amazon.com/personalize/latest/dg/API_ListBatchSegmentJobs.html)
// operation returns a list of batch segment job summaries.
type BatchSegmentJobSummary struct {

	// The Amazon Resource Name (ARN) of the batch segment job.
	BatchSegmentJobArn *string

	// The time at which the batch segment job was created.
	CreationDateTime *time.Time

	// If the batch segment job failed, the reason for the failure.
	FailureReason *string

	// The name of the batch segment job.
	JobName *string

	// The time at which the batch segment job was last updated.
	LastUpdatedDateTime *time.Time

	// The Amazon Resource Name (ARN) of the solution version used by the batch segment
	// job to generate batch segments.
	SolutionVersionArn *string

	// The status of the batch segment job. The status is one of the following
	// values:
	//
	// * PENDING
	//
	// * IN PROGRESS
	//
	// * ACTIVE
	//
	// * CREATE FAILED
	Status *string

	noSmithyDocumentSerde
}

// An object that describes the deployment of a solution version. For more
// information on campaigns, see CreateCampaign
// (https://docs.aws.amazon.com/personalize/latest/dg/API_CreateCampaign.html).
type Campaign struct {

	// The Amazon Resource Name (ARN) of the campaign.
	CampaignArn *string

	// The configuration details of a campaign.
	CampaignConfig *CampaignConfig

	// The date and time (in Unix format) that the campaign was created.
	CreationDateTime *time.Time

	// If a campaign fails, the reason behind the failure.
	FailureReason *string

	// The date and time (in Unix format) that the campaign was last updated.
	LastUpdatedDateTime *time.Time

	// Provides a summary of the properties of a campaign update. For a complete
	// listing, call the DescribeCampaign
	// (https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeCampaign.html)
	// API.
	LatestCampaignUpdate *CampaignUpdateSummary

	// Specifies the requested minimum provisioned transactions (recommendations) per
	// second.
	MinProvisionedTPS *int32

	// The name of the campaign.
	Name *string

	// The Amazon Resource Name (ARN) of a specific version of the solution.
	SolutionVersionArn *string

	// The status of the campaign. A campaign can be in one of the following states:
	//
	// *
	// CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
	//
	// * DELETE
	// PENDING > DELETE IN_PROGRESS
	Status *string

	noSmithyDocumentSerde
}

// The configuration details of a campaign.
type CampaignConfig struct {

	// Specifies the exploration configuration hyperparameters, including
	// explorationWeight and explorationItemAgeCutOff, you want to use to configure the
	// amount of item exploration Amazon Personalize uses when recommending items.
	// Provide itemExplorationConfig data only if your solution uses the
	// User-Personalization
	// (https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html)
	// recipe.
	ItemExplorationConfig map[string]string

	noSmithyDocumentSerde
}

// Provides a summary of the properties of a campaign. For a complete listing, call
// the DescribeCampaign
// (https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeCampaign.html)
// API.
type CampaignSummary struct {

	// The Amazon Resource Name (ARN) of the campaign.
	CampaignArn *string

	// The date and time (in Unix time) that the campaign was created.
	CreationDateTime *time.Time

	// If a campaign fails, the reason behind the failure.
	FailureReason *string

	// The date and time (in Unix time) that the campaign was last updated.
	LastUpdatedDateTime *time.Time

	// The name of the campaign.
	Name *string

	// The status of the campaign. A campaign can be in one of the following states:
	//
	// *
	// CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
	//
	// * DELETE
	// PENDING > DELETE IN_PROGRESS
	Status *string

	noSmithyDocumentSerde
}

// Provides a summary of the properties of a campaign update. For a complete
// listing, call the DescribeCampaign
// (https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeCampaign.html)
// API.
type CampaignUpdateSummary struct {

	// The configuration details of a campaign.
	CampaignConfig *CampaignConfig

	// The date and time (in Unix time) that the campaign update was created.
	CreationDateTime *time.Time

	// If a campaign update fails, the reason behind the failure.
	FailureReason *string

	// The date and time (in Unix time) that the campaign update was last updated.
	LastUpdatedDateTime *time.Time

	// Specifies the requested minimum provisioned transactions (recommendations) per
	// second that Amazon Personalize will support.
	MinProvisionedTPS *int32

	// The Amazon Resource Name (ARN) of the deployed solution version.
	SolutionVersionArn *string

	// The status of the campaign update. A campaign update can be in one of the
	// following states:
	//
	// * CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE
	// FAILED
	//
	// * DELETE PENDING > DELETE IN_PROGRESS
	Status *string

	noSmithyDocumentSerde
}

// Provides the name and range of a categorical hyperparameter.
type CategoricalHyperParameterRange struct {

	// The name of the hyperparameter.
	Name *string

	// A list of the categories for the hyperparameter.
	Values []string

	noSmithyDocumentSerde
}

// Provides the name and range of a continuous hyperparameter.
type ContinuousHyperParameterRange struct {

	// The maximum allowable value for the hyperparameter.
	MaxValue float64

	// The minimum allowable value for the hyperparameter.
	MinValue float64

	// The name of the hyperparameter.
	Name *string

	noSmithyDocumentSerde
}

// Provides metadata for a dataset.
type Dataset struct {

	// The creation date and time (in Unix time) of the dataset.
	CreationDateTime *time.Time

	// The Amazon Resource Name (ARN) of the dataset that you want metadata for.
	DatasetArn *string

	// The Amazon Resource Name (ARN) of the dataset group.
	DatasetGroupArn *string

	// One of the following values:
	//
	// * Interactions
	//
	// * Items
	//
	// * Users
	DatasetType *string

	// A time stamp that shows when the dataset was updated.
	LastUpdatedDateTime *time.Time

	// The name of the dataset.
	Name *string

	// The ARN of the associated schema.
	SchemaArn *string

	// The status of the dataset. A dataset can be in one of the following states:
	//
	// *
	// CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
	//
	// * DELETE
	// PENDING > DELETE IN_PROGRESS
	Status *string

	noSmithyDocumentSerde
}

// Describes a job that exports a dataset to an Amazon S3 bucket. For more
// information, see CreateDatasetExportJob
// (https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDatasetExportJob.html).
// A dataset export job can be in one of the following states:
//
// * CREATE PENDING >
// CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
type DatasetExportJob struct {

	// The creation date and time (in Unix time) of the dataset export job.
	CreationDateTime *time.Time

	// The Amazon Resource Name (ARN) of the dataset to export.
	DatasetArn *string

	// The Amazon Resource Name (ARN) of the dataset export job.
	DatasetExportJobArn *string

	// If a dataset export job fails, provides the reason why.
	FailureReason *string

	// The data to export, based on how you imported the data. You can choose to export
	// BULK data that you imported using a dataset import job, PUT data that you
	// imported incrementally (using the console, PutEvents, PutUsers and PutItems
	// operations), or ALL for both types. The default value is PUT.
	IngestionMode IngestionMode

	// The name of the export job.
	JobName *string

	// The path to the Amazon S3 bucket where the job's output is stored. For example:
	// s3://bucket-name/folder-name/
	JobOutput *DatasetExportJobOutput

	// The date and time (in Unix time) the status of the dataset export job was last
	// updated.
	LastUpdatedDateTime *time.Time

	// The Amazon Resource Name (ARN) of the IAM service role that has permissions to
	// add data to your output Amazon S3 bucket.
	RoleArn *string

	// The status of the dataset export job. A dataset export job can be in one of the
	// following states:
	//
	// * CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE
	// FAILED
	Status *string

	noSmithyDocumentSerde
}

// The output configuration parameters of a dataset export job.
type DatasetExportJobOutput struct {

	// The configuration details of an Amazon S3 input or output bucket.
	//
	// This member is required.
	S3DataDestination *S3DataConfig

	noSmithyDocumentSerde
}

// Provides a summary of the properties of a dataset export job. For a complete
// listing, call the DescribeDatasetExportJob
// (https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeDatasetExportJob.html)
// API.
type DatasetExportJobSummary struct {

	// The date and time (in Unix time) that the dataset export job was created.
	CreationDateTime *time.Time

	// The Amazon Resource Name (ARN) of the dataset export job.
	DatasetExportJobArn *string

	// If a dataset export job fails, the reason behind the failure.
	FailureReason *string

	// The name of the dataset export job.
	JobName *string

	// The date and time (in Unix time) that the dataset export job status was last
	// updated.
	LastUpdatedDateTime *time.Time

	// The status of the dataset export job. A dataset export job can be in one of the
	// following states:
	//
	// * CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE
	// FAILED
	Status *string

	noSmithyDocumentSerde
}

// A dataset group is a collection of related datasets (Interactions, User, and
// Item). You create a dataset group by calling CreateDatasetGroup
// (https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDatasetGroup.html).
// You then create a dataset and add it to a dataset group by calling CreateDataset
// (https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDataset.html). The
// dataset group is used to create and train a solution by calling CreateSolution
// (https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSolution.html). A
// dataset group can contain only one of each type of dataset. You can specify an
// Key Management Service (KMS) key to encrypt the datasets in the group.
type DatasetGroup struct {

	// The creation date and time (in Unix time) of the dataset group.
	CreationDateTime *time.Time

	// The Amazon Resource Name (ARN) of the dataset group.
	DatasetGroupArn *string

	// The domain of a Domain dataset group.
	Domain Domain

	// If creating a dataset group fails, provides the reason why.
	FailureReason *string

	// The Amazon Resource Name (ARN) of the Key Management Service (KMS) key used to
	// encrypt the datasets.
	KmsKeyArn *string

	// The last update date and time (in Unix time) of the dataset group.
	LastUpdatedDateTime *time.Time

	// The name of the dataset group.
	Name *string

	// The ARN of the IAM role that has permissions to create the dataset group.
	RoleArn *string

	// The current status of the dataset group. A dataset group can be in one of the
	// following states:
	//
	// * CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE
	// FAILED
	//
	// * DELETE PENDING
	Status *string

	noSmithyDocumentSerde
}

// Provides a summary of the properties of a dataset group. For a complete listing,
// call the DescribeDatasetGroup
// (https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeDatasetGroup.html)
// API.
type DatasetGroupSummary struct {

	// The date and time (in Unix time) that the dataset group was created.
	CreationDateTime *time.Time

	// The Amazon Resource Name (ARN) of the dataset group.
	DatasetGroupArn *string

	// The domain of a Domain dataset group.
	Domain Domain

	// If creating a dataset group fails, the reason behind the failure.
	FailureReason *string

	// The date and time (in Unix time) that the dataset group was last updated.
	LastUpdatedDateTime *time.Time

	// The name of the dataset group.
	Name *string

	// The status of the dataset group. A dataset group can be in one of the following
	// states:
	//
	// * CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
	//
	// *
	// DELETE PENDING
	Status *string

	noSmithyDocumentSerde
}

// Describes a job that imports training data from a data source (Amazon S3 bucket)
// to an Amazon Personalize dataset. For more information, see
// CreateDatasetImportJob
// (https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDatasetImportJob.html).
// A dataset import job can be in one of the following states:
//
// * CREATE PENDING >
// CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
type DatasetImportJob struct {

	// The creation date and time (in Unix time) of the dataset import job.
	CreationDateTime *time.Time

	// The Amazon S3 bucket that contains the training data to import.
	DataSource *DataSource

	// The Amazon Resource Name (ARN) of the dataset that receives the imported data.
	DatasetArn *string

	// The ARN of the dataset import job.
	DatasetImportJobArn *string

	// If a dataset import job fails, provides the reason why.
	FailureReason *string

	// The import mode used by the dataset import job to import new records.
	ImportMode ImportMode

	// The name of the import job.
	JobName *string

	// The date and time (in Unix time) the dataset was last updated.
	LastUpdatedDateTime *time.Time

	// The ARN of the IAM role that has permissions to read from the Amazon S3 data
	// source.
	RoleArn *string

	// The status of the dataset import job. A dataset import job can be in one of the
	// following states:
	//
	// * CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE
	// FAILED
	Status *string

	noSmithyDocumentSerde
}

// Provides a summary of the properties of a dataset import job. For a complete
// listing, call the DescribeDatasetImportJob
// (https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeDatasetImportJob.html)
// API.
type DatasetImportJobSummary struct {

	// The date and time (in Unix time) that the dataset import job was created.
	CreationDateTime *time.Time

	// The Amazon Resource Name (ARN) of the dataset import job.
	DatasetImportJobArn *string

	// If a dataset import job fails, the reason behind the failure.
	FailureReason *string

	// The import mode the dataset import job used to update the data in the dataset.
	// For more information see Updating existing bulk data
	// (https://docs.aws.amazon.com/personalize/latest/dg/updating-existing-bulk-data.html).
	ImportMode ImportMode

	// The name of the dataset import job.
	JobName *string

	// The date and time (in Unix time) that the dataset import job status was last
	// updated.
	LastUpdatedDateTime *time.Time

	// The status of the dataset import job. A dataset import job can be in one of the
	// following states:
	//
	// * CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE
	// FAILED
	Status *string

	noSmithyDocumentSerde
}

// Describes the schema for a dataset. For more information on schemas, see
// CreateSchema
// (https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSchema.html).
type DatasetSchema struct {

	// The date and time (in Unix time) that the schema was created.
	CreationDateTime *time.Time

	// The domain of a schema that you created for a dataset in a Domain dataset group.
	Domain Domain

	// The date and time (in Unix time) that the schema was last updated.
	LastUpdatedDateTime *time.Time

	// The name of the schema.
	Name *string

	// The schema.
	Schema *string

	// The Amazon Resource Name (ARN) of the schema.
	SchemaArn *string

	noSmithyDocumentSerde
}

// Provides a summary of the properties of a dataset schema. For a complete
// listing, call the DescribeSchema
// (https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeSchema.html) API.
type DatasetSchemaSummary struct {

	// The date and time (in Unix time) that the schema was created.
	CreationDateTime *time.Time

	// The domain of a schema that you created for a dataset in a Domain dataset group.
	Domain Domain

	// The date and time (in Unix time) that the schema was last updated.
	LastUpdatedDateTime *time.Time

	// The name of the schema.
	Name *string

	// The Amazon Resource Name (ARN) of the schema.
	SchemaArn *string

	noSmithyDocumentSerde
}

// Provides a summary of the properties of a dataset. For a complete listing, call
// the DescribeDataset
// (https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeDataset.html)
// API.
type DatasetSummary struct {

	// The date and time (in Unix time) that the dataset was created.
	CreationDateTime *time.Time

	// The Amazon Resource Name (ARN) of the dataset.
	DatasetArn *string

	// The dataset type. One of the following values:
	//
	// * Interactions
	//
	// * Items
	//
	// *
	// Users
	//
	// * Event-Interactions
	DatasetType *string

	// The date and time (in Unix time) that the dataset was last updated.
	LastUpdatedDateTime *time.Time

	// The name of the dataset.
	Name *string

	// The status of the dataset. A dataset can be in one of the following states:
	//
	// *
	// CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
	//
	// * DELETE
	// PENDING > DELETE IN_PROGRESS
	Status *string

	noSmithyDocumentSerde
}

// Describes the data source that contains the data to upload to a dataset.
type DataSource struct {

	// The path to the Amazon S3 bucket where the data that you want to upload to your
	// dataset is stored. For example: s3://bucket-name/folder-name/
	DataLocation *string

	noSmithyDocumentSerde
}

// Provides the name and default range of a categorical hyperparameter and whether
// the hyperparameter is tunable. A tunable hyperparameter can have its value
// determined during hyperparameter optimization (HPO).
type DefaultCategoricalHyperParameterRange struct {

	// Whether the hyperparameter is tunable.
	IsTunable bool

	// The name of the hyperparameter.
	Name *string

	// A list of the categories for the hyperparameter.
	Values []string

	noSmithyDocumentSerde
}

// Provides the name and default range of a continuous hyperparameter and whether
// the hyperparameter is tunable. A tunable hyperparameter can have its value
// determined during hyperparameter optimization (HPO).
type DefaultContinuousHyperParameterRange struct {

	// Whether the hyperparameter is tunable.
	IsTunable bool

	// The maximum allowable value for the hyperparameter.
	MaxValue float64

	// The minimum allowable value for the hyperparameter.
	MinValue float64

	// The name of the hyperparameter.
	Name *string

	noSmithyDocumentSerde
}

// Specifies the hyperparameters and their default ranges. Hyperparameters can be
// categorical, continuous, or integer-valued.
type DefaultHyperParameterRanges struct {

	// The categorical hyperparameters and their default ranges.
	CategoricalHyperParameterRanges []DefaultCategoricalHyperParameterRange

	// The continuous hyperparameters and their default ranges.
	ContinuousHyperParameterRanges []DefaultContinuousHyperParameterRange

	// The integer-valued hyperparameters and their default ranges.
	IntegerHyperParameterRanges []DefaultIntegerHyperParameterRange

	noSmithyDocumentSerde
}

// Provides the name and default range of a integer-valued hyperparameter and
// whether the hyperparameter is tunable. A tunable hyperparameter can have its
// value determined during hyperparameter optimization (HPO).
type DefaultIntegerHyperParameterRange struct {

	// Indicates whether the hyperparameter is tunable.
	IsTunable bool

	// The maximum allowable value for the hyperparameter.
	MaxValue int32

	// The minimum allowable value for the hyperparameter.
	MinValue int32

	// The name of the hyperparameter.
	Name *string

	noSmithyDocumentSerde
}

// Provides information about an event tracker.
type EventTracker struct {

	// The Amazon Web Services account that owns the event tracker.
	AccountId *string

	// The date and time (in Unix format) that the event tracker was created.
	CreationDateTime *time.Time

	// The Amazon Resource Name (ARN) of the dataset group that receives the event
	// data.
	DatasetGroupArn *string

	// The ARN of the event tracker.
	EventTrackerArn *string

	// The date and time (in Unix time) that the event tracker was last updated.
	LastUpdatedDateTime *time.Time

	// The name of the event tracker.
	Name *string

	// The status of the event tracker. An event tracker can be in one of the following
	// states:
	//
	// * CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
	//
	// *
	// DELETE PENDING > DELETE IN_PROGRESS
	Status *string

	// The ID of the event tracker. Include this ID in requests to the PutEvents
	// (https://docs.aws.amazon.com/personalize/latest/dg/API_UBS_PutEvents.html) API.
	TrackingId *string

	noSmithyDocumentSerde
}

// Provides a summary of the properties of an event tracker. For a complete
// listing, call the DescribeEventTracker
// (https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeEventTracker.html)
// API.
type EventTrackerSummary struct {

	// The date and time (in Unix time) that the event tracker was created.
	CreationDateTime *time.Time

	// The Amazon Resource Name (ARN) of the event tracker.
	EventTrackerArn *string

	// The date and time (in Unix time) that the event tracker was last updated.
	LastUpdatedDateTime *time.Time

	// The name of the event tracker.
	Name *string

	// The status of the event tracker. An event tracker can be in one of the following
	// states:
	//
	// * CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
	//
	// *
	// DELETE PENDING > DELETE IN_PROGRESS
	Status *string

	noSmithyDocumentSerde
}

// Provides feature transformation information. Feature transformation is the
// process of modifying raw input data into a form more suitable for model
// training.
type FeatureTransformation struct {

	// The creation date and time (in Unix time) of the feature transformation.
	CreationDateTime *time.Time

	// Provides the default parameters for feature transformation.
	DefaultParameters map[string]string

	// The Amazon Resource Name (ARN) of the FeatureTransformation object.
	FeatureTransformationArn *string

	// The last update date and time (in Unix time) of the feature transformation.
	LastUpdatedDateTime *time.Time

	// The name of the feature transformation.
	Name *string

	// The status of the feature transformation. A feature transformation can be in one
	// of the following states:
	//
	// * CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or-
	// CREATE FAILED
	Status *string

	noSmithyDocumentSerde
}

// Contains information on a recommendation filter, including its ARN, status, and
// filter expression.
type Filter struct {

	// The time at which the filter was created.
	CreationDateTime *time.Time

	// The ARN of the dataset group to which the filter belongs.
	DatasetGroupArn *string

	// If the filter failed, the reason for its failure.
	FailureReason *string

	// The ARN of the filter.
	FilterArn *string

	// Specifies the type of item interactions to filter out of recommendation results.
	// The filter expression must follow specific format rules. For information about
	// filter expression structure and syntax, see Filter expressions
	// (https://docs.aws.amazon.com/personalize/latest/dg/filter-expressions.html).
	FilterExpression *string

	// The time at which the filter was last updated.
	LastUpdatedDateTime *time.Time

	// The name of the filter.
	Name *string

	// The status of the filter.
	Status *string

	noSmithyDocumentSerde
}

// A short summary of a filter's attributes.
type FilterSummary struct {

	// The time at which the filter was created.
	CreationDateTime *time.Time

	// The ARN of the dataset group to which the filter belongs.
	DatasetGroupArn *string

	// If the filter failed, the reason for the failure.
	FailureReason *string

	// The ARN of the filter.
	FilterArn *string

	// The time at which the filter was last updated.
	LastUpdatedDateTime *time.Time

	// The name of the filter.
	Name *string

	// The status of the filter.
	Status *string

	noSmithyDocumentSerde
}

// Describes the properties for hyperparameter optimization (HPO).
type HPOConfig struct {

	// The hyperparameters and their allowable ranges.
	AlgorithmHyperParameterRanges *HyperParameterRanges

	// The metric to optimize during HPO. Amazon Personalize doesn't support
	// configuring the hpoObjective at this time.
	HpoObjective *HPOObjective

	// Describes the resource configuration for HPO.
	HpoResourceConfig *HPOResourceConfig

	noSmithyDocumentSerde
}

// The metric to optimize during hyperparameter optimization (HPO). Amazon
// Personalize doesn't support configuring the hpoObjective at this time.
type HPOObjective struct {

	// The name of the metric.
	MetricName *string

	// A regular expression for finding the metric in the training job logs.
	MetricRegex *string

	// The type of the metric. Valid values are Maximize and Minimize.
	Type *string

	noSmithyDocumentSerde
}

// Describes the resource configuration for hyperparameter optimization (HPO).
type HPOResourceConfig struct {

	// The maximum number of training jobs when you create a solution version. The
	// maximum value for maxNumberOfTrainingJobs is 40.
	MaxNumberOfTrainingJobs *string

	// The maximum number of parallel training jobs when you create a solution version.
	// The maximum value for maxParallelTrainingJobs is 10.
	MaxParallelTrainingJobs *string

	noSmithyDocumentSerde
}

// Specifies the hyperparameters and their ranges. Hyperparameters can be
// categorical, continuous, or integer-valued.
type HyperParameterRanges struct {

	// The categorical hyperparameters and their ranges.
	CategoricalHyperParameterRanges []CategoricalHyperParameterRange

	// The continuous hyperparameters and their ranges.
	ContinuousHyperParameterRanges []ContinuousHyperParameterRange

	// The integer-valued hyperparameters and their ranges.
	IntegerHyperParameterRanges []IntegerHyperParameterRange

	noSmithyDocumentSerde
}

// Provides the name and range of an integer-valued hyperparameter.
type IntegerHyperParameterRange struct {

	// The maximum allowable value for the hyperparameter.
	MaxValue int32

	// The minimum allowable value for the hyperparameter.
	MinValue int32

	// The name of the hyperparameter.
	Name *string

	noSmithyDocumentSerde
}

// Describes the additional objective for the solution, such as maximizing
// streaming minutes or increasing revenue. For more information see Optimizing a
// solution
// (https://docs.aws.amazon.com/personalize/latest/dg/optimizing-solution-for-objective.html).
type OptimizationObjective struct {

	// The numerical metadata column in an Items dataset related to the optimization
	// objective. For example, VIDEO_LENGTH (to maximize streaming minutes), or PRICE
	// (to maximize revenue).
	ItemAttribute *string

	// Specifies how Amazon Personalize balances the importance of your optimization
	// objective versus relevance.
	ObjectiveSensitivity ObjectiveSensitivity

	noSmithyDocumentSerde
}

// Provides information about a recipe. Each recipe provides an algorithm that
// Amazon Personalize uses in model training when you use the CreateSolution
// (https://docs.aws.amazon.com/personalize/latest/dg/API_CreateSolution.html)
// operation.
type Recipe struct {

	// The Amazon Resource Name (ARN) of the algorithm that Amazon Personalize uses to
	// train the model.
	AlgorithmArn *string

	// The date and time (in Unix format) that the recipe was created.
	CreationDateTime *time.Time

	// The description of the recipe.
	Description *string

	// The ARN of the FeatureTransformation object.
	FeatureTransformationArn *string

	// The date and time (in Unix format) that the recipe was last updated.
	LastUpdatedDateTime *time.Time

	// The name of the recipe.
	Name *string

	// The Amazon Resource Name (ARN) of the recipe.
	RecipeArn *string

	// One of the following values:
	//
	// * PERSONALIZED_RANKING
	//
	// * RELATED_ITEMS
	//
	// *
	// USER_PERSONALIZATION
	RecipeType *string

	// The status of the recipe.
	Status *string

	noSmithyDocumentSerde
}

// Provides a summary of the properties of a recipe. For a complete listing, call
// the DescribeRecipe
// (https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeRecipe.html) API.
type RecipeSummary struct {

	// The date and time (in Unix time) that the recipe was created.
	CreationDateTime *time.Time

	// The domain of the recipe (if the recipe is a Domain dataset group use case).
	Domain Domain

	// The date and time (in Unix time) that the recipe was last updated.
	LastUpdatedDateTime *time.Time

	// The name of the recipe.
	Name *string

	// The Amazon Resource Name (ARN) of the recipe.
	RecipeArn *string

	// The status of the recipe.
	Status *string

	noSmithyDocumentSerde
}

// Describes a recommendation generator for a Domain dataset group. You create a
// recommender in a Domain dataset group for a specific domain use case (domain
// recipe), and specify the recommender in a GetRecommendations
// (https://docs.aws.amazon.com/personalize/latest/dg/API_RS_GetRecommendations.html)
// request.
type Recommender struct {

	// The date and time (in Unix format) that the recommender was created.
	CreationDateTime *time.Time

	// The Amazon Resource Name (ARN) of the Domain dataset group that contains the
	// recommender.
	DatasetGroupArn *string

	// If a recommender fails, the reason behind the failure.
	FailureReason *string

	// The date and time (in Unix format) that the recommender was last updated.
	LastUpdatedDateTime *time.Time

	// Provides a summary of the latest updates to the recommender.
	LatestRecommenderUpdate *RecommenderUpdateSummary

	// Provides evaluation metrics that help you determine the performance of a
	// recommender. For more information, see  Evaluating a recommender
	// (https://docs.aws.amazon.com/personalize/latest/dg/evaluating-recommenders.html).
	ModelMetrics map[string]float64

	// The name of the recommender.
	Name *string

	// The Amazon Resource Name (ARN) of the recipe (Domain dataset group use case)
	// that the recommender was created for.
	RecipeArn *string

	// The Amazon Resource Name (ARN) of the recommender.
	RecommenderArn *string

	// The configuration details of the recommender.
	RecommenderConfig *RecommenderConfig

	// The status of the recommender. A recommender can be in one of the following
	// states:
	//
	// * CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
	//
	// *
	// STOP PENDING > STOP IN_PROGRESS > INACTIVE > START PENDING > START IN_PROGRESS >
	// ACTIVE
	//
	// * DELETE PENDING > DELETE IN_PROGRESS
	Status *string

	noSmithyDocumentSerde
}

// The configuration details of the recommender.
type RecommenderConfig struct {

	// Specifies the exploration configuration hyperparameters, including
	// explorationWeight and explorationItemAgeCutOff, you want to use to configure the
	// amount of item exploration Amazon Personalize uses when recommending items.
	// Provide itemExplorationConfig data only if your recommenders generate
	// personalized recommendations for a user (not popular items or similar items).
	ItemExplorationConfig map[string]string

	// Specifies the requested minimum provisioned recommendation requests per second
	// that Amazon Personalize will support.
	MinRecommendationRequestsPerSecond *int32

	noSmithyDocumentSerde
}

// Provides a summary of the properties of the recommender.
type RecommenderSummary struct {

	// The date and time (in Unix format) that the recommender was created.
	CreationDateTime *time.Time

	// The Amazon Resource Name (ARN) of the Domain dataset group that contains the
	// recommender.
	DatasetGroupArn *string

	// The date and time (in Unix format) that the recommender was last updated.
	LastUpdatedDateTime *time.Time

	// The name of the recommender.
	Name *string

	// The Amazon Resource Name (ARN) of the recipe (Domain dataset group use case)
	// that the recommender was created for.
	RecipeArn *string

	// The Amazon Resource Name (ARN) of the recommender.
	RecommenderArn *string

	// The configuration details of the recommender.
	RecommenderConfig *RecommenderConfig

	// The status of the recommender. A recommender can be in one of the following
	// states:
	//
	// * CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
	//
	// *
	// STOP PENDING > STOP IN_PROGRESS > INACTIVE > START PENDING > START IN_PROGRESS >
	// ACTIVE
	//
	// * DELETE PENDING > DELETE IN_PROGRESS
	Status *string

	noSmithyDocumentSerde
}

// Provides a summary of the properties of a recommender update. For a complete
// listing, call the DescribeRecommender
// (https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeRecommender.html)
// API.
type RecommenderUpdateSummary struct {

	// The date and time (in Unix format) that the recommender update was created.
	CreationDateTime *time.Time

	// If a recommender update fails, the reason behind the failure.
	FailureReason *string

	// The date and time (in Unix time) that the recommender update was last updated.
	LastUpdatedDateTime *time.Time

	// The configuration details of the recommender update.
	RecommenderConfig *RecommenderConfig

	// The status of the recommender update. A recommender can be in one of the
	// following states:
	//
	// * CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE
	// FAILED
	//
	// * STOP PENDING > STOP IN_PROGRESS > INACTIVE > START PENDING > START
	// IN_PROGRESS > ACTIVE
	//
	// * DELETE PENDING > DELETE IN_PROGRESS
	Status *string

	noSmithyDocumentSerde
}

// The configuration details of an Amazon S3 input or output bucket.
type S3DataConfig struct {

	// The file path of the Amazon S3 bucket.
	//
	// This member is required.
	Path *string

	// The Amazon Resource Name (ARN) of the Key Management Service (KMS) key that
	// Amazon Personalize uses to encrypt or decrypt the input and output files.
	KmsKeyArn *string

	noSmithyDocumentSerde
}

// An object that provides information about a solution. A solution is a trained
// model that can be deployed as a campaign.
type Solution struct {

	// When performAutoML is true, specifies the best recipe found.
	AutoMLResult *AutoMLResult

	// The creation date and time (in Unix time) of the solution.
	CreationDateTime *time.Time

	// The Amazon Resource Name (ARN) of the dataset group that provides the training
	// data.
	DatasetGroupArn *string

	// The event type (for example, 'click' or 'like') that is used for training the
	// model. If no eventType is provided, Amazon Personalize uses all interactions for
	// training with equal weight regardless of type.
	EventType *string

	// The date and time (in Unix time) that the solution was last updated.
	LastUpdatedDateTime *time.Time

	// Describes the latest version of the solution, including the status and the ARN.
	LatestSolutionVersion *SolutionVersionSummary

	// The name of the solution.
	Name *string

	// When true, Amazon Personalize performs a search for the best
	// USER_PERSONALIZATION recipe from the list specified in the solution
	// configuration (recipeArn must not be specified). When false (the default),
	// Amazon Personalize uses recipeArn for training.
	PerformAutoML bool

	// Whether to perform hyperparameter optimization (HPO) on the chosen recipe. The
	// default is false.
	PerformHPO bool

	// The ARN of the recipe used to create the solution.
	RecipeArn *string

	// The ARN of the solution.
	SolutionArn *string

	// Describes the configuration properties for the solution.
	SolutionConfig *SolutionConfig

	// The status of the solution. A solution can be in one of the following states:
	//
	// *
	// CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
	//
	// * DELETE
	// PENDING > DELETE IN_PROGRESS
	Status *string

	noSmithyDocumentSerde
}

// Describes the configuration properties for the solution.
type SolutionConfig struct {

	// Lists the hyperparameter names and ranges.
	AlgorithmHyperParameters map[string]string

	// The AutoMLConfig
	// (https://docs.aws.amazon.com/personalize/latest/dg/API_AutoMLConfig.html) object
	// containing a list of recipes to search when AutoML is performed.
	AutoMLConfig *AutoMLConfig

	// Only events with a value greater than or equal to this threshold are used for
	// training a model.
	EventValueThreshold *string

	// Lists the feature transformation parameters.
	FeatureTransformationParameters map[string]string

	// Describes the properties for hyperparameter optimization (HPO).
	HpoConfig *HPOConfig

	// Describes the additional objective for the solution, such as maximizing
	// streaming minutes or increasing revenue. For more information see Optimizing a
	// solution
	// (https://docs.aws.amazon.com/personalize/latest/dg/optimizing-solution-for-objective.html).
	OptimizationObjective *OptimizationObjective

	noSmithyDocumentSerde
}

// Provides a summary of the properties of a solution. For a complete listing, call
// the DescribeSolution
// (https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeSolution.html)
// API.
type SolutionSummary struct {

	// The date and time (in Unix time) that the solution was created.
	CreationDateTime *time.Time

	// The date and time (in Unix time) that the solution was last updated.
	LastUpdatedDateTime *time.Time

	// The name of the solution.
	Name *string

	// The Amazon Resource Name (ARN) of the solution.
	SolutionArn *string

	// The status of the solution. A solution can be in one of the following states:
	//
	// *
	// CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
	//
	// * DELETE
	// PENDING > DELETE IN_PROGRESS
	Status *string

	noSmithyDocumentSerde
}

// An object that provides information about a specific version of a Solution
// (https://docs.aws.amazon.com/personalize/latest/dg/API_Solution.html) in a
// Custom dataset group.
type SolutionVersion struct {

	// The date and time (in Unix time) that this version of the solution was created.
	CreationDateTime *time.Time

	// The Amazon Resource Name (ARN) of the dataset group providing the training data.
	DatasetGroupArn *string

	// The event type (for example, 'click' or 'like') that is used for training the
	// model.
	EventType *string

	// If training a solution version fails, the reason for the failure.
	FailureReason *string

	// The date and time (in Unix time) that the solution was last updated.
	LastUpdatedDateTime *time.Time

	// When true, Amazon Personalize searches for the most optimal recipe according to
	// the solution configuration. When false (the default), Amazon Personalize uses
	// recipeArn.
	PerformAutoML bool

	// Whether to perform hyperparameter optimization (HPO) on the chosen recipe. The
	// default is false.
	PerformHPO bool

	// The ARN of the recipe used in the solution.
	RecipeArn *string

	// The ARN of the solution.
	SolutionArn *string

	// Describes the configuration properties for the solution.
	SolutionConfig *SolutionConfig

	// The ARN of the solution version.
	SolutionVersionArn *string

	// The status of the solution version. A solution version can be in one of the
	// following states:
	//
	// * CREATE PENDING
	//
	// * CREATE IN_PROGRESS
	//
	// * ACTIVE
	//
	// * CREATE
	// FAILED
	//
	// * CREATE STOPPING
	//
	// * CREATE STOPPED
	Status *string

	// The time used to train the model. You are billed for the time it takes to train
	// a model. This field is visible only after Amazon Personalize successfully trains
	// a model.
	TrainingHours *float64

	// The scope of training to be performed when creating the solution version. The
	// FULL option trains the solution version based on the entirety of the input
	// solution's training data, while the UPDATE option processes only the data that
	// has changed in comparison to the input solution. Choose UPDATE when you want to
	// incrementally update your solution version instead of creating an entirely new
	// one. The UPDATE option can only be used when you already have an active solution
	// version created from the input solution using the FULL option and the input
	// solution was trained with the User-Personalization
	// (https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html)
	// recipe or the HRNN-Coldstart
	// (https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-hrnn-coldstart.html)
	// recipe.
	TrainingMode TrainingMode

	// If hyperparameter optimization was performed, contains the hyperparameter values
	// of the best performing model.
	TunedHPOParams *TunedHPOParams

	noSmithyDocumentSerde
}

// Provides a summary of the properties of a solution version. For a complete
// listing, call the DescribeSolutionVersion
// (https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeSolutionVersion.html)
// API.
type SolutionVersionSummary struct {

	// The date and time (in Unix time) that this version of a solution was created.
	CreationDateTime *time.Time

	// If a solution version fails, the reason behind the failure.
	FailureReason *string

	// The date and time (in Unix time) that the solution version was last updated.
	LastUpdatedDateTime *time.Time

	// The Amazon Resource Name (ARN) of the solution version.
	SolutionVersionArn *string

	// The status of the solution version. A solution version can be in one of the
	// following states:
	//
	// * CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE
	// FAILED
	Status *string

	noSmithyDocumentSerde
}

// The optional metadata that you apply to resources to help you categorize and
// organize them. Each tag consists of a key and an optional value, both of which
// you define. For more information see Tagging Personalize resources
// (https://docs.aws.amazon.com/personalize/latest/dev/tagging-resources.html).
type Tag struct {

	// One part of a key-value pair that makes up a tag. A key is a general label that
	// acts like a category for more specific tag values.
	//
	// This member is required.
	TagKey *string

	// The optional part of a key-value pair that makes up a tag. A value acts as a
	// descriptor within a tag category (key).
	//
	// This member is required.
	TagValue *string

	noSmithyDocumentSerde
}

// If hyperparameter optimization (HPO) was performed, contains the hyperparameter
// values of the best performing model.
type TunedHPOParams struct {

	// A list of the hyperparameter values of the best performing model.
	AlgorithmHyperParameters map[string]string

	noSmithyDocumentSerde
}

type noSmithyDocumentSerde = smithydocument.NoSerde
