// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.

package sagemaker

import (
	"fmt"
	"time"

	"github.com/aws/aws-sdk-go/aws"
	"github.com/aws/aws-sdk-go/aws/awsutil"
	"github.com/aws/aws-sdk-go/aws/request"
	"github.com/aws/aws-sdk-go/private/protocol"
	"github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
)

const opAddAssociation = "AddAssociation"

// AddAssociationRequest generates a "aws/request.Request" representing the
// client's request for the AddAssociation operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See AddAssociation for more information on using the AddAssociation
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the AddAssociationRequest method.
//	req, resp := client.AddAssociationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AddAssociation
func (c *SageMaker) AddAssociationRequest(input *AddAssociationInput) (req *request.Request, output *AddAssociationOutput) {
	op := &request.Operation{
		Name:       opAddAssociation,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &AddAssociationInput{}
	}

	output = &AddAssociationOutput{}
	req = c.newRequest(op, input, output)
	return
}

// AddAssociation API operation for Amazon SageMaker Service.
//
// Creates an association between the source and the destination. A source can
// be associated with multiple destinations, and a destination can be associated
// with multiple sources. An association is a lineage tracking entity. For more
// information, see Amazon SageMaker ML Lineage Tracking (https://docs.aws.amazon.com/sagemaker/latest/dg/lineage-tracking.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation AddAssociation for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFound
//     Resource being access is not found.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AddAssociation
func (c *SageMaker) AddAssociation(input *AddAssociationInput) (*AddAssociationOutput, error) {
	req, out := c.AddAssociationRequest(input)
	return out, req.Send()
}

// AddAssociationWithContext is the same as AddAssociation with the addition of
// the ability to pass a context and additional request options.
//
// See AddAssociation for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) AddAssociationWithContext(ctx aws.Context, input *AddAssociationInput, opts ...request.Option) (*AddAssociationOutput, error) {
	req, out := c.AddAssociationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opAddTags = "AddTags"

// AddTagsRequest generates a "aws/request.Request" representing the
// client's request for the AddTags operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See AddTags for more information on using the AddTags
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the AddTagsRequest method.
//	req, resp := client.AddTagsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AddTags
func (c *SageMaker) AddTagsRequest(input *AddTagsInput) (req *request.Request, output *AddTagsOutput) {
	op := &request.Operation{
		Name:       opAddTags,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &AddTagsInput{}
	}

	output = &AddTagsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// AddTags API operation for Amazon SageMaker Service.
//
// Adds or overwrites one or more tags for the specified SageMaker resource.
// You can add tags to notebook instances, training jobs, hyperparameter tuning
// jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations,
// and endpoints.
//
// Each tag consists of a key and an optional value. Tag keys must be unique
// per resource. For more information about tags, see For more information,
// see Amazon Web Services Tagging Strategies (https://aws.amazon.com/answers/account-management/aws-tagging-strategies/).
//
// Tags that you add to a hyperparameter tuning job by calling this API are
// also added to any training jobs that the hyperparameter tuning job launches
// after you call this API, but not to training jobs that the hyperparameter
// tuning job launched before you called this API. To make sure that the tags
// associated with a hyperparameter tuning job are also added to all training
// jobs that the hyperparameter tuning job launches, add the tags when you first
// create the tuning job by specifying them in the Tags parameter of CreateHyperParameterTuningJob
// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html)
//
// Tags that you add to a SageMaker Domain or User Profile by calling this API
// are also added to any Apps that the Domain or User Profile launches after
// you call this API, but not to Apps that the Domain or User Profile launched
// before you called this API. To make sure that the tags associated with a
// Domain or User Profile are also added to all Apps that the Domain or User
// Profile launches, add the tags when you first create the Domain or User Profile
// by specifying them in the Tags parameter of CreateDomain (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html)
// or CreateUserProfile (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation AddTags for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AddTags
func (c *SageMaker) AddTags(input *AddTagsInput) (*AddTagsOutput, error) {
	req, out := c.AddTagsRequest(input)
	return out, req.Send()
}

// AddTagsWithContext is the same as AddTags with the addition of
// the ability to pass a context and additional request options.
//
// See AddTags for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) AddTagsWithContext(ctx aws.Context, input *AddTagsInput, opts ...request.Option) (*AddTagsOutput, error) {
	req, out := c.AddTagsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opAssociateTrialComponent = "AssociateTrialComponent"

// AssociateTrialComponentRequest generates a "aws/request.Request" representing the
// client's request for the AssociateTrialComponent operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See AssociateTrialComponent for more information on using the AssociateTrialComponent
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the AssociateTrialComponentRequest method.
//	req, resp := client.AssociateTrialComponentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AssociateTrialComponent
func (c *SageMaker) AssociateTrialComponentRequest(input *AssociateTrialComponentInput) (req *request.Request, output *AssociateTrialComponentOutput) {
	op := &request.Operation{
		Name:       opAssociateTrialComponent,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &AssociateTrialComponentInput{}
	}

	output = &AssociateTrialComponentOutput{}
	req = c.newRequest(op, input, output)
	return
}

// AssociateTrialComponent API operation for Amazon SageMaker Service.
//
// Associates a trial component with a trial. A trial component can be associated
// with multiple trials. To disassociate a trial component from a trial, call
// the DisassociateTrialComponent (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DisassociateTrialComponent.html)
// API.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation AssociateTrialComponent for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFound
//     Resource being access is not found.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/AssociateTrialComponent
func (c *SageMaker) AssociateTrialComponent(input *AssociateTrialComponentInput) (*AssociateTrialComponentOutput, error) {
	req, out := c.AssociateTrialComponentRequest(input)
	return out, req.Send()
}

// AssociateTrialComponentWithContext is the same as AssociateTrialComponent with the addition of
// the ability to pass a context and additional request options.
//
// See AssociateTrialComponent for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) AssociateTrialComponentWithContext(ctx aws.Context, input *AssociateTrialComponentInput, opts ...request.Option) (*AssociateTrialComponentOutput, error) {
	req, out := c.AssociateTrialComponentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opBatchDescribeModelPackage = "BatchDescribeModelPackage"

// BatchDescribeModelPackageRequest generates a "aws/request.Request" representing the
// client's request for the BatchDescribeModelPackage operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See BatchDescribeModelPackage for more information on using the BatchDescribeModelPackage
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the BatchDescribeModelPackageRequest method.
//	req, resp := client.BatchDescribeModelPackageRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/BatchDescribeModelPackage
func (c *SageMaker) BatchDescribeModelPackageRequest(input *BatchDescribeModelPackageInput) (req *request.Request, output *BatchDescribeModelPackageOutput) {
	op := &request.Operation{
		Name:       opBatchDescribeModelPackage,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &BatchDescribeModelPackageInput{}
	}

	output = &BatchDescribeModelPackageOutput{}
	req = c.newRequest(op, input, output)
	return
}

// BatchDescribeModelPackage API operation for Amazon SageMaker Service.
//
// # This action batch describes a list of versioned model packages
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation BatchDescribeModelPackage for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/BatchDescribeModelPackage
func (c *SageMaker) BatchDescribeModelPackage(input *BatchDescribeModelPackageInput) (*BatchDescribeModelPackageOutput, error) {
	req, out := c.BatchDescribeModelPackageRequest(input)
	return out, req.Send()
}

// BatchDescribeModelPackageWithContext is the same as BatchDescribeModelPackage with the addition of
// the ability to pass a context and additional request options.
//
// See BatchDescribeModelPackage for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) BatchDescribeModelPackageWithContext(ctx aws.Context, input *BatchDescribeModelPackageInput, opts ...request.Option) (*BatchDescribeModelPackageOutput, error) {
	req, out := c.BatchDescribeModelPackageRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateAction = "CreateAction"

// CreateActionRequest generates a "aws/request.Request" representing the
// client's request for the CreateAction operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateAction for more information on using the CreateAction
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateActionRequest method.
//	req, resp := client.CreateActionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateAction
func (c *SageMaker) CreateActionRequest(input *CreateActionInput) (req *request.Request, output *CreateActionOutput) {
	op := &request.Operation{
		Name:       opCreateAction,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateActionInput{}
	}

	output = &CreateActionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateAction API operation for Amazon SageMaker Service.
//
// Creates an action. An action is a lineage tracking entity that represents
// an action or activity. For example, a model deployment or an HPO job. Generally,
// an action involves at least one input or output artifact. For more information,
// see Amazon SageMaker ML Lineage Tracking (https://docs.aws.amazon.com/sagemaker/latest/dg/lineage-tracking.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateAction for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateAction
func (c *SageMaker) CreateAction(input *CreateActionInput) (*CreateActionOutput, error) {
	req, out := c.CreateActionRequest(input)
	return out, req.Send()
}

// CreateActionWithContext is the same as CreateAction with the addition of
// the ability to pass a context and additional request options.
//
// See CreateAction for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateActionWithContext(ctx aws.Context, input *CreateActionInput, opts ...request.Option) (*CreateActionOutput, error) {
	req, out := c.CreateActionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateAlgorithm = "CreateAlgorithm"

// CreateAlgorithmRequest generates a "aws/request.Request" representing the
// client's request for the CreateAlgorithm operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateAlgorithm for more information on using the CreateAlgorithm
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateAlgorithmRequest method.
//	req, resp := client.CreateAlgorithmRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateAlgorithm
func (c *SageMaker) CreateAlgorithmRequest(input *CreateAlgorithmInput) (req *request.Request, output *CreateAlgorithmOutput) {
	op := &request.Operation{
		Name:       opCreateAlgorithm,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateAlgorithmInput{}
	}

	output = &CreateAlgorithmOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateAlgorithm API operation for Amazon SageMaker Service.
//
// Create a machine learning algorithm that you can use in SageMaker and list
// in the Amazon Web Services Marketplace.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateAlgorithm for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateAlgorithm
func (c *SageMaker) CreateAlgorithm(input *CreateAlgorithmInput) (*CreateAlgorithmOutput, error) {
	req, out := c.CreateAlgorithmRequest(input)
	return out, req.Send()
}

// CreateAlgorithmWithContext is the same as CreateAlgorithm with the addition of
// the ability to pass a context and additional request options.
//
// See CreateAlgorithm for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateAlgorithmWithContext(ctx aws.Context, input *CreateAlgorithmInput, opts ...request.Option) (*CreateAlgorithmOutput, error) {
	req, out := c.CreateAlgorithmRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateApp = "CreateApp"

// CreateAppRequest generates a "aws/request.Request" representing the
// client's request for the CreateApp operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateApp for more information on using the CreateApp
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateAppRequest method.
//	req, resp := client.CreateAppRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateApp
func (c *SageMaker) CreateAppRequest(input *CreateAppInput) (req *request.Request, output *CreateAppOutput) {
	op := &request.Operation{
		Name:       opCreateApp,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateAppInput{}
	}

	output = &CreateAppOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateApp API operation for Amazon SageMaker Service.
//
// Creates a running app for the specified UserProfile. This operation is automatically
// invoked by Amazon SageMaker upon access to the associated Domain, and when
// new kernel configurations are selected by the user. A user may have multiple
// Apps active simultaneously.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateApp for usage and error information.
//
// Returned Error Types:
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateApp
func (c *SageMaker) CreateApp(input *CreateAppInput) (*CreateAppOutput, error) {
	req, out := c.CreateAppRequest(input)
	return out, req.Send()
}

// CreateAppWithContext is the same as CreateApp with the addition of
// the ability to pass a context and additional request options.
//
// See CreateApp for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateAppWithContext(ctx aws.Context, input *CreateAppInput, opts ...request.Option) (*CreateAppOutput, error) {
	req, out := c.CreateAppRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateAppImageConfig = "CreateAppImageConfig"

// CreateAppImageConfigRequest generates a "aws/request.Request" representing the
// client's request for the CreateAppImageConfig operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateAppImageConfig for more information on using the CreateAppImageConfig
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateAppImageConfigRequest method.
//	req, resp := client.CreateAppImageConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateAppImageConfig
func (c *SageMaker) CreateAppImageConfigRequest(input *CreateAppImageConfigInput) (req *request.Request, output *CreateAppImageConfigOutput) {
	op := &request.Operation{
		Name:       opCreateAppImageConfig,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateAppImageConfigInput{}
	}

	output = &CreateAppImageConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateAppImageConfig API operation for Amazon SageMaker Service.
//
// Creates a configuration for running a SageMaker image as a KernelGateway
// app. The configuration specifies the Amazon Elastic File System (EFS) storage
// volume on the image, and a list of the kernels in the image.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateAppImageConfig for usage and error information.
//
// Returned Error Types:
//   - ResourceInUse
//     Resource being accessed is in use.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateAppImageConfig
func (c *SageMaker) CreateAppImageConfig(input *CreateAppImageConfigInput) (*CreateAppImageConfigOutput, error) {
	req, out := c.CreateAppImageConfigRequest(input)
	return out, req.Send()
}

// CreateAppImageConfigWithContext is the same as CreateAppImageConfig with the addition of
// the ability to pass a context and additional request options.
//
// See CreateAppImageConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateAppImageConfigWithContext(ctx aws.Context, input *CreateAppImageConfigInput, opts ...request.Option) (*CreateAppImageConfigOutput, error) {
	req, out := c.CreateAppImageConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateArtifact = "CreateArtifact"

// CreateArtifactRequest generates a "aws/request.Request" representing the
// client's request for the CreateArtifact operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateArtifact for more information on using the CreateArtifact
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateArtifactRequest method.
//	req, resp := client.CreateArtifactRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateArtifact
func (c *SageMaker) CreateArtifactRequest(input *CreateArtifactInput) (req *request.Request, output *CreateArtifactOutput) {
	op := &request.Operation{
		Name:       opCreateArtifact,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateArtifactInput{}
	}

	output = &CreateArtifactOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateArtifact API operation for Amazon SageMaker Service.
//
// Creates an artifact. An artifact is a lineage tracking entity that represents
// a URI addressable object or data. Some examples are the S3 URI of a dataset
// and the ECR registry path of an image. For more information, see Amazon SageMaker
// ML Lineage Tracking (https://docs.aws.amazon.com/sagemaker/latest/dg/lineage-tracking.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateArtifact for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateArtifact
func (c *SageMaker) CreateArtifact(input *CreateArtifactInput) (*CreateArtifactOutput, error) {
	req, out := c.CreateArtifactRequest(input)
	return out, req.Send()
}

// CreateArtifactWithContext is the same as CreateArtifact with the addition of
// the ability to pass a context and additional request options.
//
// See CreateArtifact for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateArtifactWithContext(ctx aws.Context, input *CreateArtifactInput, opts ...request.Option) (*CreateArtifactOutput, error) {
	req, out := c.CreateArtifactRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateAutoMLJob = "CreateAutoMLJob"

// CreateAutoMLJobRequest generates a "aws/request.Request" representing the
// client's request for the CreateAutoMLJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateAutoMLJob for more information on using the CreateAutoMLJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateAutoMLJobRequest method.
//	req, resp := client.CreateAutoMLJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateAutoMLJob
func (c *SageMaker) CreateAutoMLJobRequest(input *CreateAutoMLJobInput) (req *request.Request, output *CreateAutoMLJobOutput) {
	op := &request.Operation{
		Name:       opCreateAutoMLJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateAutoMLJobInput{}
	}

	output = &CreateAutoMLJobOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateAutoMLJob API operation for Amazon SageMaker Service.
//
// Creates an Autopilot job also referred to as Autopilot experiment or AutoML
// job.
//
// We recommend using the new versions CreateAutoMLJobV2 (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html)
// and DescribeAutoMLJobV2 (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html),
// which offer backward compatibility.
//
// CreateAutoMLJobV2 can manage tabular problem types identical to those of
// its previous version CreateAutoMLJob, as well as time-series forecasting,
// non-tabular problem types such as image or text classification, and text
// generation (LLMs fine-tuning).
//
// Find guidelines about how to migrate a CreateAutoMLJob to CreateAutoMLJobV2
// in Migrate a CreateAutoMLJob to CreateAutoMLJobV2 (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development-create-experiment.html#autopilot-create-experiment-api-migrate-v1-v2).
//
// You can find the best-performing model after you run an AutoML job by calling
// DescribeAutoMLJobV2 (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html)
// (recommended) or DescribeAutoMLJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJob.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateAutoMLJob for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateAutoMLJob
func (c *SageMaker) CreateAutoMLJob(input *CreateAutoMLJobInput) (*CreateAutoMLJobOutput, error) {
	req, out := c.CreateAutoMLJobRequest(input)
	return out, req.Send()
}

// CreateAutoMLJobWithContext is the same as CreateAutoMLJob with the addition of
// the ability to pass a context and additional request options.
//
// See CreateAutoMLJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateAutoMLJobWithContext(ctx aws.Context, input *CreateAutoMLJobInput, opts ...request.Option) (*CreateAutoMLJobOutput, error) {
	req, out := c.CreateAutoMLJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateAutoMLJobV2 = "CreateAutoMLJobV2"

// CreateAutoMLJobV2Request generates a "aws/request.Request" representing the
// client's request for the CreateAutoMLJobV2 operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateAutoMLJobV2 for more information on using the CreateAutoMLJobV2
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateAutoMLJobV2Request method.
//	req, resp := client.CreateAutoMLJobV2Request(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateAutoMLJobV2
func (c *SageMaker) CreateAutoMLJobV2Request(input *CreateAutoMLJobV2Input) (req *request.Request, output *CreateAutoMLJobV2Output) {
	op := &request.Operation{
		Name:       opCreateAutoMLJobV2,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateAutoMLJobV2Input{}
	}

	output = &CreateAutoMLJobV2Output{}
	req = c.newRequest(op, input, output)
	return
}

// CreateAutoMLJobV2 API operation for Amazon SageMaker Service.
//
// Creates an Autopilot job also referred to as Autopilot experiment or AutoML
// job V2.
//
// CreateAutoMLJobV2 (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html)
// and DescribeAutoMLJobV2 (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html)
// are new versions of CreateAutoMLJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html)
// and DescribeAutoMLJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJob.html)
// which offer backward compatibility.
//
// CreateAutoMLJobV2 can manage tabular problem types identical to those of
// its previous version CreateAutoMLJob, as well as time-series forecasting,
// non-tabular problem types such as image or text classification, and text
// generation (LLMs fine-tuning).
//
// Find guidelines about how to migrate a CreateAutoMLJob to CreateAutoMLJobV2
// in Migrate a CreateAutoMLJob to CreateAutoMLJobV2 (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development-create-experiment.html#autopilot-create-experiment-api-migrate-v1-v2).
//
// For the list of available problem types supported by CreateAutoMLJobV2, see
// AutoMLProblemTypeConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLProblemTypeConfig.html).
//
// You can find the best-performing model after you run an AutoML job V2 by
// calling DescribeAutoMLJobV2 (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateAutoMLJobV2 for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateAutoMLJobV2
func (c *SageMaker) CreateAutoMLJobV2(input *CreateAutoMLJobV2Input) (*CreateAutoMLJobV2Output, error) {
	req, out := c.CreateAutoMLJobV2Request(input)
	return out, req.Send()
}

// CreateAutoMLJobV2WithContext is the same as CreateAutoMLJobV2 with the addition of
// the ability to pass a context and additional request options.
//
// See CreateAutoMLJobV2 for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateAutoMLJobV2WithContext(ctx aws.Context, input *CreateAutoMLJobV2Input, opts ...request.Option) (*CreateAutoMLJobV2Output, error) {
	req, out := c.CreateAutoMLJobV2Request(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateCluster = "CreateCluster"

// CreateClusterRequest generates a "aws/request.Request" representing the
// client's request for the CreateCluster operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateCluster for more information on using the CreateCluster
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateClusterRequest method.
//	req, resp := client.CreateClusterRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateCluster
func (c *SageMaker) CreateClusterRequest(input *CreateClusterInput) (req *request.Request, output *CreateClusterOutput) {
	op := &request.Operation{
		Name:       opCreateCluster,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateClusterInput{}
	}

	output = &CreateClusterOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateCluster API operation for Amazon SageMaker Service.
//
// Creates a SageMaker HyperPod cluster. SageMaker HyperPod is a capability
// of SageMaker for creating and managing persistent clusters for developing
// large machine learning models, such as large language models (LLMs) and diffusion
// models. To learn more, see Amazon SageMaker HyperPod (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod.html)
// in the Amazon SageMaker Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateCluster for usage and error information.
//
// Returned Error Types:
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateCluster
func (c *SageMaker) CreateCluster(input *CreateClusterInput) (*CreateClusterOutput, error) {
	req, out := c.CreateClusterRequest(input)
	return out, req.Send()
}

// CreateClusterWithContext is the same as CreateCluster with the addition of
// the ability to pass a context and additional request options.
//
// See CreateCluster for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateClusterWithContext(ctx aws.Context, input *CreateClusterInput, opts ...request.Option) (*CreateClusterOutput, error) {
	req, out := c.CreateClusterRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateCodeRepository = "CreateCodeRepository"

// CreateCodeRepositoryRequest generates a "aws/request.Request" representing the
// client's request for the CreateCodeRepository operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateCodeRepository for more information on using the CreateCodeRepository
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateCodeRepositoryRequest method.
//	req, resp := client.CreateCodeRepositoryRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateCodeRepository
func (c *SageMaker) CreateCodeRepositoryRequest(input *CreateCodeRepositoryInput) (req *request.Request, output *CreateCodeRepositoryOutput) {
	op := &request.Operation{
		Name:       opCreateCodeRepository,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateCodeRepositoryInput{}
	}

	output = &CreateCodeRepositoryOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateCodeRepository API operation for Amazon SageMaker Service.
//
// Creates a Git repository as a resource in your SageMaker account. You can
// associate the repository with notebook instances so that you can use Git
// source control for the notebooks you create. The Git repository is a resource
// in your SageMaker account, so it can be associated with more than one notebook
// instance, and it persists independently from the lifecycle of any notebook
// instances it is associated with.
//
// The repository can be hosted either in Amazon Web Services CodeCommit (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html)
// or in any other Git repository.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateCodeRepository for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateCodeRepository
func (c *SageMaker) CreateCodeRepository(input *CreateCodeRepositoryInput) (*CreateCodeRepositoryOutput, error) {
	req, out := c.CreateCodeRepositoryRequest(input)
	return out, req.Send()
}

// CreateCodeRepositoryWithContext is the same as CreateCodeRepository with the addition of
// the ability to pass a context and additional request options.
//
// See CreateCodeRepository for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateCodeRepositoryWithContext(ctx aws.Context, input *CreateCodeRepositoryInput, opts ...request.Option) (*CreateCodeRepositoryOutput, error) {
	req, out := c.CreateCodeRepositoryRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateCompilationJob = "CreateCompilationJob"

// CreateCompilationJobRequest generates a "aws/request.Request" representing the
// client's request for the CreateCompilationJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateCompilationJob for more information on using the CreateCompilationJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateCompilationJobRequest method.
//	req, resp := client.CreateCompilationJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateCompilationJob
func (c *SageMaker) CreateCompilationJobRequest(input *CreateCompilationJobInput) (req *request.Request, output *CreateCompilationJobOutput) {
	op := &request.Operation{
		Name:       opCreateCompilationJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateCompilationJobInput{}
	}

	output = &CreateCompilationJobOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateCompilationJob API operation for Amazon SageMaker Service.
//
// Starts a model compilation job. After the model has been compiled, Amazon
// SageMaker saves the resulting model artifacts to an Amazon Simple Storage
// Service (Amazon S3) bucket that you specify.
//
// If you choose to host your model using Amazon SageMaker hosting services,
// you can use the resulting model artifacts as part of the model. You can also
// use the artifacts with Amazon Web Services IoT Greengrass. In that case,
// deploy them as an ML resource.
//
// In the request body, you provide the following:
//
//   - A name for the compilation job
//
//   - Information about the input model artifacts
//
//   - The output location for the compiled model and the device (target) that
//     the model runs on
//
//   - The Amazon Resource Name (ARN) of the IAM role that Amazon SageMaker
//     assumes to perform the model compilation job.
//
// You can also provide a Tag to track the model compilation job's resource
// use and costs. The response body contains the CompilationJobArn for the compiled
// job.
//
// To stop a model compilation job, use StopCompilationJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StopCompilationJob.html).
// To get information about a particular model compilation job, use DescribeCompilationJob
// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCompilationJob.html).
// To get information about multiple model compilation jobs, use ListCompilationJobs
// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListCompilationJobs.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateCompilationJob for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateCompilationJob
func (c *SageMaker) CreateCompilationJob(input *CreateCompilationJobInput) (*CreateCompilationJobOutput, error) {
	req, out := c.CreateCompilationJobRequest(input)
	return out, req.Send()
}

// CreateCompilationJobWithContext is the same as CreateCompilationJob with the addition of
// the ability to pass a context and additional request options.
//
// See CreateCompilationJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateCompilationJobWithContext(ctx aws.Context, input *CreateCompilationJobInput, opts ...request.Option) (*CreateCompilationJobOutput, error) {
	req, out := c.CreateCompilationJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateContext = "CreateContext"

// CreateContextRequest generates a "aws/request.Request" representing the
// client's request for the CreateContext operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateContext for more information on using the CreateContext
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateContextRequest method.
//	req, resp := client.CreateContextRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateContext
func (c *SageMaker) CreateContextRequest(input *CreateContextInput) (req *request.Request, output *CreateContextOutput) {
	op := &request.Operation{
		Name:       opCreateContext,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateContextInput{}
	}

	output = &CreateContextOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateContext API operation for Amazon SageMaker Service.
//
// Creates a context. A context is a lineage tracking entity that represents
// a logical grouping of other tracking or experiment entities. Some examples
// are an endpoint and a model package. For more information, see Amazon SageMaker
// ML Lineage Tracking (https://docs.aws.amazon.com/sagemaker/latest/dg/lineage-tracking.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateContext for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateContext
func (c *SageMaker) CreateContext(input *CreateContextInput) (*CreateContextOutput, error) {
	req, out := c.CreateContextRequest(input)
	return out, req.Send()
}

// CreateContextWithContext is the same as CreateContext with the addition of
// the ability to pass a context and additional request options.
//
// See CreateContext for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateContextWithContext(ctx aws.Context, input *CreateContextInput, opts ...request.Option) (*CreateContextOutput, error) {
	req, out := c.CreateContextRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateDataQualityJobDefinition = "CreateDataQualityJobDefinition"

// CreateDataQualityJobDefinitionRequest generates a "aws/request.Request" representing the
// client's request for the CreateDataQualityJobDefinition operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateDataQualityJobDefinition for more information on using the CreateDataQualityJobDefinition
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateDataQualityJobDefinitionRequest method.
//	req, resp := client.CreateDataQualityJobDefinitionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateDataQualityJobDefinition
func (c *SageMaker) CreateDataQualityJobDefinitionRequest(input *CreateDataQualityJobDefinitionInput) (req *request.Request, output *CreateDataQualityJobDefinitionOutput) {
	op := &request.Operation{
		Name:       opCreateDataQualityJobDefinition,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateDataQualityJobDefinitionInput{}
	}

	output = &CreateDataQualityJobDefinitionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateDataQualityJobDefinition API operation for Amazon SageMaker Service.
//
// Creates a definition for a job that monitors data quality and drift. For
// information about model monitor, see Amazon SageMaker Model Monitor (https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateDataQualityJobDefinition for usage and error information.
//
// Returned Error Types:
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateDataQualityJobDefinition
func (c *SageMaker) CreateDataQualityJobDefinition(input *CreateDataQualityJobDefinitionInput) (*CreateDataQualityJobDefinitionOutput, error) {
	req, out := c.CreateDataQualityJobDefinitionRequest(input)
	return out, req.Send()
}

// CreateDataQualityJobDefinitionWithContext is the same as CreateDataQualityJobDefinition with the addition of
// the ability to pass a context and additional request options.
//
// See CreateDataQualityJobDefinition for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateDataQualityJobDefinitionWithContext(ctx aws.Context, input *CreateDataQualityJobDefinitionInput, opts ...request.Option) (*CreateDataQualityJobDefinitionOutput, error) {
	req, out := c.CreateDataQualityJobDefinitionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateDeviceFleet = "CreateDeviceFleet"

// CreateDeviceFleetRequest generates a "aws/request.Request" representing the
// client's request for the CreateDeviceFleet operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateDeviceFleet for more information on using the CreateDeviceFleet
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateDeviceFleetRequest method.
//	req, resp := client.CreateDeviceFleetRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateDeviceFleet
func (c *SageMaker) CreateDeviceFleetRequest(input *CreateDeviceFleetInput) (req *request.Request, output *CreateDeviceFleetOutput) {
	op := &request.Operation{
		Name:       opCreateDeviceFleet,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateDeviceFleetInput{}
	}

	output = &CreateDeviceFleetOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// CreateDeviceFleet API operation for Amazon SageMaker Service.
//
// Creates a device fleet.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateDeviceFleet for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateDeviceFleet
func (c *SageMaker) CreateDeviceFleet(input *CreateDeviceFleetInput) (*CreateDeviceFleetOutput, error) {
	req, out := c.CreateDeviceFleetRequest(input)
	return out, req.Send()
}

// CreateDeviceFleetWithContext is the same as CreateDeviceFleet with the addition of
// the ability to pass a context and additional request options.
//
// See CreateDeviceFleet for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateDeviceFleetWithContext(ctx aws.Context, input *CreateDeviceFleetInput, opts ...request.Option) (*CreateDeviceFleetOutput, error) {
	req, out := c.CreateDeviceFleetRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateDomain = "CreateDomain"

// CreateDomainRequest generates a "aws/request.Request" representing the
// client's request for the CreateDomain operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateDomain for more information on using the CreateDomain
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateDomainRequest method.
//	req, resp := client.CreateDomainRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateDomain
func (c *SageMaker) CreateDomainRequest(input *CreateDomainInput) (req *request.Request, output *CreateDomainOutput) {
	op := &request.Operation{
		Name:       opCreateDomain,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateDomainInput{}
	}

	output = &CreateDomainOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateDomain API operation for Amazon SageMaker Service.
//
// Creates a Domain. A domain consists of an associated Amazon Elastic File
// System volume, a list of authorized users, and a variety of security, application,
// policy, and Amazon Virtual Private Cloud (VPC) configurations. Users within
// a domain can share notebook files and other artifacts with each other.
//
// # EFS storage
//
// When a domain is created, an EFS volume is created for use by all of the
// users within the domain. Each user receives a private home directory within
// the EFS volume for notebooks, Git repositories, and data files.
//
// SageMaker uses the Amazon Web Services Key Management Service (Amazon Web
// Services KMS) to encrypt the EFS volume attached to the domain with an Amazon
// Web Services managed key by default. For more control, you can specify a
// customer managed key. For more information, see Protect Data at Rest Using
// Encryption (https://docs.aws.amazon.com/sagemaker/latest/dg/encryption-at-rest.html).
//
// # VPC configuration
//
// All traffic between the domain and the Amazon EFS volume is through the specified
// VPC and subnets. For other traffic, you can specify the AppNetworkAccessType
// parameter. AppNetworkAccessType corresponds to the network access type that
// you choose when you onboard to the domain. The following options are available:
//
//   - PublicInternetOnly - Non-EFS traffic goes through a VPC managed by Amazon
//     SageMaker, which allows internet access. This is the default value.
//
//   - VpcOnly - All traffic is through the specified VPC and subnets. Internet
//     access is disabled by default. To allow internet access, you must specify
//     a NAT gateway. When internet access is disabled, you won't be able to
//     run a Amazon SageMaker Studio notebook or to train or host models unless
//     your VPC has an interface endpoint to the SageMaker API and runtime or
//     a NAT gateway and your security groups allow outbound connections.
//
// NFS traffic over TCP on port 2049 needs to be allowed in both inbound and
// outbound rules in order to launch a Amazon SageMaker Studio app successfully.
//
// For more information, see Connect Amazon SageMaker Studio Notebooks to Resources
// in a VPC (https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-and-internet-access.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateDomain for usage and error information.
//
// Returned Error Types:
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateDomain
func (c *SageMaker) CreateDomain(input *CreateDomainInput) (*CreateDomainOutput, error) {
	req, out := c.CreateDomainRequest(input)
	return out, req.Send()
}

// CreateDomainWithContext is the same as CreateDomain with the addition of
// the ability to pass a context and additional request options.
//
// See CreateDomain for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateDomainWithContext(ctx aws.Context, input *CreateDomainInput, opts ...request.Option) (*CreateDomainOutput, error) {
	req, out := c.CreateDomainRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateEdgeDeploymentPlan = "CreateEdgeDeploymentPlan"

// CreateEdgeDeploymentPlanRequest generates a "aws/request.Request" representing the
// client's request for the CreateEdgeDeploymentPlan operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateEdgeDeploymentPlan for more information on using the CreateEdgeDeploymentPlan
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateEdgeDeploymentPlanRequest method.
//	req, resp := client.CreateEdgeDeploymentPlanRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateEdgeDeploymentPlan
func (c *SageMaker) CreateEdgeDeploymentPlanRequest(input *CreateEdgeDeploymentPlanInput) (req *request.Request, output *CreateEdgeDeploymentPlanOutput) {
	op := &request.Operation{
		Name:       opCreateEdgeDeploymentPlan,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateEdgeDeploymentPlanInput{}
	}

	output = &CreateEdgeDeploymentPlanOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateEdgeDeploymentPlan API operation for Amazon SageMaker Service.
//
// Creates an edge deployment plan, consisting of multiple stages. Each stage
// may have a different deployment configuration and devices.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateEdgeDeploymentPlan for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateEdgeDeploymentPlan
func (c *SageMaker) CreateEdgeDeploymentPlan(input *CreateEdgeDeploymentPlanInput) (*CreateEdgeDeploymentPlanOutput, error) {
	req, out := c.CreateEdgeDeploymentPlanRequest(input)
	return out, req.Send()
}

// CreateEdgeDeploymentPlanWithContext is the same as CreateEdgeDeploymentPlan with the addition of
// the ability to pass a context and additional request options.
//
// See CreateEdgeDeploymentPlan for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateEdgeDeploymentPlanWithContext(ctx aws.Context, input *CreateEdgeDeploymentPlanInput, opts ...request.Option) (*CreateEdgeDeploymentPlanOutput, error) {
	req, out := c.CreateEdgeDeploymentPlanRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateEdgeDeploymentStage = "CreateEdgeDeploymentStage"

// CreateEdgeDeploymentStageRequest generates a "aws/request.Request" representing the
// client's request for the CreateEdgeDeploymentStage operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateEdgeDeploymentStage for more information on using the CreateEdgeDeploymentStage
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateEdgeDeploymentStageRequest method.
//	req, resp := client.CreateEdgeDeploymentStageRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateEdgeDeploymentStage
func (c *SageMaker) CreateEdgeDeploymentStageRequest(input *CreateEdgeDeploymentStageInput) (req *request.Request, output *CreateEdgeDeploymentStageOutput) {
	op := &request.Operation{
		Name:       opCreateEdgeDeploymentStage,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateEdgeDeploymentStageInput{}
	}

	output = &CreateEdgeDeploymentStageOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// CreateEdgeDeploymentStage API operation for Amazon SageMaker Service.
//
// Creates a new stage in an existing edge deployment plan.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateEdgeDeploymentStage for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateEdgeDeploymentStage
func (c *SageMaker) CreateEdgeDeploymentStage(input *CreateEdgeDeploymentStageInput) (*CreateEdgeDeploymentStageOutput, error) {
	req, out := c.CreateEdgeDeploymentStageRequest(input)
	return out, req.Send()
}

// CreateEdgeDeploymentStageWithContext is the same as CreateEdgeDeploymentStage with the addition of
// the ability to pass a context and additional request options.
//
// See CreateEdgeDeploymentStage for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateEdgeDeploymentStageWithContext(ctx aws.Context, input *CreateEdgeDeploymentStageInput, opts ...request.Option) (*CreateEdgeDeploymentStageOutput, error) {
	req, out := c.CreateEdgeDeploymentStageRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateEdgePackagingJob = "CreateEdgePackagingJob"

// CreateEdgePackagingJobRequest generates a "aws/request.Request" representing the
// client's request for the CreateEdgePackagingJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateEdgePackagingJob for more information on using the CreateEdgePackagingJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateEdgePackagingJobRequest method.
//	req, resp := client.CreateEdgePackagingJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateEdgePackagingJob
func (c *SageMaker) CreateEdgePackagingJobRequest(input *CreateEdgePackagingJobInput) (req *request.Request, output *CreateEdgePackagingJobOutput) {
	op := &request.Operation{
		Name:       opCreateEdgePackagingJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateEdgePackagingJobInput{}
	}

	output = &CreateEdgePackagingJobOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// CreateEdgePackagingJob API operation for Amazon SageMaker Service.
//
// Starts a SageMaker Edge Manager model packaging job. Edge Manager will use
// the model artifacts from the Amazon Simple Storage Service bucket that you
// specify. After the model has been packaged, Amazon SageMaker saves the resulting
// artifacts to an S3 bucket that you specify.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateEdgePackagingJob for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateEdgePackagingJob
func (c *SageMaker) CreateEdgePackagingJob(input *CreateEdgePackagingJobInput) (*CreateEdgePackagingJobOutput, error) {
	req, out := c.CreateEdgePackagingJobRequest(input)
	return out, req.Send()
}

// CreateEdgePackagingJobWithContext is the same as CreateEdgePackagingJob with the addition of
// the ability to pass a context and additional request options.
//
// See CreateEdgePackagingJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateEdgePackagingJobWithContext(ctx aws.Context, input *CreateEdgePackagingJobInput, opts ...request.Option) (*CreateEdgePackagingJobOutput, error) {
	req, out := c.CreateEdgePackagingJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateEndpoint = "CreateEndpoint"

// CreateEndpointRequest generates a "aws/request.Request" representing the
// client's request for the CreateEndpoint operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateEndpoint for more information on using the CreateEndpoint
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateEndpointRequest method.
//	req, resp := client.CreateEndpointRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateEndpoint
func (c *SageMaker) CreateEndpointRequest(input *CreateEndpointInput) (req *request.Request, output *CreateEndpointOutput) {
	op := &request.Operation{
		Name:       opCreateEndpoint,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateEndpointInput{}
	}

	output = &CreateEndpointOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateEndpoint API operation for Amazon SageMaker Service.
//
// Creates an endpoint using the endpoint configuration specified in the request.
// SageMaker uses the endpoint to provision resources and deploy models. You
// create the endpoint configuration with the CreateEndpointConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html)
// API.
//
// Use this API to deploy models using SageMaker hosting services.
//
// You must not delete an EndpointConfig that is in use by an endpoint that
// is live or while the UpdateEndpoint or CreateEndpoint operations are being
// performed on the endpoint. To update an endpoint, you must create a new EndpointConfig.
//
// The endpoint name must be unique within an Amazon Web Services Region in
// your Amazon Web Services account.
//
// When it receives the request, SageMaker creates the endpoint, launches the
// resources (ML compute instances), and deploys the model(s) on them.
//
// When you call CreateEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html),
// a load call is made to DynamoDB to verify that your endpoint configuration
// exists. When you read data from a DynamoDB table supporting Eventually Consistent
// Reads (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html),
// the response might not reflect the results of a recently completed write
// operation. The response might include some stale data. If the dependent entities
// are not yet in DynamoDB, this causes a validation error. If you repeat your
// read request after a short time, the response should return the latest data.
// So retry logic is recommended to handle these possible issues. We also recommend
// that customers call DescribeEndpointConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpointConfig.html)
// before calling CreateEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html)
// to minimize the potential impact of a DynamoDB eventually consistent read.
//
// When SageMaker receives the request, it sets the endpoint status to Creating.
// After it creates the endpoint, it sets the status to InService. SageMaker
// can then process incoming requests for inferences. To check the status of
// an endpoint, use the DescribeEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html)
// API.
//
// If any of the models hosted at this endpoint get model data from an Amazon
// S3 location, SageMaker uses Amazon Web Services Security Token Service to
// download model artifacts from the S3 path you provided. Amazon Web Services
// STS is activated in your Amazon Web Services account by default. If you previously
// deactivated Amazon Web Services STS for a region, you need to reactivate
// Amazon Web Services STS for that region. For more information, see Activating
// and Deactivating Amazon Web Services STS in an Amazon Web Services Region
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
// in the Amazon Web Services Identity and Access Management User Guide.
//
// To add the IAM role policies for using this API operation, go to the IAM
// console (https://console.aws.amazon.com/iam/), and choose Roles in the left
// navigation pane. Search the IAM role that you want to grant access to use
// the CreateEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html)
// and CreateEndpointConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html)
// API operations, add the following policies to the role.
//
//   - Option 1: For a full SageMaker access, search and attach the AmazonSageMakerFullAccess
//     policy.
//
//   - Option 2: For granting a limited access to an IAM role, paste the following
//     Action elements manually into the JSON file of the IAM role: "Action":
//     ["sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig"] "Resource":
//     [ "arn:aws:sagemaker:region:account-id:endpoint/endpointName" "arn:aws:sagemaker:region:account-id:endpoint-config/endpointConfigName"
//     ] For more information, see SageMaker API Permissions: Actions, Permissions,
//     and Resources Reference (https://docs.aws.amazon.com/sagemaker/latest/dg/api-permissions-reference.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateEndpoint for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateEndpoint
func (c *SageMaker) CreateEndpoint(input *CreateEndpointInput) (*CreateEndpointOutput, error) {
	req, out := c.CreateEndpointRequest(input)
	return out, req.Send()
}

// CreateEndpointWithContext is the same as CreateEndpoint with the addition of
// the ability to pass a context and additional request options.
//
// See CreateEndpoint for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateEndpointWithContext(ctx aws.Context, input *CreateEndpointInput, opts ...request.Option) (*CreateEndpointOutput, error) {
	req, out := c.CreateEndpointRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateEndpointConfig = "CreateEndpointConfig"

// CreateEndpointConfigRequest generates a "aws/request.Request" representing the
// client's request for the CreateEndpointConfig operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateEndpointConfig for more information on using the CreateEndpointConfig
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateEndpointConfigRequest method.
//	req, resp := client.CreateEndpointConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateEndpointConfig
func (c *SageMaker) CreateEndpointConfigRequest(input *CreateEndpointConfigInput) (req *request.Request, output *CreateEndpointConfigOutput) {
	op := &request.Operation{
		Name:       opCreateEndpointConfig,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateEndpointConfigInput{}
	}

	output = &CreateEndpointConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateEndpointConfig API operation for Amazon SageMaker Service.
//
// Creates an endpoint configuration that SageMaker hosting services uses to
// deploy models. In the configuration, you identify one or more models, created
// using the CreateModel API, to deploy and the resources that you want SageMaker
// to provision. Then you call the CreateEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html)
// API.
//
// Use this API if you want to use SageMaker hosting services to deploy models
// into production.
//
// In the request, you define a ProductionVariant, for each model that you want
// to deploy. Each ProductionVariant parameter also describes the resources
// that you want SageMaker to provision. This includes the number and type of
// ML compute instances to deploy.
//
// If you are hosting multiple models, you also assign a VariantWeight to specify
// how much traffic you want to allocate to each model. For example, suppose
// that you want to host two models, A and B, and you assign traffic weight
// 2 for model A and 1 for model B. SageMaker distributes two-thirds of the
// traffic to Model A, and one-third to model B.
//
// When you call CreateEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html),
// a load call is made to DynamoDB to verify that your endpoint configuration
// exists. When you read data from a DynamoDB table supporting Eventually Consistent
// Reads (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html),
// the response might not reflect the results of a recently completed write
// operation. The response might include some stale data. If the dependent entities
// are not yet in DynamoDB, this causes a validation error. If you repeat your
// read request after a short time, the response should return the latest data.
// So retry logic is recommended to handle these possible issues. We also recommend
// that customers call DescribeEndpointConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpointConfig.html)
// before calling CreateEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html)
// to minimize the potential impact of a DynamoDB eventually consistent read.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateEndpointConfig for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateEndpointConfig
func (c *SageMaker) CreateEndpointConfig(input *CreateEndpointConfigInput) (*CreateEndpointConfigOutput, error) {
	req, out := c.CreateEndpointConfigRequest(input)
	return out, req.Send()
}

// CreateEndpointConfigWithContext is the same as CreateEndpointConfig with the addition of
// the ability to pass a context and additional request options.
//
// See CreateEndpointConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateEndpointConfigWithContext(ctx aws.Context, input *CreateEndpointConfigInput, opts ...request.Option) (*CreateEndpointConfigOutput, error) {
	req, out := c.CreateEndpointConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateExperiment = "CreateExperiment"

// CreateExperimentRequest generates a "aws/request.Request" representing the
// client's request for the CreateExperiment operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateExperiment for more information on using the CreateExperiment
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateExperimentRequest method.
//	req, resp := client.CreateExperimentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateExperiment
func (c *SageMaker) CreateExperimentRequest(input *CreateExperimentInput) (req *request.Request, output *CreateExperimentOutput) {
	op := &request.Operation{
		Name:       opCreateExperiment,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateExperimentInput{}
	}

	output = &CreateExperimentOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateExperiment API operation for Amazon SageMaker Service.
//
// Creates a SageMaker experiment. An experiment is a collection of trials that
// are observed, compared and evaluated as a group. A trial is a set of steps,
// called trial components, that produce a machine learning model.
//
// In the Studio UI, trials are referred to as run groups and trial components
// are referred to as runs.
//
// The goal of an experiment is to determine the components that produce the
// best model. Multiple trials are performed, each one isolating and measuring
// the impact of a change to one or more inputs, while keeping the remaining
// inputs constant.
//
// When you use SageMaker Studio or the SageMaker Python SDK, all experiments,
// trials, and trial components are automatically tracked, logged, and indexed.
// When you use the Amazon Web Services SDK for Python (Boto), you must use
// the logging APIs provided by the SDK.
//
// You can add tags to experiments, trials, trial components and then use the
// Search (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html)
// API to search for the tags.
//
// To add a description to an experiment, specify the optional Description parameter.
// To add a description later, or to change the description, call the UpdateExperiment
// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateExperiment.html)
// API.
//
// To get a list of all your experiments, call the ListExperiments (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListExperiments.html)
// API. To view an experiment's properties, call the DescribeExperiment (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeExperiment.html)
// API. To get a list of all the trials associated with an experiment, call
// the ListTrials (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListTrials.html)
// API. To create a trial call the CreateTrial (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrial.html)
// API.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateExperiment for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateExperiment
func (c *SageMaker) CreateExperiment(input *CreateExperimentInput) (*CreateExperimentOutput, error) {
	req, out := c.CreateExperimentRequest(input)
	return out, req.Send()
}

// CreateExperimentWithContext is the same as CreateExperiment with the addition of
// the ability to pass a context and additional request options.
//
// See CreateExperiment for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateExperimentWithContext(ctx aws.Context, input *CreateExperimentInput, opts ...request.Option) (*CreateExperimentOutput, error) {
	req, out := c.CreateExperimentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateFeatureGroup = "CreateFeatureGroup"

// CreateFeatureGroupRequest generates a "aws/request.Request" representing the
// client's request for the CreateFeatureGroup operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateFeatureGroup for more information on using the CreateFeatureGroup
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateFeatureGroupRequest method.
//	req, resp := client.CreateFeatureGroupRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateFeatureGroup
func (c *SageMaker) CreateFeatureGroupRequest(input *CreateFeatureGroupInput) (req *request.Request, output *CreateFeatureGroupOutput) {
	op := &request.Operation{
		Name:       opCreateFeatureGroup,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateFeatureGroupInput{}
	}

	output = &CreateFeatureGroupOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateFeatureGroup API operation for Amazon SageMaker Service.
//
// Create a new FeatureGroup. A FeatureGroup is a group of Features defined
// in the FeatureStore to describe a Record.
//
// The FeatureGroup defines the schema and features contained in the FeatureGroup.
// A FeatureGroup definition is composed of a list of Features, a RecordIdentifierFeatureName,
// an EventTimeFeatureName and configurations for its OnlineStore and OfflineStore.
// Check Amazon Web Services service quotas (https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)
// to see the FeatureGroups quota for your Amazon Web Services account.
//
// Note that it can take approximately 10-15 minutes to provision an OnlineStore
// FeatureGroup with the InMemory StorageType.
//
// You must include at least one of OnlineStoreConfig and OfflineStoreConfig
// to create a FeatureGroup.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateFeatureGroup for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateFeatureGroup
func (c *SageMaker) CreateFeatureGroup(input *CreateFeatureGroupInput) (*CreateFeatureGroupOutput, error) {
	req, out := c.CreateFeatureGroupRequest(input)
	return out, req.Send()
}

// CreateFeatureGroupWithContext is the same as CreateFeatureGroup with the addition of
// the ability to pass a context and additional request options.
//
// See CreateFeatureGroup for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateFeatureGroupWithContext(ctx aws.Context, input *CreateFeatureGroupInput, opts ...request.Option) (*CreateFeatureGroupOutput, error) {
	req, out := c.CreateFeatureGroupRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateFlowDefinition = "CreateFlowDefinition"

// CreateFlowDefinitionRequest generates a "aws/request.Request" representing the
// client's request for the CreateFlowDefinition operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateFlowDefinition for more information on using the CreateFlowDefinition
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateFlowDefinitionRequest method.
//	req, resp := client.CreateFlowDefinitionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateFlowDefinition
func (c *SageMaker) CreateFlowDefinitionRequest(input *CreateFlowDefinitionInput) (req *request.Request, output *CreateFlowDefinitionOutput) {
	op := &request.Operation{
		Name:       opCreateFlowDefinition,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateFlowDefinitionInput{}
	}

	output = &CreateFlowDefinitionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateFlowDefinition API operation for Amazon SageMaker Service.
//
// Creates a flow definition.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateFlowDefinition for usage and error information.
//
// Returned Error Types:
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateFlowDefinition
func (c *SageMaker) CreateFlowDefinition(input *CreateFlowDefinitionInput) (*CreateFlowDefinitionOutput, error) {
	req, out := c.CreateFlowDefinitionRequest(input)
	return out, req.Send()
}

// CreateFlowDefinitionWithContext is the same as CreateFlowDefinition with the addition of
// the ability to pass a context and additional request options.
//
// See CreateFlowDefinition for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateFlowDefinitionWithContext(ctx aws.Context, input *CreateFlowDefinitionInput, opts ...request.Option) (*CreateFlowDefinitionOutput, error) {
	req, out := c.CreateFlowDefinitionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateHub = "CreateHub"

// CreateHubRequest generates a "aws/request.Request" representing the
// client's request for the CreateHub operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateHub for more information on using the CreateHub
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateHubRequest method.
//	req, resp := client.CreateHubRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateHub
func (c *SageMaker) CreateHubRequest(input *CreateHubInput) (req *request.Request, output *CreateHubOutput) {
	op := &request.Operation{
		Name:       opCreateHub,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateHubInput{}
	}

	output = &CreateHubOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateHub API operation for Amazon SageMaker Service.
//
// Create a hub.
//
// Hub APIs are only callable through SageMaker Studio.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateHub for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateHub
func (c *SageMaker) CreateHub(input *CreateHubInput) (*CreateHubOutput, error) {
	req, out := c.CreateHubRequest(input)
	return out, req.Send()
}

// CreateHubWithContext is the same as CreateHub with the addition of
// the ability to pass a context and additional request options.
//
// See CreateHub for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateHubWithContext(ctx aws.Context, input *CreateHubInput, opts ...request.Option) (*CreateHubOutput, error) {
	req, out := c.CreateHubRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateHumanTaskUi = "CreateHumanTaskUi"

// CreateHumanTaskUiRequest generates a "aws/request.Request" representing the
// client's request for the CreateHumanTaskUi operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateHumanTaskUi for more information on using the CreateHumanTaskUi
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateHumanTaskUiRequest method.
//	req, resp := client.CreateHumanTaskUiRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateHumanTaskUi
func (c *SageMaker) CreateHumanTaskUiRequest(input *CreateHumanTaskUiInput) (req *request.Request, output *CreateHumanTaskUiOutput) {
	op := &request.Operation{
		Name:       opCreateHumanTaskUi,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateHumanTaskUiInput{}
	}

	output = &CreateHumanTaskUiOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateHumanTaskUi API operation for Amazon SageMaker Service.
//
// Defines the settings you will use for the human review workflow user interface.
// Reviewers will see a three-panel interface with an instruction area, the
// item to review, and an input area.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateHumanTaskUi for usage and error information.
//
// Returned Error Types:
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateHumanTaskUi
func (c *SageMaker) CreateHumanTaskUi(input *CreateHumanTaskUiInput) (*CreateHumanTaskUiOutput, error) {
	req, out := c.CreateHumanTaskUiRequest(input)
	return out, req.Send()
}

// CreateHumanTaskUiWithContext is the same as CreateHumanTaskUi with the addition of
// the ability to pass a context and additional request options.
//
// See CreateHumanTaskUi for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateHumanTaskUiWithContext(ctx aws.Context, input *CreateHumanTaskUiInput, opts ...request.Option) (*CreateHumanTaskUiOutput, error) {
	req, out := c.CreateHumanTaskUiRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateHyperParameterTuningJob = "CreateHyperParameterTuningJob"

// CreateHyperParameterTuningJobRequest generates a "aws/request.Request" representing the
// client's request for the CreateHyperParameterTuningJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateHyperParameterTuningJob for more information on using the CreateHyperParameterTuningJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateHyperParameterTuningJobRequest method.
//	req, resp := client.CreateHyperParameterTuningJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateHyperParameterTuningJob
func (c *SageMaker) CreateHyperParameterTuningJobRequest(input *CreateHyperParameterTuningJobInput) (req *request.Request, output *CreateHyperParameterTuningJobOutput) {
	op := &request.Operation{
		Name:       opCreateHyperParameterTuningJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateHyperParameterTuningJobInput{}
	}

	output = &CreateHyperParameterTuningJobOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateHyperParameterTuningJob API operation for Amazon SageMaker Service.
//
// Starts a hyperparameter tuning job. A hyperparameter tuning job finds the
// best version of a model by running many training jobs on your dataset using
// the algorithm you choose and values for hyperparameters within ranges that
// you specify. It then chooses the hyperparameter values that result in a model
// that performs the best, as measured by an objective metric that you choose.
//
// A hyperparameter tuning job automatically creates Amazon SageMaker experiments,
// trials, and trial components for each training job that it runs. You can
// view these entities in Amazon SageMaker Studio. For more information, see
// View Experiments, Trials, and Trial Components (https://docs.aws.amazon.com/sagemaker/latest/dg/experiments-view-compare.html#experiments-view).
//
// Do not include any security-sensitive information including account access
// IDs, secrets or tokens in any hyperparameter field. If the use of security-sensitive
// credentials are detected, SageMaker will reject your training job request
// and return an exception error.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateHyperParameterTuningJob for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateHyperParameterTuningJob
func (c *SageMaker) CreateHyperParameterTuningJob(input *CreateHyperParameterTuningJobInput) (*CreateHyperParameterTuningJobOutput, error) {
	req, out := c.CreateHyperParameterTuningJobRequest(input)
	return out, req.Send()
}

// CreateHyperParameterTuningJobWithContext is the same as CreateHyperParameterTuningJob with the addition of
// the ability to pass a context and additional request options.
//
// See CreateHyperParameterTuningJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateHyperParameterTuningJobWithContext(ctx aws.Context, input *CreateHyperParameterTuningJobInput, opts ...request.Option) (*CreateHyperParameterTuningJobOutput, error) {
	req, out := c.CreateHyperParameterTuningJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateImage = "CreateImage"

// CreateImageRequest generates a "aws/request.Request" representing the
// client's request for the CreateImage operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateImage for more information on using the CreateImage
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateImageRequest method.
//	req, resp := client.CreateImageRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateImage
func (c *SageMaker) CreateImageRequest(input *CreateImageInput) (req *request.Request, output *CreateImageOutput) {
	op := &request.Operation{
		Name:       opCreateImage,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateImageInput{}
	}

	output = &CreateImageOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateImage API operation for Amazon SageMaker Service.
//
// Creates a custom SageMaker image. A SageMaker image is a set of image versions.
// Each image version represents a container image stored in Amazon Elastic
// Container Registry (ECR). For more information, see Bring your own SageMaker
// image (https://docs.aws.amazon.com/sagemaker/latest/dg/studio-byoi.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateImage for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateImage
func (c *SageMaker) CreateImage(input *CreateImageInput) (*CreateImageOutput, error) {
	req, out := c.CreateImageRequest(input)
	return out, req.Send()
}

// CreateImageWithContext is the same as CreateImage with the addition of
// the ability to pass a context and additional request options.
//
// See CreateImage for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateImageWithContext(ctx aws.Context, input *CreateImageInput, opts ...request.Option) (*CreateImageOutput, error) {
	req, out := c.CreateImageRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateImageVersion = "CreateImageVersion"

// CreateImageVersionRequest generates a "aws/request.Request" representing the
// client's request for the CreateImageVersion operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateImageVersion for more information on using the CreateImageVersion
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateImageVersionRequest method.
//	req, resp := client.CreateImageVersionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateImageVersion
func (c *SageMaker) CreateImageVersionRequest(input *CreateImageVersionInput) (req *request.Request, output *CreateImageVersionOutput) {
	op := &request.Operation{
		Name:       opCreateImageVersion,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateImageVersionInput{}
	}

	output = &CreateImageVersionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateImageVersion API operation for Amazon SageMaker Service.
//
// Creates a version of the SageMaker image specified by ImageName. The version
// represents the Amazon Elastic Container Registry (ECR) container image specified
// by BaseImage.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateImageVersion for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateImageVersion
func (c *SageMaker) CreateImageVersion(input *CreateImageVersionInput) (*CreateImageVersionOutput, error) {
	req, out := c.CreateImageVersionRequest(input)
	return out, req.Send()
}

// CreateImageVersionWithContext is the same as CreateImageVersion with the addition of
// the ability to pass a context and additional request options.
//
// See CreateImageVersion for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateImageVersionWithContext(ctx aws.Context, input *CreateImageVersionInput, opts ...request.Option) (*CreateImageVersionOutput, error) {
	req, out := c.CreateImageVersionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateInferenceComponent = "CreateInferenceComponent"

// CreateInferenceComponentRequest generates a "aws/request.Request" representing the
// client's request for the CreateInferenceComponent operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateInferenceComponent for more information on using the CreateInferenceComponent
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateInferenceComponentRequest method.
//	req, resp := client.CreateInferenceComponentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateInferenceComponent
func (c *SageMaker) CreateInferenceComponentRequest(input *CreateInferenceComponentInput) (req *request.Request, output *CreateInferenceComponentOutput) {
	op := &request.Operation{
		Name:       opCreateInferenceComponent,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateInferenceComponentInput{}
	}

	output = &CreateInferenceComponentOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateInferenceComponent API operation for Amazon SageMaker Service.
//
// Creates an inference component, which is a SageMaker hosting object that
// you can use to deploy a model to an endpoint. In the inference component
// settings, you specify the model, the endpoint, and how the model utilizes
// the resources that the endpoint hosts. You can optimize resource utilization
// by tailoring how the required CPU cores, accelerators, and memory are allocated.
// You can deploy multiple inference components to an endpoint, where each inference
// component contains one model and the resource utilization needs for that
// individual model. After you deploy an inference component, you can directly
// invoke the associated model when you use the InvokeEndpoint API action.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateInferenceComponent for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateInferenceComponent
func (c *SageMaker) CreateInferenceComponent(input *CreateInferenceComponentInput) (*CreateInferenceComponentOutput, error) {
	req, out := c.CreateInferenceComponentRequest(input)
	return out, req.Send()
}

// CreateInferenceComponentWithContext is the same as CreateInferenceComponent with the addition of
// the ability to pass a context and additional request options.
//
// See CreateInferenceComponent for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateInferenceComponentWithContext(ctx aws.Context, input *CreateInferenceComponentInput, opts ...request.Option) (*CreateInferenceComponentOutput, error) {
	req, out := c.CreateInferenceComponentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateInferenceExperiment = "CreateInferenceExperiment"

// CreateInferenceExperimentRequest generates a "aws/request.Request" representing the
// client's request for the CreateInferenceExperiment operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateInferenceExperiment for more information on using the CreateInferenceExperiment
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateInferenceExperimentRequest method.
//	req, resp := client.CreateInferenceExperimentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateInferenceExperiment
func (c *SageMaker) CreateInferenceExperimentRequest(input *CreateInferenceExperimentInput) (req *request.Request, output *CreateInferenceExperimentOutput) {
	op := &request.Operation{
		Name:       opCreateInferenceExperiment,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateInferenceExperimentInput{}
	}

	output = &CreateInferenceExperimentOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateInferenceExperiment API operation for Amazon SageMaker Service.
//
// Creates an inference experiment using the configurations specified in the
// request.
//
// Use this API to setup and schedule an experiment to compare model variants
// on a Amazon SageMaker inference endpoint. For more information about inference
// experiments, see Shadow tests (https://docs.aws.amazon.com/sagemaker/latest/dg/shadow-tests.html).
//
// Amazon SageMaker begins your experiment at the scheduled time and routes
// traffic to your endpoint's model variants based on your specified configuration.
//
// While the experiment is in progress or after it has concluded, you can view
// metrics that compare your model variants. For more information, see View,
// monitor, and edit shadow tests (https://docs.aws.amazon.com/sagemaker/latest/dg/shadow-tests-view-monitor-edit.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateInferenceExperiment for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateInferenceExperiment
func (c *SageMaker) CreateInferenceExperiment(input *CreateInferenceExperimentInput) (*CreateInferenceExperimentOutput, error) {
	req, out := c.CreateInferenceExperimentRequest(input)
	return out, req.Send()
}

// CreateInferenceExperimentWithContext is the same as CreateInferenceExperiment with the addition of
// the ability to pass a context and additional request options.
//
// See CreateInferenceExperiment for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateInferenceExperimentWithContext(ctx aws.Context, input *CreateInferenceExperimentInput, opts ...request.Option) (*CreateInferenceExperimentOutput, error) {
	req, out := c.CreateInferenceExperimentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateInferenceRecommendationsJob = "CreateInferenceRecommendationsJob"

// CreateInferenceRecommendationsJobRequest generates a "aws/request.Request" representing the
// client's request for the CreateInferenceRecommendationsJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateInferenceRecommendationsJob for more information on using the CreateInferenceRecommendationsJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateInferenceRecommendationsJobRequest method.
//	req, resp := client.CreateInferenceRecommendationsJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateInferenceRecommendationsJob
func (c *SageMaker) CreateInferenceRecommendationsJobRequest(input *CreateInferenceRecommendationsJobInput) (req *request.Request, output *CreateInferenceRecommendationsJobOutput) {
	op := &request.Operation{
		Name:       opCreateInferenceRecommendationsJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateInferenceRecommendationsJobInput{}
	}

	output = &CreateInferenceRecommendationsJobOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateInferenceRecommendationsJob API operation for Amazon SageMaker Service.
//
// Starts a recommendation job. You can create either an instance recommendation
// or load test job.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateInferenceRecommendationsJob for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateInferenceRecommendationsJob
func (c *SageMaker) CreateInferenceRecommendationsJob(input *CreateInferenceRecommendationsJobInput) (*CreateInferenceRecommendationsJobOutput, error) {
	req, out := c.CreateInferenceRecommendationsJobRequest(input)
	return out, req.Send()
}

// CreateInferenceRecommendationsJobWithContext is the same as CreateInferenceRecommendationsJob with the addition of
// the ability to pass a context and additional request options.
//
// See CreateInferenceRecommendationsJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateInferenceRecommendationsJobWithContext(ctx aws.Context, input *CreateInferenceRecommendationsJobInput, opts ...request.Option) (*CreateInferenceRecommendationsJobOutput, error) {
	req, out := c.CreateInferenceRecommendationsJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateLabelingJob = "CreateLabelingJob"

// CreateLabelingJobRequest generates a "aws/request.Request" representing the
// client's request for the CreateLabelingJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateLabelingJob for more information on using the CreateLabelingJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateLabelingJobRequest method.
//	req, resp := client.CreateLabelingJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateLabelingJob
func (c *SageMaker) CreateLabelingJobRequest(input *CreateLabelingJobInput) (req *request.Request, output *CreateLabelingJobOutput) {
	op := &request.Operation{
		Name:       opCreateLabelingJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateLabelingJobInput{}
	}

	output = &CreateLabelingJobOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateLabelingJob API operation for Amazon SageMaker Service.
//
// Creates a job that uses workers to label the data objects in your input dataset.
// You can use the labeled data to train machine learning models.
//
// You can select your workforce from one of three providers:
//
//   - A private workforce that you create. It can include employees, contractors,
//     and outside experts. Use a private workforce when want the data to stay
//     within your organization or when a specific set of skills is required.
//
//   - One or more vendors that you select from the Amazon Web Services Marketplace.
//     Vendors provide expertise in specific areas.
//
//   - The Amazon Mechanical Turk workforce. This is the largest workforce,
//     but it should only be used for public data or data that has been stripped
//     of any personally identifiable information.
//
// You can also use automated data labeling to reduce the number of data objects
// that need to be labeled by a human. Automated data labeling uses active learning
// to determine if a data object can be labeled by machine or if it needs to
// be sent to a human worker. For more information, see Using Automated Data
// Labeling (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-automated-labeling.html).
//
// The data objects to be labeled are contained in an Amazon S3 bucket. You
// create a manifest file that describes the location of each object. For more
// information, see Using Input and Output Data (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data.html).
//
// The output can be used as the manifest file for another labeling job or as
// training data for your machine learning models.
//
// You can use this operation to create a static labeling job or a streaming
// labeling job. A static labeling job stops if all data objects in the input
// manifest file identified in ManifestS3Uri have been labeled. A streaming
// labeling job runs perpetually until it is manually stopped, or remains idle
// for 10 days. You can send new data objects to an active (InProgress) streaming
// labeling job in real time. To learn how to create a static labeling job,
// see Create a Labeling Job (API) (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-create-labeling-job-api.html)
// in the Amazon SageMaker Developer Guide. To learn how to create a streaming
// labeling job, see Create a Streaming Labeling Job (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-streaming-create-job.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateLabelingJob for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateLabelingJob
func (c *SageMaker) CreateLabelingJob(input *CreateLabelingJobInput) (*CreateLabelingJobOutput, error) {
	req, out := c.CreateLabelingJobRequest(input)
	return out, req.Send()
}

// CreateLabelingJobWithContext is the same as CreateLabelingJob with the addition of
// the ability to pass a context and additional request options.
//
// See CreateLabelingJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateLabelingJobWithContext(ctx aws.Context, input *CreateLabelingJobInput, opts ...request.Option) (*CreateLabelingJobOutput, error) {
	req, out := c.CreateLabelingJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateModel = "CreateModel"

// CreateModelRequest generates a "aws/request.Request" representing the
// client's request for the CreateModel operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateModel for more information on using the CreateModel
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateModelRequest method.
//	req, resp := client.CreateModelRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModel
func (c *SageMaker) CreateModelRequest(input *CreateModelInput) (req *request.Request, output *CreateModelOutput) {
	op := &request.Operation{
		Name:       opCreateModel,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateModelInput{}
	}

	output = &CreateModelOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateModel API operation for Amazon SageMaker Service.
//
// Creates a model in SageMaker. In the request, you name the model and describe
// a primary container. For the primary container, you specify the Docker image
// that contains inference code, artifacts (from prior training), and a custom
// environment map that the inference code uses when you deploy the model for
// predictions.
//
// Use this API to create a model if you want to use SageMaker hosting services
// or run a batch transform job.
//
// To host your model, you create an endpoint configuration with the CreateEndpointConfig
// API, and then create an endpoint with the CreateEndpoint API. SageMaker then
// deploys all of the containers that you defined for the model in the hosting
// environment.
//
// For an example that calls this method when deploying a model to SageMaker
// hosting services, see Create a Model (Amazon Web Services SDK for Python
// (Boto 3)). (https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints-deployment.html#realtime-endpoints-deployment-create-model)
//
// To run a batch transform using your model, you start a job with the CreateTransformJob
// API. SageMaker uses your model and your dataset to get inferences which are
// then saved to a specified S3 location.
//
// In the request, you also provide an IAM role that SageMaker can assume to
// access model artifacts and docker image for deployment on ML compute hosting
// instances or for batch transform jobs. In addition, you also use the IAM
// role to manage permissions the inference code needs. For example, if the
// inference code access any other Amazon Web Services resources, you grant
// necessary permissions via this role.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateModel for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModel
func (c *SageMaker) CreateModel(input *CreateModelInput) (*CreateModelOutput, error) {
	req, out := c.CreateModelRequest(input)
	return out, req.Send()
}

// CreateModelWithContext is the same as CreateModel with the addition of
// the ability to pass a context and additional request options.
//
// See CreateModel for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateModelWithContext(ctx aws.Context, input *CreateModelInput, opts ...request.Option) (*CreateModelOutput, error) {
	req, out := c.CreateModelRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateModelBiasJobDefinition = "CreateModelBiasJobDefinition"

// CreateModelBiasJobDefinitionRequest generates a "aws/request.Request" representing the
// client's request for the CreateModelBiasJobDefinition operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateModelBiasJobDefinition for more information on using the CreateModelBiasJobDefinition
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateModelBiasJobDefinitionRequest method.
//	req, resp := client.CreateModelBiasJobDefinitionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelBiasJobDefinition
func (c *SageMaker) CreateModelBiasJobDefinitionRequest(input *CreateModelBiasJobDefinitionInput) (req *request.Request, output *CreateModelBiasJobDefinitionOutput) {
	op := &request.Operation{
		Name:       opCreateModelBiasJobDefinition,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateModelBiasJobDefinitionInput{}
	}

	output = &CreateModelBiasJobDefinitionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateModelBiasJobDefinition API operation for Amazon SageMaker Service.
//
// Creates the definition for a model bias job.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateModelBiasJobDefinition for usage and error information.
//
// Returned Error Types:
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelBiasJobDefinition
func (c *SageMaker) CreateModelBiasJobDefinition(input *CreateModelBiasJobDefinitionInput) (*CreateModelBiasJobDefinitionOutput, error) {
	req, out := c.CreateModelBiasJobDefinitionRequest(input)
	return out, req.Send()
}

// CreateModelBiasJobDefinitionWithContext is the same as CreateModelBiasJobDefinition with the addition of
// the ability to pass a context and additional request options.
//
// See CreateModelBiasJobDefinition for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateModelBiasJobDefinitionWithContext(ctx aws.Context, input *CreateModelBiasJobDefinitionInput, opts ...request.Option) (*CreateModelBiasJobDefinitionOutput, error) {
	req, out := c.CreateModelBiasJobDefinitionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateModelCard = "CreateModelCard"

// CreateModelCardRequest generates a "aws/request.Request" representing the
// client's request for the CreateModelCard operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateModelCard for more information on using the CreateModelCard
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateModelCardRequest method.
//	req, resp := client.CreateModelCardRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelCard
func (c *SageMaker) CreateModelCardRequest(input *CreateModelCardInput) (req *request.Request, output *CreateModelCardOutput) {
	op := &request.Operation{
		Name:       opCreateModelCard,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateModelCardInput{}
	}

	output = &CreateModelCardOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateModelCard API operation for Amazon SageMaker Service.
//
// Creates an Amazon SageMaker Model Card.
//
// For information about how to use model cards, see Amazon SageMaker Model
// Card (https://docs.aws.amazon.com/sagemaker/latest/dg/model-cards.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateModelCard for usage and error information.
//
// Returned Error Types:
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelCard
func (c *SageMaker) CreateModelCard(input *CreateModelCardInput) (*CreateModelCardOutput, error) {
	req, out := c.CreateModelCardRequest(input)
	return out, req.Send()
}

// CreateModelCardWithContext is the same as CreateModelCard with the addition of
// the ability to pass a context and additional request options.
//
// See CreateModelCard for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateModelCardWithContext(ctx aws.Context, input *CreateModelCardInput, opts ...request.Option) (*CreateModelCardOutput, error) {
	req, out := c.CreateModelCardRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateModelCardExportJob = "CreateModelCardExportJob"

// CreateModelCardExportJobRequest generates a "aws/request.Request" representing the
// client's request for the CreateModelCardExportJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateModelCardExportJob for more information on using the CreateModelCardExportJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateModelCardExportJobRequest method.
//	req, resp := client.CreateModelCardExportJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelCardExportJob
func (c *SageMaker) CreateModelCardExportJobRequest(input *CreateModelCardExportJobInput) (req *request.Request, output *CreateModelCardExportJobOutput) {
	op := &request.Operation{
		Name:       opCreateModelCardExportJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateModelCardExportJobInput{}
	}

	output = &CreateModelCardExportJobOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateModelCardExportJob API operation for Amazon SageMaker Service.
//
// Creates an Amazon SageMaker Model Card export job.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateModelCardExportJob for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFound
//     Resource being access is not found.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelCardExportJob
func (c *SageMaker) CreateModelCardExportJob(input *CreateModelCardExportJobInput) (*CreateModelCardExportJobOutput, error) {
	req, out := c.CreateModelCardExportJobRequest(input)
	return out, req.Send()
}

// CreateModelCardExportJobWithContext is the same as CreateModelCardExportJob with the addition of
// the ability to pass a context and additional request options.
//
// See CreateModelCardExportJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateModelCardExportJobWithContext(ctx aws.Context, input *CreateModelCardExportJobInput, opts ...request.Option) (*CreateModelCardExportJobOutput, error) {
	req, out := c.CreateModelCardExportJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateModelExplainabilityJobDefinition = "CreateModelExplainabilityJobDefinition"

// CreateModelExplainabilityJobDefinitionRequest generates a "aws/request.Request" representing the
// client's request for the CreateModelExplainabilityJobDefinition operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateModelExplainabilityJobDefinition for more information on using the CreateModelExplainabilityJobDefinition
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateModelExplainabilityJobDefinitionRequest method.
//	req, resp := client.CreateModelExplainabilityJobDefinitionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelExplainabilityJobDefinition
func (c *SageMaker) CreateModelExplainabilityJobDefinitionRequest(input *CreateModelExplainabilityJobDefinitionInput) (req *request.Request, output *CreateModelExplainabilityJobDefinitionOutput) {
	op := &request.Operation{
		Name:       opCreateModelExplainabilityJobDefinition,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateModelExplainabilityJobDefinitionInput{}
	}

	output = &CreateModelExplainabilityJobDefinitionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateModelExplainabilityJobDefinition API operation for Amazon SageMaker Service.
//
// Creates the definition for a model explainability job.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateModelExplainabilityJobDefinition for usage and error information.
//
// Returned Error Types:
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelExplainabilityJobDefinition
func (c *SageMaker) CreateModelExplainabilityJobDefinition(input *CreateModelExplainabilityJobDefinitionInput) (*CreateModelExplainabilityJobDefinitionOutput, error) {
	req, out := c.CreateModelExplainabilityJobDefinitionRequest(input)
	return out, req.Send()
}

// CreateModelExplainabilityJobDefinitionWithContext is the same as CreateModelExplainabilityJobDefinition with the addition of
// the ability to pass a context and additional request options.
//
// See CreateModelExplainabilityJobDefinition for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateModelExplainabilityJobDefinitionWithContext(ctx aws.Context, input *CreateModelExplainabilityJobDefinitionInput, opts ...request.Option) (*CreateModelExplainabilityJobDefinitionOutput, error) {
	req, out := c.CreateModelExplainabilityJobDefinitionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateModelPackage = "CreateModelPackage"

// CreateModelPackageRequest generates a "aws/request.Request" representing the
// client's request for the CreateModelPackage operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateModelPackage for more information on using the CreateModelPackage
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateModelPackageRequest method.
//	req, resp := client.CreateModelPackageRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelPackage
func (c *SageMaker) CreateModelPackageRequest(input *CreateModelPackageInput) (req *request.Request, output *CreateModelPackageOutput) {
	op := &request.Operation{
		Name:       opCreateModelPackage,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateModelPackageInput{}
	}

	output = &CreateModelPackageOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateModelPackage API operation for Amazon SageMaker Service.
//
// Creates a model package that you can use to create SageMaker models or list
// on Amazon Web Services Marketplace, or a versioned model that is part of
// a model group. Buyers can subscribe to model packages listed on Amazon Web
// Services Marketplace to create models in SageMaker.
//
// To create a model package by specifying a Docker container that contains
// your inference code and the Amazon S3 location of your model artifacts, provide
// values for InferenceSpecification. To create a model from an algorithm resource
// that you created or subscribed to in Amazon Web Services Marketplace, provide
// a value for SourceAlgorithmSpecification.
//
// There are two types of model packages:
//
//   - Versioned - a model that is part of a model group in the model registry.
//
//   - Unversioned - a model package that is not part of a model group.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateModelPackage for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelPackage
func (c *SageMaker) CreateModelPackage(input *CreateModelPackageInput) (*CreateModelPackageOutput, error) {
	req, out := c.CreateModelPackageRequest(input)
	return out, req.Send()
}

// CreateModelPackageWithContext is the same as CreateModelPackage with the addition of
// the ability to pass a context and additional request options.
//
// See CreateModelPackage for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateModelPackageWithContext(ctx aws.Context, input *CreateModelPackageInput, opts ...request.Option) (*CreateModelPackageOutput, error) {
	req, out := c.CreateModelPackageRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateModelPackageGroup = "CreateModelPackageGroup"

// CreateModelPackageGroupRequest generates a "aws/request.Request" representing the
// client's request for the CreateModelPackageGroup operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateModelPackageGroup for more information on using the CreateModelPackageGroup
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateModelPackageGroupRequest method.
//	req, resp := client.CreateModelPackageGroupRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelPackageGroup
func (c *SageMaker) CreateModelPackageGroupRequest(input *CreateModelPackageGroupInput) (req *request.Request, output *CreateModelPackageGroupOutput) {
	op := &request.Operation{
		Name:       opCreateModelPackageGroup,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateModelPackageGroupInput{}
	}

	output = &CreateModelPackageGroupOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateModelPackageGroup API operation for Amazon SageMaker Service.
//
// Creates a model group. A model group contains a group of model versions.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateModelPackageGroup for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelPackageGroup
func (c *SageMaker) CreateModelPackageGroup(input *CreateModelPackageGroupInput) (*CreateModelPackageGroupOutput, error) {
	req, out := c.CreateModelPackageGroupRequest(input)
	return out, req.Send()
}

// CreateModelPackageGroupWithContext is the same as CreateModelPackageGroup with the addition of
// the ability to pass a context and additional request options.
//
// See CreateModelPackageGroup for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateModelPackageGroupWithContext(ctx aws.Context, input *CreateModelPackageGroupInput, opts ...request.Option) (*CreateModelPackageGroupOutput, error) {
	req, out := c.CreateModelPackageGroupRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateModelQualityJobDefinition = "CreateModelQualityJobDefinition"

// CreateModelQualityJobDefinitionRequest generates a "aws/request.Request" representing the
// client's request for the CreateModelQualityJobDefinition operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateModelQualityJobDefinition for more information on using the CreateModelQualityJobDefinition
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateModelQualityJobDefinitionRequest method.
//	req, resp := client.CreateModelQualityJobDefinitionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelQualityJobDefinition
func (c *SageMaker) CreateModelQualityJobDefinitionRequest(input *CreateModelQualityJobDefinitionInput) (req *request.Request, output *CreateModelQualityJobDefinitionOutput) {
	op := &request.Operation{
		Name:       opCreateModelQualityJobDefinition,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateModelQualityJobDefinitionInput{}
	}

	output = &CreateModelQualityJobDefinitionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateModelQualityJobDefinition API operation for Amazon SageMaker Service.
//
// Creates a definition for a job that monitors model quality and drift. For
// information about model monitor, see Amazon SageMaker Model Monitor (https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateModelQualityJobDefinition for usage and error information.
//
// Returned Error Types:
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateModelQualityJobDefinition
func (c *SageMaker) CreateModelQualityJobDefinition(input *CreateModelQualityJobDefinitionInput) (*CreateModelQualityJobDefinitionOutput, error) {
	req, out := c.CreateModelQualityJobDefinitionRequest(input)
	return out, req.Send()
}

// CreateModelQualityJobDefinitionWithContext is the same as CreateModelQualityJobDefinition with the addition of
// the ability to pass a context and additional request options.
//
// See CreateModelQualityJobDefinition for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateModelQualityJobDefinitionWithContext(ctx aws.Context, input *CreateModelQualityJobDefinitionInput, opts ...request.Option) (*CreateModelQualityJobDefinitionOutput, error) {
	req, out := c.CreateModelQualityJobDefinitionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateMonitoringSchedule = "CreateMonitoringSchedule"

// CreateMonitoringScheduleRequest generates a "aws/request.Request" representing the
// client's request for the CreateMonitoringSchedule operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateMonitoringSchedule for more information on using the CreateMonitoringSchedule
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateMonitoringScheduleRequest method.
//	req, resp := client.CreateMonitoringScheduleRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateMonitoringSchedule
func (c *SageMaker) CreateMonitoringScheduleRequest(input *CreateMonitoringScheduleInput) (req *request.Request, output *CreateMonitoringScheduleOutput) {
	op := &request.Operation{
		Name:       opCreateMonitoringSchedule,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateMonitoringScheduleInput{}
	}

	output = &CreateMonitoringScheduleOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateMonitoringSchedule API operation for Amazon SageMaker Service.
//
// Creates a schedule that regularly starts Amazon SageMaker Processing Jobs
// to monitor the data captured for an Amazon SageMaker Endpoint.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateMonitoringSchedule for usage and error information.
//
// Returned Error Types:
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateMonitoringSchedule
func (c *SageMaker) CreateMonitoringSchedule(input *CreateMonitoringScheduleInput) (*CreateMonitoringScheduleOutput, error) {
	req, out := c.CreateMonitoringScheduleRequest(input)
	return out, req.Send()
}

// CreateMonitoringScheduleWithContext is the same as CreateMonitoringSchedule with the addition of
// the ability to pass a context and additional request options.
//
// See CreateMonitoringSchedule for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateMonitoringScheduleWithContext(ctx aws.Context, input *CreateMonitoringScheduleInput, opts ...request.Option) (*CreateMonitoringScheduleOutput, error) {
	req, out := c.CreateMonitoringScheduleRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateNotebookInstance = "CreateNotebookInstance"

// CreateNotebookInstanceRequest generates a "aws/request.Request" representing the
// client's request for the CreateNotebookInstance operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateNotebookInstance for more information on using the CreateNotebookInstance
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateNotebookInstanceRequest method.
//	req, resp := client.CreateNotebookInstanceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateNotebookInstance
func (c *SageMaker) CreateNotebookInstanceRequest(input *CreateNotebookInstanceInput) (req *request.Request, output *CreateNotebookInstanceOutput) {
	op := &request.Operation{
		Name:       opCreateNotebookInstance,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateNotebookInstanceInput{}
	}

	output = &CreateNotebookInstanceOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateNotebookInstance API operation for Amazon SageMaker Service.
//
// Creates an SageMaker notebook instance. A notebook instance is a machine
// learning (ML) compute instance running on a Jupyter notebook.
//
// In a CreateNotebookInstance request, specify the type of ML compute instance
// that you want to run. SageMaker launches the instance, installs common libraries
// that you can use to explore datasets for model training, and attaches an
// ML storage volume to the notebook instance.
//
// SageMaker also provides a set of example notebooks. Each notebook demonstrates
// how to use SageMaker with a specific algorithm or with a machine learning
// framework.
//
// After receiving the request, SageMaker does the following:
//
// Creates a network interface in the SageMaker VPC.
//
// (Option) If you specified SubnetId, SageMaker creates a network interface
// in your own VPC, which is inferred from the subnet ID that you provide in
// the input. When creating this network interface, SageMaker attaches the security
// group that you specified in the request to the network interface that it
// creates in your VPC.
//
// Launches an EC2 instance of the type specified in the request in the SageMaker
// VPC. If you specified SubnetId of your VPC, SageMaker specifies both network
// interfaces when launching this instance. This enables inbound traffic from
// your own VPC to the notebook instance, assuming that the security groups
// allow it.
//
// After creating the notebook instance, SageMaker returns its Amazon Resource
// Name (ARN). You can't change the name of a notebook instance after you create
// it.
//
// After SageMaker creates the notebook instance, you can connect to the Jupyter
// server and work in Jupyter notebooks. For example, you can write code to
// explore a dataset that you can use for model training, train a model, host
// models by creating SageMaker endpoints, and validate hosted models.
//
// For more information, see How It Works (https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateNotebookInstance for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateNotebookInstance
func (c *SageMaker) CreateNotebookInstance(input *CreateNotebookInstanceInput) (*CreateNotebookInstanceOutput, error) {
	req, out := c.CreateNotebookInstanceRequest(input)
	return out, req.Send()
}

// CreateNotebookInstanceWithContext is the same as CreateNotebookInstance with the addition of
// the ability to pass a context and additional request options.
//
// See CreateNotebookInstance for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateNotebookInstanceWithContext(ctx aws.Context, input *CreateNotebookInstanceInput, opts ...request.Option) (*CreateNotebookInstanceOutput, error) {
	req, out := c.CreateNotebookInstanceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateNotebookInstanceLifecycleConfig = "CreateNotebookInstanceLifecycleConfig"

// CreateNotebookInstanceLifecycleConfigRequest generates a "aws/request.Request" representing the
// client's request for the CreateNotebookInstanceLifecycleConfig operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateNotebookInstanceLifecycleConfig for more information on using the CreateNotebookInstanceLifecycleConfig
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateNotebookInstanceLifecycleConfigRequest method.
//	req, resp := client.CreateNotebookInstanceLifecycleConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateNotebookInstanceLifecycleConfig
func (c *SageMaker) CreateNotebookInstanceLifecycleConfigRequest(input *CreateNotebookInstanceLifecycleConfigInput) (req *request.Request, output *CreateNotebookInstanceLifecycleConfigOutput) {
	op := &request.Operation{
		Name:       opCreateNotebookInstanceLifecycleConfig,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateNotebookInstanceLifecycleConfigInput{}
	}

	output = &CreateNotebookInstanceLifecycleConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateNotebookInstanceLifecycleConfig API operation for Amazon SageMaker Service.
//
// Creates a lifecycle configuration that you can associate with a notebook
// instance. A lifecycle configuration is a collection of shell scripts that
// run when you create or start a notebook instance.
//
// Each lifecycle configuration script has a limit of 16384 characters.
//
// The value of the $PATH environment variable that is available to both scripts
// is /sbin:bin:/usr/sbin:/usr/bin.
//
// View CloudWatch Logs for notebook instance lifecycle configurations in log
// group /aws/sagemaker/NotebookInstances in log stream [notebook-instance-name]/[LifecycleConfigHook].
//
// Lifecycle configuration scripts cannot run for longer than 5 minutes. If
// a script runs for longer than 5 minutes, it fails and the notebook instance
// is not created or started.
//
// For information about notebook instance lifestyle configurations, see Step
// 2.1: (Optional) Customize a Notebook Instance (https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateNotebookInstanceLifecycleConfig for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateNotebookInstanceLifecycleConfig
func (c *SageMaker) CreateNotebookInstanceLifecycleConfig(input *CreateNotebookInstanceLifecycleConfigInput) (*CreateNotebookInstanceLifecycleConfigOutput, error) {
	req, out := c.CreateNotebookInstanceLifecycleConfigRequest(input)
	return out, req.Send()
}

// CreateNotebookInstanceLifecycleConfigWithContext is the same as CreateNotebookInstanceLifecycleConfig with the addition of
// the ability to pass a context and additional request options.
//
// See CreateNotebookInstanceLifecycleConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateNotebookInstanceLifecycleConfigWithContext(ctx aws.Context, input *CreateNotebookInstanceLifecycleConfigInput, opts ...request.Option) (*CreateNotebookInstanceLifecycleConfigOutput, error) {
	req, out := c.CreateNotebookInstanceLifecycleConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreatePipeline = "CreatePipeline"

// CreatePipelineRequest generates a "aws/request.Request" representing the
// client's request for the CreatePipeline operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreatePipeline for more information on using the CreatePipeline
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreatePipelineRequest method.
//	req, resp := client.CreatePipelineRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreatePipeline
func (c *SageMaker) CreatePipelineRequest(input *CreatePipelineInput) (req *request.Request, output *CreatePipelineOutput) {
	op := &request.Operation{
		Name:       opCreatePipeline,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreatePipelineInput{}
	}

	output = &CreatePipelineOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreatePipeline API operation for Amazon SageMaker Service.
//
// Creates a pipeline using a JSON pipeline definition.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreatePipeline for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFound
//     Resource being access is not found.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreatePipeline
func (c *SageMaker) CreatePipeline(input *CreatePipelineInput) (*CreatePipelineOutput, error) {
	req, out := c.CreatePipelineRequest(input)
	return out, req.Send()
}

// CreatePipelineWithContext is the same as CreatePipeline with the addition of
// the ability to pass a context and additional request options.
//
// See CreatePipeline for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreatePipelineWithContext(ctx aws.Context, input *CreatePipelineInput, opts ...request.Option) (*CreatePipelineOutput, error) {
	req, out := c.CreatePipelineRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreatePresignedDomainUrl = "CreatePresignedDomainUrl"

// CreatePresignedDomainUrlRequest generates a "aws/request.Request" representing the
// client's request for the CreatePresignedDomainUrl operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreatePresignedDomainUrl for more information on using the CreatePresignedDomainUrl
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreatePresignedDomainUrlRequest method.
//	req, resp := client.CreatePresignedDomainUrlRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreatePresignedDomainUrl
func (c *SageMaker) CreatePresignedDomainUrlRequest(input *CreatePresignedDomainUrlInput) (req *request.Request, output *CreatePresignedDomainUrlOutput) {
	op := &request.Operation{
		Name:       opCreatePresignedDomainUrl,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreatePresignedDomainUrlInput{}
	}

	output = &CreatePresignedDomainUrlOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreatePresignedDomainUrl API operation for Amazon SageMaker Service.
//
// Creates a URL for a specified UserProfile in a Domain. When accessed in a
// web browser, the user will be automatically signed in to the domain, and
// granted access to all of the Apps and files associated with the Domain's
// Amazon Elastic File System (EFS) volume. This operation can only be called
// when the authentication mode equals IAM.
//
// The IAM role or user passed to this API defines the permissions to access
// the app. Once the presigned URL is created, no additional permission is required
// to access this URL. IAM authorization policies for this API are also enforced
// for every HTTP request and WebSocket frame that attempts to connect to the
// app.
//
// You can restrict access to this API and to the URL that it returns to a list
// of IP addresses, Amazon VPCs or Amazon VPC Endpoints that you specify. For
// more information, see Connect to Amazon SageMaker Studio Through an Interface
// VPC Endpoint (https://docs.aws.amazon.com/sagemaker/latest/dg/studio-interface-endpoint.html) .
//
// The URL that you get from a call to CreatePresignedDomainUrl has a default
// timeout of 5 minutes. You can configure this value using ExpiresInSeconds.
// If you try to use the URL after the timeout limit expires, you are directed
// to the Amazon Web Services console sign-in page.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreatePresignedDomainUrl for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreatePresignedDomainUrl
func (c *SageMaker) CreatePresignedDomainUrl(input *CreatePresignedDomainUrlInput) (*CreatePresignedDomainUrlOutput, error) {
	req, out := c.CreatePresignedDomainUrlRequest(input)
	return out, req.Send()
}

// CreatePresignedDomainUrlWithContext is the same as CreatePresignedDomainUrl with the addition of
// the ability to pass a context and additional request options.
//
// See CreatePresignedDomainUrl for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreatePresignedDomainUrlWithContext(ctx aws.Context, input *CreatePresignedDomainUrlInput, opts ...request.Option) (*CreatePresignedDomainUrlOutput, error) {
	req, out := c.CreatePresignedDomainUrlRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreatePresignedNotebookInstanceUrl = "CreatePresignedNotebookInstanceUrl"

// CreatePresignedNotebookInstanceUrlRequest generates a "aws/request.Request" representing the
// client's request for the CreatePresignedNotebookInstanceUrl operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreatePresignedNotebookInstanceUrl for more information on using the CreatePresignedNotebookInstanceUrl
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreatePresignedNotebookInstanceUrlRequest method.
//	req, resp := client.CreatePresignedNotebookInstanceUrlRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreatePresignedNotebookInstanceUrl
func (c *SageMaker) CreatePresignedNotebookInstanceUrlRequest(input *CreatePresignedNotebookInstanceUrlInput) (req *request.Request, output *CreatePresignedNotebookInstanceUrlOutput) {
	op := &request.Operation{
		Name:       opCreatePresignedNotebookInstanceUrl,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreatePresignedNotebookInstanceUrlInput{}
	}

	output = &CreatePresignedNotebookInstanceUrlOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreatePresignedNotebookInstanceUrl API operation for Amazon SageMaker Service.
//
// Returns a URL that you can use to connect to the Jupyter server from a notebook
// instance. In the SageMaker console, when you choose Open next to a notebook
// instance, SageMaker opens a new tab showing the Jupyter server home page
// from the notebook instance. The console uses this API to get the URL and
// show the page.
//
// The IAM role or user used to call this API defines the permissions to access
// the notebook instance. Once the presigned URL is created, no additional permission
// is required to access this URL. IAM authorization policies for this API are
// also enforced for every HTTP request and WebSocket frame that attempts to
// connect to the notebook instance.
//
// You can restrict access to this API and to the URL that it returns to a list
// of IP addresses that you specify. Use the NotIpAddress condition operator
// and the aws:SourceIP condition context key to specify the list of IP addresses
// that you want to have access to the notebook instance. For more information,
// see Limit Access to a Notebook Instance by IP Address (https://docs.aws.amazon.com/sagemaker/latest/dg/security_iam_id-based-policy-examples.html#nbi-ip-filter).
//
// The URL that you get from a call to CreatePresignedNotebookInstanceUrl (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html)
// is valid only for 5 minutes. If you try to use the URL after the 5-minute
// limit expires, you are directed to the Amazon Web Services console sign-in
// page.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreatePresignedNotebookInstanceUrl for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreatePresignedNotebookInstanceUrl
func (c *SageMaker) CreatePresignedNotebookInstanceUrl(input *CreatePresignedNotebookInstanceUrlInput) (*CreatePresignedNotebookInstanceUrlOutput, error) {
	req, out := c.CreatePresignedNotebookInstanceUrlRequest(input)
	return out, req.Send()
}

// CreatePresignedNotebookInstanceUrlWithContext is the same as CreatePresignedNotebookInstanceUrl with the addition of
// the ability to pass a context and additional request options.
//
// See CreatePresignedNotebookInstanceUrl for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreatePresignedNotebookInstanceUrlWithContext(ctx aws.Context, input *CreatePresignedNotebookInstanceUrlInput, opts ...request.Option) (*CreatePresignedNotebookInstanceUrlOutput, error) {
	req, out := c.CreatePresignedNotebookInstanceUrlRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateProcessingJob = "CreateProcessingJob"

// CreateProcessingJobRequest generates a "aws/request.Request" representing the
// client's request for the CreateProcessingJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateProcessingJob for more information on using the CreateProcessingJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateProcessingJobRequest method.
//	req, resp := client.CreateProcessingJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateProcessingJob
func (c *SageMaker) CreateProcessingJobRequest(input *CreateProcessingJobInput) (req *request.Request, output *CreateProcessingJobOutput) {
	op := &request.Operation{
		Name:       opCreateProcessingJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateProcessingJobInput{}
	}

	output = &CreateProcessingJobOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateProcessingJob API operation for Amazon SageMaker Service.
//
// Creates a processing job.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateProcessingJob for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateProcessingJob
func (c *SageMaker) CreateProcessingJob(input *CreateProcessingJobInput) (*CreateProcessingJobOutput, error) {
	req, out := c.CreateProcessingJobRequest(input)
	return out, req.Send()
}

// CreateProcessingJobWithContext is the same as CreateProcessingJob with the addition of
// the ability to pass a context and additional request options.
//
// See CreateProcessingJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateProcessingJobWithContext(ctx aws.Context, input *CreateProcessingJobInput, opts ...request.Option) (*CreateProcessingJobOutput, error) {
	req, out := c.CreateProcessingJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateProject = "CreateProject"

// CreateProjectRequest generates a "aws/request.Request" representing the
// client's request for the CreateProject operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateProject for more information on using the CreateProject
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateProjectRequest method.
//	req, resp := client.CreateProjectRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateProject
func (c *SageMaker) CreateProjectRequest(input *CreateProjectInput) (req *request.Request, output *CreateProjectOutput) {
	op := &request.Operation{
		Name:       opCreateProject,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateProjectInput{}
	}

	output = &CreateProjectOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateProject API operation for Amazon SageMaker Service.
//
// Creates a machine learning (ML) project that can contain one or more templates
// that set up an ML pipeline from training to deploying an approved model.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateProject for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateProject
func (c *SageMaker) CreateProject(input *CreateProjectInput) (*CreateProjectOutput, error) {
	req, out := c.CreateProjectRequest(input)
	return out, req.Send()
}

// CreateProjectWithContext is the same as CreateProject with the addition of
// the ability to pass a context and additional request options.
//
// See CreateProject for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateProjectWithContext(ctx aws.Context, input *CreateProjectInput, opts ...request.Option) (*CreateProjectOutput, error) {
	req, out := c.CreateProjectRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateSpace = "CreateSpace"

// CreateSpaceRequest generates a "aws/request.Request" representing the
// client's request for the CreateSpace operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateSpace for more information on using the CreateSpace
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateSpaceRequest method.
//	req, resp := client.CreateSpaceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateSpace
func (c *SageMaker) CreateSpaceRequest(input *CreateSpaceInput) (req *request.Request, output *CreateSpaceOutput) {
	op := &request.Operation{
		Name:       opCreateSpace,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateSpaceInput{}
	}

	output = &CreateSpaceOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateSpace API operation for Amazon SageMaker Service.
//
// Creates a space used for real time collaboration in a Domain.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateSpace for usage and error information.
//
// Returned Error Types:
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateSpace
func (c *SageMaker) CreateSpace(input *CreateSpaceInput) (*CreateSpaceOutput, error) {
	req, out := c.CreateSpaceRequest(input)
	return out, req.Send()
}

// CreateSpaceWithContext is the same as CreateSpace with the addition of
// the ability to pass a context and additional request options.
//
// See CreateSpace for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateSpaceWithContext(ctx aws.Context, input *CreateSpaceInput, opts ...request.Option) (*CreateSpaceOutput, error) {
	req, out := c.CreateSpaceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateStudioLifecycleConfig = "CreateStudioLifecycleConfig"

// CreateStudioLifecycleConfigRequest generates a "aws/request.Request" representing the
// client's request for the CreateStudioLifecycleConfig operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateStudioLifecycleConfig for more information on using the CreateStudioLifecycleConfig
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateStudioLifecycleConfigRequest method.
//	req, resp := client.CreateStudioLifecycleConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateStudioLifecycleConfig
func (c *SageMaker) CreateStudioLifecycleConfigRequest(input *CreateStudioLifecycleConfigInput) (req *request.Request, output *CreateStudioLifecycleConfigOutput) {
	op := &request.Operation{
		Name:       opCreateStudioLifecycleConfig,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateStudioLifecycleConfigInput{}
	}

	output = &CreateStudioLifecycleConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateStudioLifecycleConfig API operation for Amazon SageMaker Service.
//
// Creates a new Amazon SageMaker Studio Lifecycle Configuration.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateStudioLifecycleConfig for usage and error information.
//
// Returned Error Types:
//   - ResourceInUse
//     Resource being accessed is in use.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateStudioLifecycleConfig
func (c *SageMaker) CreateStudioLifecycleConfig(input *CreateStudioLifecycleConfigInput) (*CreateStudioLifecycleConfigOutput, error) {
	req, out := c.CreateStudioLifecycleConfigRequest(input)
	return out, req.Send()
}

// CreateStudioLifecycleConfigWithContext is the same as CreateStudioLifecycleConfig with the addition of
// the ability to pass a context and additional request options.
//
// See CreateStudioLifecycleConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateStudioLifecycleConfigWithContext(ctx aws.Context, input *CreateStudioLifecycleConfigInput, opts ...request.Option) (*CreateStudioLifecycleConfigOutput, error) {
	req, out := c.CreateStudioLifecycleConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateTrainingJob = "CreateTrainingJob"

// CreateTrainingJobRequest generates a "aws/request.Request" representing the
// client's request for the CreateTrainingJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateTrainingJob for more information on using the CreateTrainingJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateTrainingJobRequest method.
//	req, resp := client.CreateTrainingJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateTrainingJob
func (c *SageMaker) CreateTrainingJobRequest(input *CreateTrainingJobInput) (req *request.Request, output *CreateTrainingJobOutput) {
	op := &request.Operation{
		Name:       opCreateTrainingJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateTrainingJobInput{}
	}

	output = &CreateTrainingJobOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateTrainingJob API operation for Amazon SageMaker Service.
//
// Starts a model training job. After training completes, SageMaker saves the
// resulting model artifacts to an Amazon S3 location that you specify.
//
// If you choose to host your model using SageMaker hosting services, you can
// use the resulting model artifacts as part of the model. You can also use
// the artifacts in a machine learning service other than SageMaker, provided
// that you know how to use them for inference.
//
// In the request body, you provide the following:
//
//   - AlgorithmSpecification - Identifies the training algorithm to use.
//
//   - HyperParameters - Specify these algorithm-specific parameters to enable
//     the estimation of model parameters during training. Hyperparameters can
//     be tuned to optimize this learning process. For a list of hyperparameters
//     for each training algorithm provided by SageMaker, see Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html).
//     Do not include any security-sensitive information including account access
//     IDs, secrets or tokens in any hyperparameter field. If the use of security-sensitive
//     credentials are detected, SageMaker will reject your training job request
//     and return an exception error.
//
//   - InputDataConfig - Describes the input required by the training job and
//     the Amazon S3, EFS, or FSx location where it is stored.
//
//   - OutputDataConfig - Identifies the Amazon S3 bucket where you want SageMaker
//     to save the results of model training.
//
//   - ResourceConfig - Identifies the resources, ML compute instances, and
//     ML storage volumes to deploy for model training. In distributed training,
//     you specify more than one instance.
//
//   - EnableManagedSpotTraining - Optimize the cost of training machine learning
//     models by up to 80% by using Amazon EC2 Spot instances. For more information,
//     see Managed Spot Training (https://docs.aws.amazon.com/sagemaker/latest/dg/model-managed-spot-training.html).
//
//   - RoleArn - The Amazon Resource Name (ARN) that SageMaker assumes to perform
//     tasks on your behalf during model training. You must grant this role the
//     necessary permissions so that SageMaker can successfully complete model
//     training.
//
//   - StoppingCondition - To help cap training costs, use MaxRuntimeInSeconds
//     to set a time limit for training. Use MaxWaitTimeInSeconds to specify
//     how long a managed spot training job has to complete.
//
//   - Environment - The environment variables to set in the Docker container.
//
//   - RetryStrategy - The number of times to retry the job when the job fails
//     due to an InternalServerError.
//
// For more information about SageMaker, see How It Works (https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateTrainingJob for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateTrainingJob
func (c *SageMaker) CreateTrainingJob(input *CreateTrainingJobInput) (*CreateTrainingJobOutput, error) {
	req, out := c.CreateTrainingJobRequest(input)
	return out, req.Send()
}

// CreateTrainingJobWithContext is the same as CreateTrainingJob with the addition of
// the ability to pass a context and additional request options.
//
// See CreateTrainingJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateTrainingJobWithContext(ctx aws.Context, input *CreateTrainingJobInput, opts ...request.Option) (*CreateTrainingJobOutput, error) {
	req, out := c.CreateTrainingJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateTransformJob = "CreateTransformJob"

// CreateTransformJobRequest generates a "aws/request.Request" representing the
// client's request for the CreateTransformJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateTransformJob for more information on using the CreateTransformJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateTransformJobRequest method.
//	req, resp := client.CreateTransformJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateTransformJob
func (c *SageMaker) CreateTransformJobRequest(input *CreateTransformJobInput) (req *request.Request, output *CreateTransformJobOutput) {
	op := &request.Operation{
		Name:       opCreateTransformJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateTransformJobInput{}
	}

	output = &CreateTransformJobOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateTransformJob API operation for Amazon SageMaker Service.
//
// Starts a transform job. A transform job uses a trained model to get inferences
// on a dataset and saves these results to an Amazon S3 location that you specify.
//
// To perform batch transformations, you create a transform job and use the
// data that you have readily available.
//
// In the request body, you provide the following:
//
//   - TransformJobName - Identifies the transform job. The name must be unique
//     within an Amazon Web Services Region in an Amazon Web Services account.
//
//   - ModelName - Identifies the model to use. ModelName must be the name
//     of an existing Amazon SageMaker model in the same Amazon Web Services
//     Region and Amazon Web Services account. For information on creating a
//     model, see CreateModel (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html).
//
//   - TransformInput - Describes the dataset to be transformed and the Amazon
//     S3 location where it is stored.
//
//   - TransformOutput - Identifies the Amazon S3 location where you want Amazon
//     SageMaker to save the results from the transform job.
//
//   - TransformResources - Identifies the ML compute instances for the transform
//     job.
//
// For more information about how batch transformation works, see Batch Transform
// (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateTransformJob for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateTransformJob
func (c *SageMaker) CreateTransformJob(input *CreateTransformJobInput) (*CreateTransformJobOutput, error) {
	req, out := c.CreateTransformJobRequest(input)
	return out, req.Send()
}

// CreateTransformJobWithContext is the same as CreateTransformJob with the addition of
// the ability to pass a context and additional request options.
//
// See CreateTransformJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateTransformJobWithContext(ctx aws.Context, input *CreateTransformJobInput, opts ...request.Option) (*CreateTransformJobOutput, error) {
	req, out := c.CreateTransformJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateTrial = "CreateTrial"

// CreateTrialRequest generates a "aws/request.Request" representing the
// client's request for the CreateTrial operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateTrial for more information on using the CreateTrial
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateTrialRequest method.
//	req, resp := client.CreateTrialRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateTrial
func (c *SageMaker) CreateTrialRequest(input *CreateTrialInput) (req *request.Request, output *CreateTrialOutput) {
	op := &request.Operation{
		Name:       opCreateTrial,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateTrialInput{}
	}

	output = &CreateTrialOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateTrial API operation for Amazon SageMaker Service.
//
// Creates an SageMaker trial. A trial is a set of steps called trial components
// that produce a machine learning model. A trial is part of a single SageMaker
// experiment.
//
// When you use SageMaker Studio or the SageMaker Python SDK, all experiments,
// trials, and trial components are automatically tracked, logged, and indexed.
// When you use the Amazon Web Services SDK for Python (Boto), you must use
// the logging APIs provided by the SDK.
//
// You can add tags to a trial and then use the Search (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html)
// API to search for the tags.
//
// To get a list of all your trials, call the ListTrials (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListTrials.html)
// API. To view a trial's properties, call the DescribeTrial (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrial.html)
// API. To create a trial component, call the CreateTrialComponent (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrialComponent.html)
// API.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateTrial for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFound
//     Resource being access is not found.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateTrial
func (c *SageMaker) CreateTrial(input *CreateTrialInput) (*CreateTrialOutput, error) {
	req, out := c.CreateTrialRequest(input)
	return out, req.Send()
}

// CreateTrialWithContext is the same as CreateTrial with the addition of
// the ability to pass a context and additional request options.
//
// See CreateTrial for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateTrialWithContext(ctx aws.Context, input *CreateTrialInput, opts ...request.Option) (*CreateTrialOutput, error) {
	req, out := c.CreateTrialRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateTrialComponent = "CreateTrialComponent"

// CreateTrialComponentRequest generates a "aws/request.Request" representing the
// client's request for the CreateTrialComponent operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateTrialComponent for more information on using the CreateTrialComponent
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateTrialComponentRequest method.
//	req, resp := client.CreateTrialComponentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateTrialComponent
func (c *SageMaker) CreateTrialComponentRequest(input *CreateTrialComponentInput) (req *request.Request, output *CreateTrialComponentOutput) {
	op := &request.Operation{
		Name:       opCreateTrialComponent,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateTrialComponentInput{}
	}

	output = &CreateTrialComponentOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateTrialComponent API operation for Amazon SageMaker Service.
//
// Creates a trial component, which is a stage of a machine learning trial.
// A trial is composed of one or more trial components. A trial component can
// be used in multiple trials.
//
// Trial components include pre-processing jobs, training jobs, and batch transform
// jobs.
//
// When you use SageMaker Studio or the SageMaker Python SDK, all experiments,
// trials, and trial components are automatically tracked, logged, and indexed.
// When you use the Amazon Web Services SDK for Python (Boto), you must use
// the logging APIs provided by the SDK.
//
// You can add tags to a trial component and then use the Search (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html)
// API to search for the tags.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateTrialComponent for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateTrialComponent
func (c *SageMaker) CreateTrialComponent(input *CreateTrialComponentInput) (*CreateTrialComponentOutput, error) {
	req, out := c.CreateTrialComponentRequest(input)
	return out, req.Send()
}

// CreateTrialComponentWithContext is the same as CreateTrialComponent with the addition of
// the ability to pass a context and additional request options.
//
// See CreateTrialComponent for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateTrialComponentWithContext(ctx aws.Context, input *CreateTrialComponentInput, opts ...request.Option) (*CreateTrialComponentOutput, error) {
	req, out := c.CreateTrialComponentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateUserProfile = "CreateUserProfile"

// CreateUserProfileRequest generates a "aws/request.Request" representing the
// client's request for the CreateUserProfile operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateUserProfile for more information on using the CreateUserProfile
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateUserProfileRequest method.
//	req, resp := client.CreateUserProfileRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateUserProfile
func (c *SageMaker) CreateUserProfileRequest(input *CreateUserProfileInput) (req *request.Request, output *CreateUserProfileOutput) {
	op := &request.Operation{
		Name:       opCreateUserProfile,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateUserProfileInput{}
	}

	output = &CreateUserProfileOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateUserProfile API operation for Amazon SageMaker Service.
//
// Creates a user profile. A user profile represents a single user within a
// domain, and is the main way to reference a "person" for the purposes of sharing,
// reporting, and other user-oriented features. This entity is created when
// a user onboards to a domain. If an administrator invites a person by email
// or imports them from IAM Identity Center, a user profile is automatically
// created. A user profile is the primary holder of settings for an individual
// user and has a reference to the user's private Amazon Elastic File System
// (EFS) home directory.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateUserProfile for usage and error information.
//
// Returned Error Types:
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateUserProfile
func (c *SageMaker) CreateUserProfile(input *CreateUserProfileInput) (*CreateUserProfileOutput, error) {
	req, out := c.CreateUserProfileRequest(input)
	return out, req.Send()
}

// CreateUserProfileWithContext is the same as CreateUserProfile with the addition of
// the ability to pass a context and additional request options.
//
// See CreateUserProfile for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateUserProfileWithContext(ctx aws.Context, input *CreateUserProfileInput, opts ...request.Option) (*CreateUserProfileOutput, error) {
	req, out := c.CreateUserProfileRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateWorkforce = "CreateWorkforce"

// CreateWorkforceRequest generates a "aws/request.Request" representing the
// client's request for the CreateWorkforce operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateWorkforce for more information on using the CreateWorkforce
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateWorkforceRequest method.
//	req, resp := client.CreateWorkforceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateWorkforce
func (c *SageMaker) CreateWorkforceRequest(input *CreateWorkforceInput) (req *request.Request, output *CreateWorkforceOutput) {
	op := &request.Operation{
		Name:       opCreateWorkforce,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateWorkforceInput{}
	}

	output = &CreateWorkforceOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateWorkforce API operation for Amazon SageMaker Service.
//
// Use this operation to create a workforce. This operation will return an error
// if a workforce already exists in the Amazon Web Services Region that you
// specify. You can only create one workforce in each Amazon Web Services Region
// per Amazon Web Services account.
//
// If you want to create a new workforce in an Amazon Web Services Region where
// a workforce already exists, use the DeleteWorkforce (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteWorkforce.html)
// API operation to delete the existing workforce and then use CreateWorkforce
// to create a new workforce.
//
// To create a private workforce using Amazon Cognito, you must specify a Cognito
// user pool in CognitoConfig. You can also create an Amazon Cognito workforce
// using the Amazon SageMaker console. For more information, see Create a Private
// Workforce (Amazon Cognito) (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-create-private.html).
//
// To create a private workforce using your own OIDC Identity Provider (IdP),
// specify your IdP configuration in OidcConfig. Your OIDC IdP must support
// groups because groups are used by Ground Truth and Amazon A2I to create work
// teams. For more information, see Create a Private Workforce (OIDC IdP) (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-create-private-oidc.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateWorkforce for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateWorkforce
func (c *SageMaker) CreateWorkforce(input *CreateWorkforceInput) (*CreateWorkforceOutput, error) {
	req, out := c.CreateWorkforceRequest(input)
	return out, req.Send()
}

// CreateWorkforceWithContext is the same as CreateWorkforce with the addition of
// the ability to pass a context and additional request options.
//
// See CreateWorkforce for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateWorkforceWithContext(ctx aws.Context, input *CreateWorkforceInput, opts ...request.Option) (*CreateWorkforceOutput, error) {
	req, out := c.CreateWorkforceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateWorkteam = "CreateWorkteam"

// CreateWorkteamRequest generates a "aws/request.Request" representing the
// client's request for the CreateWorkteam operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreateWorkteam for more information on using the CreateWorkteam
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the CreateWorkteamRequest method.
//	req, resp := client.CreateWorkteamRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateWorkteam
func (c *SageMaker) CreateWorkteamRequest(input *CreateWorkteamInput) (req *request.Request, output *CreateWorkteamOutput) {
	op := &request.Operation{
		Name:       opCreateWorkteam,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateWorkteamInput{}
	}

	output = &CreateWorkteamOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateWorkteam API operation for Amazon SageMaker Service.
//
// Creates a new work team for labeling your data. A work team is defined by
// one or more Amazon Cognito user pools. You must first create the user pools
// before you can create a work team.
//
// You cannot create more than 25 work teams in an account and region.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation CreateWorkteam for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/CreateWorkteam
func (c *SageMaker) CreateWorkteam(input *CreateWorkteamInput) (*CreateWorkteamOutput, error) {
	req, out := c.CreateWorkteamRequest(input)
	return out, req.Send()
}

// CreateWorkteamWithContext is the same as CreateWorkteam with the addition of
// the ability to pass a context and additional request options.
//
// See CreateWorkteam for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) CreateWorkteamWithContext(ctx aws.Context, input *CreateWorkteamInput, opts ...request.Option) (*CreateWorkteamOutput, error) {
	req, out := c.CreateWorkteamRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteAction = "DeleteAction"

// DeleteActionRequest generates a "aws/request.Request" representing the
// client's request for the DeleteAction operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteAction for more information on using the DeleteAction
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteActionRequest method.
//	req, resp := client.DeleteActionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteAction
func (c *SageMaker) DeleteActionRequest(input *DeleteActionInput) (req *request.Request, output *DeleteActionOutput) {
	op := &request.Operation{
		Name:       opDeleteAction,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteActionInput{}
	}

	output = &DeleteActionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DeleteAction API operation for Amazon SageMaker Service.
//
// Deletes an action.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteAction for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteAction
func (c *SageMaker) DeleteAction(input *DeleteActionInput) (*DeleteActionOutput, error) {
	req, out := c.DeleteActionRequest(input)
	return out, req.Send()
}

// DeleteActionWithContext is the same as DeleteAction with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteAction for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteActionWithContext(ctx aws.Context, input *DeleteActionInput, opts ...request.Option) (*DeleteActionOutput, error) {
	req, out := c.DeleteActionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteAlgorithm = "DeleteAlgorithm"

// DeleteAlgorithmRequest generates a "aws/request.Request" representing the
// client's request for the DeleteAlgorithm operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteAlgorithm for more information on using the DeleteAlgorithm
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteAlgorithmRequest method.
//	req, resp := client.DeleteAlgorithmRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteAlgorithm
func (c *SageMaker) DeleteAlgorithmRequest(input *DeleteAlgorithmInput) (req *request.Request, output *DeleteAlgorithmOutput) {
	op := &request.Operation{
		Name:       opDeleteAlgorithm,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteAlgorithmInput{}
	}

	output = &DeleteAlgorithmOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteAlgorithm API operation for Amazon SageMaker Service.
//
// Removes the specified algorithm from your account.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteAlgorithm for usage and error information.
//
// Returned Error Types:
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteAlgorithm
func (c *SageMaker) DeleteAlgorithm(input *DeleteAlgorithmInput) (*DeleteAlgorithmOutput, error) {
	req, out := c.DeleteAlgorithmRequest(input)
	return out, req.Send()
}

// DeleteAlgorithmWithContext is the same as DeleteAlgorithm with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteAlgorithm for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteAlgorithmWithContext(ctx aws.Context, input *DeleteAlgorithmInput, opts ...request.Option) (*DeleteAlgorithmOutput, error) {
	req, out := c.DeleteAlgorithmRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteApp = "DeleteApp"

// DeleteAppRequest generates a "aws/request.Request" representing the
// client's request for the DeleteApp operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteApp for more information on using the DeleteApp
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteAppRequest method.
//	req, resp := client.DeleteAppRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteApp
func (c *SageMaker) DeleteAppRequest(input *DeleteAppInput) (req *request.Request, output *DeleteAppOutput) {
	op := &request.Operation{
		Name:       opDeleteApp,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteAppInput{}
	}

	output = &DeleteAppOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteApp API operation for Amazon SageMaker Service.
//
// Used to stop and delete an app.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteApp for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteApp
func (c *SageMaker) DeleteApp(input *DeleteAppInput) (*DeleteAppOutput, error) {
	req, out := c.DeleteAppRequest(input)
	return out, req.Send()
}

// DeleteAppWithContext is the same as DeleteApp with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteApp for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteAppWithContext(ctx aws.Context, input *DeleteAppInput, opts ...request.Option) (*DeleteAppOutput, error) {
	req, out := c.DeleteAppRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteAppImageConfig = "DeleteAppImageConfig"

// DeleteAppImageConfigRequest generates a "aws/request.Request" representing the
// client's request for the DeleteAppImageConfig operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteAppImageConfig for more information on using the DeleteAppImageConfig
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteAppImageConfigRequest method.
//	req, resp := client.DeleteAppImageConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteAppImageConfig
func (c *SageMaker) DeleteAppImageConfigRequest(input *DeleteAppImageConfigInput) (req *request.Request, output *DeleteAppImageConfigOutput) {
	op := &request.Operation{
		Name:       opDeleteAppImageConfig,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteAppImageConfigInput{}
	}

	output = &DeleteAppImageConfigOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteAppImageConfig API operation for Amazon SageMaker Service.
//
// Deletes an AppImageConfig.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteAppImageConfig for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteAppImageConfig
func (c *SageMaker) DeleteAppImageConfig(input *DeleteAppImageConfigInput) (*DeleteAppImageConfigOutput, error) {
	req, out := c.DeleteAppImageConfigRequest(input)
	return out, req.Send()
}

// DeleteAppImageConfigWithContext is the same as DeleteAppImageConfig with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteAppImageConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteAppImageConfigWithContext(ctx aws.Context, input *DeleteAppImageConfigInput, opts ...request.Option) (*DeleteAppImageConfigOutput, error) {
	req, out := c.DeleteAppImageConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteArtifact = "DeleteArtifact"

// DeleteArtifactRequest generates a "aws/request.Request" representing the
// client's request for the DeleteArtifact operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteArtifact for more information on using the DeleteArtifact
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteArtifactRequest method.
//	req, resp := client.DeleteArtifactRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteArtifact
func (c *SageMaker) DeleteArtifactRequest(input *DeleteArtifactInput) (req *request.Request, output *DeleteArtifactOutput) {
	op := &request.Operation{
		Name:       opDeleteArtifact,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteArtifactInput{}
	}

	output = &DeleteArtifactOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DeleteArtifact API operation for Amazon SageMaker Service.
//
// Deletes an artifact. Either ArtifactArn or Source must be specified.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteArtifact for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteArtifact
func (c *SageMaker) DeleteArtifact(input *DeleteArtifactInput) (*DeleteArtifactOutput, error) {
	req, out := c.DeleteArtifactRequest(input)
	return out, req.Send()
}

// DeleteArtifactWithContext is the same as DeleteArtifact with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteArtifact for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteArtifactWithContext(ctx aws.Context, input *DeleteArtifactInput, opts ...request.Option) (*DeleteArtifactOutput, error) {
	req, out := c.DeleteArtifactRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteAssociation = "DeleteAssociation"

// DeleteAssociationRequest generates a "aws/request.Request" representing the
// client's request for the DeleteAssociation operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteAssociation for more information on using the DeleteAssociation
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteAssociationRequest method.
//	req, resp := client.DeleteAssociationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteAssociation
func (c *SageMaker) DeleteAssociationRequest(input *DeleteAssociationInput) (req *request.Request, output *DeleteAssociationOutput) {
	op := &request.Operation{
		Name:       opDeleteAssociation,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteAssociationInput{}
	}

	output = &DeleteAssociationOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DeleteAssociation API operation for Amazon SageMaker Service.
//
// Deletes an association.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteAssociation for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteAssociation
func (c *SageMaker) DeleteAssociation(input *DeleteAssociationInput) (*DeleteAssociationOutput, error) {
	req, out := c.DeleteAssociationRequest(input)
	return out, req.Send()
}

// DeleteAssociationWithContext is the same as DeleteAssociation with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteAssociation for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteAssociationWithContext(ctx aws.Context, input *DeleteAssociationInput, opts ...request.Option) (*DeleteAssociationOutput, error) {
	req, out := c.DeleteAssociationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteCluster = "DeleteCluster"

// DeleteClusterRequest generates a "aws/request.Request" representing the
// client's request for the DeleteCluster operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteCluster for more information on using the DeleteCluster
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteClusterRequest method.
//	req, resp := client.DeleteClusterRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteCluster
func (c *SageMaker) DeleteClusterRequest(input *DeleteClusterInput) (req *request.Request, output *DeleteClusterOutput) {
	op := &request.Operation{
		Name:       opDeleteCluster,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteClusterInput{}
	}

	output = &DeleteClusterOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DeleteCluster API operation for Amazon SageMaker Service.
//
// Delete a SageMaker HyperPod cluster.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteCluster for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFound
//     Resource being access is not found.
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteCluster
func (c *SageMaker) DeleteCluster(input *DeleteClusterInput) (*DeleteClusterOutput, error) {
	req, out := c.DeleteClusterRequest(input)
	return out, req.Send()
}

// DeleteClusterWithContext is the same as DeleteCluster with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteCluster for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteClusterWithContext(ctx aws.Context, input *DeleteClusterInput, opts ...request.Option) (*DeleteClusterOutput, error) {
	req, out := c.DeleteClusterRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteCodeRepository = "DeleteCodeRepository"

// DeleteCodeRepositoryRequest generates a "aws/request.Request" representing the
// client's request for the DeleteCodeRepository operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteCodeRepository for more information on using the DeleteCodeRepository
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteCodeRepositoryRequest method.
//	req, resp := client.DeleteCodeRepositoryRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteCodeRepository
func (c *SageMaker) DeleteCodeRepositoryRequest(input *DeleteCodeRepositoryInput) (req *request.Request, output *DeleteCodeRepositoryOutput) {
	op := &request.Operation{
		Name:       opDeleteCodeRepository,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteCodeRepositoryInput{}
	}

	output = &DeleteCodeRepositoryOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteCodeRepository API operation for Amazon SageMaker Service.
//
// Deletes the specified Git repository from your account.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteCodeRepository for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteCodeRepository
func (c *SageMaker) DeleteCodeRepository(input *DeleteCodeRepositoryInput) (*DeleteCodeRepositoryOutput, error) {
	req, out := c.DeleteCodeRepositoryRequest(input)
	return out, req.Send()
}

// DeleteCodeRepositoryWithContext is the same as DeleteCodeRepository with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteCodeRepository for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteCodeRepositoryWithContext(ctx aws.Context, input *DeleteCodeRepositoryInput, opts ...request.Option) (*DeleteCodeRepositoryOutput, error) {
	req, out := c.DeleteCodeRepositoryRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteCompilationJob = "DeleteCompilationJob"

// DeleteCompilationJobRequest generates a "aws/request.Request" representing the
// client's request for the DeleteCompilationJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteCompilationJob for more information on using the DeleteCompilationJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteCompilationJobRequest method.
//	req, resp := client.DeleteCompilationJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteCompilationJob
func (c *SageMaker) DeleteCompilationJobRequest(input *DeleteCompilationJobInput) (req *request.Request, output *DeleteCompilationJobOutput) {
	op := &request.Operation{
		Name:       opDeleteCompilationJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteCompilationJobInput{}
	}

	output = &DeleteCompilationJobOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteCompilationJob API operation for Amazon SageMaker Service.
//
// Deletes the specified compilation job. This action deletes only the compilation
// job resource in Amazon SageMaker. It doesn't delete other resources that
// are related to that job, such as the model artifacts that the job creates,
// the compilation logs in CloudWatch, the compiled model, or the IAM role.
//
// You can delete a compilation job only if its current status is COMPLETED,
// FAILED, or STOPPED. If the job status is STARTING or INPROGRESS, stop the
// job, and then delete it after its status becomes STOPPED.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteCompilationJob for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteCompilationJob
func (c *SageMaker) DeleteCompilationJob(input *DeleteCompilationJobInput) (*DeleteCompilationJobOutput, error) {
	req, out := c.DeleteCompilationJobRequest(input)
	return out, req.Send()
}

// DeleteCompilationJobWithContext is the same as DeleteCompilationJob with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteCompilationJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteCompilationJobWithContext(ctx aws.Context, input *DeleteCompilationJobInput, opts ...request.Option) (*DeleteCompilationJobOutput, error) {
	req, out := c.DeleteCompilationJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteContext = "DeleteContext"

// DeleteContextRequest generates a "aws/request.Request" representing the
// client's request for the DeleteContext operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteContext for more information on using the DeleteContext
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteContextRequest method.
//	req, resp := client.DeleteContextRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteContext
func (c *SageMaker) DeleteContextRequest(input *DeleteContextInput) (req *request.Request, output *DeleteContextOutput) {
	op := &request.Operation{
		Name:       opDeleteContext,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteContextInput{}
	}

	output = &DeleteContextOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DeleteContext API operation for Amazon SageMaker Service.
//
// Deletes an context.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteContext for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteContext
func (c *SageMaker) DeleteContext(input *DeleteContextInput) (*DeleteContextOutput, error) {
	req, out := c.DeleteContextRequest(input)
	return out, req.Send()
}

// DeleteContextWithContext is the same as DeleteContext with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteContext for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteContextWithContext(ctx aws.Context, input *DeleteContextInput, opts ...request.Option) (*DeleteContextOutput, error) {
	req, out := c.DeleteContextRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteDataQualityJobDefinition = "DeleteDataQualityJobDefinition"

// DeleteDataQualityJobDefinitionRequest generates a "aws/request.Request" representing the
// client's request for the DeleteDataQualityJobDefinition operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteDataQualityJobDefinition for more information on using the DeleteDataQualityJobDefinition
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteDataQualityJobDefinitionRequest method.
//	req, resp := client.DeleteDataQualityJobDefinitionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteDataQualityJobDefinition
func (c *SageMaker) DeleteDataQualityJobDefinitionRequest(input *DeleteDataQualityJobDefinitionInput) (req *request.Request, output *DeleteDataQualityJobDefinitionOutput) {
	op := &request.Operation{
		Name:       opDeleteDataQualityJobDefinition,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteDataQualityJobDefinitionInput{}
	}

	output = &DeleteDataQualityJobDefinitionOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteDataQualityJobDefinition API operation for Amazon SageMaker Service.
//
// Deletes a data quality monitoring job definition.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteDataQualityJobDefinition for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteDataQualityJobDefinition
func (c *SageMaker) DeleteDataQualityJobDefinition(input *DeleteDataQualityJobDefinitionInput) (*DeleteDataQualityJobDefinitionOutput, error) {
	req, out := c.DeleteDataQualityJobDefinitionRequest(input)
	return out, req.Send()
}

// DeleteDataQualityJobDefinitionWithContext is the same as DeleteDataQualityJobDefinition with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteDataQualityJobDefinition for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteDataQualityJobDefinitionWithContext(ctx aws.Context, input *DeleteDataQualityJobDefinitionInput, opts ...request.Option) (*DeleteDataQualityJobDefinitionOutput, error) {
	req, out := c.DeleteDataQualityJobDefinitionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteDeviceFleet = "DeleteDeviceFleet"

// DeleteDeviceFleetRequest generates a "aws/request.Request" representing the
// client's request for the DeleteDeviceFleet operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteDeviceFleet for more information on using the DeleteDeviceFleet
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteDeviceFleetRequest method.
//	req, resp := client.DeleteDeviceFleetRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteDeviceFleet
func (c *SageMaker) DeleteDeviceFleetRequest(input *DeleteDeviceFleetInput) (req *request.Request, output *DeleteDeviceFleetOutput) {
	op := &request.Operation{
		Name:       opDeleteDeviceFleet,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteDeviceFleetInput{}
	}

	output = &DeleteDeviceFleetOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteDeviceFleet API operation for Amazon SageMaker Service.
//
// Deletes a fleet.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteDeviceFleet for usage and error information.
//
// Returned Error Types:
//   - ResourceInUse
//     Resource being accessed is in use.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteDeviceFleet
func (c *SageMaker) DeleteDeviceFleet(input *DeleteDeviceFleetInput) (*DeleteDeviceFleetOutput, error) {
	req, out := c.DeleteDeviceFleetRequest(input)
	return out, req.Send()
}

// DeleteDeviceFleetWithContext is the same as DeleteDeviceFleet with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteDeviceFleet for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteDeviceFleetWithContext(ctx aws.Context, input *DeleteDeviceFleetInput, opts ...request.Option) (*DeleteDeviceFleetOutput, error) {
	req, out := c.DeleteDeviceFleetRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteDomain = "DeleteDomain"

// DeleteDomainRequest generates a "aws/request.Request" representing the
// client's request for the DeleteDomain operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteDomain for more information on using the DeleteDomain
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteDomainRequest method.
//	req, resp := client.DeleteDomainRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteDomain
func (c *SageMaker) DeleteDomainRequest(input *DeleteDomainInput) (req *request.Request, output *DeleteDomainOutput) {
	op := &request.Operation{
		Name:       opDeleteDomain,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteDomainInput{}
	}

	output = &DeleteDomainOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteDomain API operation for Amazon SageMaker Service.
//
// Used to delete a domain. If you onboarded with IAM mode, you will need to
// delete your domain to onboard again using IAM Identity Center. Use with caution.
// All of the members of the domain will lose access to their EFS volume, including
// data, notebooks, and other artifacts.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteDomain for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteDomain
func (c *SageMaker) DeleteDomain(input *DeleteDomainInput) (*DeleteDomainOutput, error) {
	req, out := c.DeleteDomainRequest(input)
	return out, req.Send()
}

// DeleteDomainWithContext is the same as DeleteDomain with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteDomain for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteDomainWithContext(ctx aws.Context, input *DeleteDomainInput, opts ...request.Option) (*DeleteDomainOutput, error) {
	req, out := c.DeleteDomainRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteEdgeDeploymentPlan = "DeleteEdgeDeploymentPlan"

// DeleteEdgeDeploymentPlanRequest generates a "aws/request.Request" representing the
// client's request for the DeleteEdgeDeploymentPlan operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteEdgeDeploymentPlan for more information on using the DeleteEdgeDeploymentPlan
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteEdgeDeploymentPlanRequest method.
//	req, resp := client.DeleteEdgeDeploymentPlanRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteEdgeDeploymentPlan
func (c *SageMaker) DeleteEdgeDeploymentPlanRequest(input *DeleteEdgeDeploymentPlanInput) (req *request.Request, output *DeleteEdgeDeploymentPlanOutput) {
	op := &request.Operation{
		Name:       opDeleteEdgeDeploymentPlan,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteEdgeDeploymentPlanInput{}
	}

	output = &DeleteEdgeDeploymentPlanOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteEdgeDeploymentPlan API operation for Amazon SageMaker Service.
//
// Deletes an edge deployment plan if (and only if) all the stages in the plan
// are inactive or there are no stages in the plan.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteEdgeDeploymentPlan for usage and error information.
//
// Returned Error Types:
//   - ResourceInUse
//     Resource being accessed is in use.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteEdgeDeploymentPlan
func (c *SageMaker) DeleteEdgeDeploymentPlan(input *DeleteEdgeDeploymentPlanInput) (*DeleteEdgeDeploymentPlanOutput, error) {
	req, out := c.DeleteEdgeDeploymentPlanRequest(input)
	return out, req.Send()
}

// DeleteEdgeDeploymentPlanWithContext is the same as DeleteEdgeDeploymentPlan with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteEdgeDeploymentPlan for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteEdgeDeploymentPlanWithContext(ctx aws.Context, input *DeleteEdgeDeploymentPlanInput, opts ...request.Option) (*DeleteEdgeDeploymentPlanOutput, error) {
	req, out := c.DeleteEdgeDeploymentPlanRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteEdgeDeploymentStage = "DeleteEdgeDeploymentStage"

// DeleteEdgeDeploymentStageRequest generates a "aws/request.Request" representing the
// client's request for the DeleteEdgeDeploymentStage operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteEdgeDeploymentStage for more information on using the DeleteEdgeDeploymentStage
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteEdgeDeploymentStageRequest method.
//	req, resp := client.DeleteEdgeDeploymentStageRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteEdgeDeploymentStage
func (c *SageMaker) DeleteEdgeDeploymentStageRequest(input *DeleteEdgeDeploymentStageInput) (req *request.Request, output *DeleteEdgeDeploymentStageOutput) {
	op := &request.Operation{
		Name:       opDeleteEdgeDeploymentStage,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteEdgeDeploymentStageInput{}
	}

	output = &DeleteEdgeDeploymentStageOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteEdgeDeploymentStage API operation for Amazon SageMaker Service.
//
// Delete a stage in an edge deployment plan if (and only if) the stage is inactive.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteEdgeDeploymentStage for usage and error information.
//
// Returned Error Types:
//   - ResourceInUse
//     Resource being accessed is in use.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteEdgeDeploymentStage
func (c *SageMaker) DeleteEdgeDeploymentStage(input *DeleteEdgeDeploymentStageInput) (*DeleteEdgeDeploymentStageOutput, error) {
	req, out := c.DeleteEdgeDeploymentStageRequest(input)
	return out, req.Send()
}

// DeleteEdgeDeploymentStageWithContext is the same as DeleteEdgeDeploymentStage with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteEdgeDeploymentStage for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteEdgeDeploymentStageWithContext(ctx aws.Context, input *DeleteEdgeDeploymentStageInput, opts ...request.Option) (*DeleteEdgeDeploymentStageOutput, error) {
	req, out := c.DeleteEdgeDeploymentStageRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteEndpoint = "DeleteEndpoint"

// DeleteEndpointRequest generates a "aws/request.Request" representing the
// client's request for the DeleteEndpoint operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteEndpoint for more information on using the DeleteEndpoint
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteEndpointRequest method.
//	req, resp := client.DeleteEndpointRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteEndpoint
func (c *SageMaker) DeleteEndpointRequest(input *DeleteEndpointInput) (req *request.Request, output *DeleteEndpointOutput) {
	op := &request.Operation{
		Name:       opDeleteEndpoint,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteEndpointInput{}
	}

	output = &DeleteEndpointOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteEndpoint API operation for Amazon SageMaker Service.
//
// Deletes an endpoint. SageMaker frees up all of the resources that were deployed
// when the endpoint was created.
//
// SageMaker retires any custom KMS key grants associated with the endpoint,
// meaning you don't need to use the RevokeGrant (http://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)
// API call.
//
// When you delete your endpoint, SageMaker asynchronously deletes associated
// endpoint resources such as KMS key grants. You might still see these resources
// in your account for a few minutes after deleting your endpoint. Do not delete
// or revoke the permissions for your ExecutionRoleArn (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html#sagemaker-CreateModel-request-ExecutionRoleArn)
// , otherwise SageMaker cannot delete these resources.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteEndpoint for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteEndpoint
func (c *SageMaker) DeleteEndpoint(input *DeleteEndpointInput) (*DeleteEndpointOutput, error) {
	req, out := c.DeleteEndpointRequest(input)
	return out, req.Send()
}

// DeleteEndpointWithContext is the same as DeleteEndpoint with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteEndpoint for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteEndpointWithContext(ctx aws.Context, input *DeleteEndpointInput, opts ...request.Option) (*DeleteEndpointOutput, error) {
	req, out := c.DeleteEndpointRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteEndpointConfig = "DeleteEndpointConfig"

// DeleteEndpointConfigRequest generates a "aws/request.Request" representing the
// client's request for the DeleteEndpointConfig operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteEndpointConfig for more information on using the DeleteEndpointConfig
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteEndpointConfigRequest method.
//	req, resp := client.DeleteEndpointConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteEndpointConfig
func (c *SageMaker) DeleteEndpointConfigRequest(input *DeleteEndpointConfigInput) (req *request.Request, output *DeleteEndpointConfigOutput) {
	op := &request.Operation{
		Name:       opDeleteEndpointConfig,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteEndpointConfigInput{}
	}

	output = &DeleteEndpointConfigOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteEndpointConfig API operation for Amazon SageMaker Service.
//
// Deletes an endpoint configuration. The DeleteEndpointConfig API deletes only
// the specified configuration. It does not delete endpoints created using the
// configuration.
//
// You must not delete an EndpointConfig in use by an endpoint that is live
// or while the UpdateEndpoint or CreateEndpoint operations are being performed
// on the endpoint. If you delete the EndpointConfig of an endpoint that is
// active or being created or updated you may lose visibility into the instance
// type the endpoint is using. The endpoint must be deleted in order to stop
// incurring charges.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteEndpointConfig for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteEndpointConfig
func (c *SageMaker) DeleteEndpointConfig(input *DeleteEndpointConfigInput) (*DeleteEndpointConfigOutput, error) {
	req, out := c.DeleteEndpointConfigRequest(input)
	return out, req.Send()
}

// DeleteEndpointConfigWithContext is the same as DeleteEndpointConfig with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteEndpointConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteEndpointConfigWithContext(ctx aws.Context, input *DeleteEndpointConfigInput, opts ...request.Option) (*DeleteEndpointConfigOutput, error) {
	req, out := c.DeleteEndpointConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteExperiment = "DeleteExperiment"

// DeleteExperimentRequest generates a "aws/request.Request" representing the
// client's request for the DeleteExperiment operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteExperiment for more information on using the DeleteExperiment
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteExperimentRequest method.
//	req, resp := client.DeleteExperimentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteExperiment
func (c *SageMaker) DeleteExperimentRequest(input *DeleteExperimentInput) (req *request.Request, output *DeleteExperimentOutput) {
	op := &request.Operation{
		Name:       opDeleteExperiment,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteExperimentInput{}
	}

	output = &DeleteExperimentOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DeleteExperiment API operation for Amazon SageMaker Service.
//
// Deletes an SageMaker experiment. All trials associated with the experiment
// must be deleted first. Use the ListTrials (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListTrials.html)
// API to get a list of the trials associated with the experiment.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteExperiment for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteExperiment
func (c *SageMaker) DeleteExperiment(input *DeleteExperimentInput) (*DeleteExperimentOutput, error) {
	req, out := c.DeleteExperimentRequest(input)
	return out, req.Send()
}

// DeleteExperimentWithContext is the same as DeleteExperiment with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteExperiment for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteExperimentWithContext(ctx aws.Context, input *DeleteExperimentInput, opts ...request.Option) (*DeleteExperimentOutput, error) {
	req, out := c.DeleteExperimentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteFeatureGroup = "DeleteFeatureGroup"

// DeleteFeatureGroupRequest generates a "aws/request.Request" representing the
// client's request for the DeleteFeatureGroup operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteFeatureGroup for more information on using the DeleteFeatureGroup
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteFeatureGroupRequest method.
//	req, resp := client.DeleteFeatureGroupRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteFeatureGroup
func (c *SageMaker) DeleteFeatureGroupRequest(input *DeleteFeatureGroupInput) (req *request.Request, output *DeleteFeatureGroupOutput) {
	op := &request.Operation{
		Name:       opDeleteFeatureGroup,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteFeatureGroupInput{}
	}

	output = &DeleteFeatureGroupOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteFeatureGroup API operation for Amazon SageMaker Service.
//
// Delete the FeatureGroup and any data that was written to the OnlineStore
// of the FeatureGroup. Data cannot be accessed from the OnlineStore immediately
// after DeleteFeatureGroup is called.
//
// Data written into the OfflineStore will not be deleted. The Amazon Web Services
// Glue database and tables that are automatically created for your OfflineStore
// are not deleted.
//
// Note that it can take approximately 10-15 minutes to delete an OnlineStore
// FeatureGroup with the InMemory StorageType.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteFeatureGroup for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteFeatureGroup
func (c *SageMaker) DeleteFeatureGroup(input *DeleteFeatureGroupInput) (*DeleteFeatureGroupOutput, error) {
	req, out := c.DeleteFeatureGroupRequest(input)
	return out, req.Send()
}

// DeleteFeatureGroupWithContext is the same as DeleteFeatureGroup with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteFeatureGroup for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteFeatureGroupWithContext(ctx aws.Context, input *DeleteFeatureGroupInput, opts ...request.Option) (*DeleteFeatureGroupOutput, error) {
	req, out := c.DeleteFeatureGroupRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteFlowDefinition = "DeleteFlowDefinition"

// DeleteFlowDefinitionRequest generates a "aws/request.Request" representing the
// client's request for the DeleteFlowDefinition operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteFlowDefinition for more information on using the DeleteFlowDefinition
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteFlowDefinitionRequest method.
//	req, resp := client.DeleteFlowDefinitionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteFlowDefinition
func (c *SageMaker) DeleteFlowDefinitionRequest(input *DeleteFlowDefinitionInput) (req *request.Request, output *DeleteFlowDefinitionOutput) {
	op := &request.Operation{
		Name:       opDeleteFlowDefinition,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteFlowDefinitionInput{}
	}

	output = &DeleteFlowDefinitionOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteFlowDefinition API operation for Amazon SageMaker Service.
//
// Deletes the specified flow definition.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteFlowDefinition for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteFlowDefinition
func (c *SageMaker) DeleteFlowDefinition(input *DeleteFlowDefinitionInput) (*DeleteFlowDefinitionOutput, error) {
	req, out := c.DeleteFlowDefinitionRequest(input)
	return out, req.Send()
}

// DeleteFlowDefinitionWithContext is the same as DeleteFlowDefinition with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteFlowDefinition for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteFlowDefinitionWithContext(ctx aws.Context, input *DeleteFlowDefinitionInput, opts ...request.Option) (*DeleteFlowDefinitionOutput, error) {
	req, out := c.DeleteFlowDefinitionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteHub = "DeleteHub"

// DeleteHubRequest generates a "aws/request.Request" representing the
// client's request for the DeleteHub operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteHub for more information on using the DeleteHub
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteHubRequest method.
//	req, resp := client.DeleteHubRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteHub
func (c *SageMaker) DeleteHubRequest(input *DeleteHubInput) (req *request.Request, output *DeleteHubOutput) {
	op := &request.Operation{
		Name:       opDeleteHub,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteHubInput{}
	}

	output = &DeleteHubOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteHub API operation for Amazon SageMaker Service.
//
// Delete a hub.
//
// Hub APIs are only callable through SageMaker Studio.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteHub for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteHub
func (c *SageMaker) DeleteHub(input *DeleteHubInput) (*DeleteHubOutput, error) {
	req, out := c.DeleteHubRequest(input)
	return out, req.Send()
}

// DeleteHubWithContext is the same as DeleteHub with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteHub for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteHubWithContext(ctx aws.Context, input *DeleteHubInput, opts ...request.Option) (*DeleteHubOutput, error) {
	req, out := c.DeleteHubRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteHubContent = "DeleteHubContent"

// DeleteHubContentRequest generates a "aws/request.Request" representing the
// client's request for the DeleteHubContent operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteHubContent for more information on using the DeleteHubContent
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteHubContentRequest method.
//	req, resp := client.DeleteHubContentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteHubContent
func (c *SageMaker) DeleteHubContentRequest(input *DeleteHubContentInput) (req *request.Request, output *DeleteHubContentOutput) {
	op := &request.Operation{
		Name:       opDeleteHubContent,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteHubContentInput{}
	}

	output = &DeleteHubContentOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteHubContent API operation for Amazon SageMaker Service.
//
// Delete the contents of a hub.
//
// Hub APIs are only callable through SageMaker Studio.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteHubContent for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteHubContent
func (c *SageMaker) DeleteHubContent(input *DeleteHubContentInput) (*DeleteHubContentOutput, error) {
	req, out := c.DeleteHubContentRequest(input)
	return out, req.Send()
}

// DeleteHubContentWithContext is the same as DeleteHubContent with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteHubContent for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteHubContentWithContext(ctx aws.Context, input *DeleteHubContentInput, opts ...request.Option) (*DeleteHubContentOutput, error) {
	req, out := c.DeleteHubContentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteHumanTaskUi = "DeleteHumanTaskUi"

// DeleteHumanTaskUiRequest generates a "aws/request.Request" representing the
// client's request for the DeleteHumanTaskUi operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteHumanTaskUi for more information on using the DeleteHumanTaskUi
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteHumanTaskUiRequest method.
//	req, resp := client.DeleteHumanTaskUiRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteHumanTaskUi
func (c *SageMaker) DeleteHumanTaskUiRequest(input *DeleteHumanTaskUiInput) (req *request.Request, output *DeleteHumanTaskUiOutput) {
	op := &request.Operation{
		Name:       opDeleteHumanTaskUi,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteHumanTaskUiInput{}
	}

	output = &DeleteHumanTaskUiOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteHumanTaskUi API operation for Amazon SageMaker Service.
//
// Use this operation to delete a human task user interface (worker task template).
//
// To see a list of human task user interfaces (work task templates) in your
// account, use ListHumanTaskUis (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListHumanTaskUis.html).
// When you delete a worker task template, it no longer appears when you call
// ListHumanTaskUis.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteHumanTaskUi for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteHumanTaskUi
func (c *SageMaker) DeleteHumanTaskUi(input *DeleteHumanTaskUiInput) (*DeleteHumanTaskUiOutput, error) {
	req, out := c.DeleteHumanTaskUiRequest(input)
	return out, req.Send()
}

// DeleteHumanTaskUiWithContext is the same as DeleteHumanTaskUi with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteHumanTaskUi for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteHumanTaskUiWithContext(ctx aws.Context, input *DeleteHumanTaskUiInput, opts ...request.Option) (*DeleteHumanTaskUiOutput, error) {
	req, out := c.DeleteHumanTaskUiRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteHyperParameterTuningJob = "DeleteHyperParameterTuningJob"

// DeleteHyperParameterTuningJobRequest generates a "aws/request.Request" representing the
// client's request for the DeleteHyperParameterTuningJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteHyperParameterTuningJob for more information on using the DeleteHyperParameterTuningJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteHyperParameterTuningJobRequest method.
//	req, resp := client.DeleteHyperParameterTuningJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteHyperParameterTuningJob
func (c *SageMaker) DeleteHyperParameterTuningJobRequest(input *DeleteHyperParameterTuningJobInput) (req *request.Request, output *DeleteHyperParameterTuningJobOutput) {
	op := &request.Operation{
		Name:       opDeleteHyperParameterTuningJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteHyperParameterTuningJobInput{}
	}

	output = &DeleteHyperParameterTuningJobOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteHyperParameterTuningJob API operation for Amazon SageMaker Service.
//
// Deletes a hyperparameter tuning job. The DeleteHyperParameterTuningJob API
// deletes only the tuning job entry that was created in SageMaker when you
// called the CreateHyperParameterTuningJob API. It does not delete training
// jobs, artifacts, or the IAM role that you specified when creating the model.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteHyperParameterTuningJob for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteHyperParameterTuningJob
func (c *SageMaker) DeleteHyperParameterTuningJob(input *DeleteHyperParameterTuningJobInput) (*DeleteHyperParameterTuningJobOutput, error) {
	req, out := c.DeleteHyperParameterTuningJobRequest(input)
	return out, req.Send()
}

// DeleteHyperParameterTuningJobWithContext is the same as DeleteHyperParameterTuningJob with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteHyperParameterTuningJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteHyperParameterTuningJobWithContext(ctx aws.Context, input *DeleteHyperParameterTuningJobInput, opts ...request.Option) (*DeleteHyperParameterTuningJobOutput, error) {
	req, out := c.DeleteHyperParameterTuningJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteImage = "DeleteImage"

// DeleteImageRequest generates a "aws/request.Request" representing the
// client's request for the DeleteImage operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteImage for more information on using the DeleteImage
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteImageRequest method.
//	req, resp := client.DeleteImageRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteImage
func (c *SageMaker) DeleteImageRequest(input *DeleteImageInput) (req *request.Request, output *DeleteImageOutput) {
	op := &request.Operation{
		Name:       opDeleteImage,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteImageInput{}
	}

	output = &DeleteImageOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteImage API operation for Amazon SageMaker Service.
//
// Deletes a SageMaker image and all versions of the image. The container images
// aren't deleted.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteImage for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteImage
func (c *SageMaker) DeleteImage(input *DeleteImageInput) (*DeleteImageOutput, error) {
	req, out := c.DeleteImageRequest(input)
	return out, req.Send()
}

// DeleteImageWithContext is the same as DeleteImage with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteImage for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteImageWithContext(ctx aws.Context, input *DeleteImageInput, opts ...request.Option) (*DeleteImageOutput, error) {
	req, out := c.DeleteImageRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteImageVersion = "DeleteImageVersion"

// DeleteImageVersionRequest generates a "aws/request.Request" representing the
// client's request for the DeleteImageVersion operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteImageVersion for more information on using the DeleteImageVersion
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteImageVersionRequest method.
//	req, resp := client.DeleteImageVersionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteImageVersion
func (c *SageMaker) DeleteImageVersionRequest(input *DeleteImageVersionInput) (req *request.Request, output *DeleteImageVersionOutput) {
	op := &request.Operation{
		Name:       opDeleteImageVersion,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteImageVersionInput{}
	}

	output = &DeleteImageVersionOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteImageVersion API operation for Amazon SageMaker Service.
//
// Deletes a version of a SageMaker image. The container image the version represents
// isn't deleted.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteImageVersion for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteImageVersion
func (c *SageMaker) DeleteImageVersion(input *DeleteImageVersionInput) (*DeleteImageVersionOutput, error) {
	req, out := c.DeleteImageVersionRequest(input)
	return out, req.Send()
}

// DeleteImageVersionWithContext is the same as DeleteImageVersion with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteImageVersion for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteImageVersionWithContext(ctx aws.Context, input *DeleteImageVersionInput, opts ...request.Option) (*DeleteImageVersionOutput, error) {
	req, out := c.DeleteImageVersionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteInferenceComponent = "DeleteInferenceComponent"

// DeleteInferenceComponentRequest generates a "aws/request.Request" representing the
// client's request for the DeleteInferenceComponent operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteInferenceComponent for more information on using the DeleteInferenceComponent
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteInferenceComponentRequest method.
//	req, resp := client.DeleteInferenceComponentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteInferenceComponent
func (c *SageMaker) DeleteInferenceComponentRequest(input *DeleteInferenceComponentInput) (req *request.Request, output *DeleteInferenceComponentOutput) {
	op := &request.Operation{
		Name:       opDeleteInferenceComponent,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteInferenceComponentInput{}
	}

	output = &DeleteInferenceComponentOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteInferenceComponent API operation for Amazon SageMaker Service.
//
// Deletes an inference component.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteInferenceComponent for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteInferenceComponent
func (c *SageMaker) DeleteInferenceComponent(input *DeleteInferenceComponentInput) (*DeleteInferenceComponentOutput, error) {
	req, out := c.DeleteInferenceComponentRequest(input)
	return out, req.Send()
}

// DeleteInferenceComponentWithContext is the same as DeleteInferenceComponent with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteInferenceComponent for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteInferenceComponentWithContext(ctx aws.Context, input *DeleteInferenceComponentInput, opts ...request.Option) (*DeleteInferenceComponentOutput, error) {
	req, out := c.DeleteInferenceComponentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteInferenceExperiment = "DeleteInferenceExperiment"

// DeleteInferenceExperimentRequest generates a "aws/request.Request" representing the
// client's request for the DeleteInferenceExperiment operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteInferenceExperiment for more information on using the DeleteInferenceExperiment
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteInferenceExperimentRequest method.
//	req, resp := client.DeleteInferenceExperimentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteInferenceExperiment
func (c *SageMaker) DeleteInferenceExperimentRequest(input *DeleteInferenceExperimentInput) (req *request.Request, output *DeleteInferenceExperimentOutput) {
	op := &request.Operation{
		Name:       opDeleteInferenceExperiment,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteInferenceExperimentInput{}
	}

	output = &DeleteInferenceExperimentOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DeleteInferenceExperiment API operation for Amazon SageMaker Service.
//
// Deletes an inference experiment.
//
// This operation does not delete your endpoint, variants, or any underlying
// resources. This operation only deletes the metadata of your experiment.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteInferenceExperiment for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteInferenceExperiment
func (c *SageMaker) DeleteInferenceExperiment(input *DeleteInferenceExperimentInput) (*DeleteInferenceExperimentOutput, error) {
	req, out := c.DeleteInferenceExperimentRequest(input)
	return out, req.Send()
}

// DeleteInferenceExperimentWithContext is the same as DeleteInferenceExperiment with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteInferenceExperiment for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteInferenceExperimentWithContext(ctx aws.Context, input *DeleteInferenceExperimentInput, opts ...request.Option) (*DeleteInferenceExperimentOutput, error) {
	req, out := c.DeleteInferenceExperimentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteModel = "DeleteModel"

// DeleteModelRequest generates a "aws/request.Request" representing the
// client's request for the DeleteModel operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteModel for more information on using the DeleteModel
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteModelRequest method.
//	req, resp := client.DeleteModelRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteModel
func (c *SageMaker) DeleteModelRequest(input *DeleteModelInput) (req *request.Request, output *DeleteModelOutput) {
	op := &request.Operation{
		Name:       opDeleteModel,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteModelInput{}
	}

	output = &DeleteModelOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteModel API operation for Amazon SageMaker Service.
//
// Deletes a model. The DeleteModel API deletes only the model entry that was
// created in SageMaker when you called the CreateModel API. It does not delete
// model artifacts, inference code, or the IAM role that you specified when
// creating the model.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteModel for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteModel
func (c *SageMaker) DeleteModel(input *DeleteModelInput) (*DeleteModelOutput, error) {
	req, out := c.DeleteModelRequest(input)
	return out, req.Send()
}

// DeleteModelWithContext is the same as DeleteModel with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteModel for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteModelWithContext(ctx aws.Context, input *DeleteModelInput, opts ...request.Option) (*DeleteModelOutput, error) {
	req, out := c.DeleteModelRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteModelBiasJobDefinition = "DeleteModelBiasJobDefinition"

// DeleteModelBiasJobDefinitionRequest generates a "aws/request.Request" representing the
// client's request for the DeleteModelBiasJobDefinition operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteModelBiasJobDefinition for more information on using the DeleteModelBiasJobDefinition
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteModelBiasJobDefinitionRequest method.
//	req, resp := client.DeleteModelBiasJobDefinitionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteModelBiasJobDefinition
func (c *SageMaker) DeleteModelBiasJobDefinitionRequest(input *DeleteModelBiasJobDefinitionInput) (req *request.Request, output *DeleteModelBiasJobDefinitionOutput) {
	op := &request.Operation{
		Name:       opDeleteModelBiasJobDefinition,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteModelBiasJobDefinitionInput{}
	}

	output = &DeleteModelBiasJobDefinitionOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteModelBiasJobDefinition API operation for Amazon SageMaker Service.
//
// Deletes an Amazon SageMaker model bias job definition.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteModelBiasJobDefinition for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteModelBiasJobDefinition
func (c *SageMaker) DeleteModelBiasJobDefinition(input *DeleteModelBiasJobDefinitionInput) (*DeleteModelBiasJobDefinitionOutput, error) {
	req, out := c.DeleteModelBiasJobDefinitionRequest(input)
	return out, req.Send()
}

// DeleteModelBiasJobDefinitionWithContext is the same as DeleteModelBiasJobDefinition with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteModelBiasJobDefinition for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteModelBiasJobDefinitionWithContext(ctx aws.Context, input *DeleteModelBiasJobDefinitionInput, opts ...request.Option) (*DeleteModelBiasJobDefinitionOutput, error) {
	req, out := c.DeleteModelBiasJobDefinitionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteModelCard = "DeleteModelCard"

// DeleteModelCardRequest generates a "aws/request.Request" representing the
// client's request for the DeleteModelCard operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteModelCard for more information on using the DeleteModelCard
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteModelCardRequest method.
//	req, resp := client.DeleteModelCardRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteModelCard
func (c *SageMaker) DeleteModelCardRequest(input *DeleteModelCardInput) (req *request.Request, output *DeleteModelCardOutput) {
	op := &request.Operation{
		Name:       opDeleteModelCard,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteModelCardInput{}
	}

	output = &DeleteModelCardOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteModelCard API operation for Amazon SageMaker Service.
//
// Deletes an Amazon SageMaker Model Card.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteModelCard for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFound
//     Resource being access is not found.
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteModelCard
func (c *SageMaker) DeleteModelCard(input *DeleteModelCardInput) (*DeleteModelCardOutput, error) {
	req, out := c.DeleteModelCardRequest(input)
	return out, req.Send()
}

// DeleteModelCardWithContext is the same as DeleteModelCard with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteModelCard for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteModelCardWithContext(ctx aws.Context, input *DeleteModelCardInput, opts ...request.Option) (*DeleteModelCardOutput, error) {
	req, out := c.DeleteModelCardRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteModelExplainabilityJobDefinition = "DeleteModelExplainabilityJobDefinition"

// DeleteModelExplainabilityJobDefinitionRequest generates a "aws/request.Request" representing the
// client's request for the DeleteModelExplainabilityJobDefinition operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteModelExplainabilityJobDefinition for more information on using the DeleteModelExplainabilityJobDefinition
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteModelExplainabilityJobDefinitionRequest method.
//	req, resp := client.DeleteModelExplainabilityJobDefinitionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteModelExplainabilityJobDefinition
func (c *SageMaker) DeleteModelExplainabilityJobDefinitionRequest(input *DeleteModelExplainabilityJobDefinitionInput) (req *request.Request, output *DeleteModelExplainabilityJobDefinitionOutput) {
	op := &request.Operation{
		Name:       opDeleteModelExplainabilityJobDefinition,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteModelExplainabilityJobDefinitionInput{}
	}

	output = &DeleteModelExplainabilityJobDefinitionOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteModelExplainabilityJobDefinition API operation for Amazon SageMaker Service.
//
// Deletes an Amazon SageMaker model explainability job definition.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteModelExplainabilityJobDefinition for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteModelExplainabilityJobDefinition
func (c *SageMaker) DeleteModelExplainabilityJobDefinition(input *DeleteModelExplainabilityJobDefinitionInput) (*DeleteModelExplainabilityJobDefinitionOutput, error) {
	req, out := c.DeleteModelExplainabilityJobDefinitionRequest(input)
	return out, req.Send()
}

// DeleteModelExplainabilityJobDefinitionWithContext is the same as DeleteModelExplainabilityJobDefinition with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteModelExplainabilityJobDefinition for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteModelExplainabilityJobDefinitionWithContext(ctx aws.Context, input *DeleteModelExplainabilityJobDefinitionInput, opts ...request.Option) (*DeleteModelExplainabilityJobDefinitionOutput, error) {
	req, out := c.DeleteModelExplainabilityJobDefinitionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteModelPackage = "DeleteModelPackage"

// DeleteModelPackageRequest generates a "aws/request.Request" representing the
// client's request for the DeleteModelPackage operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteModelPackage for more information on using the DeleteModelPackage
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteModelPackageRequest method.
//	req, resp := client.DeleteModelPackageRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteModelPackage
func (c *SageMaker) DeleteModelPackageRequest(input *DeleteModelPackageInput) (req *request.Request, output *DeleteModelPackageOutput) {
	op := &request.Operation{
		Name:       opDeleteModelPackage,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteModelPackageInput{}
	}

	output = &DeleteModelPackageOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteModelPackage API operation for Amazon SageMaker Service.
//
// Deletes a model package.
//
// A model package is used to create SageMaker models or list on Amazon Web
// Services Marketplace. Buyers can subscribe to model packages listed on Amazon
// Web Services Marketplace to create models in SageMaker.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteModelPackage for usage and error information.
//
// Returned Error Types:
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteModelPackage
func (c *SageMaker) DeleteModelPackage(input *DeleteModelPackageInput) (*DeleteModelPackageOutput, error) {
	req, out := c.DeleteModelPackageRequest(input)
	return out, req.Send()
}

// DeleteModelPackageWithContext is the same as DeleteModelPackage with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteModelPackage for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteModelPackageWithContext(ctx aws.Context, input *DeleteModelPackageInput, opts ...request.Option) (*DeleteModelPackageOutput, error) {
	req, out := c.DeleteModelPackageRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteModelPackageGroup = "DeleteModelPackageGroup"

// DeleteModelPackageGroupRequest generates a "aws/request.Request" representing the
// client's request for the DeleteModelPackageGroup operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteModelPackageGroup for more information on using the DeleteModelPackageGroup
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteModelPackageGroupRequest method.
//	req, resp := client.DeleteModelPackageGroupRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteModelPackageGroup
func (c *SageMaker) DeleteModelPackageGroupRequest(input *DeleteModelPackageGroupInput) (req *request.Request, output *DeleteModelPackageGroupOutput) {
	op := &request.Operation{
		Name:       opDeleteModelPackageGroup,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteModelPackageGroupInput{}
	}

	output = &DeleteModelPackageGroupOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteModelPackageGroup API operation for Amazon SageMaker Service.
//
// Deletes the specified model group.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteModelPackageGroup for usage and error information.
//
// Returned Error Types:
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteModelPackageGroup
func (c *SageMaker) DeleteModelPackageGroup(input *DeleteModelPackageGroupInput) (*DeleteModelPackageGroupOutput, error) {
	req, out := c.DeleteModelPackageGroupRequest(input)
	return out, req.Send()
}

// DeleteModelPackageGroupWithContext is the same as DeleteModelPackageGroup with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteModelPackageGroup for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteModelPackageGroupWithContext(ctx aws.Context, input *DeleteModelPackageGroupInput, opts ...request.Option) (*DeleteModelPackageGroupOutput, error) {
	req, out := c.DeleteModelPackageGroupRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteModelPackageGroupPolicy = "DeleteModelPackageGroupPolicy"

// DeleteModelPackageGroupPolicyRequest generates a "aws/request.Request" representing the
// client's request for the DeleteModelPackageGroupPolicy operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteModelPackageGroupPolicy for more information on using the DeleteModelPackageGroupPolicy
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteModelPackageGroupPolicyRequest method.
//	req, resp := client.DeleteModelPackageGroupPolicyRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteModelPackageGroupPolicy
func (c *SageMaker) DeleteModelPackageGroupPolicyRequest(input *DeleteModelPackageGroupPolicyInput) (req *request.Request, output *DeleteModelPackageGroupPolicyOutput) {
	op := &request.Operation{
		Name:       opDeleteModelPackageGroupPolicy,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteModelPackageGroupPolicyInput{}
	}

	output = &DeleteModelPackageGroupPolicyOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteModelPackageGroupPolicy API operation for Amazon SageMaker Service.
//
// Deletes a model group resource policy.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteModelPackageGroupPolicy for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteModelPackageGroupPolicy
func (c *SageMaker) DeleteModelPackageGroupPolicy(input *DeleteModelPackageGroupPolicyInput) (*DeleteModelPackageGroupPolicyOutput, error) {
	req, out := c.DeleteModelPackageGroupPolicyRequest(input)
	return out, req.Send()
}

// DeleteModelPackageGroupPolicyWithContext is the same as DeleteModelPackageGroupPolicy with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteModelPackageGroupPolicy for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteModelPackageGroupPolicyWithContext(ctx aws.Context, input *DeleteModelPackageGroupPolicyInput, opts ...request.Option) (*DeleteModelPackageGroupPolicyOutput, error) {
	req, out := c.DeleteModelPackageGroupPolicyRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteModelQualityJobDefinition = "DeleteModelQualityJobDefinition"

// DeleteModelQualityJobDefinitionRequest generates a "aws/request.Request" representing the
// client's request for the DeleteModelQualityJobDefinition operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteModelQualityJobDefinition for more information on using the DeleteModelQualityJobDefinition
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteModelQualityJobDefinitionRequest method.
//	req, resp := client.DeleteModelQualityJobDefinitionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteModelQualityJobDefinition
func (c *SageMaker) DeleteModelQualityJobDefinitionRequest(input *DeleteModelQualityJobDefinitionInput) (req *request.Request, output *DeleteModelQualityJobDefinitionOutput) {
	op := &request.Operation{
		Name:       opDeleteModelQualityJobDefinition,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteModelQualityJobDefinitionInput{}
	}

	output = &DeleteModelQualityJobDefinitionOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteModelQualityJobDefinition API operation for Amazon SageMaker Service.
//
// Deletes the secified model quality monitoring job definition.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteModelQualityJobDefinition for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteModelQualityJobDefinition
func (c *SageMaker) DeleteModelQualityJobDefinition(input *DeleteModelQualityJobDefinitionInput) (*DeleteModelQualityJobDefinitionOutput, error) {
	req, out := c.DeleteModelQualityJobDefinitionRequest(input)
	return out, req.Send()
}

// DeleteModelQualityJobDefinitionWithContext is the same as DeleteModelQualityJobDefinition with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteModelQualityJobDefinition for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteModelQualityJobDefinitionWithContext(ctx aws.Context, input *DeleteModelQualityJobDefinitionInput, opts ...request.Option) (*DeleteModelQualityJobDefinitionOutput, error) {
	req, out := c.DeleteModelQualityJobDefinitionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteMonitoringSchedule = "DeleteMonitoringSchedule"

// DeleteMonitoringScheduleRequest generates a "aws/request.Request" representing the
// client's request for the DeleteMonitoringSchedule operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteMonitoringSchedule for more information on using the DeleteMonitoringSchedule
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteMonitoringScheduleRequest method.
//	req, resp := client.DeleteMonitoringScheduleRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteMonitoringSchedule
func (c *SageMaker) DeleteMonitoringScheduleRequest(input *DeleteMonitoringScheduleInput) (req *request.Request, output *DeleteMonitoringScheduleOutput) {
	op := &request.Operation{
		Name:       opDeleteMonitoringSchedule,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteMonitoringScheduleInput{}
	}

	output = &DeleteMonitoringScheduleOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteMonitoringSchedule API operation for Amazon SageMaker Service.
//
// Deletes a monitoring schedule. Also stops the schedule had not already been
// stopped. This does not delete the job execution history of the monitoring
// schedule.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteMonitoringSchedule for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteMonitoringSchedule
func (c *SageMaker) DeleteMonitoringSchedule(input *DeleteMonitoringScheduleInput) (*DeleteMonitoringScheduleOutput, error) {
	req, out := c.DeleteMonitoringScheduleRequest(input)
	return out, req.Send()
}

// DeleteMonitoringScheduleWithContext is the same as DeleteMonitoringSchedule with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteMonitoringSchedule for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteMonitoringScheduleWithContext(ctx aws.Context, input *DeleteMonitoringScheduleInput, opts ...request.Option) (*DeleteMonitoringScheduleOutput, error) {
	req, out := c.DeleteMonitoringScheduleRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteNotebookInstance = "DeleteNotebookInstance"

// DeleteNotebookInstanceRequest generates a "aws/request.Request" representing the
// client's request for the DeleteNotebookInstance operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteNotebookInstance for more information on using the DeleteNotebookInstance
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteNotebookInstanceRequest method.
//	req, resp := client.DeleteNotebookInstanceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteNotebookInstance
func (c *SageMaker) DeleteNotebookInstanceRequest(input *DeleteNotebookInstanceInput) (req *request.Request, output *DeleteNotebookInstanceOutput) {
	op := &request.Operation{
		Name:       opDeleteNotebookInstance,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteNotebookInstanceInput{}
	}

	output = &DeleteNotebookInstanceOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteNotebookInstance API operation for Amazon SageMaker Service.
//
// Deletes an SageMaker notebook instance. Before you can delete a notebook
// instance, you must call the StopNotebookInstance API.
//
// When you delete a notebook instance, you lose all of your data. SageMaker
// removes the ML compute instance, and deletes the ML storage volume and the
// network interface associated with the notebook instance.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteNotebookInstance for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteNotebookInstance
func (c *SageMaker) DeleteNotebookInstance(input *DeleteNotebookInstanceInput) (*DeleteNotebookInstanceOutput, error) {
	req, out := c.DeleteNotebookInstanceRequest(input)
	return out, req.Send()
}

// DeleteNotebookInstanceWithContext is the same as DeleteNotebookInstance with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteNotebookInstance for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteNotebookInstanceWithContext(ctx aws.Context, input *DeleteNotebookInstanceInput, opts ...request.Option) (*DeleteNotebookInstanceOutput, error) {
	req, out := c.DeleteNotebookInstanceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteNotebookInstanceLifecycleConfig = "DeleteNotebookInstanceLifecycleConfig"

// DeleteNotebookInstanceLifecycleConfigRequest generates a "aws/request.Request" representing the
// client's request for the DeleteNotebookInstanceLifecycleConfig operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteNotebookInstanceLifecycleConfig for more information on using the DeleteNotebookInstanceLifecycleConfig
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteNotebookInstanceLifecycleConfigRequest method.
//	req, resp := client.DeleteNotebookInstanceLifecycleConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteNotebookInstanceLifecycleConfig
func (c *SageMaker) DeleteNotebookInstanceLifecycleConfigRequest(input *DeleteNotebookInstanceLifecycleConfigInput) (req *request.Request, output *DeleteNotebookInstanceLifecycleConfigOutput) {
	op := &request.Operation{
		Name:       opDeleteNotebookInstanceLifecycleConfig,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteNotebookInstanceLifecycleConfigInput{}
	}

	output = &DeleteNotebookInstanceLifecycleConfigOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteNotebookInstanceLifecycleConfig API operation for Amazon SageMaker Service.
//
// Deletes a notebook instance lifecycle configuration.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteNotebookInstanceLifecycleConfig for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteNotebookInstanceLifecycleConfig
func (c *SageMaker) DeleteNotebookInstanceLifecycleConfig(input *DeleteNotebookInstanceLifecycleConfigInput) (*DeleteNotebookInstanceLifecycleConfigOutput, error) {
	req, out := c.DeleteNotebookInstanceLifecycleConfigRequest(input)
	return out, req.Send()
}

// DeleteNotebookInstanceLifecycleConfigWithContext is the same as DeleteNotebookInstanceLifecycleConfig with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteNotebookInstanceLifecycleConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteNotebookInstanceLifecycleConfigWithContext(ctx aws.Context, input *DeleteNotebookInstanceLifecycleConfigInput, opts ...request.Option) (*DeleteNotebookInstanceLifecycleConfigOutput, error) {
	req, out := c.DeleteNotebookInstanceLifecycleConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeletePipeline = "DeletePipeline"

// DeletePipelineRequest generates a "aws/request.Request" representing the
// client's request for the DeletePipeline operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeletePipeline for more information on using the DeletePipeline
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeletePipelineRequest method.
//	req, resp := client.DeletePipelineRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeletePipeline
func (c *SageMaker) DeletePipelineRequest(input *DeletePipelineInput) (req *request.Request, output *DeletePipelineOutput) {
	op := &request.Operation{
		Name:       opDeletePipeline,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeletePipelineInput{}
	}

	output = &DeletePipelineOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DeletePipeline API operation for Amazon SageMaker Service.
//
// Deletes a pipeline if there are no running instances of the pipeline. To
// delete a pipeline, you must stop all running instances of the pipeline using
// the StopPipelineExecution API. When you delete a pipeline, all instances
// of the pipeline are deleted.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeletePipeline for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFound
//     Resource being access is not found.
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeletePipeline
func (c *SageMaker) DeletePipeline(input *DeletePipelineInput) (*DeletePipelineOutput, error) {
	req, out := c.DeletePipelineRequest(input)
	return out, req.Send()
}

// DeletePipelineWithContext is the same as DeletePipeline with the addition of
// the ability to pass a context and additional request options.
//
// See DeletePipeline for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeletePipelineWithContext(ctx aws.Context, input *DeletePipelineInput, opts ...request.Option) (*DeletePipelineOutput, error) {
	req, out := c.DeletePipelineRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteProject = "DeleteProject"

// DeleteProjectRequest generates a "aws/request.Request" representing the
// client's request for the DeleteProject operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteProject for more information on using the DeleteProject
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteProjectRequest method.
//	req, resp := client.DeleteProjectRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteProject
func (c *SageMaker) DeleteProjectRequest(input *DeleteProjectInput) (req *request.Request, output *DeleteProjectOutput) {
	op := &request.Operation{
		Name:       opDeleteProject,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteProjectInput{}
	}

	output = &DeleteProjectOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteProject API operation for Amazon SageMaker Service.
//
// Delete the specified project.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteProject for usage and error information.
//
// Returned Error Types:
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteProject
func (c *SageMaker) DeleteProject(input *DeleteProjectInput) (*DeleteProjectOutput, error) {
	req, out := c.DeleteProjectRequest(input)
	return out, req.Send()
}

// DeleteProjectWithContext is the same as DeleteProject with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteProject for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteProjectWithContext(ctx aws.Context, input *DeleteProjectInput, opts ...request.Option) (*DeleteProjectOutput, error) {
	req, out := c.DeleteProjectRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteSpace = "DeleteSpace"

// DeleteSpaceRequest generates a "aws/request.Request" representing the
// client's request for the DeleteSpace operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteSpace for more information on using the DeleteSpace
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteSpaceRequest method.
//	req, resp := client.DeleteSpaceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteSpace
func (c *SageMaker) DeleteSpaceRequest(input *DeleteSpaceInput) (req *request.Request, output *DeleteSpaceOutput) {
	op := &request.Operation{
		Name:       opDeleteSpace,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteSpaceInput{}
	}

	output = &DeleteSpaceOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteSpace API operation for Amazon SageMaker Service.
//
// Used to delete a space.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteSpace for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteSpace
func (c *SageMaker) DeleteSpace(input *DeleteSpaceInput) (*DeleteSpaceOutput, error) {
	req, out := c.DeleteSpaceRequest(input)
	return out, req.Send()
}

// DeleteSpaceWithContext is the same as DeleteSpace with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteSpace for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteSpaceWithContext(ctx aws.Context, input *DeleteSpaceInput, opts ...request.Option) (*DeleteSpaceOutput, error) {
	req, out := c.DeleteSpaceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteStudioLifecycleConfig = "DeleteStudioLifecycleConfig"

// DeleteStudioLifecycleConfigRequest generates a "aws/request.Request" representing the
// client's request for the DeleteStudioLifecycleConfig operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteStudioLifecycleConfig for more information on using the DeleteStudioLifecycleConfig
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteStudioLifecycleConfigRequest method.
//	req, resp := client.DeleteStudioLifecycleConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteStudioLifecycleConfig
func (c *SageMaker) DeleteStudioLifecycleConfigRequest(input *DeleteStudioLifecycleConfigInput) (req *request.Request, output *DeleteStudioLifecycleConfigOutput) {
	op := &request.Operation{
		Name:       opDeleteStudioLifecycleConfig,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteStudioLifecycleConfigInput{}
	}

	output = &DeleteStudioLifecycleConfigOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteStudioLifecycleConfig API operation for Amazon SageMaker Service.
//
// Deletes the Amazon SageMaker Studio Lifecycle Configuration. In order to
// delete the Lifecycle Configuration, there must be no running apps using the
// Lifecycle Configuration. You must also remove the Lifecycle Configuration
// from UserSettings in all Domains and UserProfiles.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteStudioLifecycleConfig for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFound
//     Resource being access is not found.
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteStudioLifecycleConfig
func (c *SageMaker) DeleteStudioLifecycleConfig(input *DeleteStudioLifecycleConfigInput) (*DeleteStudioLifecycleConfigOutput, error) {
	req, out := c.DeleteStudioLifecycleConfigRequest(input)
	return out, req.Send()
}

// DeleteStudioLifecycleConfigWithContext is the same as DeleteStudioLifecycleConfig with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteStudioLifecycleConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteStudioLifecycleConfigWithContext(ctx aws.Context, input *DeleteStudioLifecycleConfigInput, opts ...request.Option) (*DeleteStudioLifecycleConfigOutput, error) {
	req, out := c.DeleteStudioLifecycleConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteTags = "DeleteTags"

// DeleteTagsRequest generates a "aws/request.Request" representing the
// client's request for the DeleteTags operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteTags for more information on using the DeleteTags
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteTagsRequest method.
//	req, resp := client.DeleteTagsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteTags
func (c *SageMaker) DeleteTagsRequest(input *DeleteTagsInput) (req *request.Request, output *DeleteTagsOutput) {
	op := &request.Operation{
		Name:       opDeleteTags,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteTagsInput{}
	}

	output = &DeleteTagsOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteTags API operation for Amazon SageMaker Service.
//
// Deletes the specified tags from an SageMaker resource.
//
// To list a resource's tags, use the ListTags API.
//
// When you call this API to delete tags from a hyperparameter tuning job, the
// deleted tags are not removed from training jobs that the hyperparameter tuning
// job launched before you called this API.
//
// When you call this API to delete tags from a SageMaker Domain or User Profile,
// the deleted tags are not removed from Apps that the SageMaker Domain or User
// Profile launched before you called this API.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteTags for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteTags
func (c *SageMaker) DeleteTags(input *DeleteTagsInput) (*DeleteTagsOutput, error) {
	req, out := c.DeleteTagsRequest(input)
	return out, req.Send()
}

// DeleteTagsWithContext is the same as DeleteTags with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteTags for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteTagsWithContext(ctx aws.Context, input *DeleteTagsInput, opts ...request.Option) (*DeleteTagsOutput, error) {
	req, out := c.DeleteTagsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteTrial = "DeleteTrial"

// DeleteTrialRequest generates a "aws/request.Request" representing the
// client's request for the DeleteTrial operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteTrial for more information on using the DeleteTrial
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteTrialRequest method.
//	req, resp := client.DeleteTrialRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteTrial
func (c *SageMaker) DeleteTrialRequest(input *DeleteTrialInput) (req *request.Request, output *DeleteTrialOutput) {
	op := &request.Operation{
		Name:       opDeleteTrial,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteTrialInput{}
	}

	output = &DeleteTrialOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DeleteTrial API operation for Amazon SageMaker Service.
//
// Deletes the specified trial. All trial components that make up the trial
// must be deleted first. Use the DescribeTrialComponent (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrialComponent.html)
// API to get the list of trial components.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteTrial for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteTrial
func (c *SageMaker) DeleteTrial(input *DeleteTrialInput) (*DeleteTrialOutput, error) {
	req, out := c.DeleteTrialRequest(input)
	return out, req.Send()
}

// DeleteTrialWithContext is the same as DeleteTrial with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteTrial for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteTrialWithContext(ctx aws.Context, input *DeleteTrialInput, opts ...request.Option) (*DeleteTrialOutput, error) {
	req, out := c.DeleteTrialRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteTrialComponent = "DeleteTrialComponent"

// DeleteTrialComponentRequest generates a "aws/request.Request" representing the
// client's request for the DeleteTrialComponent operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteTrialComponent for more information on using the DeleteTrialComponent
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteTrialComponentRequest method.
//	req, resp := client.DeleteTrialComponentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteTrialComponent
func (c *SageMaker) DeleteTrialComponentRequest(input *DeleteTrialComponentInput) (req *request.Request, output *DeleteTrialComponentOutput) {
	op := &request.Operation{
		Name:       opDeleteTrialComponent,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteTrialComponentInput{}
	}

	output = &DeleteTrialComponentOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DeleteTrialComponent API operation for Amazon SageMaker Service.
//
// Deletes the specified trial component. A trial component must be disassociated
// from all trials before the trial component can be deleted. To disassociate
// a trial component from a trial, call the DisassociateTrialComponent (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DisassociateTrialComponent.html)
// API.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteTrialComponent for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteTrialComponent
func (c *SageMaker) DeleteTrialComponent(input *DeleteTrialComponentInput) (*DeleteTrialComponentOutput, error) {
	req, out := c.DeleteTrialComponentRequest(input)
	return out, req.Send()
}

// DeleteTrialComponentWithContext is the same as DeleteTrialComponent with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteTrialComponent for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteTrialComponentWithContext(ctx aws.Context, input *DeleteTrialComponentInput, opts ...request.Option) (*DeleteTrialComponentOutput, error) {
	req, out := c.DeleteTrialComponentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteUserProfile = "DeleteUserProfile"

// DeleteUserProfileRequest generates a "aws/request.Request" representing the
// client's request for the DeleteUserProfile operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteUserProfile for more information on using the DeleteUserProfile
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteUserProfileRequest method.
//	req, resp := client.DeleteUserProfileRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteUserProfile
func (c *SageMaker) DeleteUserProfileRequest(input *DeleteUserProfileInput) (req *request.Request, output *DeleteUserProfileOutput) {
	op := &request.Operation{
		Name:       opDeleteUserProfile,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteUserProfileInput{}
	}

	output = &DeleteUserProfileOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteUserProfile API operation for Amazon SageMaker Service.
//
// Deletes a user profile. When a user profile is deleted, the user loses access
// to their EFS volume, including data, notebooks, and other artifacts.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteUserProfile for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteUserProfile
func (c *SageMaker) DeleteUserProfile(input *DeleteUserProfileInput) (*DeleteUserProfileOutput, error) {
	req, out := c.DeleteUserProfileRequest(input)
	return out, req.Send()
}

// DeleteUserProfileWithContext is the same as DeleteUserProfile with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteUserProfile for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteUserProfileWithContext(ctx aws.Context, input *DeleteUserProfileInput, opts ...request.Option) (*DeleteUserProfileOutput, error) {
	req, out := c.DeleteUserProfileRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteWorkforce = "DeleteWorkforce"

// DeleteWorkforceRequest generates a "aws/request.Request" representing the
// client's request for the DeleteWorkforce operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteWorkforce for more information on using the DeleteWorkforce
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteWorkforceRequest method.
//	req, resp := client.DeleteWorkforceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteWorkforce
func (c *SageMaker) DeleteWorkforceRequest(input *DeleteWorkforceInput) (req *request.Request, output *DeleteWorkforceOutput) {
	op := &request.Operation{
		Name:       opDeleteWorkforce,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteWorkforceInput{}
	}

	output = &DeleteWorkforceOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteWorkforce API operation for Amazon SageMaker Service.
//
// Use this operation to delete a workforce.
//
// If you want to create a new workforce in an Amazon Web Services Region where
// a workforce already exists, use this operation to delete the existing workforce
// and then use CreateWorkforce (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateWorkforce.html)
// to create a new workforce.
//
// If a private workforce contains one or more work teams, you must use the
// DeleteWorkteam (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteWorkteam.html)
// operation to delete all work teams before you delete the workforce. If you
// try to delete a workforce that contains one or more work teams, you will
// recieve a ResourceInUse error.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteWorkforce for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteWorkforce
func (c *SageMaker) DeleteWorkforce(input *DeleteWorkforceInput) (*DeleteWorkforceOutput, error) {
	req, out := c.DeleteWorkforceRequest(input)
	return out, req.Send()
}

// DeleteWorkforceWithContext is the same as DeleteWorkforce with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteWorkforce for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteWorkforceWithContext(ctx aws.Context, input *DeleteWorkforceInput, opts ...request.Option) (*DeleteWorkforceOutput, error) {
	req, out := c.DeleteWorkforceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteWorkteam = "DeleteWorkteam"

// DeleteWorkteamRequest generates a "aws/request.Request" representing the
// client's request for the DeleteWorkteam operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteWorkteam for more information on using the DeleteWorkteam
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteWorkteamRequest method.
//	req, resp := client.DeleteWorkteamRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteWorkteam
func (c *SageMaker) DeleteWorkteamRequest(input *DeleteWorkteamInput) (req *request.Request, output *DeleteWorkteamOutput) {
	op := &request.Operation{
		Name:       opDeleteWorkteam,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteWorkteamInput{}
	}

	output = &DeleteWorkteamOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DeleteWorkteam API operation for Amazon SageMaker Service.
//
// Deletes an existing work team. This operation can't be undone.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeleteWorkteam for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeleteWorkteam
func (c *SageMaker) DeleteWorkteam(input *DeleteWorkteamInput) (*DeleteWorkteamOutput, error) {
	req, out := c.DeleteWorkteamRequest(input)
	return out, req.Send()
}

// DeleteWorkteamWithContext is the same as DeleteWorkteam with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteWorkteam for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeleteWorkteamWithContext(ctx aws.Context, input *DeleteWorkteamInput, opts ...request.Option) (*DeleteWorkteamOutput, error) {
	req, out := c.DeleteWorkteamRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeregisterDevices = "DeregisterDevices"

// DeregisterDevicesRequest generates a "aws/request.Request" representing the
// client's request for the DeregisterDevices operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeregisterDevices for more information on using the DeregisterDevices
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeregisterDevicesRequest method.
//	req, resp := client.DeregisterDevicesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeregisterDevices
func (c *SageMaker) DeregisterDevicesRequest(input *DeregisterDevicesInput) (req *request.Request, output *DeregisterDevicesOutput) {
	op := &request.Operation{
		Name:       opDeregisterDevices,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeregisterDevicesInput{}
	}

	output = &DeregisterDevicesOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeregisterDevices API operation for Amazon SageMaker Service.
//
// Deregisters the specified devices. After you deregister a device, you will
// need to re-register the devices.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DeregisterDevices for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DeregisterDevices
func (c *SageMaker) DeregisterDevices(input *DeregisterDevicesInput) (*DeregisterDevicesOutput, error) {
	req, out := c.DeregisterDevicesRequest(input)
	return out, req.Send()
}

// DeregisterDevicesWithContext is the same as DeregisterDevices with the addition of
// the ability to pass a context and additional request options.
//
// See DeregisterDevices for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DeregisterDevicesWithContext(ctx aws.Context, input *DeregisterDevicesInput, opts ...request.Option) (*DeregisterDevicesOutput, error) {
	req, out := c.DeregisterDevicesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeAction = "DescribeAction"

// DescribeActionRequest generates a "aws/request.Request" representing the
// client's request for the DescribeAction operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeAction for more information on using the DescribeAction
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeActionRequest method.
//	req, resp := client.DescribeActionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeAction
func (c *SageMaker) DescribeActionRequest(input *DescribeActionInput) (req *request.Request, output *DescribeActionOutput) {
	op := &request.Operation{
		Name:       opDescribeAction,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeActionInput{}
	}

	output = &DescribeActionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeAction API operation for Amazon SageMaker Service.
//
// Describes an action.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeAction for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeAction
func (c *SageMaker) DescribeAction(input *DescribeActionInput) (*DescribeActionOutput, error) {
	req, out := c.DescribeActionRequest(input)
	return out, req.Send()
}

// DescribeActionWithContext is the same as DescribeAction with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeAction for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeActionWithContext(ctx aws.Context, input *DescribeActionInput, opts ...request.Option) (*DescribeActionOutput, error) {
	req, out := c.DescribeActionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeAlgorithm = "DescribeAlgorithm"

// DescribeAlgorithmRequest generates a "aws/request.Request" representing the
// client's request for the DescribeAlgorithm operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeAlgorithm for more information on using the DescribeAlgorithm
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeAlgorithmRequest method.
//	req, resp := client.DescribeAlgorithmRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeAlgorithm
func (c *SageMaker) DescribeAlgorithmRequest(input *DescribeAlgorithmInput) (req *request.Request, output *DescribeAlgorithmOutput) {
	op := &request.Operation{
		Name:       opDescribeAlgorithm,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeAlgorithmInput{}
	}

	output = &DescribeAlgorithmOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeAlgorithm API operation for Amazon SageMaker Service.
//
// Returns a description of the specified algorithm that is in your account.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeAlgorithm for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeAlgorithm
func (c *SageMaker) DescribeAlgorithm(input *DescribeAlgorithmInput) (*DescribeAlgorithmOutput, error) {
	req, out := c.DescribeAlgorithmRequest(input)
	return out, req.Send()
}

// DescribeAlgorithmWithContext is the same as DescribeAlgorithm with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeAlgorithm for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeAlgorithmWithContext(ctx aws.Context, input *DescribeAlgorithmInput, opts ...request.Option) (*DescribeAlgorithmOutput, error) {
	req, out := c.DescribeAlgorithmRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeApp = "DescribeApp"

// DescribeAppRequest generates a "aws/request.Request" representing the
// client's request for the DescribeApp operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeApp for more information on using the DescribeApp
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeAppRequest method.
//	req, resp := client.DescribeAppRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeApp
func (c *SageMaker) DescribeAppRequest(input *DescribeAppInput) (req *request.Request, output *DescribeAppOutput) {
	op := &request.Operation{
		Name:       opDescribeApp,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeAppInput{}
	}

	output = &DescribeAppOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeApp API operation for Amazon SageMaker Service.
//
// Describes the app.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeApp for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeApp
func (c *SageMaker) DescribeApp(input *DescribeAppInput) (*DescribeAppOutput, error) {
	req, out := c.DescribeAppRequest(input)
	return out, req.Send()
}

// DescribeAppWithContext is the same as DescribeApp with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeApp for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeAppWithContext(ctx aws.Context, input *DescribeAppInput, opts ...request.Option) (*DescribeAppOutput, error) {
	req, out := c.DescribeAppRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeAppImageConfig = "DescribeAppImageConfig"

// DescribeAppImageConfigRequest generates a "aws/request.Request" representing the
// client's request for the DescribeAppImageConfig operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeAppImageConfig for more information on using the DescribeAppImageConfig
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeAppImageConfigRequest method.
//	req, resp := client.DescribeAppImageConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeAppImageConfig
func (c *SageMaker) DescribeAppImageConfigRequest(input *DescribeAppImageConfigInput) (req *request.Request, output *DescribeAppImageConfigOutput) {
	op := &request.Operation{
		Name:       opDescribeAppImageConfig,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeAppImageConfigInput{}
	}

	output = &DescribeAppImageConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeAppImageConfig API operation for Amazon SageMaker Service.
//
// Describes an AppImageConfig.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeAppImageConfig for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeAppImageConfig
func (c *SageMaker) DescribeAppImageConfig(input *DescribeAppImageConfigInput) (*DescribeAppImageConfigOutput, error) {
	req, out := c.DescribeAppImageConfigRequest(input)
	return out, req.Send()
}

// DescribeAppImageConfigWithContext is the same as DescribeAppImageConfig with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeAppImageConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeAppImageConfigWithContext(ctx aws.Context, input *DescribeAppImageConfigInput, opts ...request.Option) (*DescribeAppImageConfigOutput, error) {
	req, out := c.DescribeAppImageConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeArtifact = "DescribeArtifact"

// DescribeArtifactRequest generates a "aws/request.Request" representing the
// client's request for the DescribeArtifact operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeArtifact for more information on using the DescribeArtifact
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeArtifactRequest method.
//	req, resp := client.DescribeArtifactRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeArtifact
func (c *SageMaker) DescribeArtifactRequest(input *DescribeArtifactInput) (req *request.Request, output *DescribeArtifactOutput) {
	op := &request.Operation{
		Name:       opDescribeArtifact,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeArtifactInput{}
	}

	output = &DescribeArtifactOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeArtifact API operation for Amazon SageMaker Service.
//
// Describes an artifact.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeArtifact for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeArtifact
func (c *SageMaker) DescribeArtifact(input *DescribeArtifactInput) (*DescribeArtifactOutput, error) {
	req, out := c.DescribeArtifactRequest(input)
	return out, req.Send()
}

// DescribeArtifactWithContext is the same as DescribeArtifact with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeArtifact for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeArtifactWithContext(ctx aws.Context, input *DescribeArtifactInput, opts ...request.Option) (*DescribeArtifactOutput, error) {
	req, out := c.DescribeArtifactRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeAutoMLJob = "DescribeAutoMLJob"

// DescribeAutoMLJobRequest generates a "aws/request.Request" representing the
// client's request for the DescribeAutoMLJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeAutoMLJob for more information on using the DescribeAutoMLJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeAutoMLJobRequest method.
//	req, resp := client.DescribeAutoMLJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeAutoMLJob
func (c *SageMaker) DescribeAutoMLJobRequest(input *DescribeAutoMLJobInput) (req *request.Request, output *DescribeAutoMLJobOutput) {
	op := &request.Operation{
		Name:       opDescribeAutoMLJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeAutoMLJobInput{}
	}

	output = &DescribeAutoMLJobOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeAutoMLJob API operation for Amazon SageMaker Service.
//
// Returns information about an AutoML job created by calling CreateAutoMLJob
// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html).
//
// AutoML jobs created by calling CreateAutoMLJobV2 (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html)
// cannot be described by DescribeAutoMLJob.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeAutoMLJob for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeAutoMLJob
func (c *SageMaker) DescribeAutoMLJob(input *DescribeAutoMLJobInput) (*DescribeAutoMLJobOutput, error) {
	req, out := c.DescribeAutoMLJobRequest(input)
	return out, req.Send()
}

// DescribeAutoMLJobWithContext is the same as DescribeAutoMLJob with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeAutoMLJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeAutoMLJobWithContext(ctx aws.Context, input *DescribeAutoMLJobInput, opts ...request.Option) (*DescribeAutoMLJobOutput, error) {
	req, out := c.DescribeAutoMLJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeAutoMLJobV2 = "DescribeAutoMLJobV2"

// DescribeAutoMLJobV2Request generates a "aws/request.Request" representing the
// client's request for the DescribeAutoMLJobV2 operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeAutoMLJobV2 for more information on using the DescribeAutoMLJobV2
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeAutoMLJobV2Request method.
//	req, resp := client.DescribeAutoMLJobV2Request(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeAutoMLJobV2
func (c *SageMaker) DescribeAutoMLJobV2Request(input *DescribeAutoMLJobV2Input) (req *request.Request, output *DescribeAutoMLJobV2Output) {
	op := &request.Operation{
		Name:       opDescribeAutoMLJobV2,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeAutoMLJobV2Input{}
	}

	output = &DescribeAutoMLJobV2Output{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeAutoMLJobV2 API operation for Amazon SageMaker Service.
//
// Returns information about an AutoML job created by calling CreateAutoMLJobV2
// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html)
// or CreateAutoMLJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeAutoMLJobV2 for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeAutoMLJobV2
func (c *SageMaker) DescribeAutoMLJobV2(input *DescribeAutoMLJobV2Input) (*DescribeAutoMLJobV2Output, error) {
	req, out := c.DescribeAutoMLJobV2Request(input)
	return out, req.Send()
}

// DescribeAutoMLJobV2WithContext is the same as DescribeAutoMLJobV2 with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeAutoMLJobV2 for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeAutoMLJobV2WithContext(ctx aws.Context, input *DescribeAutoMLJobV2Input, opts ...request.Option) (*DescribeAutoMLJobV2Output, error) {
	req, out := c.DescribeAutoMLJobV2Request(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeCluster = "DescribeCluster"

// DescribeClusterRequest generates a "aws/request.Request" representing the
// client's request for the DescribeCluster operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeCluster for more information on using the DescribeCluster
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeClusterRequest method.
//	req, resp := client.DescribeClusterRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeCluster
func (c *SageMaker) DescribeClusterRequest(input *DescribeClusterInput) (req *request.Request, output *DescribeClusterOutput) {
	op := &request.Operation{
		Name:       opDescribeCluster,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeClusterInput{}
	}

	output = &DescribeClusterOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeCluster API operation for Amazon SageMaker Service.
//
// Retrieves information of a SageMaker HyperPod cluster.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeCluster for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeCluster
func (c *SageMaker) DescribeCluster(input *DescribeClusterInput) (*DescribeClusterOutput, error) {
	req, out := c.DescribeClusterRequest(input)
	return out, req.Send()
}

// DescribeClusterWithContext is the same as DescribeCluster with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeCluster for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeClusterWithContext(ctx aws.Context, input *DescribeClusterInput, opts ...request.Option) (*DescribeClusterOutput, error) {
	req, out := c.DescribeClusterRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeClusterNode = "DescribeClusterNode"

// DescribeClusterNodeRequest generates a "aws/request.Request" representing the
// client's request for the DescribeClusterNode operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeClusterNode for more information on using the DescribeClusterNode
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeClusterNodeRequest method.
//	req, resp := client.DescribeClusterNodeRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeClusterNode
func (c *SageMaker) DescribeClusterNodeRequest(input *DescribeClusterNodeInput) (req *request.Request, output *DescribeClusterNodeOutput) {
	op := &request.Operation{
		Name:       opDescribeClusterNode,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeClusterNodeInput{}
	}

	output = &DescribeClusterNodeOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeClusterNode API operation for Amazon SageMaker Service.
//
// Retrieves information of an instance (also called a node interchangeably)
// of a SageMaker HyperPod cluster.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeClusterNode for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeClusterNode
func (c *SageMaker) DescribeClusterNode(input *DescribeClusterNodeInput) (*DescribeClusterNodeOutput, error) {
	req, out := c.DescribeClusterNodeRequest(input)
	return out, req.Send()
}

// DescribeClusterNodeWithContext is the same as DescribeClusterNode with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeClusterNode for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeClusterNodeWithContext(ctx aws.Context, input *DescribeClusterNodeInput, opts ...request.Option) (*DescribeClusterNodeOutput, error) {
	req, out := c.DescribeClusterNodeRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeCodeRepository = "DescribeCodeRepository"

// DescribeCodeRepositoryRequest generates a "aws/request.Request" representing the
// client's request for the DescribeCodeRepository operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeCodeRepository for more information on using the DescribeCodeRepository
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeCodeRepositoryRequest method.
//	req, resp := client.DescribeCodeRepositoryRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeCodeRepository
func (c *SageMaker) DescribeCodeRepositoryRequest(input *DescribeCodeRepositoryInput) (req *request.Request, output *DescribeCodeRepositoryOutput) {
	op := &request.Operation{
		Name:       opDescribeCodeRepository,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeCodeRepositoryInput{}
	}

	output = &DescribeCodeRepositoryOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeCodeRepository API operation for Amazon SageMaker Service.
//
// Gets details about the specified Git repository.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeCodeRepository for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeCodeRepository
func (c *SageMaker) DescribeCodeRepository(input *DescribeCodeRepositoryInput) (*DescribeCodeRepositoryOutput, error) {
	req, out := c.DescribeCodeRepositoryRequest(input)
	return out, req.Send()
}

// DescribeCodeRepositoryWithContext is the same as DescribeCodeRepository with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeCodeRepository for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeCodeRepositoryWithContext(ctx aws.Context, input *DescribeCodeRepositoryInput, opts ...request.Option) (*DescribeCodeRepositoryOutput, error) {
	req, out := c.DescribeCodeRepositoryRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeCompilationJob = "DescribeCompilationJob"

// DescribeCompilationJobRequest generates a "aws/request.Request" representing the
// client's request for the DescribeCompilationJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeCompilationJob for more information on using the DescribeCompilationJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeCompilationJobRequest method.
//	req, resp := client.DescribeCompilationJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeCompilationJob
func (c *SageMaker) DescribeCompilationJobRequest(input *DescribeCompilationJobInput) (req *request.Request, output *DescribeCompilationJobOutput) {
	op := &request.Operation{
		Name:       opDescribeCompilationJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeCompilationJobInput{}
	}

	output = &DescribeCompilationJobOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeCompilationJob API operation for Amazon SageMaker Service.
//
// Returns information about a model compilation job.
//
// To create a model compilation job, use CreateCompilationJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCompilationJob.html).
// To get information about multiple model compilation jobs, use ListCompilationJobs
// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListCompilationJobs.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeCompilationJob for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeCompilationJob
func (c *SageMaker) DescribeCompilationJob(input *DescribeCompilationJobInput) (*DescribeCompilationJobOutput, error) {
	req, out := c.DescribeCompilationJobRequest(input)
	return out, req.Send()
}

// DescribeCompilationJobWithContext is the same as DescribeCompilationJob with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeCompilationJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeCompilationJobWithContext(ctx aws.Context, input *DescribeCompilationJobInput, opts ...request.Option) (*DescribeCompilationJobOutput, error) {
	req, out := c.DescribeCompilationJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeContext = "DescribeContext"

// DescribeContextRequest generates a "aws/request.Request" representing the
// client's request for the DescribeContext operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeContext for more information on using the DescribeContext
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeContextRequest method.
//	req, resp := client.DescribeContextRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeContext
func (c *SageMaker) DescribeContextRequest(input *DescribeContextInput) (req *request.Request, output *DescribeContextOutput) {
	op := &request.Operation{
		Name:       opDescribeContext,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeContextInput{}
	}

	output = &DescribeContextOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeContext API operation for Amazon SageMaker Service.
//
// Describes a context.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeContext for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeContext
func (c *SageMaker) DescribeContext(input *DescribeContextInput) (*DescribeContextOutput, error) {
	req, out := c.DescribeContextRequest(input)
	return out, req.Send()
}

// DescribeContextWithContext is the same as DescribeContext with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeContext for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeContextWithContext(ctx aws.Context, input *DescribeContextInput, opts ...request.Option) (*DescribeContextOutput, error) {
	req, out := c.DescribeContextRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeDataQualityJobDefinition = "DescribeDataQualityJobDefinition"

// DescribeDataQualityJobDefinitionRequest generates a "aws/request.Request" representing the
// client's request for the DescribeDataQualityJobDefinition operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeDataQualityJobDefinition for more information on using the DescribeDataQualityJobDefinition
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeDataQualityJobDefinitionRequest method.
//	req, resp := client.DescribeDataQualityJobDefinitionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeDataQualityJobDefinition
func (c *SageMaker) DescribeDataQualityJobDefinitionRequest(input *DescribeDataQualityJobDefinitionInput) (req *request.Request, output *DescribeDataQualityJobDefinitionOutput) {
	op := &request.Operation{
		Name:       opDescribeDataQualityJobDefinition,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeDataQualityJobDefinitionInput{}
	}

	output = &DescribeDataQualityJobDefinitionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeDataQualityJobDefinition API operation for Amazon SageMaker Service.
//
// Gets the details of a data quality monitoring job definition.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeDataQualityJobDefinition for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeDataQualityJobDefinition
func (c *SageMaker) DescribeDataQualityJobDefinition(input *DescribeDataQualityJobDefinitionInput) (*DescribeDataQualityJobDefinitionOutput, error) {
	req, out := c.DescribeDataQualityJobDefinitionRequest(input)
	return out, req.Send()
}

// DescribeDataQualityJobDefinitionWithContext is the same as DescribeDataQualityJobDefinition with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeDataQualityJobDefinition for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeDataQualityJobDefinitionWithContext(ctx aws.Context, input *DescribeDataQualityJobDefinitionInput, opts ...request.Option) (*DescribeDataQualityJobDefinitionOutput, error) {
	req, out := c.DescribeDataQualityJobDefinitionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeDevice = "DescribeDevice"

// DescribeDeviceRequest generates a "aws/request.Request" representing the
// client's request for the DescribeDevice operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeDevice for more information on using the DescribeDevice
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeDeviceRequest method.
//	req, resp := client.DescribeDeviceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeDevice
func (c *SageMaker) DescribeDeviceRequest(input *DescribeDeviceInput) (req *request.Request, output *DescribeDeviceOutput) {
	op := &request.Operation{
		Name:       opDescribeDevice,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeDeviceInput{}
	}

	output = &DescribeDeviceOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeDevice API operation for Amazon SageMaker Service.
//
// Describes the device.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeDevice for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeDevice
func (c *SageMaker) DescribeDevice(input *DescribeDeviceInput) (*DescribeDeviceOutput, error) {
	req, out := c.DescribeDeviceRequest(input)
	return out, req.Send()
}

// DescribeDeviceWithContext is the same as DescribeDevice with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeDevice for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeDeviceWithContext(ctx aws.Context, input *DescribeDeviceInput, opts ...request.Option) (*DescribeDeviceOutput, error) {
	req, out := c.DescribeDeviceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeDeviceFleet = "DescribeDeviceFleet"

// DescribeDeviceFleetRequest generates a "aws/request.Request" representing the
// client's request for the DescribeDeviceFleet operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeDeviceFleet for more information on using the DescribeDeviceFleet
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeDeviceFleetRequest method.
//	req, resp := client.DescribeDeviceFleetRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeDeviceFleet
func (c *SageMaker) DescribeDeviceFleetRequest(input *DescribeDeviceFleetInput) (req *request.Request, output *DescribeDeviceFleetOutput) {
	op := &request.Operation{
		Name:       opDescribeDeviceFleet,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeDeviceFleetInput{}
	}

	output = &DescribeDeviceFleetOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeDeviceFleet API operation for Amazon SageMaker Service.
//
// A description of the fleet the device belongs to.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeDeviceFleet for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeDeviceFleet
func (c *SageMaker) DescribeDeviceFleet(input *DescribeDeviceFleetInput) (*DescribeDeviceFleetOutput, error) {
	req, out := c.DescribeDeviceFleetRequest(input)
	return out, req.Send()
}

// DescribeDeviceFleetWithContext is the same as DescribeDeviceFleet with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeDeviceFleet for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeDeviceFleetWithContext(ctx aws.Context, input *DescribeDeviceFleetInput, opts ...request.Option) (*DescribeDeviceFleetOutput, error) {
	req, out := c.DescribeDeviceFleetRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeDomain = "DescribeDomain"

// DescribeDomainRequest generates a "aws/request.Request" representing the
// client's request for the DescribeDomain operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeDomain for more information on using the DescribeDomain
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeDomainRequest method.
//	req, resp := client.DescribeDomainRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeDomain
func (c *SageMaker) DescribeDomainRequest(input *DescribeDomainInput) (req *request.Request, output *DescribeDomainOutput) {
	op := &request.Operation{
		Name:       opDescribeDomain,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeDomainInput{}
	}

	output = &DescribeDomainOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeDomain API operation for Amazon SageMaker Service.
//
// The description of the domain.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeDomain for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeDomain
func (c *SageMaker) DescribeDomain(input *DescribeDomainInput) (*DescribeDomainOutput, error) {
	req, out := c.DescribeDomainRequest(input)
	return out, req.Send()
}

// DescribeDomainWithContext is the same as DescribeDomain with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeDomain for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeDomainWithContext(ctx aws.Context, input *DescribeDomainInput, opts ...request.Option) (*DescribeDomainOutput, error) {
	req, out := c.DescribeDomainRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeEdgeDeploymentPlan = "DescribeEdgeDeploymentPlan"

// DescribeEdgeDeploymentPlanRequest generates a "aws/request.Request" representing the
// client's request for the DescribeEdgeDeploymentPlan operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeEdgeDeploymentPlan for more information on using the DescribeEdgeDeploymentPlan
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeEdgeDeploymentPlanRequest method.
//	req, resp := client.DescribeEdgeDeploymentPlanRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeEdgeDeploymentPlan
func (c *SageMaker) DescribeEdgeDeploymentPlanRequest(input *DescribeEdgeDeploymentPlanInput) (req *request.Request, output *DescribeEdgeDeploymentPlanOutput) {
	op := &request.Operation{
		Name:       opDescribeEdgeDeploymentPlan,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeEdgeDeploymentPlanInput{}
	}

	output = &DescribeEdgeDeploymentPlanOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeEdgeDeploymentPlan API operation for Amazon SageMaker Service.
//
// Describes an edge deployment plan with deployment status per stage.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeEdgeDeploymentPlan for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeEdgeDeploymentPlan
func (c *SageMaker) DescribeEdgeDeploymentPlan(input *DescribeEdgeDeploymentPlanInput) (*DescribeEdgeDeploymentPlanOutput, error) {
	req, out := c.DescribeEdgeDeploymentPlanRequest(input)
	return out, req.Send()
}

// DescribeEdgeDeploymentPlanWithContext is the same as DescribeEdgeDeploymentPlan with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeEdgeDeploymentPlan for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeEdgeDeploymentPlanWithContext(ctx aws.Context, input *DescribeEdgeDeploymentPlanInput, opts ...request.Option) (*DescribeEdgeDeploymentPlanOutput, error) {
	req, out := c.DescribeEdgeDeploymentPlanRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeEdgePackagingJob = "DescribeEdgePackagingJob"

// DescribeEdgePackagingJobRequest generates a "aws/request.Request" representing the
// client's request for the DescribeEdgePackagingJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeEdgePackagingJob for more information on using the DescribeEdgePackagingJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeEdgePackagingJobRequest method.
//	req, resp := client.DescribeEdgePackagingJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeEdgePackagingJob
func (c *SageMaker) DescribeEdgePackagingJobRequest(input *DescribeEdgePackagingJobInput) (req *request.Request, output *DescribeEdgePackagingJobOutput) {
	op := &request.Operation{
		Name:       opDescribeEdgePackagingJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeEdgePackagingJobInput{}
	}

	output = &DescribeEdgePackagingJobOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeEdgePackagingJob API operation for Amazon SageMaker Service.
//
// A description of edge packaging jobs.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeEdgePackagingJob for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeEdgePackagingJob
func (c *SageMaker) DescribeEdgePackagingJob(input *DescribeEdgePackagingJobInput) (*DescribeEdgePackagingJobOutput, error) {
	req, out := c.DescribeEdgePackagingJobRequest(input)
	return out, req.Send()
}

// DescribeEdgePackagingJobWithContext is the same as DescribeEdgePackagingJob with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeEdgePackagingJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeEdgePackagingJobWithContext(ctx aws.Context, input *DescribeEdgePackagingJobInput, opts ...request.Option) (*DescribeEdgePackagingJobOutput, error) {
	req, out := c.DescribeEdgePackagingJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeEndpoint = "DescribeEndpoint"

// DescribeEndpointRequest generates a "aws/request.Request" representing the
// client's request for the DescribeEndpoint operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeEndpoint for more information on using the DescribeEndpoint
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeEndpointRequest method.
//	req, resp := client.DescribeEndpointRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeEndpoint
func (c *SageMaker) DescribeEndpointRequest(input *DescribeEndpointInput) (req *request.Request, output *DescribeEndpointOutput) {
	op := &request.Operation{
		Name:       opDescribeEndpoint,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeEndpointInput{}
	}

	output = &DescribeEndpointOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeEndpoint API operation for Amazon SageMaker Service.
//
// Returns the description of an endpoint.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeEndpoint for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeEndpoint
func (c *SageMaker) DescribeEndpoint(input *DescribeEndpointInput) (*DescribeEndpointOutput, error) {
	req, out := c.DescribeEndpointRequest(input)
	return out, req.Send()
}

// DescribeEndpointWithContext is the same as DescribeEndpoint with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeEndpoint for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeEndpointWithContext(ctx aws.Context, input *DescribeEndpointInput, opts ...request.Option) (*DescribeEndpointOutput, error) {
	req, out := c.DescribeEndpointRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeEndpointConfig = "DescribeEndpointConfig"

// DescribeEndpointConfigRequest generates a "aws/request.Request" representing the
// client's request for the DescribeEndpointConfig operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeEndpointConfig for more information on using the DescribeEndpointConfig
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeEndpointConfigRequest method.
//	req, resp := client.DescribeEndpointConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeEndpointConfig
func (c *SageMaker) DescribeEndpointConfigRequest(input *DescribeEndpointConfigInput) (req *request.Request, output *DescribeEndpointConfigOutput) {
	op := &request.Operation{
		Name:       opDescribeEndpointConfig,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeEndpointConfigInput{}
	}

	output = &DescribeEndpointConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeEndpointConfig API operation for Amazon SageMaker Service.
//
// Returns the description of an endpoint configuration created using the CreateEndpointConfig
// API.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeEndpointConfig for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeEndpointConfig
func (c *SageMaker) DescribeEndpointConfig(input *DescribeEndpointConfigInput) (*DescribeEndpointConfigOutput, error) {
	req, out := c.DescribeEndpointConfigRequest(input)
	return out, req.Send()
}

// DescribeEndpointConfigWithContext is the same as DescribeEndpointConfig with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeEndpointConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeEndpointConfigWithContext(ctx aws.Context, input *DescribeEndpointConfigInput, opts ...request.Option) (*DescribeEndpointConfigOutput, error) {
	req, out := c.DescribeEndpointConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeExperiment = "DescribeExperiment"

// DescribeExperimentRequest generates a "aws/request.Request" representing the
// client's request for the DescribeExperiment operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeExperiment for more information on using the DescribeExperiment
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeExperimentRequest method.
//	req, resp := client.DescribeExperimentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeExperiment
func (c *SageMaker) DescribeExperimentRequest(input *DescribeExperimentInput) (req *request.Request, output *DescribeExperimentOutput) {
	op := &request.Operation{
		Name:       opDescribeExperiment,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeExperimentInput{}
	}

	output = &DescribeExperimentOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeExperiment API operation for Amazon SageMaker Service.
//
// Provides a list of an experiment's properties.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeExperiment for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeExperiment
func (c *SageMaker) DescribeExperiment(input *DescribeExperimentInput) (*DescribeExperimentOutput, error) {
	req, out := c.DescribeExperimentRequest(input)
	return out, req.Send()
}

// DescribeExperimentWithContext is the same as DescribeExperiment with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeExperiment for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeExperimentWithContext(ctx aws.Context, input *DescribeExperimentInput, opts ...request.Option) (*DescribeExperimentOutput, error) {
	req, out := c.DescribeExperimentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeFeatureGroup = "DescribeFeatureGroup"

// DescribeFeatureGroupRequest generates a "aws/request.Request" representing the
// client's request for the DescribeFeatureGroup operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeFeatureGroup for more information on using the DescribeFeatureGroup
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeFeatureGroupRequest method.
//	req, resp := client.DescribeFeatureGroupRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeFeatureGroup
func (c *SageMaker) DescribeFeatureGroupRequest(input *DescribeFeatureGroupInput) (req *request.Request, output *DescribeFeatureGroupOutput) {
	op := &request.Operation{
		Name:       opDescribeFeatureGroup,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeFeatureGroupInput{}
	}

	output = &DescribeFeatureGroupOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeFeatureGroup API operation for Amazon SageMaker Service.
//
// Use this operation to describe a FeatureGroup. The response includes information
// on the creation time, FeatureGroup name, the unique identifier for each FeatureGroup,
// and more.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeFeatureGroup for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeFeatureGroup
func (c *SageMaker) DescribeFeatureGroup(input *DescribeFeatureGroupInput) (*DescribeFeatureGroupOutput, error) {
	req, out := c.DescribeFeatureGroupRequest(input)
	return out, req.Send()
}

// DescribeFeatureGroupWithContext is the same as DescribeFeatureGroup with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeFeatureGroup for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeFeatureGroupWithContext(ctx aws.Context, input *DescribeFeatureGroupInput, opts ...request.Option) (*DescribeFeatureGroupOutput, error) {
	req, out := c.DescribeFeatureGroupRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeFeatureMetadata = "DescribeFeatureMetadata"

// DescribeFeatureMetadataRequest generates a "aws/request.Request" representing the
// client's request for the DescribeFeatureMetadata operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeFeatureMetadata for more information on using the DescribeFeatureMetadata
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeFeatureMetadataRequest method.
//	req, resp := client.DescribeFeatureMetadataRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeFeatureMetadata
func (c *SageMaker) DescribeFeatureMetadataRequest(input *DescribeFeatureMetadataInput) (req *request.Request, output *DescribeFeatureMetadataOutput) {
	op := &request.Operation{
		Name:       opDescribeFeatureMetadata,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeFeatureMetadataInput{}
	}

	output = &DescribeFeatureMetadataOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeFeatureMetadata API operation for Amazon SageMaker Service.
//
// Shows the metadata for a feature within a feature group.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeFeatureMetadata for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeFeatureMetadata
func (c *SageMaker) DescribeFeatureMetadata(input *DescribeFeatureMetadataInput) (*DescribeFeatureMetadataOutput, error) {
	req, out := c.DescribeFeatureMetadataRequest(input)
	return out, req.Send()
}

// DescribeFeatureMetadataWithContext is the same as DescribeFeatureMetadata with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeFeatureMetadata for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeFeatureMetadataWithContext(ctx aws.Context, input *DescribeFeatureMetadataInput, opts ...request.Option) (*DescribeFeatureMetadataOutput, error) {
	req, out := c.DescribeFeatureMetadataRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeFlowDefinition = "DescribeFlowDefinition"

// DescribeFlowDefinitionRequest generates a "aws/request.Request" representing the
// client's request for the DescribeFlowDefinition operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeFlowDefinition for more information on using the DescribeFlowDefinition
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeFlowDefinitionRequest method.
//	req, resp := client.DescribeFlowDefinitionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeFlowDefinition
func (c *SageMaker) DescribeFlowDefinitionRequest(input *DescribeFlowDefinitionInput) (req *request.Request, output *DescribeFlowDefinitionOutput) {
	op := &request.Operation{
		Name:       opDescribeFlowDefinition,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeFlowDefinitionInput{}
	}

	output = &DescribeFlowDefinitionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeFlowDefinition API operation for Amazon SageMaker Service.
//
// Returns information about the specified flow definition.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeFlowDefinition for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeFlowDefinition
func (c *SageMaker) DescribeFlowDefinition(input *DescribeFlowDefinitionInput) (*DescribeFlowDefinitionOutput, error) {
	req, out := c.DescribeFlowDefinitionRequest(input)
	return out, req.Send()
}

// DescribeFlowDefinitionWithContext is the same as DescribeFlowDefinition with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeFlowDefinition for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeFlowDefinitionWithContext(ctx aws.Context, input *DescribeFlowDefinitionInput, opts ...request.Option) (*DescribeFlowDefinitionOutput, error) {
	req, out := c.DescribeFlowDefinitionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeHub = "DescribeHub"

// DescribeHubRequest generates a "aws/request.Request" representing the
// client's request for the DescribeHub operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeHub for more information on using the DescribeHub
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeHubRequest method.
//	req, resp := client.DescribeHubRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeHub
func (c *SageMaker) DescribeHubRequest(input *DescribeHubInput) (req *request.Request, output *DescribeHubOutput) {
	op := &request.Operation{
		Name:       opDescribeHub,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeHubInput{}
	}

	output = &DescribeHubOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeHub API operation for Amazon SageMaker Service.
//
// Describe a hub.
//
// Hub APIs are only callable through SageMaker Studio.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeHub for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeHub
func (c *SageMaker) DescribeHub(input *DescribeHubInput) (*DescribeHubOutput, error) {
	req, out := c.DescribeHubRequest(input)
	return out, req.Send()
}

// DescribeHubWithContext is the same as DescribeHub with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeHub for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeHubWithContext(ctx aws.Context, input *DescribeHubInput, opts ...request.Option) (*DescribeHubOutput, error) {
	req, out := c.DescribeHubRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeHubContent = "DescribeHubContent"

// DescribeHubContentRequest generates a "aws/request.Request" representing the
// client's request for the DescribeHubContent operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeHubContent for more information on using the DescribeHubContent
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeHubContentRequest method.
//	req, resp := client.DescribeHubContentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeHubContent
func (c *SageMaker) DescribeHubContentRequest(input *DescribeHubContentInput) (req *request.Request, output *DescribeHubContentOutput) {
	op := &request.Operation{
		Name:       opDescribeHubContent,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeHubContentInput{}
	}

	output = &DescribeHubContentOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeHubContent API operation for Amazon SageMaker Service.
//
// Describe the content of a hub.
//
// Hub APIs are only callable through SageMaker Studio.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeHubContent for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeHubContent
func (c *SageMaker) DescribeHubContent(input *DescribeHubContentInput) (*DescribeHubContentOutput, error) {
	req, out := c.DescribeHubContentRequest(input)
	return out, req.Send()
}

// DescribeHubContentWithContext is the same as DescribeHubContent with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeHubContent for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeHubContentWithContext(ctx aws.Context, input *DescribeHubContentInput, opts ...request.Option) (*DescribeHubContentOutput, error) {
	req, out := c.DescribeHubContentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeHumanTaskUi = "DescribeHumanTaskUi"

// DescribeHumanTaskUiRequest generates a "aws/request.Request" representing the
// client's request for the DescribeHumanTaskUi operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeHumanTaskUi for more information on using the DescribeHumanTaskUi
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeHumanTaskUiRequest method.
//	req, resp := client.DescribeHumanTaskUiRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeHumanTaskUi
func (c *SageMaker) DescribeHumanTaskUiRequest(input *DescribeHumanTaskUiInput) (req *request.Request, output *DescribeHumanTaskUiOutput) {
	op := &request.Operation{
		Name:       opDescribeHumanTaskUi,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeHumanTaskUiInput{}
	}

	output = &DescribeHumanTaskUiOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeHumanTaskUi API operation for Amazon SageMaker Service.
//
// Returns information about the requested human task user interface (worker
// task template).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeHumanTaskUi for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeHumanTaskUi
func (c *SageMaker) DescribeHumanTaskUi(input *DescribeHumanTaskUiInput) (*DescribeHumanTaskUiOutput, error) {
	req, out := c.DescribeHumanTaskUiRequest(input)
	return out, req.Send()
}

// DescribeHumanTaskUiWithContext is the same as DescribeHumanTaskUi with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeHumanTaskUi for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeHumanTaskUiWithContext(ctx aws.Context, input *DescribeHumanTaskUiInput, opts ...request.Option) (*DescribeHumanTaskUiOutput, error) {
	req, out := c.DescribeHumanTaskUiRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeHyperParameterTuningJob = "DescribeHyperParameterTuningJob"

// DescribeHyperParameterTuningJobRequest generates a "aws/request.Request" representing the
// client's request for the DescribeHyperParameterTuningJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeHyperParameterTuningJob for more information on using the DescribeHyperParameterTuningJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeHyperParameterTuningJobRequest method.
//	req, resp := client.DescribeHyperParameterTuningJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeHyperParameterTuningJob
func (c *SageMaker) DescribeHyperParameterTuningJobRequest(input *DescribeHyperParameterTuningJobInput) (req *request.Request, output *DescribeHyperParameterTuningJobOutput) {
	op := &request.Operation{
		Name:       opDescribeHyperParameterTuningJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeHyperParameterTuningJobInput{}
	}

	output = &DescribeHyperParameterTuningJobOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeHyperParameterTuningJob API operation for Amazon SageMaker Service.
//
// Returns a description of a hyperparameter tuning job, depending on the fields
// selected. These fields can include the name, Amazon Resource Name (ARN),
// job status of your tuning job and more.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeHyperParameterTuningJob for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeHyperParameterTuningJob
func (c *SageMaker) DescribeHyperParameterTuningJob(input *DescribeHyperParameterTuningJobInput) (*DescribeHyperParameterTuningJobOutput, error) {
	req, out := c.DescribeHyperParameterTuningJobRequest(input)
	return out, req.Send()
}

// DescribeHyperParameterTuningJobWithContext is the same as DescribeHyperParameterTuningJob with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeHyperParameterTuningJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeHyperParameterTuningJobWithContext(ctx aws.Context, input *DescribeHyperParameterTuningJobInput, opts ...request.Option) (*DescribeHyperParameterTuningJobOutput, error) {
	req, out := c.DescribeHyperParameterTuningJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeImage = "DescribeImage"

// DescribeImageRequest generates a "aws/request.Request" representing the
// client's request for the DescribeImage operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeImage for more information on using the DescribeImage
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeImageRequest method.
//	req, resp := client.DescribeImageRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeImage
func (c *SageMaker) DescribeImageRequest(input *DescribeImageInput) (req *request.Request, output *DescribeImageOutput) {
	op := &request.Operation{
		Name:       opDescribeImage,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeImageInput{}
	}

	output = &DescribeImageOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeImage API operation for Amazon SageMaker Service.
//
// Describes a SageMaker image.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeImage for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeImage
func (c *SageMaker) DescribeImage(input *DescribeImageInput) (*DescribeImageOutput, error) {
	req, out := c.DescribeImageRequest(input)
	return out, req.Send()
}

// DescribeImageWithContext is the same as DescribeImage with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeImage for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeImageWithContext(ctx aws.Context, input *DescribeImageInput, opts ...request.Option) (*DescribeImageOutput, error) {
	req, out := c.DescribeImageRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeImageVersion = "DescribeImageVersion"

// DescribeImageVersionRequest generates a "aws/request.Request" representing the
// client's request for the DescribeImageVersion operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeImageVersion for more information on using the DescribeImageVersion
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeImageVersionRequest method.
//	req, resp := client.DescribeImageVersionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeImageVersion
func (c *SageMaker) DescribeImageVersionRequest(input *DescribeImageVersionInput) (req *request.Request, output *DescribeImageVersionOutput) {
	op := &request.Operation{
		Name:       opDescribeImageVersion,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeImageVersionInput{}
	}

	output = &DescribeImageVersionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeImageVersion API operation for Amazon SageMaker Service.
//
// Describes a version of a SageMaker image.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeImageVersion for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeImageVersion
func (c *SageMaker) DescribeImageVersion(input *DescribeImageVersionInput) (*DescribeImageVersionOutput, error) {
	req, out := c.DescribeImageVersionRequest(input)
	return out, req.Send()
}

// DescribeImageVersionWithContext is the same as DescribeImageVersion with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeImageVersion for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeImageVersionWithContext(ctx aws.Context, input *DescribeImageVersionInput, opts ...request.Option) (*DescribeImageVersionOutput, error) {
	req, out := c.DescribeImageVersionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeInferenceComponent = "DescribeInferenceComponent"

// DescribeInferenceComponentRequest generates a "aws/request.Request" representing the
// client's request for the DescribeInferenceComponent operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeInferenceComponent for more information on using the DescribeInferenceComponent
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeInferenceComponentRequest method.
//	req, resp := client.DescribeInferenceComponentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeInferenceComponent
func (c *SageMaker) DescribeInferenceComponentRequest(input *DescribeInferenceComponentInput) (req *request.Request, output *DescribeInferenceComponentOutput) {
	op := &request.Operation{
		Name:       opDescribeInferenceComponent,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeInferenceComponentInput{}
	}

	output = &DescribeInferenceComponentOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeInferenceComponent API operation for Amazon SageMaker Service.
//
// Returns information about an inference component.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeInferenceComponent for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeInferenceComponent
func (c *SageMaker) DescribeInferenceComponent(input *DescribeInferenceComponentInput) (*DescribeInferenceComponentOutput, error) {
	req, out := c.DescribeInferenceComponentRequest(input)
	return out, req.Send()
}

// DescribeInferenceComponentWithContext is the same as DescribeInferenceComponent with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeInferenceComponent for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeInferenceComponentWithContext(ctx aws.Context, input *DescribeInferenceComponentInput, opts ...request.Option) (*DescribeInferenceComponentOutput, error) {
	req, out := c.DescribeInferenceComponentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeInferenceExperiment = "DescribeInferenceExperiment"

// DescribeInferenceExperimentRequest generates a "aws/request.Request" representing the
// client's request for the DescribeInferenceExperiment operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeInferenceExperiment for more information on using the DescribeInferenceExperiment
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeInferenceExperimentRequest method.
//	req, resp := client.DescribeInferenceExperimentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeInferenceExperiment
func (c *SageMaker) DescribeInferenceExperimentRequest(input *DescribeInferenceExperimentInput) (req *request.Request, output *DescribeInferenceExperimentOutput) {
	op := &request.Operation{
		Name:       opDescribeInferenceExperiment,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeInferenceExperimentInput{}
	}

	output = &DescribeInferenceExperimentOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeInferenceExperiment API operation for Amazon SageMaker Service.
//
// Returns details about an inference experiment.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeInferenceExperiment for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeInferenceExperiment
func (c *SageMaker) DescribeInferenceExperiment(input *DescribeInferenceExperimentInput) (*DescribeInferenceExperimentOutput, error) {
	req, out := c.DescribeInferenceExperimentRequest(input)
	return out, req.Send()
}

// DescribeInferenceExperimentWithContext is the same as DescribeInferenceExperiment with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeInferenceExperiment for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeInferenceExperimentWithContext(ctx aws.Context, input *DescribeInferenceExperimentInput, opts ...request.Option) (*DescribeInferenceExperimentOutput, error) {
	req, out := c.DescribeInferenceExperimentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeInferenceRecommendationsJob = "DescribeInferenceRecommendationsJob"

// DescribeInferenceRecommendationsJobRequest generates a "aws/request.Request" representing the
// client's request for the DescribeInferenceRecommendationsJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeInferenceRecommendationsJob for more information on using the DescribeInferenceRecommendationsJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeInferenceRecommendationsJobRequest method.
//	req, resp := client.DescribeInferenceRecommendationsJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeInferenceRecommendationsJob
func (c *SageMaker) DescribeInferenceRecommendationsJobRequest(input *DescribeInferenceRecommendationsJobInput) (req *request.Request, output *DescribeInferenceRecommendationsJobOutput) {
	op := &request.Operation{
		Name:       opDescribeInferenceRecommendationsJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeInferenceRecommendationsJobInput{}
	}

	output = &DescribeInferenceRecommendationsJobOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeInferenceRecommendationsJob API operation for Amazon SageMaker Service.
//
// Provides the results of the Inference Recommender job. One or more recommendation
// jobs are returned.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeInferenceRecommendationsJob for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeInferenceRecommendationsJob
func (c *SageMaker) DescribeInferenceRecommendationsJob(input *DescribeInferenceRecommendationsJobInput) (*DescribeInferenceRecommendationsJobOutput, error) {
	req, out := c.DescribeInferenceRecommendationsJobRequest(input)
	return out, req.Send()
}

// DescribeInferenceRecommendationsJobWithContext is the same as DescribeInferenceRecommendationsJob with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeInferenceRecommendationsJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeInferenceRecommendationsJobWithContext(ctx aws.Context, input *DescribeInferenceRecommendationsJobInput, opts ...request.Option) (*DescribeInferenceRecommendationsJobOutput, error) {
	req, out := c.DescribeInferenceRecommendationsJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeLabelingJob = "DescribeLabelingJob"

// DescribeLabelingJobRequest generates a "aws/request.Request" representing the
// client's request for the DescribeLabelingJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeLabelingJob for more information on using the DescribeLabelingJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeLabelingJobRequest method.
//	req, resp := client.DescribeLabelingJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeLabelingJob
func (c *SageMaker) DescribeLabelingJobRequest(input *DescribeLabelingJobInput) (req *request.Request, output *DescribeLabelingJobOutput) {
	op := &request.Operation{
		Name:       opDescribeLabelingJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeLabelingJobInput{}
	}

	output = &DescribeLabelingJobOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeLabelingJob API operation for Amazon SageMaker Service.
//
// Gets information about a labeling job.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeLabelingJob for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeLabelingJob
func (c *SageMaker) DescribeLabelingJob(input *DescribeLabelingJobInput) (*DescribeLabelingJobOutput, error) {
	req, out := c.DescribeLabelingJobRequest(input)
	return out, req.Send()
}

// DescribeLabelingJobWithContext is the same as DescribeLabelingJob with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeLabelingJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeLabelingJobWithContext(ctx aws.Context, input *DescribeLabelingJobInput, opts ...request.Option) (*DescribeLabelingJobOutput, error) {
	req, out := c.DescribeLabelingJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeLineageGroup = "DescribeLineageGroup"

// DescribeLineageGroupRequest generates a "aws/request.Request" representing the
// client's request for the DescribeLineageGroup operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeLineageGroup for more information on using the DescribeLineageGroup
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeLineageGroupRequest method.
//	req, resp := client.DescribeLineageGroupRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeLineageGroup
func (c *SageMaker) DescribeLineageGroupRequest(input *DescribeLineageGroupInput) (req *request.Request, output *DescribeLineageGroupOutput) {
	op := &request.Operation{
		Name:       opDescribeLineageGroup,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeLineageGroupInput{}
	}

	output = &DescribeLineageGroupOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeLineageGroup API operation for Amazon SageMaker Service.
//
// Provides a list of properties for the requested lineage group. For more information,
// see Cross-Account Lineage Tracking (https://docs.aws.amazon.com/sagemaker/latest/dg/xaccount-lineage-tracking.html)
// in the Amazon SageMaker Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeLineageGroup for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeLineageGroup
func (c *SageMaker) DescribeLineageGroup(input *DescribeLineageGroupInput) (*DescribeLineageGroupOutput, error) {
	req, out := c.DescribeLineageGroupRequest(input)
	return out, req.Send()
}

// DescribeLineageGroupWithContext is the same as DescribeLineageGroup with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeLineageGroup for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeLineageGroupWithContext(ctx aws.Context, input *DescribeLineageGroupInput, opts ...request.Option) (*DescribeLineageGroupOutput, error) {
	req, out := c.DescribeLineageGroupRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeModel = "DescribeModel"

// DescribeModelRequest generates a "aws/request.Request" representing the
// client's request for the DescribeModel operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeModel for more information on using the DescribeModel
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeModelRequest method.
//	req, resp := client.DescribeModelRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModel
func (c *SageMaker) DescribeModelRequest(input *DescribeModelInput) (req *request.Request, output *DescribeModelOutput) {
	op := &request.Operation{
		Name:       opDescribeModel,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeModelInput{}
	}

	output = &DescribeModelOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeModel API operation for Amazon SageMaker Service.
//
// Describes a model that you created using the CreateModel API.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeModel for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModel
func (c *SageMaker) DescribeModel(input *DescribeModelInput) (*DescribeModelOutput, error) {
	req, out := c.DescribeModelRequest(input)
	return out, req.Send()
}

// DescribeModelWithContext is the same as DescribeModel with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeModel for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeModelWithContext(ctx aws.Context, input *DescribeModelInput, opts ...request.Option) (*DescribeModelOutput, error) {
	req, out := c.DescribeModelRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeModelBiasJobDefinition = "DescribeModelBiasJobDefinition"

// DescribeModelBiasJobDefinitionRequest generates a "aws/request.Request" representing the
// client's request for the DescribeModelBiasJobDefinition operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeModelBiasJobDefinition for more information on using the DescribeModelBiasJobDefinition
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeModelBiasJobDefinitionRequest method.
//	req, resp := client.DescribeModelBiasJobDefinitionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelBiasJobDefinition
func (c *SageMaker) DescribeModelBiasJobDefinitionRequest(input *DescribeModelBiasJobDefinitionInput) (req *request.Request, output *DescribeModelBiasJobDefinitionOutput) {
	op := &request.Operation{
		Name:       opDescribeModelBiasJobDefinition,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeModelBiasJobDefinitionInput{}
	}

	output = &DescribeModelBiasJobDefinitionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeModelBiasJobDefinition API operation for Amazon SageMaker Service.
//
// Returns a description of a model bias job definition.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeModelBiasJobDefinition for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelBiasJobDefinition
func (c *SageMaker) DescribeModelBiasJobDefinition(input *DescribeModelBiasJobDefinitionInput) (*DescribeModelBiasJobDefinitionOutput, error) {
	req, out := c.DescribeModelBiasJobDefinitionRequest(input)
	return out, req.Send()
}

// DescribeModelBiasJobDefinitionWithContext is the same as DescribeModelBiasJobDefinition with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeModelBiasJobDefinition for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeModelBiasJobDefinitionWithContext(ctx aws.Context, input *DescribeModelBiasJobDefinitionInput, opts ...request.Option) (*DescribeModelBiasJobDefinitionOutput, error) {
	req, out := c.DescribeModelBiasJobDefinitionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeModelCard = "DescribeModelCard"

// DescribeModelCardRequest generates a "aws/request.Request" representing the
// client's request for the DescribeModelCard operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeModelCard for more information on using the DescribeModelCard
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeModelCardRequest method.
//	req, resp := client.DescribeModelCardRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelCard
func (c *SageMaker) DescribeModelCardRequest(input *DescribeModelCardInput) (req *request.Request, output *DescribeModelCardOutput) {
	op := &request.Operation{
		Name:       opDescribeModelCard,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeModelCardInput{}
	}

	output = &DescribeModelCardOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeModelCard API operation for Amazon SageMaker Service.
//
// Describes the content, creation time, and security configuration of an Amazon
// SageMaker Model Card.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeModelCard for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelCard
func (c *SageMaker) DescribeModelCard(input *DescribeModelCardInput) (*DescribeModelCardOutput, error) {
	req, out := c.DescribeModelCardRequest(input)
	return out, req.Send()
}

// DescribeModelCardWithContext is the same as DescribeModelCard with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeModelCard for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeModelCardWithContext(ctx aws.Context, input *DescribeModelCardInput, opts ...request.Option) (*DescribeModelCardOutput, error) {
	req, out := c.DescribeModelCardRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeModelCardExportJob = "DescribeModelCardExportJob"

// DescribeModelCardExportJobRequest generates a "aws/request.Request" representing the
// client's request for the DescribeModelCardExportJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeModelCardExportJob for more information on using the DescribeModelCardExportJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeModelCardExportJobRequest method.
//	req, resp := client.DescribeModelCardExportJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelCardExportJob
func (c *SageMaker) DescribeModelCardExportJobRequest(input *DescribeModelCardExportJobInput) (req *request.Request, output *DescribeModelCardExportJobOutput) {
	op := &request.Operation{
		Name:       opDescribeModelCardExportJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeModelCardExportJobInput{}
	}

	output = &DescribeModelCardExportJobOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeModelCardExportJob API operation for Amazon SageMaker Service.
//
// Describes an Amazon SageMaker Model Card export job.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeModelCardExportJob for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelCardExportJob
func (c *SageMaker) DescribeModelCardExportJob(input *DescribeModelCardExportJobInput) (*DescribeModelCardExportJobOutput, error) {
	req, out := c.DescribeModelCardExportJobRequest(input)
	return out, req.Send()
}

// DescribeModelCardExportJobWithContext is the same as DescribeModelCardExportJob with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeModelCardExportJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeModelCardExportJobWithContext(ctx aws.Context, input *DescribeModelCardExportJobInput, opts ...request.Option) (*DescribeModelCardExportJobOutput, error) {
	req, out := c.DescribeModelCardExportJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeModelExplainabilityJobDefinition = "DescribeModelExplainabilityJobDefinition"

// DescribeModelExplainabilityJobDefinitionRequest generates a "aws/request.Request" representing the
// client's request for the DescribeModelExplainabilityJobDefinition operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeModelExplainabilityJobDefinition for more information on using the DescribeModelExplainabilityJobDefinition
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeModelExplainabilityJobDefinitionRequest method.
//	req, resp := client.DescribeModelExplainabilityJobDefinitionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelExplainabilityJobDefinition
func (c *SageMaker) DescribeModelExplainabilityJobDefinitionRequest(input *DescribeModelExplainabilityJobDefinitionInput) (req *request.Request, output *DescribeModelExplainabilityJobDefinitionOutput) {
	op := &request.Operation{
		Name:       opDescribeModelExplainabilityJobDefinition,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeModelExplainabilityJobDefinitionInput{}
	}

	output = &DescribeModelExplainabilityJobDefinitionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeModelExplainabilityJobDefinition API operation for Amazon SageMaker Service.
//
// Returns a description of a model explainability job definition.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeModelExplainabilityJobDefinition for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelExplainabilityJobDefinition
func (c *SageMaker) DescribeModelExplainabilityJobDefinition(input *DescribeModelExplainabilityJobDefinitionInput) (*DescribeModelExplainabilityJobDefinitionOutput, error) {
	req, out := c.DescribeModelExplainabilityJobDefinitionRequest(input)
	return out, req.Send()
}

// DescribeModelExplainabilityJobDefinitionWithContext is the same as DescribeModelExplainabilityJobDefinition with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeModelExplainabilityJobDefinition for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeModelExplainabilityJobDefinitionWithContext(ctx aws.Context, input *DescribeModelExplainabilityJobDefinitionInput, opts ...request.Option) (*DescribeModelExplainabilityJobDefinitionOutput, error) {
	req, out := c.DescribeModelExplainabilityJobDefinitionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeModelPackage = "DescribeModelPackage"

// DescribeModelPackageRequest generates a "aws/request.Request" representing the
// client's request for the DescribeModelPackage operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeModelPackage for more information on using the DescribeModelPackage
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeModelPackageRequest method.
//	req, resp := client.DescribeModelPackageRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelPackage
func (c *SageMaker) DescribeModelPackageRequest(input *DescribeModelPackageInput) (req *request.Request, output *DescribeModelPackageOutput) {
	op := &request.Operation{
		Name:       opDescribeModelPackage,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeModelPackageInput{}
	}

	output = &DescribeModelPackageOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeModelPackage API operation for Amazon SageMaker Service.
//
// Returns a description of the specified model package, which is used to create
// SageMaker models or list them on Amazon Web Services Marketplace.
//
// To create models in SageMaker, buyers can subscribe to model packages listed
// on Amazon Web Services Marketplace.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeModelPackage for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelPackage
func (c *SageMaker) DescribeModelPackage(input *DescribeModelPackageInput) (*DescribeModelPackageOutput, error) {
	req, out := c.DescribeModelPackageRequest(input)
	return out, req.Send()
}

// DescribeModelPackageWithContext is the same as DescribeModelPackage with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeModelPackage for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeModelPackageWithContext(ctx aws.Context, input *DescribeModelPackageInput, opts ...request.Option) (*DescribeModelPackageOutput, error) {
	req, out := c.DescribeModelPackageRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeModelPackageGroup = "DescribeModelPackageGroup"

// DescribeModelPackageGroupRequest generates a "aws/request.Request" representing the
// client's request for the DescribeModelPackageGroup operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeModelPackageGroup for more information on using the DescribeModelPackageGroup
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeModelPackageGroupRequest method.
//	req, resp := client.DescribeModelPackageGroupRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelPackageGroup
func (c *SageMaker) DescribeModelPackageGroupRequest(input *DescribeModelPackageGroupInput) (req *request.Request, output *DescribeModelPackageGroupOutput) {
	op := &request.Operation{
		Name:       opDescribeModelPackageGroup,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeModelPackageGroupInput{}
	}

	output = &DescribeModelPackageGroupOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeModelPackageGroup API operation for Amazon SageMaker Service.
//
// Gets a description for the specified model group.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeModelPackageGroup for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelPackageGroup
func (c *SageMaker) DescribeModelPackageGroup(input *DescribeModelPackageGroupInput) (*DescribeModelPackageGroupOutput, error) {
	req, out := c.DescribeModelPackageGroupRequest(input)
	return out, req.Send()
}

// DescribeModelPackageGroupWithContext is the same as DescribeModelPackageGroup with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeModelPackageGroup for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeModelPackageGroupWithContext(ctx aws.Context, input *DescribeModelPackageGroupInput, opts ...request.Option) (*DescribeModelPackageGroupOutput, error) {
	req, out := c.DescribeModelPackageGroupRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeModelQualityJobDefinition = "DescribeModelQualityJobDefinition"

// DescribeModelQualityJobDefinitionRequest generates a "aws/request.Request" representing the
// client's request for the DescribeModelQualityJobDefinition operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeModelQualityJobDefinition for more information on using the DescribeModelQualityJobDefinition
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeModelQualityJobDefinitionRequest method.
//	req, resp := client.DescribeModelQualityJobDefinitionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelQualityJobDefinition
func (c *SageMaker) DescribeModelQualityJobDefinitionRequest(input *DescribeModelQualityJobDefinitionInput) (req *request.Request, output *DescribeModelQualityJobDefinitionOutput) {
	op := &request.Operation{
		Name:       opDescribeModelQualityJobDefinition,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeModelQualityJobDefinitionInput{}
	}

	output = &DescribeModelQualityJobDefinitionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeModelQualityJobDefinition API operation for Amazon SageMaker Service.
//
// Returns a description of a model quality job definition.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeModelQualityJobDefinition for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeModelQualityJobDefinition
func (c *SageMaker) DescribeModelQualityJobDefinition(input *DescribeModelQualityJobDefinitionInput) (*DescribeModelQualityJobDefinitionOutput, error) {
	req, out := c.DescribeModelQualityJobDefinitionRequest(input)
	return out, req.Send()
}

// DescribeModelQualityJobDefinitionWithContext is the same as DescribeModelQualityJobDefinition with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeModelQualityJobDefinition for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeModelQualityJobDefinitionWithContext(ctx aws.Context, input *DescribeModelQualityJobDefinitionInput, opts ...request.Option) (*DescribeModelQualityJobDefinitionOutput, error) {
	req, out := c.DescribeModelQualityJobDefinitionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeMonitoringSchedule = "DescribeMonitoringSchedule"

// DescribeMonitoringScheduleRequest generates a "aws/request.Request" representing the
// client's request for the DescribeMonitoringSchedule operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeMonitoringSchedule for more information on using the DescribeMonitoringSchedule
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeMonitoringScheduleRequest method.
//	req, resp := client.DescribeMonitoringScheduleRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeMonitoringSchedule
func (c *SageMaker) DescribeMonitoringScheduleRequest(input *DescribeMonitoringScheduleInput) (req *request.Request, output *DescribeMonitoringScheduleOutput) {
	op := &request.Operation{
		Name:       opDescribeMonitoringSchedule,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeMonitoringScheduleInput{}
	}

	output = &DescribeMonitoringScheduleOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeMonitoringSchedule API operation for Amazon SageMaker Service.
//
// Describes the schedule for a monitoring job.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeMonitoringSchedule for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeMonitoringSchedule
func (c *SageMaker) DescribeMonitoringSchedule(input *DescribeMonitoringScheduleInput) (*DescribeMonitoringScheduleOutput, error) {
	req, out := c.DescribeMonitoringScheduleRequest(input)
	return out, req.Send()
}

// DescribeMonitoringScheduleWithContext is the same as DescribeMonitoringSchedule with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeMonitoringSchedule for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeMonitoringScheduleWithContext(ctx aws.Context, input *DescribeMonitoringScheduleInput, opts ...request.Option) (*DescribeMonitoringScheduleOutput, error) {
	req, out := c.DescribeMonitoringScheduleRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeNotebookInstance = "DescribeNotebookInstance"

// DescribeNotebookInstanceRequest generates a "aws/request.Request" representing the
// client's request for the DescribeNotebookInstance operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeNotebookInstance for more information on using the DescribeNotebookInstance
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeNotebookInstanceRequest method.
//	req, resp := client.DescribeNotebookInstanceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeNotebookInstance
func (c *SageMaker) DescribeNotebookInstanceRequest(input *DescribeNotebookInstanceInput) (req *request.Request, output *DescribeNotebookInstanceOutput) {
	op := &request.Operation{
		Name:       opDescribeNotebookInstance,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeNotebookInstanceInput{}
	}

	output = &DescribeNotebookInstanceOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeNotebookInstance API operation for Amazon SageMaker Service.
//
// Returns information about a notebook instance.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeNotebookInstance for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeNotebookInstance
func (c *SageMaker) DescribeNotebookInstance(input *DescribeNotebookInstanceInput) (*DescribeNotebookInstanceOutput, error) {
	req, out := c.DescribeNotebookInstanceRequest(input)
	return out, req.Send()
}

// DescribeNotebookInstanceWithContext is the same as DescribeNotebookInstance with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeNotebookInstance for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeNotebookInstanceWithContext(ctx aws.Context, input *DescribeNotebookInstanceInput, opts ...request.Option) (*DescribeNotebookInstanceOutput, error) {
	req, out := c.DescribeNotebookInstanceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeNotebookInstanceLifecycleConfig = "DescribeNotebookInstanceLifecycleConfig"

// DescribeNotebookInstanceLifecycleConfigRequest generates a "aws/request.Request" representing the
// client's request for the DescribeNotebookInstanceLifecycleConfig operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeNotebookInstanceLifecycleConfig for more information on using the DescribeNotebookInstanceLifecycleConfig
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeNotebookInstanceLifecycleConfigRequest method.
//	req, resp := client.DescribeNotebookInstanceLifecycleConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeNotebookInstanceLifecycleConfig
func (c *SageMaker) DescribeNotebookInstanceLifecycleConfigRequest(input *DescribeNotebookInstanceLifecycleConfigInput) (req *request.Request, output *DescribeNotebookInstanceLifecycleConfigOutput) {
	op := &request.Operation{
		Name:       opDescribeNotebookInstanceLifecycleConfig,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeNotebookInstanceLifecycleConfigInput{}
	}

	output = &DescribeNotebookInstanceLifecycleConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeNotebookInstanceLifecycleConfig API operation for Amazon SageMaker Service.
//
// Returns a description of a notebook instance lifecycle configuration.
//
// For information about notebook instance lifestyle configurations, see Step
// 2.1: (Optional) Customize a Notebook Instance (https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeNotebookInstanceLifecycleConfig for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeNotebookInstanceLifecycleConfig
func (c *SageMaker) DescribeNotebookInstanceLifecycleConfig(input *DescribeNotebookInstanceLifecycleConfigInput) (*DescribeNotebookInstanceLifecycleConfigOutput, error) {
	req, out := c.DescribeNotebookInstanceLifecycleConfigRequest(input)
	return out, req.Send()
}

// DescribeNotebookInstanceLifecycleConfigWithContext is the same as DescribeNotebookInstanceLifecycleConfig with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeNotebookInstanceLifecycleConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeNotebookInstanceLifecycleConfigWithContext(ctx aws.Context, input *DescribeNotebookInstanceLifecycleConfigInput, opts ...request.Option) (*DescribeNotebookInstanceLifecycleConfigOutput, error) {
	req, out := c.DescribeNotebookInstanceLifecycleConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribePipeline = "DescribePipeline"

// DescribePipelineRequest generates a "aws/request.Request" representing the
// client's request for the DescribePipeline operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribePipeline for more information on using the DescribePipeline
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribePipelineRequest method.
//	req, resp := client.DescribePipelineRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribePipeline
func (c *SageMaker) DescribePipelineRequest(input *DescribePipelineInput) (req *request.Request, output *DescribePipelineOutput) {
	op := &request.Operation{
		Name:       opDescribePipeline,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribePipelineInput{}
	}

	output = &DescribePipelineOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribePipeline API operation for Amazon SageMaker Service.
//
// Describes the details of a pipeline.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribePipeline for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribePipeline
func (c *SageMaker) DescribePipeline(input *DescribePipelineInput) (*DescribePipelineOutput, error) {
	req, out := c.DescribePipelineRequest(input)
	return out, req.Send()
}

// DescribePipelineWithContext is the same as DescribePipeline with the addition of
// the ability to pass a context and additional request options.
//
// See DescribePipeline for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribePipelineWithContext(ctx aws.Context, input *DescribePipelineInput, opts ...request.Option) (*DescribePipelineOutput, error) {
	req, out := c.DescribePipelineRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribePipelineDefinitionForExecution = "DescribePipelineDefinitionForExecution"

// DescribePipelineDefinitionForExecutionRequest generates a "aws/request.Request" representing the
// client's request for the DescribePipelineDefinitionForExecution operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribePipelineDefinitionForExecution for more information on using the DescribePipelineDefinitionForExecution
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribePipelineDefinitionForExecutionRequest method.
//	req, resp := client.DescribePipelineDefinitionForExecutionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribePipelineDefinitionForExecution
func (c *SageMaker) DescribePipelineDefinitionForExecutionRequest(input *DescribePipelineDefinitionForExecutionInput) (req *request.Request, output *DescribePipelineDefinitionForExecutionOutput) {
	op := &request.Operation{
		Name:       opDescribePipelineDefinitionForExecution,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribePipelineDefinitionForExecutionInput{}
	}

	output = &DescribePipelineDefinitionForExecutionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribePipelineDefinitionForExecution API operation for Amazon SageMaker Service.
//
// Describes the details of an execution's pipeline definition.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribePipelineDefinitionForExecution for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribePipelineDefinitionForExecution
func (c *SageMaker) DescribePipelineDefinitionForExecution(input *DescribePipelineDefinitionForExecutionInput) (*DescribePipelineDefinitionForExecutionOutput, error) {
	req, out := c.DescribePipelineDefinitionForExecutionRequest(input)
	return out, req.Send()
}

// DescribePipelineDefinitionForExecutionWithContext is the same as DescribePipelineDefinitionForExecution with the addition of
// the ability to pass a context and additional request options.
//
// See DescribePipelineDefinitionForExecution for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribePipelineDefinitionForExecutionWithContext(ctx aws.Context, input *DescribePipelineDefinitionForExecutionInput, opts ...request.Option) (*DescribePipelineDefinitionForExecutionOutput, error) {
	req, out := c.DescribePipelineDefinitionForExecutionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribePipelineExecution = "DescribePipelineExecution"

// DescribePipelineExecutionRequest generates a "aws/request.Request" representing the
// client's request for the DescribePipelineExecution operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribePipelineExecution for more information on using the DescribePipelineExecution
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribePipelineExecutionRequest method.
//	req, resp := client.DescribePipelineExecutionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribePipelineExecution
func (c *SageMaker) DescribePipelineExecutionRequest(input *DescribePipelineExecutionInput) (req *request.Request, output *DescribePipelineExecutionOutput) {
	op := &request.Operation{
		Name:       opDescribePipelineExecution,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribePipelineExecutionInput{}
	}

	output = &DescribePipelineExecutionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribePipelineExecution API operation for Amazon SageMaker Service.
//
// Describes the details of a pipeline execution.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribePipelineExecution for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribePipelineExecution
func (c *SageMaker) DescribePipelineExecution(input *DescribePipelineExecutionInput) (*DescribePipelineExecutionOutput, error) {
	req, out := c.DescribePipelineExecutionRequest(input)
	return out, req.Send()
}

// DescribePipelineExecutionWithContext is the same as DescribePipelineExecution with the addition of
// the ability to pass a context and additional request options.
//
// See DescribePipelineExecution for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribePipelineExecutionWithContext(ctx aws.Context, input *DescribePipelineExecutionInput, opts ...request.Option) (*DescribePipelineExecutionOutput, error) {
	req, out := c.DescribePipelineExecutionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeProcessingJob = "DescribeProcessingJob"

// DescribeProcessingJobRequest generates a "aws/request.Request" representing the
// client's request for the DescribeProcessingJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeProcessingJob for more information on using the DescribeProcessingJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeProcessingJobRequest method.
//	req, resp := client.DescribeProcessingJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeProcessingJob
func (c *SageMaker) DescribeProcessingJobRequest(input *DescribeProcessingJobInput) (req *request.Request, output *DescribeProcessingJobOutput) {
	op := &request.Operation{
		Name:       opDescribeProcessingJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeProcessingJobInput{}
	}

	output = &DescribeProcessingJobOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeProcessingJob API operation for Amazon SageMaker Service.
//
// Returns a description of a processing job.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeProcessingJob for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeProcessingJob
func (c *SageMaker) DescribeProcessingJob(input *DescribeProcessingJobInput) (*DescribeProcessingJobOutput, error) {
	req, out := c.DescribeProcessingJobRequest(input)
	return out, req.Send()
}

// DescribeProcessingJobWithContext is the same as DescribeProcessingJob with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeProcessingJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeProcessingJobWithContext(ctx aws.Context, input *DescribeProcessingJobInput, opts ...request.Option) (*DescribeProcessingJobOutput, error) {
	req, out := c.DescribeProcessingJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeProject = "DescribeProject"

// DescribeProjectRequest generates a "aws/request.Request" representing the
// client's request for the DescribeProject operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeProject for more information on using the DescribeProject
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeProjectRequest method.
//	req, resp := client.DescribeProjectRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeProject
func (c *SageMaker) DescribeProjectRequest(input *DescribeProjectInput) (req *request.Request, output *DescribeProjectOutput) {
	op := &request.Operation{
		Name:       opDescribeProject,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeProjectInput{}
	}

	output = &DescribeProjectOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeProject API operation for Amazon SageMaker Service.
//
// Describes the details of a project.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeProject for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeProject
func (c *SageMaker) DescribeProject(input *DescribeProjectInput) (*DescribeProjectOutput, error) {
	req, out := c.DescribeProjectRequest(input)
	return out, req.Send()
}

// DescribeProjectWithContext is the same as DescribeProject with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeProject for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeProjectWithContext(ctx aws.Context, input *DescribeProjectInput, opts ...request.Option) (*DescribeProjectOutput, error) {
	req, out := c.DescribeProjectRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeSpace = "DescribeSpace"

// DescribeSpaceRequest generates a "aws/request.Request" representing the
// client's request for the DescribeSpace operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeSpace for more information on using the DescribeSpace
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeSpaceRequest method.
//	req, resp := client.DescribeSpaceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeSpace
func (c *SageMaker) DescribeSpaceRequest(input *DescribeSpaceInput) (req *request.Request, output *DescribeSpaceOutput) {
	op := &request.Operation{
		Name:       opDescribeSpace,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeSpaceInput{}
	}

	output = &DescribeSpaceOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeSpace API operation for Amazon SageMaker Service.
//
// Describes the space.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeSpace for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeSpace
func (c *SageMaker) DescribeSpace(input *DescribeSpaceInput) (*DescribeSpaceOutput, error) {
	req, out := c.DescribeSpaceRequest(input)
	return out, req.Send()
}

// DescribeSpaceWithContext is the same as DescribeSpace with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeSpace for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeSpaceWithContext(ctx aws.Context, input *DescribeSpaceInput, opts ...request.Option) (*DescribeSpaceOutput, error) {
	req, out := c.DescribeSpaceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeStudioLifecycleConfig = "DescribeStudioLifecycleConfig"

// DescribeStudioLifecycleConfigRequest generates a "aws/request.Request" representing the
// client's request for the DescribeStudioLifecycleConfig operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeStudioLifecycleConfig for more information on using the DescribeStudioLifecycleConfig
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeStudioLifecycleConfigRequest method.
//	req, resp := client.DescribeStudioLifecycleConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeStudioLifecycleConfig
func (c *SageMaker) DescribeStudioLifecycleConfigRequest(input *DescribeStudioLifecycleConfigInput) (req *request.Request, output *DescribeStudioLifecycleConfigOutput) {
	op := &request.Operation{
		Name:       opDescribeStudioLifecycleConfig,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeStudioLifecycleConfigInput{}
	}

	output = &DescribeStudioLifecycleConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeStudioLifecycleConfig API operation for Amazon SageMaker Service.
//
// Describes the Amazon SageMaker Studio Lifecycle Configuration.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeStudioLifecycleConfig for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeStudioLifecycleConfig
func (c *SageMaker) DescribeStudioLifecycleConfig(input *DescribeStudioLifecycleConfigInput) (*DescribeStudioLifecycleConfigOutput, error) {
	req, out := c.DescribeStudioLifecycleConfigRequest(input)
	return out, req.Send()
}

// DescribeStudioLifecycleConfigWithContext is the same as DescribeStudioLifecycleConfig with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeStudioLifecycleConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeStudioLifecycleConfigWithContext(ctx aws.Context, input *DescribeStudioLifecycleConfigInput, opts ...request.Option) (*DescribeStudioLifecycleConfigOutput, error) {
	req, out := c.DescribeStudioLifecycleConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeSubscribedWorkteam = "DescribeSubscribedWorkteam"

// DescribeSubscribedWorkteamRequest generates a "aws/request.Request" representing the
// client's request for the DescribeSubscribedWorkteam operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeSubscribedWorkteam for more information on using the DescribeSubscribedWorkteam
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeSubscribedWorkteamRequest method.
//	req, resp := client.DescribeSubscribedWorkteamRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeSubscribedWorkteam
func (c *SageMaker) DescribeSubscribedWorkteamRequest(input *DescribeSubscribedWorkteamInput) (req *request.Request, output *DescribeSubscribedWorkteamOutput) {
	op := &request.Operation{
		Name:       opDescribeSubscribedWorkteam,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeSubscribedWorkteamInput{}
	}

	output = &DescribeSubscribedWorkteamOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeSubscribedWorkteam API operation for Amazon SageMaker Service.
//
// Gets information about a work team provided by a vendor. It returns details
// about the subscription with a vendor in the Amazon Web Services Marketplace.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeSubscribedWorkteam for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeSubscribedWorkteam
func (c *SageMaker) DescribeSubscribedWorkteam(input *DescribeSubscribedWorkteamInput) (*DescribeSubscribedWorkteamOutput, error) {
	req, out := c.DescribeSubscribedWorkteamRequest(input)
	return out, req.Send()
}

// DescribeSubscribedWorkteamWithContext is the same as DescribeSubscribedWorkteam with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeSubscribedWorkteam for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeSubscribedWorkteamWithContext(ctx aws.Context, input *DescribeSubscribedWorkteamInput, opts ...request.Option) (*DescribeSubscribedWorkteamOutput, error) {
	req, out := c.DescribeSubscribedWorkteamRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeTrainingJob = "DescribeTrainingJob"

// DescribeTrainingJobRequest generates a "aws/request.Request" representing the
// client's request for the DescribeTrainingJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeTrainingJob for more information on using the DescribeTrainingJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeTrainingJobRequest method.
//	req, resp := client.DescribeTrainingJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeTrainingJob
func (c *SageMaker) DescribeTrainingJobRequest(input *DescribeTrainingJobInput) (req *request.Request, output *DescribeTrainingJobOutput) {
	op := &request.Operation{
		Name:       opDescribeTrainingJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeTrainingJobInput{}
	}

	output = &DescribeTrainingJobOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeTrainingJob API operation for Amazon SageMaker Service.
//
// Returns information about a training job.
//
// Some of the attributes below only appear if the training job successfully
// starts. If the training job fails, TrainingJobStatus is Failed and, depending
// on the FailureReason, attributes like TrainingStartTime, TrainingTimeInSeconds,
// TrainingEndTime, and BillableTimeInSeconds may not be present in the response.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeTrainingJob for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeTrainingJob
func (c *SageMaker) DescribeTrainingJob(input *DescribeTrainingJobInput) (*DescribeTrainingJobOutput, error) {
	req, out := c.DescribeTrainingJobRequest(input)
	return out, req.Send()
}

// DescribeTrainingJobWithContext is the same as DescribeTrainingJob with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeTrainingJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeTrainingJobWithContext(ctx aws.Context, input *DescribeTrainingJobInput, opts ...request.Option) (*DescribeTrainingJobOutput, error) {
	req, out := c.DescribeTrainingJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeTransformJob = "DescribeTransformJob"

// DescribeTransformJobRequest generates a "aws/request.Request" representing the
// client's request for the DescribeTransformJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeTransformJob for more information on using the DescribeTransformJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeTransformJobRequest method.
//	req, resp := client.DescribeTransformJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeTransformJob
func (c *SageMaker) DescribeTransformJobRequest(input *DescribeTransformJobInput) (req *request.Request, output *DescribeTransformJobOutput) {
	op := &request.Operation{
		Name:       opDescribeTransformJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeTransformJobInput{}
	}

	output = &DescribeTransformJobOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeTransformJob API operation for Amazon SageMaker Service.
//
// Returns information about a transform job.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeTransformJob for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeTransformJob
func (c *SageMaker) DescribeTransformJob(input *DescribeTransformJobInput) (*DescribeTransformJobOutput, error) {
	req, out := c.DescribeTransformJobRequest(input)
	return out, req.Send()
}

// DescribeTransformJobWithContext is the same as DescribeTransformJob with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeTransformJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeTransformJobWithContext(ctx aws.Context, input *DescribeTransformJobInput, opts ...request.Option) (*DescribeTransformJobOutput, error) {
	req, out := c.DescribeTransformJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeTrial = "DescribeTrial"

// DescribeTrialRequest generates a "aws/request.Request" representing the
// client's request for the DescribeTrial operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeTrial for more information on using the DescribeTrial
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeTrialRequest method.
//	req, resp := client.DescribeTrialRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeTrial
func (c *SageMaker) DescribeTrialRequest(input *DescribeTrialInput) (req *request.Request, output *DescribeTrialOutput) {
	op := &request.Operation{
		Name:       opDescribeTrial,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeTrialInput{}
	}

	output = &DescribeTrialOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeTrial API operation for Amazon SageMaker Service.
//
// Provides a list of a trial's properties.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeTrial for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeTrial
func (c *SageMaker) DescribeTrial(input *DescribeTrialInput) (*DescribeTrialOutput, error) {
	req, out := c.DescribeTrialRequest(input)
	return out, req.Send()
}

// DescribeTrialWithContext is the same as DescribeTrial with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeTrial for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeTrialWithContext(ctx aws.Context, input *DescribeTrialInput, opts ...request.Option) (*DescribeTrialOutput, error) {
	req, out := c.DescribeTrialRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeTrialComponent = "DescribeTrialComponent"

// DescribeTrialComponentRequest generates a "aws/request.Request" representing the
// client's request for the DescribeTrialComponent operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeTrialComponent for more information on using the DescribeTrialComponent
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeTrialComponentRequest method.
//	req, resp := client.DescribeTrialComponentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeTrialComponent
func (c *SageMaker) DescribeTrialComponentRequest(input *DescribeTrialComponentInput) (req *request.Request, output *DescribeTrialComponentOutput) {
	op := &request.Operation{
		Name:       opDescribeTrialComponent,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeTrialComponentInput{}
	}

	output = &DescribeTrialComponentOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeTrialComponent API operation for Amazon SageMaker Service.
//
// Provides a list of a trials component's properties.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeTrialComponent for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeTrialComponent
func (c *SageMaker) DescribeTrialComponent(input *DescribeTrialComponentInput) (*DescribeTrialComponentOutput, error) {
	req, out := c.DescribeTrialComponentRequest(input)
	return out, req.Send()
}

// DescribeTrialComponentWithContext is the same as DescribeTrialComponent with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeTrialComponent for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeTrialComponentWithContext(ctx aws.Context, input *DescribeTrialComponentInput, opts ...request.Option) (*DescribeTrialComponentOutput, error) {
	req, out := c.DescribeTrialComponentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeUserProfile = "DescribeUserProfile"

// DescribeUserProfileRequest generates a "aws/request.Request" representing the
// client's request for the DescribeUserProfile operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeUserProfile for more information on using the DescribeUserProfile
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeUserProfileRequest method.
//	req, resp := client.DescribeUserProfileRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeUserProfile
func (c *SageMaker) DescribeUserProfileRequest(input *DescribeUserProfileInput) (req *request.Request, output *DescribeUserProfileOutput) {
	op := &request.Operation{
		Name:       opDescribeUserProfile,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeUserProfileInput{}
	}

	output = &DescribeUserProfileOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeUserProfile API operation for Amazon SageMaker Service.
//
// Describes a user profile. For more information, see CreateUserProfile.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeUserProfile for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFound
//     Resource being access is not found.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeUserProfile
func (c *SageMaker) DescribeUserProfile(input *DescribeUserProfileInput) (*DescribeUserProfileOutput, error) {
	req, out := c.DescribeUserProfileRequest(input)
	return out, req.Send()
}

// DescribeUserProfileWithContext is the same as DescribeUserProfile with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeUserProfile for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeUserProfileWithContext(ctx aws.Context, input *DescribeUserProfileInput, opts ...request.Option) (*DescribeUserProfileOutput, error) {
	req, out := c.DescribeUserProfileRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeWorkforce = "DescribeWorkforce"

// DescribeWorkforceRequest generates a "aws/request.Request" representing the
// client's request for the DescribeWorkforce operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeWorkforce for more information on using the DescribeWorkforce
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeWorkforceRequest method.
//	req, resp := client.DescribeWorkforceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeWorkforce
func (c *SageMaker) DescribeWorkforceRequest(input *DescribeWorkforceInput) (req *request.Request, output *DescribeWorkforceOutput) {
	op := &request.Operation{
		Name:       opDescribeWorkforce,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeWorkforceInput{}
	}

	output = &DescribeWorkforceOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeWorkforce API operation for Amazon SageMaker Service.
//
// Lists private workforce information, including workforce name, Amazon Resource
// Name (ARN), and, if applicable, allowed IP address ranges (CIDRs (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)).
// Allowable IP address ranges are the IP addresses that workers can use to
// access tasks.
//
// This operation applies only to private workforces.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeWorkforce for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeWorkforce
func (c *SageMaker) DescribeWorkforce(input *DescribeWorkforceInput) (*DescribeWorkforceOutput, error) {
	req, out := c.DescribeWorkforceRequest(input)
	return out, req.Send()
}

// DescribeWorkforceWithContext is the same as DescribeWorkforce with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeWorkforce for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeWorkforceWithContext(ctx aws.Context, input *DescribeWorkforceInput, opts ...request.Option) (*DescribeWorkforceOutput, error) {
	req, out := c.DescribeWorkforceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDescribeWorkteam = "DescribeWorkteam"

// DescribeWorkteamRequest generates a "aws/request.Request" representing the
// client's request for the DescribeWorkteam operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DescribeWorkteam for more information on using the DescribeWorkteam
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DescribeWorkteamRequest method.
//	req, resp := client.DescribeWorkteamRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeWorkteam
func (c *SageMaker) DescribeWorkteamRequest(input *DescribeWorkteamInput) (req *request.Request, output *DescribeWorkteamOutput) {
	op := &request.Operation{
		Name:       opDescribeWorkteam,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DescribeWorkteamInput{}
	}

	output = &DescribeWorkteamOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DescribeWorkteam API operation for Amazon SageMaker Service.
//
// Gets information about a specific work team. You can see information such
// as the create date, the last updated date, membership information, and the
// work team's Amazon Resource Name (ARN).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DescribeWorkteam for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DescribeWorkteam
func (c *SageMaker) DescribeWorkteam(input *DescribeWorkteamInput) (*DescribeWorkteamOutput, error) {
	req, out := c.DescribeWorkteamRequest(input)
	return out, req.Send()
}

// DescribeWorkteamWithContext is the same as DescribeWorkteam with the addition of
// the ability to pass a context and additional request options.
//
// See DescribeWorkteam for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DescribeWorkteamWithContext(ctx aws.Context, input *DescribeWorkteamInput, opts ...request.Option) (*DescribeWorkteamOutput, error) {
	req, out := c.DescribeWorkteamRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDisableSagemakerServicecatalogPortfolio = "DisableSagemakerServicecatalogPortfolio"

// DisableSagemakerServicecatalogPortfolioRequest generates a "aws/request.Request" representing the
// client's request for the DisableSagemakerServicecatalogPortfolio operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DisableSagemakerServicecatalogPortfolio for more information on using the DisableSagemakerServicecatalogPortfolio
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DisableSagemakerServicecatalogPortfolioRequest method.
//	req, resp := client.DisableSagemakerServicecatalogPortfolioRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DisableSagemakerServicecatalogPortfolio
func (c *SageMaker) DisableSagemakerServicecatalogPortfolioRequest(input *DisableSagemakerServicecatalogPortfolioInput) (req *request.Request, output *DisableSagemakerServicecatalogPortfolioOutput) {
	op := &request.Operation{
		Name:       opDisableSagemakerServicecatalogPortfolio,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DisableSagemakerServicecatalogPortfolioInput{}
	}

	output = &DisableSagemakerServicecatalogPortfolioOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DisableSagemakerServicecatalogPortfolio API operation for Amazon SageMaker Service.
//
// Disables using Service Catalog in SageMaker. Service Catalog is used to create
// SageMaker projects.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DisableSagemakerServicecatalogPortfolio for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DisableSagemakerServicecatalogPortfolio
func (c *SageMaker) DisableSagemakerServicecatalogPortfolio(input *DisableSagemakerServicecatalogPortfolioInput) (*DisableSagemakerServicecatalogPortfolioOutput, error) {
	req, out := c.DisableSagemakerServicecatalogPortfolioRequest(input)
	return out, req.Send()
}

// DisableSagemakerServicecatalogPortfolioWithContext is the same as DisableSagemakerServicecatalogPortfolio with the addition of
// the ability to pass a context and additional request options.
//
// See DisableSagemakerServicecatalogPortfolio for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DisableSagemakerServicecatalogPortfolioWithContext(ctx aws.Context, input *DisableSagemakerServicecatalogPortfolioInput, opts ...request.Option) (*DisableSagemakerServicecatalogPortfolioOutput, error) {
	req, out := c.DisableSagemakerServicecatalogPortfolioRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDisassociateTrialComponent = "DisassociateTrialComponent"

// DisassociateTrialComponentRequest generates a "aws/request.Request" representing the
// client's request for the DisassociateTrialComponent operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DisassociateTrialComponent for more information on using the DisassociateTrialComponent
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DisassociateTrialComponentRequest method.
//	req, resp := client.DisassociateTrialComponentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DisassociateTrialComponent
func (c *SageMaker) DisassociateTrialComponentRequest(input *DisassociateTrialComponentInput) (req *request.Request, output *DisassociateTrialComponentOutput) {
	op := &request.Operation{
		Name:       opDisassociateTrialComponent,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DisassociateTrialComponentInput{}
	}

	output = &DisassociateTrialComponentOutput{}
	req = c.newRequest(op, input, output)
	return
}

// DisassociateTrialComponent API operation for Amazon SageMaker Service.
//
// Disassociates a trial component from a trial. This doesn't effect other trials
// the component is associated with. Before you can delete a component, you
// must disassociate the component from all trials it is associated with. To
// associate a trial component with a trial, call the AssociateTrialComponent
// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AssociateTrialComponent.html)
// API.
//
// To get a list of the trials a component is associated with, use the Search
// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html)
// API. Specify ExperimentTrialComponent for the Resource parameter. The list
// appears in the response under Results.TrialComponent.Parents.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation DisassociateTrialComponent for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/DisassociateTrialComponent
func (c *SageMaker) DisassociateTrialComponent(input *DisassociateTrialComponentInput) (*DisassociateTrialComponentOutput, error) {
	req, out := c.DisassociateTrialComponentRequest(input)
	return out, req.Send()
}

// DisassociateTrialComponentWithContext is the same as DisassociateTrialComponent with the addition of
// the ability to pass a context and additional request options.
//
// See DisassociateTrialComponent for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) DisassociateTrialComponentWithContext(ctx aws.Context, input *DisassociateTrialComponentInput, opts ...request.Option) (*DisassociateTrialComponentOutput, error) {
	req, out := c.DisassociateTrialComponentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opEnableSagemakerServicecatalogPortfolio = "EnableSagemakerServicecatalogPortfolio"

// EnableSagemakerServicecatalogPortfolioRequest generates a "aws/request.Request" representing the
// client's request for the EnableSagemakerServicecatalogPortfolio operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See EnableSagemakerServicecatalogPortfolio for more information on using the EnableSagemakerServicecatalogPortfolio
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the EnableSagemakerServicecatalogPortfolioRequest method.
//	req, resp := client.EnableSagemakerServicecatalogPortfolioRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EnableSagemakerServicecatalogPortfolio
func (c *SageMaker) EnableSagemakerServicecatalogPortfolioRequest(input *EnableSagemakerServicecatalogPortfolioInput) (req *request.Request, output *EnableSagemakerServicecatalogPortfolioOutput) {
	op := &request.Operation{
		Name:       opEnableSagemakerServicecatalogPortfolio,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &EnableSagemakerServicecatalogPortfolioInput{}
	}

	output = &EnableSagemakerServicecatalogPortfolioOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// EnableSagemakerServicecatalogPortfolio API operation for Amazon SageMaker Service.
//
// Enables using Service Catalog in SageMaker. Service Catalog is used to create
// SageMaker projects.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation EnableSagemakerServicecatalogPortfolio for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/EnableSagemakerServicecatalogPortfolio
func (c *SageMaker) EnableSagemakerServicecatalogPortfolio(input *EnableSagemakerServicecatalogPortfolioInput) (*EnableSagemakerServicecatalogPortfolioOutput, error) {
	req, out := c.EnableSagemakerServicecatalogPortfolioRequest(input)
	return out, req.Send()
}

// EnableSagemakerServicecatalogPortfolioWithContext is the same as EnableSagemakerServicecatalogPortfolio with the addition of
// the ability to pass a context and additional request options.
//
// See EnableSagemakerServicecatalogPortfolio for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) EnableSagemakerServicecatalogPortfolioWithContext(ctx aws.Context, input *EnableSagemakerServicecatalogPortfolioInput, opts ...request.Option) (*EnableSagemakerServicecatalogPortfolioOutput, error) {
	req, out := c.EnableSagemakerServicecatalogPortfolioRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetDeviceFleetReport = "GetDeviceFleetReport"

// GetDeviceFleetReportRequest generates a "aws/request.Request" representing the
// client's request for the GetDeviceFleetReport operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetDeviceFleetReport for more information on using the GetDeviceFleetReport
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetDeviceFleetReportRequest method.
//	req, resp := client.GetDeviceFleetReportRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GetDeviceFleetReport
func (c *SageMaker) GetDeviceFleetReportRequest(input *GetDeviceFleetReportInput) (req *request.Request, output *GetDeviceFleetReportOutput) {
	op := &request.Operation{
		Name:       opGetDeviceFleetReport,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &GetDeviceFleetReportInput{}
	}

	output = &GetDeviceFleetReportOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetDeviceFleetReport API operation for Amazon SageMaker Service.
//
// Describes a fleet.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation GetDeviceFleetReport for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GetDeviceFleetReport
func (c *SageMaker) GetDeviceFleetReport(input *GetDeviceFleetReportInput) (*GetDeviceFleetReportOutput, error) {
	req, out := c.GetDeviceFleetReportRequest(input)
	return out, req.Send()
}

// GetDeviceFleetReportWithContext is the same as GetDeviceFleetReport with the addition of
// the ability to pass a context and additional request options.
//
// See GetDeviceFleetReport for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) GetDeviceFleetReportWithContext(ctx aws.Context, input *GetDeviceFleetReportInput, opts ...request.Option) (*GetDeviceFleetReportOutput, error) {
	req, out := c.GetDeviceFleetReportRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetLineageGroupPolicy = "GetLineageGroupPolicy"

// GetLineageGroupPolicyRequest generates a "aws/request.Request" representing the
// client's request for the GetLineageGroupPolicy operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetLineageGroupPolicy for more information on using the GetLineageGroupPolicy
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetLineageGroupPolicyRequest method.
//	req, resp := client.GetLineageGroupPolicyRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GetLineageGroupPolicy
func (c *SageMaker) GetLineageGroupPolicyRequest(input *GetLineageGroupPolicyInput) (req *request.Request, output *GetLineageGroupPolicyOutput) {
	op := &request.Operation{
		Name:       opGetLineageGroupPolicy,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &GetLineageGroupPolicyInput{}
	}

	output = &GetLineageGroupPolicyOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetLineageGroupPolicy API operation for Amazon SageMaker Service.
//
// The resource policy for the lineage group.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation GetLineageGroupPolicy for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GetLineageGroupPolicy
func (c *SageMaker) GetLineageGroupPolicy(input *GetLineageGroupPolicyInput) (*GetLineageGroupPolicyOutput, error) {
	req, out := c.GetLineageGroupPolicyRequest(input)
	return out, req.Send()
}

// GetLineageGroupPolicyWithContext is the same as GetLineageGroupPolicy with the addition of
// the ability to pass a context and additional request options.
//
// See GetLineageGroupPolicy for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) GetLineageGroupPolicyWithContext(ctx aws.Context, input *GetLineageGroupPolicyInput, opts ...request.Option) (*GetLineageGroupPolicyOutput, error) {
	req, out := c.GetLineageGroupPolicyRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetModelPackageGroupPolicy = "GetModelPackageGroupPolicy"

// GetModelPackageGroupPolicyRequest generates a "aws/request.Request" representing the
// client's request for the GetModelPackageGroupPolicy operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetModelPackageGroupPolicy for more information on using the GetModelPackageGroupPolicy
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetModelPackageGroupPolicyRequest method.
//	req, resp := client.GetModelPackageGroupPolicyRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GetModelPackageGroupPolicy
func (c *SageMaker) GetModelPackageGroupPolicyRequest(input *GetModelPackageGroupPolicyInput) (req *request.Request, output *GetModelPackageGroupPolicyOutput) {
	op := &request.Operation{
		Name:       opGetModelPackageGroupPolicy,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &GetModelPackageGroupPolicyInput{}
	}

	output = &GetModelPackageGroupPolicyOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetModelPackageGroupPolicy API operation for Amazon SageMaker Service.
//
// Gets a resource policy that manages access for a model group. For information
// about resource policies, see Identity-based policies and resource-based policies
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html)
// in the Amazon Web Services Identity and Access Management User Guide..
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation GetModelPackageGroupPolicy for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GetModelPackageGroupPolicy
func (c *SageMaker) GetModelPackageGroupPolicy(input *GetModelPackageGroupPolicyInput) (*GetModelPackageGroupPolicyOutput, error) {
	req, out := c.GetModelPackageGroupPolicyRequest(input)
	return out, req.Send()
}

// GetModelPackageGroupPolicyWithContext is the same as GetModelPackageGroupPolicy with the addition of
// the ability to pass a context and additional request options.
//
// See GetModelPackageGroupPolicy for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) GetModelPackageGroupPolicyWithContext(ctx aws.Context, input *GetModelPackageGroupPolicyInput, opts ...request.Option) (*GetModelPackageGroupPolicyOutput, error) {
	req, out := c.GetModelPackageGroupPolicyRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetSagemakerServicecatalogPortfolioStatus = "GetSagemakerServicecatalogPortfolioStatus"

// GetSagemakerServicecatalogPortfolioStatusRequest generates a "aws/request.Request" representing the
// client's request for the GetSagemakerServicecatalogPortfolioStatus operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetSagemakerServicecatalogPortfolioStatus for more information on using the GetSagemakerServicecatalogPortfolioStatus
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetSagemakerServicecatalogPortfolioStatusRequest method.
//	req, resp := client.GetSagemakerServicecatalogPortfolioStatusRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GetSagemakerServicecatalogPortfolioStatus
func (c *SageMaker) GetSagemakerServicecatalogPortfolioStatusRequest(input *GetSagemakerServicecatalogPortfolioStatusInput) (req *request.Request, output *GetSagemakerServicecatalogPortfolioStatusOutput) {
	op := &request.Operation{
		Name:       opGetSagemakerServicecatalogPortfolioStatus,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &GetSagemakerServicecatalogPortfolioStatusInput{}
	}

	output = &GetSagemakerServicecatalogPortfolioStatusOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetSagemakerServicecatalogPortfolioStatus API operation for Amazon SageMaker Service.
//
// Gets the status of Service Catalog in SageMaker. Service Catalog is used
// to create SageMaker projects.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation GetSagemakerServicecatalogPortfolioStatus for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GetSagemakerServicecatalogPortfolioStatus
func (c *SageMaker) GetSagemakerServicecatalogPortfolioStatus(input *GetSagemakerServicecatalogPortfolioStatusInput) (*GetSagemakerServicecatalogPortfolioStatusOutput, error) {
	req, out := c.GetSagemakerServicecatalogPortfolioStatusRequest(input)
	return out, req.Send()
}

// GetSagemakerServicecatalogPortfolioStatusWithContext is the same as GetSagemakerServicecatalogPortfolioStatus with the addition of
// the ability to pass a context and additional request options.
//
// See GetSagemakerServicecatalogPortfolioStatus for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) GetSagemakerServicecatalogPortfolioStatusWithContext(ctx aws.Context, input *GetSagemakerServicecatalogPortfolioStatusInput, opts ...request.Option) (*GetSagemakerServicecatalogPortfolioStatusOutput, error) {
	req, out := c.GetSagemakerServicecatalogPortfolioStatusRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetScalingConfigurationRecommendation = "GetScalingConfigurationRecommendation"

// GetScalingConfigurationRecommendationRequest generates a "aws/request.Request" representing the
// client's request for the GetScalingConfigurationRecommendation operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetScalingConfigurationRecommendation for more information on using the GetScalingConfigurationRecommendation
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetScalingConfigurationRecommendationRequest method.
//	req, resp := client.GetScalingConfigurationRecommendationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GetScalingConfigurationRecommendation
func (c *SageMaker) GetScalingConfigurationRecommendationRequest(input *GetScalingConfigurationRecommendationInput) (req *request.Request, output *GetScalingConfigurationRecommendationOutput) {
	op := &request.Operation{
		Name:       opGetScalingConfigurationRecommendation,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &GetScalingConfigurationRecommendationInput{}
	}

	output = &GetScalingConfigurationRecommendationOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetScalingConfigurationRecommendation API operation for Amazon SageMaker Service.
//
// Starts an Amazon SageMaker Inference Recommender autoscaling recommendation
// job. Returns recommendations for autoscaling policies that you can apply
// to your SageMaker endpoint.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation GetScalingConfigurationRecommendation for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GetScalingConfigurationRecommendation
func (c *SageMaker) GetScalingConfigurationRecommendation(input *GetScalingConfigurationRecommendationInput) (*GetScalingConfigurationRecommendationOutput, error) {
	req, out := c.GetScalingConfigurationRecommendationRequest(input)
	return out, req.Send()
}

// GetScalingConfigurationRecommendationWithContext is the same as GetScalingConfigurationRecommendation with the addition of
// the ability to pass a context and additional request options.
//
// See GetScalingConfigurationRecommendation for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) GetScalingConfigurationRecommendationWithContext(ctx aws.Context, input *GetScalingConfigurationRecommendationInput, opts ...request.Option) (*GetScalingConfigurationRecommendationOutput, error) {
	req, out := c.GetScalingConfigurationRecommendationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetSearchSuggestions = "GetSearchSuggestions"

// GetSearchSuggestionsRequest generates a "aws/request.Request" representing the
// client's request for the GetSearchSuggestions operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetSearchSuggestions for more information on using the GetSearchSuggestions
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetSearchSuggestionsRequest method.
//	req, resp := client.GetSearchSuggestionsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GetSearchSuggestions
func (c *SageMaker) GetSearchSuggestionsRequest(input *GetSearchSuggestionsInput) (req *request.Request, output *GetSearchSuggestionsOutput) {
	op := &request.Operation{
		Name:       opGetSearchSuggestions,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &GetSearchSuggestionsInput{}
	}

	output = &GetSearchSuggestionsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetSearchSuggestions API operation for Amazon SageMaker Service.
//
// An auto-complete API for the search functionality in the SageMaker console.
// It returns suggestions of possible matches for the property name to use in
// Search queries. Provides suggestions for HyperParameters, Tags, and Metrics.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation GetSearchSuggestions for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/GetSearchSuggestions
func (c *SageMaker) GetSearchSuggestions(input *GetSearchSuggestionsInput) (*GetSearchSuggestionsOutput, error) {
	req, out := c.GetSearchSuggestionsRequest(input)
	return out, req.Send()
}

// GetSearchSuggestionsWithContext is the same as GetSearchSuggestions with the addition of
// the ability to pass a context and additional request options.
//
// See GetSearchSuggestions for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) GetSearchSuggestionsWithContext(ctx aws.Context, input *GetSearchSuggestionsInput, opts ...request.Option) (*GetSearchSuggestionsOutput, error) {
	req, out := c.GetSearchSuggestionsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opImportHubContent = "ImportHubContent"

// ImportHubContentRequest generates a "aws/request.Request" representing the
// client's request for the ImportHubContent operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ImportHubContent for more information on using the ImportHubContent
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ImportHubContentRequest method.
//	req, resp := client.ImportHubContentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ImportHubContent
func (c *SageMaker) ImportHubContentRequest(input *ImportHubContentInput) (req *request.Request, output *ImportHubContentOutput) {
	op := &request.Operation{
		Name:       opImportHubContent,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &ImportHubContentInput{}
	}

	output = &ImportHubContentOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ImportHubContent API operation for Amazon SageMaker Service.
//
// Import hub content.
//
// Hub APIs are only callable through SageMaker Studio.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ImportHubContent for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ImportHubContent
func (c *SageMaker) ImportHubContent(input *ImportHubContentInput) (*ImportHubContentOutput, error) {
	req, out := c.ImportHubContentRequest(input)
	return out, req.Send()
}

// ImportHubContentWithContext is the same as ImportHubContent with the addition of
// the ability to pass a context and additional request options.
//
// See ImportHubContent for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ImportHubContentWithContext(ctx aws.Context, input *ImportHubContentInput, opts ...request.Option) (*ImportHubContentOutput, error) {
	req, out := c.ImportHubContentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opListActions = "ListActions"

// ListActionsRequest generates a "aws/request.Request" representing the
// client's request for the ListActions operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListActions for more information on using the ListActions
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListActionsRequest method.
//	req, resp := client.ListActionsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListActions
func (c *SageMaker) ListActionsRequest(input *ListActionsInput) (req *request.Request, output *ListActionsOutput) {
	op := &request.Operation{
		Name:       opListActions,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListActionsInput{}
	}

	output = &ListActionsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListActions API operation for Amazon SageMaker Service.
//
// Lists the actions in your account and their properties.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListActions for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListActions
func (c *SageMaker) ListActions(input *ListActionsInput) (*ListActionsOutput, error) {
	req, out := c.ListActionsRequest(input)
	return out, req.Send()
}

// ListActionsWithContext is the same as ListActions with the addition of
// the ability to pass a context and additional request options.
//
// See ListActions for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListActionsWithContext(ctx aws.Context, input *ListActionsInput, opts ...request.Option) (*ListActionsOutput, error) {
	req, out := c.ListActionsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListActionsPages iterates over the pages of a ListActions operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListActions method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListActions operation.
//	pageNum := 0
//	err := client.ListActionsPages(params,
//	    func(page *sagemaker.ListActionsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListActionsPages(input *ListActionsInput, fn func(*ListActionsOutput, bool) bool) error {
	return c.ListActionsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListActionsPagesWithContext same as ListActionsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListActionsPagesWithContext(ctx aws.Context, input *ListActionsInput, fn func(*ListActionsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListActionsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListActionsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListActionsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListAlgorithms = "ListAlgorithms"

// ListAlgorithmsRequest generates a "aws/request.Request" representing the
// client's request for the ListAlgorithms operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListAlgorithms for more information on using the ListAlgorithms
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListAlgorithmsRequest method.
//	req, resp := client.ListAlgorithmsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListAlgorithms
func (c *SageMaker) ListAlgorithmsRequest(input *ListAlgorithmsInput) (req *request.Request, output *ListAlgorithmsOutput) {
	op := &request.Operation{
		Name:       opListAlgorithms,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListAlgorithmsInput{}
	}

	output = &ListAlgorithmsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListAlgorithms API operation for Amazon SageMaker Service.
//
// Lists the machine learning algorithms that have been created.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListAlgorithms for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListAlgorithms
func (c *SageMaker) ListAlgorithms(input *ListAlgorithmsInput) (*ListAlgorithmsOutput, error) {
	req, out := c.ListAlgorithmsRequest(input)
	return out, req.Send()
}

// ListAlgorithmsWithContext is the same as ListAlgorithms with the addition of
// the ability to pass a context and additional request options.
//
// See ListAlgorithms for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListAlgorithmsWithContext(ctx aws.Context, input *ListAlgorithmsInput, opts ...request.Option) (*ListAlgorithmsOutput, error) {
	req, out := c.ListAlgorithmsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListAlgorithmsPages iterates over the pages of a ListAlgorithms operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListAlgorithms method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListAlgorithms operation.
//	pageNum := 0
//	err := client.ListAlgorithmsPages(params,
//	    func(page *sagemaker.ListAlgorithmsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListAlgorithmsPages(input *ListAlgorithmsInput, fn func(*ListAlgorithmsOutput, bool) bool) error {
	return c.ListAlgorithmsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListAlgorithmsPagesWithContext same as ListAlgorithmsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListAlgorithmsPagesWithContext(ctx aws.Context, input *ListAlgorithmsInput, fn func(*ListAlgorithmsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListAlgorithmsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListAlgorithmsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListAlgorithmsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListAliases = "ListAliases"

// ListAliasesRequest generates a "aws/request.Request" representing the
// client's request for the ListAliases operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListAliases for more information on using the ListAliases
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListAliasesRequest method.
//	req, resp := client.ListAliasesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListAliases
func (c *SageMaker) ListAliasesRequest(input *ListAliasesInput) (req *request.Request, output *ListAliasesOutput) {
	op := &request.Operation{
		Name:       opListAliases,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListAliasesInput{}
	}

	output = &ListAliasesOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListAliases API operation for Amazon SageMaker Service.
//
// Lists the aliases of a specified image or image version.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListAliases for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListAliases
func (c *SageMaker) ListAliases(input *ListAliasesInput) (*ListAliasesOutput, error) {
	req, out := c.ListAliasesRequest(input)
	return out, req.Send()
}

// ListAliasesWithContext is the same as ListAliases with the addition of
// the ability to pass a context and additional request options.
//
// See ListAliases for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListAliasesWithContext(ctx aws.Context, input *ListAliasesInput, opts ...request.Option) (*ListAliasesOutput, error) {
	req, out := c.ListAliasesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListAliasesPages iterates over the pages of a ListAliases operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListAliases method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListAliases operation.
//	pageNum := 0
//	err := client.ListAliasesPages(params,
//	    func(page *sagemaker.ListAliasesOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListAliasesPages(input *ListAliasesInput, fn func(*ListAliasesOutput, bool) bool) error {
	return c.ListAliasesPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListAliasesPagesWithContext same as ListAliasesPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListAliasesPagesWithContext(ctx aws.Context, input *ListAliasesInput, fn func(*ListAliasesOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListAliasesInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListAliasesRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListAliasesOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListAppImageConfigs = "ListAppImageConfigs"

// ListAppImageConfigsRequest generates a "aws/request.Request" representing the
// client's request for the ListAppImageConfigs operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListAppImageConfigs for more information on using the ListAppImageConfigs
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListAppImageConfigsRequest method.
//	req, resp := client.ListAppImageConfigsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListAppImageConfigs
func (c *SageMaker) ListAppImageConfigsRequest(input *ListAppImageConfigsInput) (req *request.Request, output *ListAppImageConfigsOutput) {
	op := &request.Operation{
		Name:       opListAppImageConfigs,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListAppImageConfigsInput{}
	}

	output = &ListAppImageConfigsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListAppImageConfigs API operation for Amazon SageMaker Service.
//
// Lists the AppImageConfigs in your account and their properties. The list
// can be filtered by creation time or modified time, and whether the AppImageConfig
// name contains a specified string.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListAppImageConfigs for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListAppImageConfigs
func (c *SageMaker) ListAppImageConfigs(input *ListAppImageConfigsInput) (*ListAppImageConfigsOutput, error) {
	req, out := c.ListAppImageConfigsRequest(input)
	return out, req.Send()
}

// ListAppImageConfigsWithContext is the same as ListAppImageConfigs with the addition of
// the ability to pass a context and additional request options.
//
// See ListAppImageConfigs for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListAppImageConfigsWithContext(ctx aws.Context, input *ListAppImageConfigsInput, opts ...request.Option) (*ListAppImageConfigsOutput, error) {
	req, out := c.ListAppImageConfigsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListAppImageConfigsPages iterates over the pages of a ListAppImageConfigs operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListAppImageConfigs method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListAppImageConfigs operation.
//	pageNum := 0
//	err := client.ListAppImageConfigsPages(params,
//	    func(page *sagemaker.ListAppImageConfigsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListAppImageConfigsPages(input *ListAppImageConfigsInput, fn func(*ListAppImageConfigsOutput, bool) bool) error {
	return c.ListAppImageConfigsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListAppImageConfigsPagesWithContext same as ListAppImageConfigsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListAppImageConfigsPagesWithContext(ctx aws.Context, input *ListAppImageConfigsInput, fn func(*ListAppImageConfigsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListAppImageConfigsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListAppImageConfigsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListAppImageConfigsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListApps = "ListApps"

// ListAppsRequest generates a "aws/request.Request" representing the
// client's request for the ListApps operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListApps for more information on using the ListApps
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListAppsRequest method.
//	req, resp := client.ListAppsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListApps
func (c *SageMaker) ListAppsRequest(input *ListAppsInput) (req *request.Request, output *ListAppsOutput) {
	op := &request.Operation{
		Name:       opListApps,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListAppsInput{}
	}

	output = &ListAppsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListApps API operation for Amazon SageMaker Service.
//
// Lists apps.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListApps for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListApps
func (c *SageMaker) ListApps(input *ListAppsInput) (*ListAppsOutput, error) {
	req, out := c.ListAppsRequest(input)
	return out, req.Send()
}

// ListAppsWithContext is the same as ListApps with the addition of
// the ability to pass a context and additional request options.
//
// See ListApps for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListAppsWithContext(ctx aws.Context, input *ListAppsInput, opts ...request.Option) (*ListAppsOutput, error) {
	req, out := c.ListAppsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListAppsPages iterates over the pages of a ListApps operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListApps method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListApps operation.
//	pageNum := 0
//	err := client.ListAppsPages(params,
//	    func(page *sagemaker.ListAppsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListAppsPages(input *ListAppsInput, fn func(*ListAppsOutput, bool) bool) error {
	return c.ListAppsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListAppsPagesWithContext same as ListAppsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListAppsPagesWithContext(ctx aws.Context, input *ListAppsInput, fn func(*ListAppsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListAppsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListAppsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListAppsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListArtifacts = "ListArtifacts"

// ListArtifactsRequest generates a "aws/request.Request" representing the
// client's request for the ListArtifacts operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListArtifacts for more information on using the ListArtifacts
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListArtifactsRequest method.
//	req, resp := client.ListArtifactsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListArtifacts
func (c *SageMaker) ListArtifactsRequest(input *ListArtifactsInput) (req *request.Request, output *ListArtifactsOutput) {
	op := &request.Operation{
		Name:       opListArtifacts,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListArtifactsInput{}
	}

	output = &ListArtifactsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListArtifacts API operation for Amazon SageMaker Service.
//
// Lists the artifacts in your account and their properties.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListArtifacts for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListArtifacts
func (c *SageMaker) ListArtifacts(input *ListArtifactsInput) (*ListArtifactsOutput, error) {
	req, out := c.ListArtifactsRequest(input)
	return out, req.Send()
}

// ListArtifactsWithContext is the same as ListArtifacts with the addition of
// the ability to pass a context and additional request options.
//
// See ListArtifacts for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListArtifactsWithContext(ctx aws.Context, input *ListArtifactsInput, opts ...request.Option) (*ListArtifactsOutput, error) {
	req, out := c.ListArtifactsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListArtifactsPages iterates over the pages of a ListArtifacts operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListArtifacts method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListArtifacts operation.
//	pageNum := 0
//	err := client.ListArtifactsPages(params,
//	    func(page *sagemaker.ListArtifactsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListArtifactsPages(input *ListArtifactsInput, fn func(*ListArtifactsOutput, bool) bool) error {
	return c.ListArtifactsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListArtifactsPagesWithContext same as ListArtifactsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListArtifactsPagesWithContext(ctx aws.Context, input *ListArtifactsInput, fn func(*ListArtifactsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListArtifactsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListArtifactsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListArtifactsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListAssociations = "ListAssociations"

// ListAssociationsRequest generates a "aws/request.Request" representing the
// client's request for the ListAssociations operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListAssociations for more information on using the ListAssociations
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListAssociationsRequest method.
//	req, resp := client.ListAssociationsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListAssociations
func (c *SageMaker) ListAssociationsRequest(input *ListAssociationsInput) (req *request.Request, output *ListAssociationsOutput) {
	op := &request.Operation{
		Name:       opListAssociations,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListAssociationsInput{}
	}

	output = &ListAssociationsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListAssociations API operation for Amazon SageMaker Service.
//
// Lists the associations in your account and their properties.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListAssociations for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListAssociations
func (c *SageMaker) ListAssociations(input *ListAssociationsInput) (*ListAssociationsOutput, error) {
	req, out := c.ListAssociationsRequest(input)
	return out, req.Send()
}

// ListAssociationsWithContext is the same as ListAssociations with the addition of
// the ability to pass a context and additional request options.
//
// See ListAssociations for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListAssociationsWithContext(ctx aws.Context, input *ListAssociationsInput, opts ...request.Option) (*ListAssociationsOutput, error) {
	req, out := c.ListAssociationsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListAssociationsPages iterates over the pages of a ListAssociations operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListAssociations method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListAssociations operation.
//	pageNum := 0
//	err := client.ListAssociationsPages(params,
//	    func(page *sagemaker.ListAssociationsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListAssociationsPages(input *ListAssociationsInput, fn func(*ListAssociationsOutput, bool) bool) error {
	return c.ListAssociationsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListAssociationsPagesWithContext same as ListAssociationsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListAssociationsPagesWithContext(ctx aws.Context, input *ListAssociationsInput, fn func(*ListAssociationsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListAssociationsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListAssociationsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListAssociationsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListAutoMLJobs = "ListAutoMLJobs"

// ListAutoMLJobsRequest generates a "aws/request.Request" representing the
// client's request for the ListAutoMLJobs operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListAutoMLJobs for more information on using the ListAutoMLJobs
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListAutoMLJobsRequest method.
//	req, resp := client.ListAutoMLJobsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListAutoMLJobs
func (c *SageMaker) ListAutoMLJobsRequest(input *ListAutoMLJobsInput) (req *request.Request, output *ListAutoMLJobsOutput) {
	op := &request.Operation{
		Name:       opListAutoMLJobs,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListAutoMLJobsInput{}
	}

	output = &ListAutoMLJobsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListAutoMLJobs API operation for Amazon SageMaker Service.
//
// Request a list of jobs.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListAutoMLJobs for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListAutoMLJobs
func (c *SageMaker) ListAutoMLJobs(input *ListAutoMLJobsInput) (*ListAutoMLJobsOutput, error) {
	req, out := c.ListAutoMLJobsRequest(input)
	return out, req.Send()
}

// ListAutoMLJobsWithContext is the same as ListAutoMLJobs with the addition of
// the ability to pass a context and additional request options.
//
// See ListAutoMLJobs for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListAutoMLJobsWithContext(ctx aws.Context, input *ListAutoMLJobsInput, opts ...request.Option) (*ListAutoMLJobsOutput, error) {
	req, out := c.ListAutoMLJobsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListAutoMLJobsPages iterates over the pages of a ListAutoMLJobs operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListAutoMLJobs method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListAutoMLJobs operation.
//	pageNum := 0
//	err := client.ListAutoMLJobsPages(params,
//	    func(page *sagemaker.ListAutoMLJobsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListAutoMLJobsPages(input *ListAutoMLJobsInput, fn func(*ListAutoMLJobsOutput, bool) bool) error {
	return c.ListAutoMLJobsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListAutoMLJobsPagesWithContext same as ListAutoMLJobsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListAutoMLJobsPagesWithContext(ctx aws.Context, input *ListAutoMLJobsInput, fn func(*ListAutoMLJobsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListAutoMLJobsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListAutoMLJobsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListAutoMLJobsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListCandidatesForAutoMLJob = "ListCandidatesForAutoMLJob"

// ListCandidatesForAutoMLJobRequest generates a "aws/request.Request" representing the
// client's request for the ListCandidatesForAutoMLJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListCandidatesForAutoMLJob for more information on using the ListCandidatesForAutoMLJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListCandidatesForAutoMLJobRequest method.
//	req, resp := client.ListCandidatesForAutoMLJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListCandidatesForAutoMLJob
func (c *SageMaker) ListCandidatesForAutoMLJobRequest(input *ListCandidatesForAutoMLJobInput) (req *request.Request, output *ListCandidatesForAutoMLJobOutput) {
	op := &request.Operation{
		Name:       opListCandidatesForAutoMLJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListCandidatesForAutoMLJobInput{}
	}

	output = &ListCandidatesForAutoMLJobOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListCandidatesForAutoMLJob API operation for Amazon SageMaker Service.
//
// List the candidates created for the job.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListCandidatesForAutoMLJob for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListCandidatesForAutoMLJob
func (c *SageMaker) ListCandidatesForAutoMLJob(input *ListCandidatesForAutoMLJobInput) (*ListCandidatesForAutoMLJobOutput, error) {
	req, out := c.ListCandidatesForAutoMLJobRequest(input)
	return out, req.Send()
}

// ListCandidatesForAutoMLJobWithContext is the same as ListCandidatesForAutoMLJob with the addition of
// the ability to pass a context and additional request options.
//
// See ListCandidatesForAutoMLJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListCandidatesForAutoMLJobWithContext(ctx aws.Context, input *ListCandidatesForAutoMLJobInput, opts ...request.Option) (*ListCandidatesForAutoMLJobOutput, error) {
	req, out := c.ListCandidatesForAutoMLJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListCandidatesForAutoMLJobPages iterates over the pages of a ListCandidatesForAutoMLJob operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListCandidatesForAutoMLJob method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListCandidatesForAutoMLJob operation.
//	pageNum := 0
//	err := client.ListCandidatesForAutoMLJobPages(params,
//	    func(page *sagemaker.ListCandidatesForAutoMLJobOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListCandidatesForAutoMLJobPages(input *ListCandidatesForAutoMLJobInput, fn func(*ListCandidatesForAutoMLJobOutput, bool) bool) error {
	return c.ListCandidatesForAutoMLJobPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListCandidatesForAutoMLJobPagesWithContext same as ListCandidatesForAutoMLJobPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListCandidatesForAutoMLJobPagesWithContext(ctx aws.Context, input *ListCandidatesForAutoMLJobInput, fn func(*ListCandidatesForAutoMLJobOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListCandidatesForAutoMLJobInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListCandidatesForAutoMLJobRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListCandidatesForAutoMLJobOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListClusterNodes = "ListClusterNodes"

// ListClusterNodesRequest generates a "aws/request.Request" representing the
// client's request for the ListClusterNodes operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListClusterNodes for more information on using the ListClusterNodes
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListClusterNodesRequest method.
//	req, resp := client.ListClusterNodesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListClusterNodes
func (c *SageMaker) ListClusterNodesRequest(input *ListClusterNodesInput) (req *request.Request, output *ListClusterNodesOutput) {
	op := &request.Operation{
		Name:       opListClusterNodes,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListClusterNodesInput{}
	}

	output = &ListClusterNodesOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListClusterNodes API operation for Amazon SageMaker Service.
//
// Retrieves the list of instances (also called nodes interchangeably) in a
// SageMaker HyperPod cluster.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListClusterNodes for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListClusterNodes
func (c *SageMaker) ListClusterNodes(input *ListClusterNodesInput) (*ListClusterNodesOutput, error) {
	req, out := c.ListClusterNodesRequest(input)
	return out, req.Send()
}

// ListClusterNodesWithContext is the same as ListClusterNodes with the addition of
// the ability to pass a context and additional request options.
//
// See ListClusterNodes for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListClusterNodesWithContext(ctx aws.Context, input *ListClusterNodesInput, opts ...request.Option) (*ListClusterNodesOutput, error) {
	req, out := c.ListClusterNodesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListClusterNodesPages iterates over the pages of a ListClusterNodes operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListClusterNodes method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListClusterNodes operation.
//	pageNum := 0
//	err := client.ListClusterNodesPages(params,
//	    func(page *sagemaker.ListClusterNodesOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListClusterNodesPages(input *ListClusterNodesInput, fn func(*ListClusterNodesOutput, bool) bool) error {
	return c.ListClusterNodesPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListClusterNodesPagesWithContext same as ListClusterNodesPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListClusterNodesPagesWithContext(ctx aws.Context, input *ListClusterNodesInput, fn func(*ListClusterNodesOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListClusterNodesInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListClusterNodesRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListClusterNodesOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListClusters = "ListClusters"

// ListClustersRequest generates a "aws/request.Request" representing the
// client's request for the ListClusters operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListClusters for more information on using the ListClusters
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListClustersRequest method.
//	req, resp := client.ListClustersRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListClusters
func (c *SageMaker) ListClustersRequest(input *ListClustersInput) (req *request.Request, output *ListClustersOutput) {
	op := &request.Operation{
		Name:       opListClusters,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListClustersInput{}
	}

	output = &ListClustersOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListClusters API operation for Amazon SageMaker Service.
//
// Retrieves the list of SageMaker HyperPod clusters.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListClusters for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListClusters
func (c *SageMaker) ListClusters(input *ListClustersInput) (*ListClustersOutput, error) {
	req, out := c.ListClustersRequest(input)
	return out, req.Send()
}

// ListClustersWithContext is the same as ListClusters with the addition of
// the ability to pass a context and additional request options.
//
// See ListClusters for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListClustersWithContext(ctx aws.Context, input *ListClustersInput, opts ...request.Option) (*ListClustersOutput, error) {
	req, out := c.ListClustersRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListClustersPages iterates over the pages of a ListClusters operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListClusters method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListClusters operation.
//	pageNum := 0
//	err := client.ListClustersPages(params,
//	    func(page *sagemaker.ListClustersOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListClustersPages(input *ListClustersInput, fn func(*ListClustersOutput, bool) bool) error {
	return c.ListClustersPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListClustersPagesWithContext same as ListClustersPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListClustersPagesWithContext(ctx aws.Context, input *ListClustersInput, fn func(*ListClustersOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListClustersInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListClustersRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListClustersOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListCodeRepositories = "ListCodeRepositories"

// ListCodeRepositoriesRequest generates a "aws/request.Request" representing the
// client's request for the ListCodeRepositories operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListCodeRepositories for more information on using the ListCodeRepositories
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListCodeRepositoriesRequest method.
//	req, resp := client.ListCodeRepositoriesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListCodeRepositories
func (c *SageMaker) ListCodeRepositoriesRequest(input *ListCodeRepositoriesInput) (req *request.Request, output *ListCodeRepositoriesOutput) {
	op := &request.Operation{
		Name:       opListCodeRepositories,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListCodeRepositoriesInput{}
	}

	output = &ListCodeRepositoriesOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListCodeRepositories API operation for Amazon SageMaker Service.
//
// Gets a list of the Git repositories in your account.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListCodeRepositories for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListCodeRepositories
func (c *SageMaker) ListCodeRepositories(input *ListCodeRepositoriesInput) (*ListCodeRepositoriesOutput, error) {
	req, out := c.ListCodeRepositoriesRequest(input)
	return out, req.Send()
}

// ListCodeRepositoriesWithContext is the same as ListCodeRepositories with the addition of
// the ability to pass a context and additional request options.
//
// See ListCodeRepositories for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListCodeRepositoriesWithContext(ctx aws.Context, input *ListCodeRepositoriesInput, opts ...request.Option) (*ListCodeRepositoriesOutput, error) {
	req, out := c.ListCodeRepositoriesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListCodeRepositoriesPages iterates over the pages of a ListCodeRepositories operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListCodeRepositories method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListCodeRepositories operation.
//	pageNum := 0
//	err := client.ListCodeRepositoriesPages(params,
//	    func(page *sagemaker.ListCodeRepositoriesOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListCodeRepositoriesPages(input *ListCodeRepositoriesInput, fn func(*ListCodeRepositoriesOutput, bool) bool) error {
	return c.ListCodeRepositoriesPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListCodeRepositoriesPagesWithContext same as ListCodeRepositoriesPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListCodeRepositoriesPagesWithContext(ctx aws.Context, input *ListCodeRepositoriesInput, fn func(*ListCodeRepositoriesOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListCodeRepositoriesInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListCodeRepositoriesRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListCodeRepositoriesOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListCompilationJobs = "ListCompilationJobs"

// ListCompilationJobsRequest generates a "aws/request.Request" representing the
// client's request for the ListCompilationJobs operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListCompilationJobs for more information on using the ListCompilationJobs
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListCompilationJobsRequest method.
//	req, resp := client.ListCompilationJobsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListCompilationJobs
func (c *SageMaker) ListCompilationJobsRequest(input *ListCompilationJobsInput) (req *request.Request, output *ListCompilationJobsOutput) {
	op := &request.Operation{
		Name:       opListCompilationJobs,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListCompilationJobsInput{}
	}

	output = &ListCompilationJobsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListCompilationJobs API operation for Amazon SageMaker Service.
//
// Lists model compilation jobs that satisfy various filters.
//
// To create a model compilation job, use CreateCompilationJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCompilationJob.html).
// To get information about a particular model compilation job you have created,
// use DescribeCompilationJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCompilationJob.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListCompilationJobs for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListCompilationJobs
func (c *SageMaker) ListCompilationJobs(input *ListCompilationJobsInput) (*ListCompilationJobsOutput, error) {
	req, out := c.ListCompilationJobsRequest(input)
	return out, req.Send()
}

// ListCompilationJobsWithContext is the same as ListCompilationJobs with the addition of
// the ability to pass a context and additional request options.
//
// See ListCompilationJobs for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListCompilationJobsWithContext(ctx aws.Context, input *ListCompilationJobsInput, opts ...request.Option) (*ListCompilationJobsOutput, error) {
	req, out := c.ListCompilationJobsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListCompilationJobsPages iterates over the pages of a ListCompilationJobs operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListCompilationJobs method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListCompilationJobs operation.
//	pageNum := 0
//	err := client.ListCompilationJobsPages(params,
//	    func(page *sagemaker.ListCompilationJobsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListCompilationJobsPages(input *ListCompilationJobsInput, fn func(*ListCompilationJobsOutput, bool) bool) error {
	return c.ListCompilationJobsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListCompilationJobsPagesWithContext same as ListCompilationJobsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListCompilationJobsPagesWithContext(ctx aws.Context, input *ListCompilationJobsInput, fn func(*ListCompilationJobsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListCompilationJobsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListCompilationJobsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListCompilationJobsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListContexts = "ListContexts"

// ListContextsRequest generates a "aws/request.Request" representing the
// client's request for the ListContexts operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListContexts for more information on using the ListContexts
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListContextsRequest method.
//	req, resp := client.ListContextsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListContexts
func (c *SageMaker) ListContextsRequest(input *ListContextsInput) (req *request.Request, output *ListContextsOutput) {
	op := &request.Operation{
		Name:       opListContexts,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListContextsInput{}
	}

	output = &ListContextsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListContexts API operation for Amazon SageMaker Service.
//
// Lists the contexts in your account and their properties.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListContexts for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListContexts
func (c *SageMaker) ListContexts(input *ListContextsInput) (*ListContextsOutput, error) {
	req, out := c.ListContextsRequest(input)
	return out, req.Send()
}

// ListContextsWithContext is the same as ListContexts with the addition of
// the ability to pass a context and additional request options.
//
// See ListContexts for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListContextsWithContext(ctx aws.Context, input *ListContextsInput, opts ...request.Option) (*ListContextsOutput, error) {
	req, out := c.ListContextsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListContextsPages iterates over the pages of a ListContexts operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListContexts method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListContexts operation.
//	pageNum := 0
//	err := client.ListContextsPages(params,
//	    func(page *sagemaker.ListContextsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListContextsPages(input *ListContextsInput, fn func(*ListContextsOutput, bool) bool) error {
	return c.ListContextsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListContextsPagesWithContext same as ListContextsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListContextsPagesWithContext(ctx aws.Context, input *ListContextsInput, fn func(*ListContextsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListContextsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListContextsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListContextsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListDataQualityJobDefinitions = "ListDataQualityJobDefinitions"

// ListDataQualityJobDefinitionsRequest generates a "aws/request.Request" representing the
// client's request for the ListDataQualityJobDefinitions operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListDataQualityJobDefinitions for more information on using the ListDataQualityJobDefinitions
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListDataQualityJobDefinitionsRequest method.
//	req, resp := client.ListDataQualityJobDefinitionsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListDataQualityJobDefinitions
func (c *SageMaker) ListDataQualityJobDefinitionsRequest(input *ListDataQualityJobDefinitionsInput) (req *request.Request, output *ListDataQualityJobDefinitionsOutput) {
	op := &request.Operation{
		Name:       opListDataQualityJobDefinitions,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListDataQualityJobDefinitionsInput{}
	}

	output = &ListDataQualityJobDefinitionsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListDataQualityJobDefinitions API operation for Amazon SageMaker Service.
//
// Lists the data quality job definitions in your account.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListDataQualityJobDefinitions for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListDataQualityJobDefinitions
func (c *SageMaker) ListDataQualityJobDefinitions(input *ListDataQualityJobDefinitionsInput) (*ListDataQualityJobDefinitionsOutput, error) {
	req, out := c.ListDataQualityJobDefinitionsRequest(input)
	return out, req.Send()
}

// ListDataQualityJobDefinitionsWithContext is the same as ListDataQualityJobDefinitions with the addition of
// the ability to pass a context and additional request options.
//
// See ListDataQualityJobDefinitions for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListDataQualityJobDefinitionsWithContext(ctx aws.Context, input *ListDataQualityJobDefinitionsInput, opts ...request.Option) (*ListDataQualityJobDefinitionsOutput, error) {
	req, out := c.ListDataQualityJobDefinitionsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListDataQualityJobDefinitionsPages iterates over the pages of a ListDataQualityJobDefinitions operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListDataQualityJobDefinitions method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListDataQualityJobDefinitions operation.
//	pageNum := 0
//	err := client.ListDataQualityJobDefinitionsPages(params,
//	    func(page *sagemaker.ListDataQualityJobDefinitionsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListDataQualityJobDefinitionsPages(input *ListDataQualityJobDefinitionsInput, fn func(*ListDataQualityJobDefinitionsOutput, bool) bool) error {
	return c.ListDataQualityJobDefinitionsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListDataQualityJobDefinitionsPagesWithContext same as ListDataQualityJobDefinitionsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListDataQualityJobDefinitionsPagesWithContext(ctx aws.Context, input *ListDataQualityJobDefinitionsInput, fn func(*ListDataQualityJobDefinitionsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListDataQualityJobDefinitionsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListDataQualityJobDefinitionsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListDataQualityJobDefinitionsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListDeviceFleets = "ListDeviceFleets"

// ListDeviceFleetsRequest generates a "aws/request.Request" representing the
// client's request for the ListDeviceFleets operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListDeviceFleets for more information on using the ListDeviceFleets
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListDeviceFleetsRequest method.
//	req, resp := client.ListDeviceFleetsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListDeviceFleets
func (c *SageMaker) ListDeviceFleetsRequest(input *ListDeviceFleetsInput) (req *request.Request, output *ListDeviceFleetsOutput) {
	op := &request.Operation{
		Name:       opListDeviceFleets,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListDeviceFleetsInput{}
	}

	output = &ListDeviceFleetsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListDeviceFleets API operation for Amazon SageMaker Service.
//
// Returns a list of devices in the fleet.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListDeviceFleets for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListDeviceFleets
func (c *SageMaker) ListDeviceFleets(input *ListDeviceFleetsInput) (*ListDeviceFleetsOutput, error) {
	req, out := c.ListDeviceFleetsRequest(input)
	return out, req.Send()
}

// ListDeviceFleetsWithContext is the same as ListDeviceFleets with the addition of
// the ability to pass a context and additional request options.
//
// See ListDeviceFleets for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListDeviceFleetsWithContext(ctx aws.Context, input *ListDeviceFleetsInput, opts ...request.Option) (*ListDeviceFleetsOutput, error) {
	req, out := c.ListDeviceFleetsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListDeviceFleetsPages iterates over the pages of a ListDeviceFleets operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListDeviceFleets method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListDeviceFleets operation.
//	pageNum := 0
//	err := client.ListDeviceFleetsPages(params,
//	    func(page *sagemaker.ListDeviceFleetsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListDeviceFleetsPages(input *ListDeviceFleetsInput, fn func(*ListDeviceFleetsOutput, bool) bool) error {
	return c.ListDeviceFleetsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListDeviceFleetsPagesWithContext same as ListDeviceFleetsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListDeviceFleetsPagesWithContext(ctx aws.Context, input *ListDeviceFleetsInput, fn func(*ListDeviceFleetsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListDeviceFleetsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListDeviceFleetsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListDeviceFleetsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListDevices = "ListDevices"

// ListDevicesRequest generates a "aws/request.Request" representing the
// client's request for the ListDevices operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListDevices for more information on using the ListDevices
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListDevicesRequest method.
//	req, resp := client.ListDevicesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListDevices
func (c *SageMaker) ListDevicesRequest(input *ListDevicesInput) (req *request.Request, output *ListDevicesOutput) {
	op := &request.Operation{
		Name:       opListDevices,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListDevicesInput{}
	}

	output = &ListDevicesOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListDevices API operation for Amazon SageMaker Service.
//
// A list of devices.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListDevices for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListDevices
func (c *SageMaker) ListDevices(input *ListDevicesInput) (*ListDevicesOutput, error) {
	req, out := c.ListDevicesRequest(input)
	return out, req.Send()
}

// ListDevicesWithContext is the same as ListDevices with the addition of
// the ability to pass a context and additional request options.
//
// See ListDevices for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListDevicesWithContext(ctx aws.Context, input *ListDevicesInput, opts ...request.Option) (*ListDevicesOutput, error) {
	req, out := c.ListDevicesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListDevicesPages iterates over the pages of a ListDevices operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListDevices method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListDevices operation.
//	pageNum := 0
//	err := client.ListDevicesPages(params,
//	    func(page *sagemaker.ListDevicesOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListDevicesPages(input *ListDevicesInput, fn func(*ListDevicesOutput, bool) bool) error {
	return c.ListDevicesPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListDevicesPagesWithContext same as ListDevicesPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListDevicesPagesWithContext(ctx aws.Context, input *ListDevicesInput, fn func(*ListDevicesOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListDevicesInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListDevicesRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListDevicesOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListDomains = "ListDomains"

// ListDomainsRequest generates a "aws/request.Request" representing the
// client's request for the ListDomains operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListDomains for more information on using the ListDomains
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListDomainsRequest method.
//	req, resp := client.ListDomainsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListDomains
func (c *SageMaker) ListDomainsRequest(input *ListDomainsInput) (req *request.Request, output *ListDomainsOutput) {
	op := &request.Operation{
		Name:       opListDomains,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListDomainsInput{}
	}

	output = &ListDomainsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListDomains API operation for Amazon SageMaker Service.
//
// Lists the domains.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListDomains for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListDomains
func (c *SageMaker) ListDomains(input *ListDomainsInput) (*ListDomainsOutput, error) {
	req, out := c.ListDomainsRequest(input)
	return out, req.Send()
}

// ListDomainsWithContext is the same as ListDomains with the addition of
// the ability to pass a context and additional request options.
//
// See ListDomains for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListDomainsWithContext(ctx aws.Context, input *ListDomainsInput, opts ...request.Option) (*ListDomainsOutput, error) {
	req, out := c.ListDomainsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListDomainsPages iterates over the pages of a ListDomains operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListDomains method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListDomains operation.
//	pageNum := 0
//	err := client.ListDomainsPages(params,
//	    func(page *sagemaker.ListDomainsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListDomainsPages(input *ListDomainsInput, fn func(*ListDomainsOutput, bool) bool) error {
	return c.ListDomainsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListDomainsPagesWithContext same as ListDomainsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListDomainsPagesWithContext(ctx aws.Context, input *ListDomainsInput, fn func(*ListDomainsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListDomainsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListDomainsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListDomainsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListEdgeDeploymentPlans = "ListEdgeDeploymentPlans"

// ListEdgeDeploymentPlansRequest generates a "aws/request.Request" representing the
// client's request for the ListEdgeDeploymentPlans operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListEdgeDeploymentPlans for more information on using the ListEdgeDeploymentPlans
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListEdgeDeploymentPlansRequest method.
//	req, resp := client.ListEdgeDeploymentPlansRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListEdgeDeploymentPlans
func (c *SageMaker) ListEdgeDeploymentPlansRequest(input *ListEdgeDeploymentPlansInput) (req *request.Request, output *ListEdgeDeploymentPlansOutput) {
	op := &request.Operation{
		Name:       opListEdgeDeploymentPlans,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListEdgeDeploymentPlansInput{}
	}

	output = &ListEdgeDeploymentPlansOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListEdgeDeploymentPlans API operation for Amazon SageMaker Service.
//
// Lists all edge deployment plans.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListEdgeDeploymentPlans for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListEdgeDeploymentPlans
func (c *SageMaker) ListEdgeDeploymentPlans(input *ListEdgeDeploymentPlansInput) (*ListEdgeDeploymentPlansOutput, error) {
	req, out := c.ListEdgeDeploymentPlansRequest(input)
	return out, req.Send()
}

// ListEdgeDeploymentPlansWithContext is the same as ListEdgeDeploymentPlans with the addition of
// the ability to pass a context and additional request options.
//
// See ListEdgeDeploymentPlans for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListEdgeDeploymentPlansWithContext(ctx aws.Context, input *ListEdgeDeploymentPlansInput, opts ...request.Option) (*ListEdgeDeploymentPlansOutput, error) {
	req, out := c.ListEdgeDeploymentPlansRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListEdgeDeploymentPlansPages iterates over the pages of a ListEdgeDeploymentPlans operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListEdgeDeploymentPlans method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListEdgeDeploymentPlans operation.
//	pageNum := 0
//	err := client.ListEdgeDeploymentPlansPages(params,
//	    func(page *sagemaker.ListEdgeDeploymentPlansOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListEdgeDeploymentPlansPages(input *ListEdgeDeploymentPlansInput, fn func(*ListEdgeDeploymentPlansOutput, bool) bool) error {
	return c.ListEdgeDeploymentPlansPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListEdgeDeploymentPlansPagesWithContext same as ListEdgeDeploymentPlansPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListEdgeDeploymentPlansPagesWithContext(ctx aws.Context, input *ListEdgeDeploymentPlansInput, fn func(*ListEdgeDeploymentPlansOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListEdgeDeploymentPlansInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListEdgeDeploymentPlansRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListEdgeDeploymentPlansOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListEdgePackagingJobs = "ListEdgePackagingJobs"

// ListEdgePackagingJobsRequest generates a "aws/request.Request" representing the
// client's request for the ListEdgePackagingJobs operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListEdgePackagingJobs for more information on using the ListEdgePackagingJobs
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListEdgePackagingJobsRequest method.
//	req, resp := client.ListEdgePackagingJobsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListEdgePackagingJobs
func (c *SageMaker) ListEdgePackagingJobsRequest(input *ListEdgePackagingJobsInput) (req *request.Request, output *ListEdgePackagingJobsOutput) {
	op := &request.Operation{
		Name:       opListEdgePackagingJobs,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListEdgePackagingJobsInput{}
	}

	output = &ListEdgePackagingJobsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListEdgePackagingJobs API operation for Amazon SageMaker Service.
//
// Returns a list of edge packaging jobs.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListEdgePackagingJobs for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListEdgePackagingJobs
func (c *SageMaker) ListEdgePackagingJobs(input *ListEdgePackagingJobsInput) (*ListEdgePackagingJobsOutput, error) {
	req, out := c.ListEdgePackagingJobsRequest(input)
	return out, req.Send()
}

// ListEdgePackagingJobsWithContext is the same as ListEdgePackagingJobs with the addition of
// the ability to pass a context and additional request options.
//
// See ListEdgePackagingJobs for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListEdgePackagingJobsWithContext(ctx aws.Context, input *ListEdgePackagingJobsInput, opts ...request.Option) (*ListEdgePackagingJobsOutput, error) {
	req, out := c.ListEdgePackagingJobsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListEdgePackagingJobsPages iterates over the pages of a ListEdgePackagingJobs operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListEdgePackagingJobs method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListEdgePackagingJobs operation.
//	pageNum := 0
//	err := client.ListEdgePackagingJobsPages(params,
//	    func(page *sagemaker.ListEdgePackagingJobsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListEdgePackagingJobsPages(input *ListEdgePackagingJobsInput, fn func(*ListEdgePackagingJobsOutput, bool) bool) error {
	return c.ListEdgePackagingJobsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListEdgePackagingJobsPagesWithContext same as ListEdgePackagingJobsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListEdgePackagingJobsPagesWithContext(ctx aws.Context, input *ListEdgePackagingJobsInput, fn func(*ListEdgePackagingJobsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListEdgePackagingJobsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListEdgePackagingJobsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListEdgePackagingJobsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListEndpointConfigs = "ListEndpointConfigs"

// ListEndpointConfigsRequest generates a "aws/request.Request" representing the
// client's request for the ListEndpointConfigs operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListEndpointConfigs for more information on using the ListEndpointConfigs
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListEndpointConfigsRequest method.
//	req, resp := client.ListEndpointConfigsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListEndpointConfigs
func (c *SageMaker) ListEndpointConfigsRequest(input *ListEndpointConfigsInput) (req *request.Request, output *ListEndpointConfigsOutput) {
	op := &request.Operation{
		Name:       opListEndpointConfigs,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListEndpointConfigsInput{}
	}

	output = &ListEndpointConfigsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListEndpointConfigs API operation for Amazon SageMaker Service.
//
// Lists endpoint configurations.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListEndpointConfigs for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListEndpointConfigs
func (c *SageMaker) ListEndpointConfigs(input *ListEndpointConfigsInput) (*ListEndpointConfigsOutput, error) {
	req, out := c.ListEndpointConfigsRequest(input)
	return out, req.Send()
}

// ListEndpointConfigsWithContext is the same as ListEndpointConfigs with the addition of
// the ability to pass a context and additional request options.
//
// See ListEndpointConfigs for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListEndpointConfigsWithContext(ctx aws.Context, input *ListEndpointConfigsInput, opts ...request.Option) (*ListEndpointConfigsOutput, error) {
	req, out := c.ListEndpointConfigsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListEndpointConfigsPages iterates over the pages of a ListEndpointConfigs operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListEndpointConfigs method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListEndpointConfigs operation.
//	pageNum := 0
//	err := client.ListEndpointConfigsPages(params,
//	    func(page *sagemaker.ListEndpointConfigsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListEndpointConfigsPages(input *ListEndpointConfigsInput, fn func(*ListEndpointConfigsOutput, bool) bool) error {
	return c.ListEndpointConfigsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListEndpointConfigsPagesWithContext same as ListEndpointConfigsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListEndpointConfigsPagesWithContext(ctx aws.Context, input *ListEndpointConfigsInput, fn func(*ListEndpointConfigsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListEndpointConfigsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListEndpointConfigsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListEndpointConfigsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListEndpoints = "ListEndpoints"

// ListEndpointsRequest generates a "aws/request.Request" representing the
// client's request for the ListEndpoints operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListEndpoints for more information on using the ListEndpoints
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListEndpointsRequest method.
//	req, resp := client.ListEndpointsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListEndpoints
func (c *SageMaker) ListEndpointsRequest(input *ListEndpointsInput) (req *request.Request, output *ListEndpointsOutput) {
	op := &request.Operation{
		Name:       opListEndpoints,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListEndpointsInput{}
	}

	output = &ListEndpointsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListEndpoints API operation for Amazon SageMaker Service.
//
// Lists endpoints.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListEndpoints for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListEndpoints
func (c *SageMaker) ListEndpoints(input *ListEndpointsInput) (*ListEndpointsOutput, error) {
	req, out := c.ListEndpointsRequest(input)
	return out, req.Send()
}

// ListEndpointsWithContext is the same as ListEndpoints with the addition of
// the ability to pass a context and additional request options.
//
// See ListEndpoints for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListEndpointsWithContext(ctx aws.Context, input *ListEndpointsInput, opts ...request.Option) (*ListEndpointsOutput, error) {
	req, out := c.ListEndpointsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListEndpointsPages iterates over the pages of a ListEndpoints operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListEndpoints method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListEndpoints operation.
//	pageNum := 0
//	err := client.ListEndpointsPages(params,
//	    func(page *sagemaker.ListEndpointsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListEndpointsPages(input *ListEndpointsInput, fn func(*ListEndpointsOutput, bool) bool) error {
	return c.ListEndpointsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListEndpointsPagesWithContext same as ListEndpointsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListEndpointsPagesWithContext(ctx aws.Context, input *ListEndpointsInput, fn func(*ListEndpointsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListEndpointsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListEndpointsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListEndpointsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListExperiments = "ListExperiments"

// ListExperimentsRequest generates a "aws/request.Request" representing the
// client's request for the ListExperiments operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListExperiments for more information on using the ListExperiments
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListExperimentsRequest method.
//	req, resp := client.ListExperimentsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListExperiments
func (c *SageMaker) ListExperimentsRequest(input *ListExperimentsInput) (req *request.Request, output *ListExperimentsOutput) {
	op := &request.Operation{
		Name:       opListExperiments,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListExperimentsInput{}
	}

	output = &ListExperimentsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListExperiments API operation for Amazon SageMaker Service.
//
// Lists all the experiments in your account. The list can be filtered to show
// only experiments that were created in a specific time range. The list can
// be sorted by experiment name or creation time.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListExperiments for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListExperiments
func (c *SageMaker) ListExperiments(input *ListExperimentsInput) (*ListExperimentsOutput, error) {
	req, out := c.ListExperimentsRequest(input)
	return out, req.Send()
}

// ListExperimentsWithContext is the same as ListExperiments with the addition of
// the ability to pass a context and additional request options.
//
// See ListExperiments for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListExperimentsWithContext(ctx aws.Context, input *ListExperimentsInput, opts ...request.Option) (*ListExperimentsOutput, error) {
	req, out := c.ListExperimentsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListExperimentsPages iterates over the pages of a ListExperiments operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListExperiments method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListExperiments operation.
//	pageNum := 0
//	err := client.ListExperimentsPages(params,
//	    func(page *sagemaker.ListExperimentsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListExperimentsPages(input *ListExperimentsInput, fn func(*ListExperimentsOutput, bool) bool) error {
	return c.ListExperimentsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListExperimentsPagesWithContext same as ListExperimentsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListExperimentsPagesWithContext(ctx aws.Context, input *ListExperimentsInput, fn func(*ListExperimentsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListExperimentsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListExperimentsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListExperimentsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListFeatureGroups = "ListFeatureGroups"

// ListFeatureGroupsRequest generates a "aws/request.Request" representing the
// client's request for the ListFeatureGroups operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListFeatureGroups for more information on using the ListFeatureGroups
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListFeatureGroupsRequest method.
//	req, resp := client.ListFeatureGroupsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListFeatureGroups
func (c *SageMaker) ListFeatureGroupsRequest(input *ListFeatureGroupsInput) (req *request.Request, output *ListFeatureGroupsOutput) {
	op := &request.Operation{
		Name:       opListFeatureGroups,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListFeatureGroupsInput{}
	}

	output = &ListFeatureGroupsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListFeatureGroups API operation for Amazon SageMaker Service.
//
// List FeatureGroups based on given filter and order.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListFeatureGroups for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListFeatureGroups
func (c *SageMaker) ListFeatureGroups(input *ListFeatureGroupsInput) (*ListFeatureGroupsOutput, error) {
	req, out := c.ListFeatureGroupsRequest(input)
	return out, req.Send()
}

// ListFeatureGroupsWithContext is the same as ListFeatureGroups with the addition of
// the ability to pass a context and additional request options.
//
// See ListFeatureGroups for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListFeatureGroupsWithContext(ctx aws.Context, input *ListFeatureGroupsInput, opts ...request.Option) (*ListFeatureGroupsOutput, error) {
	req, out := c.ListFeatureGroupsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListFeatureGroupsPages iterates over the pages of a ListFeatureGroups operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListFeatureGroups method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListFeatureGroups operation.
//	pageNum := 0
//	err := client.ListFeatureGroupsPages(params,
//	    func(page *sagemaker.ListFeatureGroupsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListFeatureGroupsPages(input *ListFeatureGroupsInput, fn func(*ListFeatureGroupsOutput, bool) bool) error {
	return c.ListFeatureGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListFeatureGroupsPagesWithContext same as ListFeatureGroupsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListFeatureGroupsPagesWithContext(ctx aws.Context, input *ListFeatureGroupsInput, fn func(*ListFeatureGroupsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListFeatureGroupsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListFeatureGroupsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListFeatureGroupsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListFlowDefinitions = "ListFlowDefinitions"

// ListFlowDefinitionsRequest generates a "aws/request.Request" representing the
// client's request for the ListFlowDefinitions operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListFlowDefinitions for more information on using the ListFlowDefinitions
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListFlowDefinitionsRequest method.
//	req, resp := client.ListFlowDefinitionsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListFlowDefinitions
func (c *SageMaker) ListFlowDefinitionsRequest(input *ListFlowDefinitionsInput) (req *request.Request, output *ListFlowDefinitionsOutput) {
	op := &request.Operation{
		Name:       opListFlowDefinitions,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListFlowDefinitionsInput{}
	}

	output = &ListFlowDefinitionsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListFlowDefinitions API operation for Amazon SageMaker Service.
//
// Returns information about the flow definitions in your account.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListFlowDefinitions for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListFlowDefinitions
func (c *SageMaker) ListFlowDefinitions(input *ListFlowDefinitionsInput) (*ListFlowDefinitionsOutput, error) {
	req, out := c.ListFlowDefinitionsRequest(input)
	return out, req.Send()
}

// ListFlowDefinitionsWithContext is the same as ListFlowDefinitions with the addition of
// the ability to pass a context and additional request options.
//
// See ListFlowDefinitions for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListFlowDefinitionsWithContext(ctx aws.Context, input *ListFlowDefinitionsInput, opts ...request.Option) (*ListFlowDefinitionsOutput, error) {
	req, out := c.ListFlowDefinitionsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListFlowDefinitionsPages iterates over the pages of a ListFlowDefinitions operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListFlowDefinitions method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListFlowDefinitions operation.
//	pageNum := 0
//	err := client.ListFlowDefinitionsPages(params,
//	    func(page *sagemaker.ListFlowDefinitionsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListFlowDefinitionsPages(input *ListFlowDefinitionsInput, fn func(*ListFlowDefinitionsOutput, bool) bool) error {
	return c.ListFlowDefinitionsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListFlowDefinitionsPagesWithContext same as ListFlowDefinitionsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListFlowDefinitionsPagesWithContext(ctx aws.Context, input *ListFlowDefinitionsInput, fn func(*ListFlowDefinitionsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListFlowDefinitionsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListFlowDefinitionsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListFlowDefinitionsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListHubContentVersions = "ListHubContentVersions"

// ListHubContentVersionsRequest generates a "aws/request.Request" representing the
// client's request for the ListHubContentVersions operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListHubContentVersions for more information on using the ListHubContentVersions
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListHubContentVersionsRequest method.
//	req, resp := client.ListHubContentVersionsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListHubContentVersions
func (c *SageMaker) ListHubContentVersionsRequest(input *ListHubContentVersionsInput) (req *request.Request, output *ListHubContentVersionsOutput) {
	op := &request.Operation{
		Name:       opListHubContentVersions,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &ListHubContentVersionsInput{}
	}

	output = &ListHubContentVersionsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListHubContentVersions API operation for Amazon SageMaker Service.
//
// List hub content versions.
//
// Hub APIs are only callable through SageMaker Studio.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListHubContentVersions for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListHubContentVersions
func (c *SageMaker) ListHubContentVersions(input *ListHubContentVersionsInput) (*ListHubContentVersionsOutput, error) {
	req, out := c.ListHubContentVersionsRequest(input)
	return out, req.Send()
}

// ListHubContentVersionsWithContext is the same as ListHubContentVersions with the addition of
// the ability to pass a context and additional request options.
//
// See ListHubContentVersions for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListHubContentVersionsWithContext(ctx aws.Context, input *ListHubContentVersionsInput, opts ...request.Option) (*ListHubContentVersionsOutput, error) {
	req, out := c.ListHubContentVersionsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opListHubContents = "ListHubContents"

// ListHubContentsRequest generates a "aws/request.Request" representing the
// client's request for the ListHubContents operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListHubContents for more information on using the ListHubContents
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListHubContentsRequest method.
//	req, resp := client.ListHubContentsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListHubContents
func (c *SageMaker) ListHubContentsRequest(input *ListHubContentsInput) (req *request.Request, output *ListHubContentsOutput) {
	op := &request.Operation{
		Name:       opListHubContents,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &ListHubContentsInput{}
	}

	output = &ListHubContentsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListHubContents API operation for Amazon SageMaker Service.
//
// List the contents of a hub.
//
// Hub APIs are only callable through SageMaker Studio.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListHubContents for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListHubContents
func (c *SageMaker) ListHubContents(input *ListHubContentsInput) (*ListHubContentsOutput, error) {
	req, out := c.ListHubContentsRequest(input)
	return out, req.Send()
}

// ListHubContentsWithContext is the same as ListHubContents with the addition of
// the ability to pass a context and additional request options.
//
// See ListHubContents for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListHubContentsWithContext(ctx aws.Context, input *ListHubContentsInput, opts ...request.Option) (*ListHubContentsOutput, error) {
	req, out := c.ListHubContentsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opListHubs = "ListHubs"

// ListHubsRequest generates a "aws/request.Request" representing the
// client's request for the ListHubs operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListHubs for more information on using the ListHubs
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListHubsRequest method.
//	req, resp := client.ListHubsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListHubs
func (c *SageMaker) ListHubsRequest(input *ListHubsInput) (req *request.Request, output *ListHubsOutput) {
	op := &request.Operation{
		Name:       opListHubs,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &ListHubsInput{}
	}

	output = &ListHubsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListHubs API operation for Amazon SageMaker Service.
//
// List all existing hubs.
//
// Hub APIs are only callable through SageMaker Studio.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListHubs for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListHubs
func (c *SageMaker) ListHubs(input *ListHubsInput) (*ListHubsOutput, error) {
	req, out := c.ListHubsRequest(input)
	return out, req.Send()
}

// ListHubsWithContext is the same as ListHubs with the addition of
// the ability to pass a context and additional request options.
//
// See ListHubs for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListHubsWithContext(ctx aws.Context, input *ListHubsInput, opts ...request.Option) (*ListHubsOutput, error) {
	req, out := c.ListHubsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opListHumanTaskUis = "ListHumanTaskUis"

// ListHumanTaskUisRequest generates a "aws/request.Request" representing the
// client's request for the ListHumanTaskUis operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListHumanTaskUis for more information on using the ListHumanTaskUis
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListHumanTaskUisRequest method.
//	req, resp := client.ListHumanTaskUisRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListHumanTaskUis
func (c *SageMaker) ListHumanTaskUisRequest(input *ListHumanTaskUisInput) (req *request.Request, output *ListHumanTaskUisOutput) {
	op := &request.Operation{
		Name:       opListHumanTaskUis,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListHumanTaskUisInput{}
	}

	output = &ListHumanTaskUisOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListHumanTaskUis API operation for Amazon SageMaker Service.
//
// Returns information about the human task user interfaces in your account.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListHumanTaskUis for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListHumanTaskUis
func (c *SageMaker) ListHumanTaskUis(input *ListHumanTaskUisInput) (*ListHumanTaskUisOutput, error) {
	req, out := c.ListHumanTaskUisRequest(input)
	return out, req.Send()
}

// ListHumanTaskUisWithContext is the same as ListHumanTaskUis with the addition of
// the ability to pass a context and additional request options.
//
// See ListHumanTaskUis for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListHumanTaskUisWithContext(ctx aws.Context, input *ListHumanTaskUisInput, opts ...request.Option) (*ListHumanTaskUisOutput, error) {
	req, out := c.ListHumanTaskUisRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListHumanTaskUisPages iterates over the pages of a ListHumanTaskUis operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListHumanTaskUis method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListHumanTaskUis operation.
//	pageNum := 0
//	err := client.ListHumanTaskUisPages(params,
//	    func(page *sagemaker.ListHumanTaskUisOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListHumanTaskUisPages(input *ListHumanTaskUisInput, fn func(*ListHumanTaskUisOutput, bool) bool) error {
	return c.ListHumanTaskUisPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListHumanTaskUisPagesWithContext same as ListHumanTaskUisPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListHumanTaskUisPagesWithContext(ctx aws.Context, input *ListHumanTaskUisInput, fn func(*ListHumanTaskUisOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListHumanTaskUisInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListHumanTaskUisRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListHumanTaskUisOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListHyperParameterTuningJobs = "ListHyperParameterTuningJobs"

// ListHyperParameterTuningJobsRequest generates a "aws/request.Request" representing the
// client's request for the ListHyperParameterTuningJobs operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListHyperParameterTuningJobs for more information on using the ListHyperParameterTuningJobs
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListHyperParameterTuningJobsRequest method.
//	req, resp := client.ListHyperParameterTuningJobsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListHyperParameterTuningJobs
func (c *SageMaker) ListHyperParameterTuningJobsRequest(input *ListHyperParameterTuningJobsInput) (req *request.Request, output *ListHyperParameterTuningJobsOutput) {
	op := &request.Operation{
		Name:       opListHyperParameterTuningJobs,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListHyperParameterTuningJobsInput{}
	}

	output = &ListHyperParameterTuningJobsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListHyperParameterTuningJobs API operation for Amazon SageMaker Service.
//
// Gets a list of HyperParameterTuningJobSummary (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobSummary.html)
// objects that describe the hyperparameter tuning jobs launched in your account.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListHyperParameterTuningJobs for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListHyperParameterTuningJobs
func (c *SageMaker) ListHyperParameterTuningJobs(input *ListHyperParameterTuningJobsInput) (*ListHyperParameterTuningJobsOutput, error) {
	req, out := c.ListHyperParameterTuningJobsRequest(input)
	return out, req.Send()
}

// ListHyperParameterTuningJobsWithContext is the same as ListHyperParameterTuningJobs with the addition of
// the ability to pass a context and additional request options.
//
// See ListHyperParameterTuningJobs for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListHyperParameterTuningJobsWithContext(ctx aws.Context, input *ListHyperParameterTuningJobsInput, opts ...request.Option) (*ListHyperParameterTuningJobsOutput, error) {
	req, out := c.ListHyperParameterTuningJobsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListHyperParameterTuningJobsPages iterates over the pages of a ListHyperParameterTuningJobs operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListHyperParameterTuningJobs method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListHyperParameterTuningJobs operation.
//	pageNum := 0
//	err := client.ListHyperParameterTuningJobsPages(params,
//	    func(page *sagemaker.ListHyperParameterTuningJobsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListHyperParameterTuningJobsPages(input *ListHyperParameterTuningJobsInput, fn func(*ListHyperParameterTuningJobsOutput, bool) bool) error {
	return c.ListHyperParameterTuningJobsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListHyperParameterTuningJobsPagesWithContext same as ListHyperParameterTuningJobsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListHyperParameterTuningJobsPagesWithContext(ctx aws.Context, input *ListHyperParameterTuningJobsInput, fn func(*ListHyperParameterTuningJobsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListHyperParameterTuningJobsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListHyperParameterTuningJobsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListHyperParameterTuningJobsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListImageVersions = "ListImageVersions"

// ListImageVersionsRequest generates a "aws/request.Request" representing the
// client's request for the ListImageVersions operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListImageVersions for more information on using the ListImageVersions
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListImageVersionsRequest method.
//	req, resp := client.ListImageVersionsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListImageVersions
func (c *SageMaker) ListImageVersionsRequest(input *ListImageVersionsInput) (req *request.Request, output *ListImageVersionsOutput) {
	op := &request.Operation{
		Name:       opListImageVersions,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListImageVersionsInput{}
	}

	output = &ListImageVersionsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListImageVersions API operation for Amazon SageMaker Service.
//
// Lists the versions of a specified image and their properties. The list can
// be filtered by creation time or modified time.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListImageVersions for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListImageVersions
func (c *SageMaker) ListImageVersions(input *ListImageVersionsInput) (*ListImageVersionsOutput, error) {
	req, out := c.ListImageVersionsRequest(input)
	return out, req.Send()
}

// ListImageVersionsWithContext is the same as ListImageVersions with the addition of
// the ability to pass a context and additional request options.
//
// See ListImageVersions for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListImageVersionsWithContext(ctx aws.Context, input *ListImageVersionsInput, opts ...request.Option) (*ListImageVersionsOutput, error) {
	req, out := c.ListImageVersionsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListImageVersionsPages iterates over the pages of a ListImageVersions operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListImageVersions method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListImageVersions operation.
//	pageNum := 0
//	err := client.ListImageVersionsPages(params,
//	    func(page *sagemaker.ListImageVersionsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListImageVersionsPages(input *ListImageVersionsInput, fn func(*ListImageVersionsOutput, bool) bool) error {
	return c.ListImageVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListImageVersionsPagesWithContext same as ListImageVersionsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListImageVersionsPagesWithContext(ctx aws.Context, input *ListImageVersionsInput, fn func(*ListImageVersionsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListImageVersionsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListImageVersionsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListImageVersionsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListImages = "ListImages"

// ListImagesRequest generates a "aws/request.Request" representing the
// client's request for the ListImages operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListImages for more information on using the ListImages
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListImagesRequest method.
//	req, resp := client.ListImagesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListImages
func (c *SageMaker) ListImagesRequest(input *ListImagesInput) (req *request.Request, output *ListImagesOutput) {
	op := &request.Operation{
		Name:       opListImages,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListImagesInput{}
	}

	output = &ListImagesOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListImages API operation for Amazon SageMaker Service.
//
// Lists the images in your account and their properties. The list can be filtered
// by creation time or modified time, and whether the image name contains a
// specified string.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListImages for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListImages
func (c *SageMaker) ListImages(input *ListImagesInput) (*ListImagesOutput, error) {
	req, out := c.ListImagesRequest(input)
	return out, req.Send()
}

// ListImagesWithContext is the same as ListImages with the addition of
// the ability to pass a context and additional request options.
//
// See ListImages for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListImagesWithContext(ctx aws.Context, input *ListImagesInput, opts ...request.Option) (*ListImagesOutput, error) {
	req, out := c.ListImagesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListImagesPages iterates over the pages of a ListImages operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListImages method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListImages operation.
//	pageNum := 0
//	err := client.ListImagesPages(params,
//	    func(page *sagemaker.ListImagesOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListImagesPages(input *ListImagesInput, fn func(*ListImagesOutput, bool) bool) error {
	return c.ListImagesPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListImagesPagesWithContext same as ListImagesPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListImagesPagesWithContext(ctx aws.Context, input *ListImagesInput, fn func(*ListImagesOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListImagesInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListImagesRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListImagesOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListInferenceComponents = "ListInferenceComponents"

// ListInferenceComponentsRequest generates a "aws/request.Request" representing the
// client's request for the ListInferenceComponents operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListInferenceComponents for more information on using the ListInferenceComponents
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListInferenceComponentsRequest method.
//	req, resp := client.ListInferenceComponentsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListInferenceComponents
func (c *SageMaker) ListInferenceComponentsRequest(input *ListInferenceComponentsInput) (req *request.Request, output *ListInferenceComponentsOutput) {
	op := &request.Operation{
		Name:       opListInferenceComponents,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListInferenceComponentsInput{}
	}

	output = &ListInferenceComponentsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListInferenceComponents API operation for Amazon SageMaker Service.
//
// Lists the inference components in your account and their properties.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListInferenceComponents for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListInferenceComponents
func (c *SageMaker) ListInferenceComponents(input *ListInferenceComponentsInput) (*ListInferenceComponentsOutput, error) {
	req, out := c.ListInferenceComponentsRequest(input)
	return out, req.Send()
}

// ListInferenceComponentsWithContext is the same as ListInferenceComponents with the addition of
// the ability to pass a context and additional request options.
//
// See ListInferenceComponents for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListInferenceComponentsWithContext(ctx aws.Context, input *ListInferenceComponentsInput, opts ...request.Option) (*ListInferenceComponentsOutput, error) {
	req, out := c.ListInferenceComponentsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListInferenceComponentsPages iterates over the pages of a ListInferenceComponents operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListInferenceComponents method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListInferenceComponents operation.
//	pageNum := 0
//	err := client.ListInferenceComponentsPages(params,
//	    func(page *sagemaker.ListInferenceComponentsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListInferenceComponentsPages(input *ListInferenceComponentsInput, fn func(*ListInferenceComponentsOutput, bool) bool) error {
	return c.ListInferenceComponentsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListInferenceComponentsPagesWithContext same as ListInferenceComponentsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListInferenceComponentsPagesWithContext(ctx aws.Context, input *ListInferenceComponentsInput, fn func(*ListInferenceComponentsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListInferenceComponentsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListInferenceComponentsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListInferenceComponentsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListInferenceExperiments = "ListInferenceExperiments"

// ListInferenceExperimentsRequest generates a "aws/request.Request" representing the
// client's request for the ListInferenceExperiments operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListInferenceExperiments for more information on using the ListInferenceExperiments
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListInferenceExperimentsRequest method.
//	req, resp := client.ListInferenceExperimentsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListInferenceExperiments
func (c *SageMaker) ListInferenceExperimentsRequest(input *ListInferenceExperimentsInput) (req *request.Request, output *ListInferenceExperimentsOutput) {
	op := &request.Operation{
		Name:       opListInferenceExperiments,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListInferenceExperimentsInput{}
	}

	output = &ListInferenceExperimentsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListInferenceExperiments API operation for Amazon SageMaker Service.
//
// Returns the list of all inference experiments.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListInferenceExperiments for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListInferenceExperiments
func (c *SageMaker) ListInferenceExperiments(input *ListInferenceExperimentsInput) (*ListInferenceExperimentsOutput, error) {
	req, out := c.ListInferenceExperimentsRequest(input)
	return out, req.Send()
}

// ListInferenceExperimentsWithContext is the same as ListInferenceExperiments with the addition of
// the ability to pass a context and additional request options.
//
// See ListInferenceExperiments for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListInferenceExperimentsWithContext(ctx aws.Context, input *ListInferenceExperimentsInput, opts ...request.Option) (*ListInferenceExperimentsOutput, error) {
	req, out := c.ListInferenceExperimentsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListInferenceExperimentsPages iterates over the pages of a ListInferenceExperiments operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListInferenceExperiments method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListInferenceExperiments operation.
//	pageNum := 0
//	err := client.ListInferenceExperimentsPages(params,
//	    func(page *sagemaker.ListInferenceExperimentsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListInferenceExperimentsPages(input *ListInferenceExperimentsInput, fn func(*ListInferenceExperimentsOutput, bool) bool) error {
	return c.ListInferenceExperimentsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListInferenceExperimentsPagesWithContext same as ListInferenceExperimentsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListInferenceExperimentsPagesWithContext(ctx aws.Context, input *ListInferenceExperimentsInput, fn func(*ListInferenceExperimentsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListInferenceExperimentsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListInferenceExperimentsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListInferenceExperimentsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListInferenceRecommendationsJobSteps = "ListInferenceRecommendationsJobSteps"

// ListInferenceRecommendationsJobStepsRequest generates a "aws/request.Request" representing the
// client's request for the ListInferenceRecommendationsJobSteps operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListInferenceRecommendationsJobSteps for more information on using the ListInferenceRecommendationsJobSteps
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListInferenceRecommendationsJobStepsRequest method.
//	req, resp := client.ListInferenceRecommendationsJobStepsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListInferenceRecommendationsJobSteps
func (c *SageMaker) ListInferenceRecommendationsJobStepsRequest(input *ListInferenceRecommendationsJobStepsInput) (req *request.Request, output *ListInferenceRecommendationsJobStepsOutput) {
	op := &request.Operation{
		Name:       opListInferenceRecommendationsJobSteps,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListInferenceRecommendationsJobStepsInput{}
	}

	output = &ListInferenceRecommendationsJobStepsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListInferenceRecommendationsJobSteps API operation for Amazon SageMaker Service.
//
// Returns a list of the subtasks for an Inference Recommender job.
//
// The supported subtasks are benchmarks, which evaluate the performance of
// your model on different instance types.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListInferenceRecommendationsJobSteps for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListInferenceRecommendationsJobSteps
func (c *SageMaker) ListInferenceRecommendationsJobSteps(input *ListInferenceRecommendationsJobStepsInput) (*ListInferenceRecommendationsJobStepsOutput, error) {
	req, out := c.ListInferenceRecommendationsJobStepsRequest(input)
	return out, req.Send()
}

// ListInferenceRecommendationsJobStepsWithContext is the same as ListInferenceRecommendationsJobSteps with the addition of
// the ability to pass a context and additional request options.
//
// See ListInferenceRecommendationsJobSteps for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListInferenceRecommendationsJobStepsWithContext(ctx aws.Context, input *ListInferenceRecommendationsJobStepsInput, opts ...request.Option) (*ListInferenceRecommendationsJobStepsOutput, error) {
	req, out := c.ListInferenceRecommendationsJobStepsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListInferenceRecommendationsJobStepsPages iterates over the pages of a ListInferenceRecommendationsJobSteps operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListInferenceRecommendationsJobSteps method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListInferenceRecommendationsJobSteps operation.
//	pageNum := 0
//	err := client.ListInferenceRecommendationsJobStepsPages(params,
//	    func(page *sagemaker.ListInferenceRecommendationsJobStepsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListInferenceRecommendationsJobStepsPages(input *ListInferenceRecommendationsJobStepsInput, fn func(*ListInferenceRecommendationsJobStepsOutput, bool) bool) error {
	return c.ListInferenceRecommendationsJobStepsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListInferenceRecommendationsJobStepsPagesWithContext same as ListInferenceRecommendationsJobStepsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListInferenceRecommendationsJobStepsPagesWithContext(ctx aws.Context, input *ListInferenceRecommendationsJobStepsInput, fn func(*ListInferenceRecommendationsJobStepsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListInferenceRecommendationsJobStepsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListInferenceRecommendationsJobStepsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListInferenceRecommendationsJobStepsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListInferenceRecommendationsJobs = "ListInferenceRecommendationsJobs"

// ListInferenceRecommendationsJobsRequest generates a "aws/request.Request" representing the
// client's request for the ListInferenceRecommendationsJobs operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListInferenceRecommendationsJobs for more information on using the ListInferenceRecommendationsJobs
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListInferenceRecommendationsJobsRequest method.
//	req, resp := client.ListInferenceRecommendationsJobsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListInferenceRecommendationsJobs
func (c *SageMaker) ListInferenceRecommendationsJobsRequest(input *ListInferenceRecommendationsJobsInput) (req *request.Request, output *ListInferenceRecommendationsJobsOutput) {
	op := &request.Operation{
		Name:       opListInferenceRecommendationsJobs,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListInferenceRecommendationsJobsInput{}
	}

	output = &ListInferenceRecommendationsJobsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListInferenceRecommendationsJobs API operation for Amazon SageMaker Service.
//
// Lists recommendation jobs that satisfy various filters.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListInferenceRecommendationsJobs for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListInferenceRecommendationsJobs
func (c *SageMaker) ListInferenceRecommendationsJobs(input *ListInferenceRecommendationsJobsInput) (*ListInferenceRecommendationsJobsOutput, error) {
	req, out := c.ListInferenceRecommendationsJobsRequest(input)
	return out, req.Send()
}

// ListInferenceRecommendationsJobsWithContext is the same as ListInferenceRecommendationsJobs with the addition of
// the ability to pass a context and additional request options.
//
// See ListInferenceRecommendationsJobs for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListInferenceRecommendationsJobsWithContext(ctx aws.Context, input *ListInferenceRecommendationsJobsInput, opts ...request.Option) (*ListInferenceRecommendationsJobsOutput, error) {
	req, out := c.ListInferenceRecommendationsJobsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListInferenceRecommendationsJobsPages iterates over the pages of a ListInferenceRecommendationsJobs operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListInferenceRecommendationsJobs method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListInferenceRecommendationsJobs operation.
//	pageNum := 0
//	err := client.ListInferenceRecommendationsJobsPages(params,
//	    func(page *sagemaker.ListInferenceRecommendationsJobsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListInferenceRecommendationsJobsPages(input *ListInferenceRecommendationsJobsInput, fn func(*ListInferenceRecommendationsJobsOutput, bool) bool) error {
	return c.ListInferenceRecommendationsJobsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListInferenceRecommendationsJobsPagesWithContext same as ListInferenceRecommendationsJobsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListInferenceRecommendationsJobsPagesWithContext(ctx aws.Context, input *ListInferenceRecommendationsJobsInput, fn func(*ListInferenceRecommendationsJobsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListInferenceRecommendationsJobsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListInferenceRecommendationsJobsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListInferenceRecommendationsJobsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListLabelingJobs = "ListLabelingJobs"

// ListLabelingJobsRequest generates a "aws/request.Request" representing the
// client's request for the ListLabelingJobs operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListLabelingJobs for more information on using the ListLabelingJobs
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListLabelingJobsRequest method.
//	req, resp := client.ListLabelingJobsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListLabelingJobs
func (c *SageMaker) ListLabelingJobsRequest(input *ListLabelingJobsInput) (req *request.Request, output *ListLabelingJobsOutput) {
	op := &request.Operation{
		Name:       opListLabelingJobs,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListLabelingJobsInput{}
	}

	output = &ListLabelingJobsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListLabelingJobs API operation for Amazon SageMaker Service.
//
// Gets a list of labeling jobs.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListLabelingJobs for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListLabelingJobs
func (c *SageMaker) ListLabelingJobs(input *ListLabelingJobsInput) (*ListLabelingJobsOutput, error) {
	req, out := c.ListLabelingJobsRequest(input)
	return out, req.Send()
}

// ListLabelingJobsWithContext is the same as ListLabelingJobs with the addition of
// the ability to pass a context and additional request options.
//
// See ListLabelingJobs for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListLabelingJobsWithContext(ctx aws.Context, input *ListLabelingJobsInput, opts ...request.Option) (*ListLabelingJobsOutput, error) {
	req, out := c.ListLabelingJobsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListLabelingJobsPages iterates over the pages of a ListLabelingJobs operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListLabelingJobs method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListLabelingJobs operation.
//	pageNum := 0
//	err := client.ListLabelingJobsPages(params,
//	    func(page *sagemaker.ListLabelingJobsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListLabelingJobsPages(input *ListLabelingJobsInput, fn func(*ListLabelingJobsOutput, bool) bool) error {
	return c.ListLabelingJobsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListLabelingJobsPagesWithContext same as ListLabelingJobsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListLabelingJobsPagesWithContext(ctx aws.Context, input *ListLabelingJobsInput, fn func(*ListLabelingJobsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListLabelingJobsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListLabelingJobsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListLabelingJobsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListLabelingJobsForWorkteam = "ListLabelingJobsForWorkteam"

// ListLabelingJobsForWorkteamRequest generates a "aws/request.Request" representing the
// client's request for the ListLabelingJobsForWorkteam operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListLabelingJobsForWorkteam for more information on using the ListLabelingJobsForWorkteam
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListLabelingJobsForWorkteamRequest method.
//	req, resp := client.ListLabelingJobsForWorkteamRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListLabelingJobsForWorkteam
func (c *SageMaker) ListLabelingJobsForWorkteamRequest(input *ListLabelingJobsForWorkteamInput) (req *request.Request, output *ListLabelingJobsForWorkteamOutput) {
	op := &request.Operation{
		Name:       opListLabelingJobsForWorkteam,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListLabelingJobsForWorkteamInput{}
	}

	output = &ListLabelingJobsForWorkteamOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListLabelingJobsForWorkteam API operation for Amazon SageMaker Service.
//
// Gets a list of labeling jobs assigned to a specified work team.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListLabelingJobsForWorkteam for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListLabelingJobsForWorkteam
func (c *SageMaker) ListLabelingJobsForWorkteam(input *ListLabelingJobsForWorkteamInput) (*ListLabelingJobsForWorkteamOutput, error) {
	req, out := c.ListLabelingJobsForWorkteamRequest(input)
	return out, req.Send()
}

// ListLabelingJobsForWorkteamWithContext is the same as ListLabelingJobsForWorkteam with the addition of
// the ability to pass a context and additional request options.
//
// See ListLabelingJobsForWorkteam for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListLabelingJobsForWorkteamWithContext(ctx aws.Context, input *ListLabelingJobsForWorkteamInput, opts ...request.Option) (*ListLabelingJobsForWorkteamOutput, error) {
	req, out := c.ListLabelingJobsForWorkteamRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListLabelingJobsForWorkteamPages iterates over the pages of a ListLabelingJobsForWorkteam operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListLabelingJobsForWorkteam method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListLabelingJobsForWorkteam operation.
//	pageNum := 0
//	err := client.ListLabelingJobsForWorkteamPages(params,
//	    func(page *sagemaker.ListLabelingJobsForWorkteamOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListLabelingJobsForWorkteamPages(input *ListLabelingJobsForWorkteamInput, fn func(*ListLabelingJobsForWorkteamOutput, bool) bool) error {
	return c.ListLabelingJobsForWorkteamPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListLabelingJobsForWorkteamPagesWithContext same as ListLabelingJobsForWorkteamPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListLabelingJobsForWorkteamPagesWithContext(ctx aws.Context, input *ListLabelingJobsForWorkteamInput, fn func(*ListLabelingJobsForWorkteamOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListLabelingJobsForWorkteamInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListLabelingJobsForWorkteamRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListLabelingJobsForWorkteamOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListLineageGroups = "ListLineageGroups"

// ListLineageGroupsRequest generates a "aws/request.Request" representing the
// client's request for the ListLineageGroups operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListLineageGroups for more information on using the ListLineageGroups
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListLineageGroupsRequest method.
//	req, resp := client.ListLineageGroupsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListLineageGroups
func (c *SageMaker) ListLineageGroupsRequest(input *ListLineageGroupsInput) (req *request.Request, output *ListLineageGroupsOutput) {
	op := &request.Operation{
		Name:       opListLineageGroups,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListLineageGroupsInput{}
	}

	output = &ListLineageGroupsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListLineageGroups API operation for Amazon SageMaker Service.
//
// A list of lineage groups shared with your Amazon Web Services account. For
// more information, see Cross-Account Lineage Tracking (https://docs.aws.amazon.com/sagemaker/latest/dg/xaccount-lineage-tracking.html)
// in the Amazon SageMaker Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListLineageGroups for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListLineageGroups
func (c *SageMaker) ListLineageGroups(input *ListLineageGroupsInput) (*ListLineageGroupsOutput, error) {
	req, out := c.ListLineageGroupsRequest(input)
	return out, req.Send()
}

// ListLineageGroupsWithContext is the same as ListLineageGroups with the addition of
// the ability to pass a context and additional request options.
//
// See ListLineageGroups for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListLineageGroupsWithContext(ctx aws.Context, input *ListLineageGroupsInput, opts ...request.Option) (*ListLineageGroupsOutput, error) {
	req, out := c.ListLineageGroupsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListLineageGroupsPages iterates over the pages of a ListLineageGroups operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListLineageGroups method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListLineageGroups operation.
//	pageNum := 0
//	err := client.ListLineageGroupsPages(params,
//	    func(page *sagemaker.ListLineageGroupsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListLineageGroupsPages(input *ListLineageGroupsInput, fn func(*ListLineageGroupsOutput, bool) bool) error {
	return c.ListLineageGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListLineageGroupsPagesWithContext same as ListLineageGroupsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListLineageGroupsPagesWithContext(ctx aws.Context, input *ListLineageGroupsInput, fn func(*ListLineageGroupsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListLineageGroupsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListLineageGroupsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListLineageGroupsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListModelBiasJobDefinitions = "ListModelBiasJobDefinitions"

// ListModelBiasJobDefinitionsRequest generates a "aws/request.Request" representing the
// client's request for the ListModelBiasJobDefinitions operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListModelBiasJobDefinitions for more information on using the ListModelBiasJobDefinitions
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListModelBiasJobDefinitionsRequest method.
//	req, resp := client.ListModelBiasJobDefinitionsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelBiasJobDefinitions
func (c *SageMaker) ListModelBiasJobDefinitionsRequest(input *ListModelBiasJobDefinitionsInput) (req *request.Request, output *ListModelBiasJobDefinitionsOutput) {
	op := &request.Operation{
		Name:       opListModelBiasJobDefinitions,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListModelBiasJobDefinitionsInput{}
	}

	output = &ListModelBiasJobDefinitionsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListModelBiasJobDefinitions API operation for Amazon SageMaker Service.
//
// Lists model bias jobs definitions that satisfy various filters.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListModelBiasJobDefinitions for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelBiasJobDefinitions
func (c *SageMaker) ListModelBiasJobDefinitions(input *ListModelBiasJobDefinitionsInput) (*ListModelBiasJobDefinitionsOutput, error) {
	req, out := c.ListModelBiasJobDefinitionsRequest(input)
	return out, req.Send()
}

// ListModelBiasJobDefinitionsWithContext is the same as ListModelBiasJobDefinitions with the addition of
// the ability to pass a context and additional request options.
//
// See ListModelBiasJobDefinitions for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListModelBiasJobDefinitionsWithContext(ctx aws.Context, input *ListModelBiasJobDefinitionsInput, opts ...request.Option) (*ListModelBiasJobDefinitionsOutput, error) {
	req, out := c.ListModelBiasJobDefinitionsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListModelBiasJobDefinitionsPages iterates over the pages of a ListModelBiasJobDefinitions operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListModelBiasJobDefinitions method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListModelBiasJobDefinitions operation.
//	pageNum := 0
//	err := client.ListModelBiasJobDefinitionsPages(params,
//	    func(page *sagemaker.ListModelBiasJobDefinitionsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListModelBiasJobDefinitionsPages(input *ListModelBiasJobDefinitionsInput, fn func(*ListModelBiasJobDefinitionsOutput, bool) bool) error {
	return c.ListModelBiasJobDefinitionsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListModelBiasJobDefinitionsPagesWithContext same as ListModelBiasJobDefinitionsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListModelBiasJobDefinitionsPagesWithContext(ctx aws.Context, input *ListModelBiasJobDefinitionsInput, fn func(*ListModelBiasJobDefinitionsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListModelBiasJobDefinitionsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListModelBiasJobDefinitionsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListModelBiasJobDefinitionsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListModelCardExportJobs = "ListModelCardExportJobs"

// ListModelCardExportJobsRequest generates a "aws/request.Request" representing the
// client's request for the ListModelCardExportJobs operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListModelCardExportJobs for more information on using the ListModelCardExportJobs
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListModelCardExportJobsRequest method.
//	req, resp := client.ListModelCardExportJobsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelCardExportJobs
func (c *SageMaker) ListModelCardExportJobsRequest(input *ListModelCardExportJobsInput) (req *request.Request, output *ListModelCardExportJobsOutput) {
	op := &request.Operation{
		Name:       opListModelCardExportJobs,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListModelCardExportJobsInput{}
	}

	output = &ListModelCardExportJobsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListModelCardExportJobs API operation for Amazon SageMaker Service.
//
// List the export jobs for the Amazon SageMaker Model Card.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListModelCardExportJobs for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelCardExportJobs
func (c *SageMaker) ListModelCardExportJobs(input *ListModelCardExportJobsInput) (*ListModelCardExportJobsOutput, error) {
	req, out := c.ListModelCardExportJobsRequest(input)
	return out, req.Send()
}

// ListModelCardExportJobsWithContext is the same as ListModelCardExportJobs with the addition of
// the ability to pass a context and additional request options.
//
// See ListModelCardExportJobs for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListModelCardExportJobsWithContext(ctx aws.Context, input *ListModelCardExportJobsInput, opts ...request.Option) (*ListModelCardExportJobsOutput, error) {
	req, out := c.ListModelCardExportJobsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListModelCardExportJobsPages iterates over the pages of a ListModelCardExportJobs operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListModelCardExportJobs method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListModelCardExportJobs operation.
//	pageNum := 0
//	err := client.ListModelCardExportJobsPages(params,
//	    func(page *sagemaker.ListModelCardExportJobsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListModelCardExportJobsPages(input *ListModelCardExportJobsInput, fn func(*ListModelCardExportJobsOutput, bool) bool) error {
	return c.ListModelCardExportJobsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListModelCardExportJobsPagesWithContext same as ListModelCardExportJobsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListModelCardExportJobsPagesWithContext(ctx aws.Context, input *ListModelCardExportJobsInput, fn func(*ListModelCardExportJobsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListModelCardExportJobsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListModelCardExportJobsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListModelCardExportJobsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListModelCardVersions = "ListModelCardVersions"

// ListModelCardVersionsRequest generates a "aws/request.Request" representing the
// client's request for the ListModelCardVersions operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListModelCardVersions for more information on using the ListModelCardVersions
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListModelCardVersionsRequest method.
//	req, resp := client.ListModelCardVersionsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelCardVersions
func (c *SageMaker) ListModelCardVersionsRequest(input *ListModelCardVersionsInput) (req *request.Request, output *ListModelCardVersionsOutput) {
	op := &request.Operation{
		Name:       opListModelCardVersions,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListModelCardVersionsInput{}
	}

	output = &ListModelCardVersionsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListModelCardVersions API operation for Amazon SageMaker Service.
//
// List existing versions of an Amazon SageMaker Model Card.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListModelCardVersions for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelCardVersions
func (c *SageMaker) ListModelCardVersions(input *ListModelCardVersionsInput) (*ListModelCardVersionsOutput, error) {
	req, out := c.ListModelCardVersionsRequest(input)
	return out, req.Send()
}

// ListModelCardVersionsWithContext is the same as ListModelCardVersions with the addition of
// the ability to pass a context and additional request options.
//
// See ListModelCardVersions for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListModelCardVersionsWithContext(ctx aws.Context, input *ListModelCardVersionsInput, opts ...request.Option) (*ListModelCardVersionsOutput, error) {
	req, out := c.ListModelCardVersionsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListModelCardVersionsPages iterates over the pages of a ListModelCardVersions operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListModelCardVersions method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListModelCardVersions operation.
//	pageNum := 0
//	err := client.ListModelCardVersionsPages(params,
//	    func(page *sagemaker.ListModelCardVersionsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListModelCardVersionsPages(input *ListModelCardVersionsInput, fn func(*ListModelCardVersionsOutput, bool) bool) error {
	return c.ListModelCardVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListModelCardVersionsPagesWithContext same as ListModelCardVersionsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListModelCardVersionsPagesWithContext(ctx aws.Context, input *ListModelCardVersionsInput, fn func(*ListModelCardVersionsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListModelCardVersionsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListModelCardVersionsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListModelCardVersionsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListModelCards = "ListModelCards"

// ListModelCardsRequest generates a "aws/request.Request" representing the
// client's request for the ListModelCards operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListModelCards for more information on using the ListModelCards
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListModelCardsRequest method.
//	req, resp := client.ListModelCardsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelCards
func (c *SageMaker) ListModelCardsRequest(input *ListModelCardsInput) (req *request.Request, output *ListModelCardsOutput) {
	op := &request.Operation{
		Name:       opListModelCards,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListModelCardsInput{}
	}

	output = &ListModelCardsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListModelCards API operation for Amazon SageMaker Service.
//
// List existing model cards.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListModelCards for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelCards
func (c *SageMaker) ListModelCards(input *ListModelCardsInput) (*ListModelCardsOutput, error) {
	req, out := c.ListModelCardsRequest(input)
	return out, req.Send()
}

// ListModelCardsWithContext is the same as ListModelCards with the addition of
// the ability to pass a context and additional request options.
//
// See ListModelCards for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListModelCardsWithContext(ctx aws.Context, input *ListModelCardsInput, opts ...request.Option) (*ListModelCardsOutput, error) {
	req, out := c.ListModelCardsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListModelCardsPages iterates over the pages of a ListModelCards operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListModelCards method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListModelCards operation.
//	pageNum := 0
//	err := client.ListModelCardsPages(params,
//	    func(page *sagemaker.ListModelCardsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListModelCardsPages(input *ListModelCardsInput, fn func(*ListModelCardsOutput, bool) bool) error {
	return c.ListModelCardsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListModelCardsPagesWithContext same as ListModelCardsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListModelCardsPagesWithContext(ctx aws.Context, input *ListModelCardsInput, fn func(*ListModelCardsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListModelCardsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListModelCardsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListModelCardsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListModelExplainabilityJobDefinitions = "ListModelExplainabilityJobDefinitions"

// ListModelExplainabilityJobDefinitionsRequest generates a "aws/request.Request" representing the
// client's request for the ListModelExplainabilityJobDefinitions operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListModelExplainabilityJobDefinitions for more information on using the ListModelExplainabilityJobDefinitions
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListModelExplainabilityJobDefinitionsRequest method.
//	req, resp := client.ListModelExplainabilityJobDefinitionsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelExplainabilityJobDefinitions
func (c *SageMaker) ListModelExplainabilityJobDefinitionsRequest(input *ListModelExplainabilityJobDefinitionsInput) (req *request.Request, output *ListModelExplainabilityJobDefinitionsOutput) {
	op := &request.Operation{
		Name:       opListModelExplainabilityJobDefinitions,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListModelExplainabilityJobDefinitionsInput{}
	}

	output = &ListModelExplainabilityJobDefinitionsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListModelExplainabilityJobDefinitions API operation for Amazon SageMaker Service.
//
// Lists model explainability job definitions that satisfy various filters.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListModelExplainabilityJobDefinitions for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelExplainabilityJobDefinitions
func (c *SageMaker) ListModelExplainabilityJobDefinitions(input *ListModelExplainabilityJobDefinitionsInput) (*ListModelExplainabilityJobDefinitionsOutput, error) {
	req, out := c.ListModelExplainabilityJobDefinitionsRequest(input)
	return out, req.Send()
}

// ListModelExplainabilityJobDefinitionsWithContext is the same as ListModelExplainabilityJobDefinitions with the addition of
// the ability to pass a context and additional request options.
//
// See ListModelExplainabilityJobDefinitions for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListModelExplainabilityJobDefinitionsWithContext(ctx aws.Context, input *ListModelExplainabilityJobDefinitionsInput, opts ...request.Option) (*ListModelExplainabilityJobDefinitionsOutput, error) {
	req, out := c.ListModelExplainabilityJobDefinitionsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListModelExplainabilityJobDefinitionsPages iterates over the pages of a ListModelExplainabilityJobDefinitions operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListModelExplainabilityJobDefinitions method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListModelExplainabilityJobDefinitions operation.
//	pageNum := 0
//	err := client.ListModelExplainabilityJobDefinitionsPages(params,
//	    func(page *sagemaker.ListModelExplainabilityJobDefinitionsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListModelExplainabilityJobDefinitionsPages(input *ListModelExplainabilityJobDefinitionsInput, fn func(*ListModelExplainabilityJobDefinitionsOutput, bool) bool) error {
	return c.ListModelExplainabilityJobDefinitionsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListModelExplainabilityJobDefinitionsPagesWithContext same as ListModelExplainabilityJobDefinitionsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListModelExplainabilityJobDefinitionsPagesWithContext(ctx aws.Context, input *ListModelExplainabilityJobDefinitionsInput, fn func(*ListModelExplainabilityJobDefinitionsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListModelExplainabilityJobDefinitionsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListModelExplainabilityJobDefinitionsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListModelExplainabilityJobDefinitionsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListModelMetadata = "ListModelMetadata"

// ListModelMetadataRequest generates a "aws/request.Request" representing the
// client's request for the ListModelMetadata operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListModelMetadata for more information on using the ListModelMetadata
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListModelMetadataRequest method.
//	req, resp := client.ListModelMetadataRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelMetadata
func (c *SageMaker) ListModelMetadataRequest(input *ListModelMetadataInput) (req *request.Request, output *ListModelMetadataOutput) {
	op := &request.Operation{
		Name:       opListModelMetadata,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListModelMetadataInput{}
	}

	output = &ListModelMetadataOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListModelMetadata API operation for Amazon SageMaker Service.
//
// Lists the domain, framework, task, and model name of standard machine learning
// models found in common model zoos.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListModelMetadata for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelMetadata
func (c *SageMaker) ListModelMetadata(input *ListModelMetadataInput) (*ListModelMetadataOutput, error) {
	req, out := c.ListModelMetadataRequest(input)
	return out, req.Send()
}

// ListModelMetadataWithContext is the same as ListModelMetadata with the addition of
// the ability to pass a context and additional request options.
//
// See ListModelMetadata for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListModelMetadataWithContext(ctx aws.Context, input *ListModelMetadataInput, opts ...request.Option) (*ListModelMetadataOutput, error) {
	req, out := c.ListModelMetadataRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListModelMetadataPages iterates over the pages of a ListModelMetadata operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListModelMetadata method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListModelMetadata operation.
//	pageNum := 0
//	err := client.ListModelMetadataPages(params,
//	    func(page *sagemaker.ListModelMetadataOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListModelMetadataPages(input *ListModelMetadataInput, fn func(*ListModelMetadataOutput, bool) bool) error {
	return c.ListModelMetadataPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListModelMetadataPagesWithContext same as ListModelMetadataPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListModelMetadataPagesWithContext(ctx aws.Context, input *ListModelMetadataInput, fn func(*ListModelMetadataOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListModelMetadataInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListModelMetadataRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListModelMetadataOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListModelPackageGroups = "ListModelPackageGroups"

// ListModelPackageGroupsRequest generates a "aws/request.Request" representing the
// client's request for the ListModelPackageGroups operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListModelPackageGroups for more information on using the ListModelPackageGroups
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListModelPackageGroupsRequest method.
//	req, resp := client.ListModelPackageGroupsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelPackageGroups
func (c *SageMaker) ListModelPackageGroupsRequest(input *ListModelPackageGroupsInput) (req *request.Request, output *ListModelPackageGroupsOutput) {
	op := &request.Operation{
		Name:       opListModelPackageGroups,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListModelPackageGroupsInput{}
	}

	output = &ListModelPackageGroupsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListModelPackageGroups API operation for Amazon SageMaker Service.
//
// Gets a list of the model groups in your Amazon Web Services account.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListModelPackageGroups for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelPackageGroups
func (c *SageMaker) ListModelPackageGroups(input *ListModelPackageGroupsInput) (*ListModelPackageGroupsOutput, error) {
	req, out := c.ListModelPackageGroupsRequest(input)
	return out, req.Send()
}

// ListModelPackageGroupsWithContext is the same as ListModelPackageGroups with the addition of
// the ability to pass a context and additional request options.
//
// See ListModelPackageGroups for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListModelPackageGroupsWithContext(ctx aws.Context, input *ListModelPackageGroupsInput, opts ...request.Option) (*ListModelPackageGroupsOutput, error) {
	req, out := c.ListModelPackageGroupsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListModelPackageGroupsPages iterates over the pages of a ListModelPackageGroups operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListModelPackageGroups method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListModelPackageGroups operation.
//	pageNum := 0
//	err := client.ListModelPackageGroupsPages(params,
//	    func(page *sagemaker.ListModelPackageGroupsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListModelPackageGroupsPages(input *ListModelPackageGroupsInput, fn func(*ListModelPackageGroupsOutput, bool) bool) error {
	return c.ListModelPackageGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListModelPackageGroupsPagesWithContext same as ListModelPackageGroupsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListModelPackageGroupsPagesWithContext(ctx aws.Context, input *ListModelPackageGroupsInput, fn func(*ListModelPackageGroupsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListModelPackageGroupsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListModelPackageGroupsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListModelPackageGroupsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListModelPackages = "ListModelPackages"

// ListModelPackagesRequest generates a "aws/request.Request" representing the
// client's request for the ListModelPackages operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListModelPackages for more information on using the ListModelPackages
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListModelPackagesRequest method.
//	req, resp := client.ListModelPackagesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelPackages
func (c *SageMaker) ListModelPackagesRequest(input *ListModelPackagesInput) (req *request.Request, output *ListModelPackagesOutput) {
	op := &request.Operation{
		Name:       opListModelPackages,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListModelPackagesInput{}
	}

	output = &ListModelPackagesOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListModelPackages API operation for Amazon SageMaker Service.
//
// Lists the model packages that have been created.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListModelPackages for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelPackages
func (c *SageMaker) ListModelPackages(input *ListModelPackagesInput) (*ListModelPackagesOutput, error) {
	req, out := c.ListModelPackagesRequest(input)
	return out, req.Send()
}

// ListModelPackagesWithContext is the same as ListModelPackages with the addition of
// the ability to pass a context and additional request options.
//
// See ListModelPackages for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListModelPackagesWithContext(ctx aws.Context, input *ListModelPackagesInput, opts ...request.Option) (*ListModelPackagesOutput, error) {
	req, out := c.ListModelPackagesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListModelPackagesPages iterates over the pages of a ListModelPackages operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListModelPackages method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListModelPackages operation.
//	pageNum := 0
//	err := client.ListModelPackagesPages(params,
//	    func(page *sagemaker.ListModelPackagesOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListModelPackagesPages(input *ListModelPackagesInput, fn func(*ListModelPackagesOutput, bool) bool) error {
	return c.ListModelPackagesPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListModelPackagesPagesWithContext same as ListModelPackagesPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListModelPackagesPagesWithContext(ctx aws.Context, input *ListModelPackagesInput, fn func(*ListModelPackagesOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListModelPackagesInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListModelPackagesRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListModelPackagesOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListModelQualityJobDefinitions = "ListModelQualityJobDefinitions"

// ListModelQualityJobDefinitionsRequest generates a "aws/request.Request" representing the
// client's request for the ListModelQualityJobDefinitions operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListModelQualityJobDefinitions for more information on using the ListModelQualityJobDefinitions
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListModelQualityJobDefinitionsRequest method.
//	req, resp := client.ListModelQualityJobDefinitionsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelQualityJobDefinitions
func (c *SageMaker) ListModelQualityJobDefinitionsRequest(input *ListModelQualityJobDefinitionsInput) (req *request.Request, output *ListModelQualityJobDefinitionsOutput) {
	op := &request.Operation{
		Name:       opListModelQualityJobDefinitions,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListModelQualityJobDefinitionsInput{}
	}

	output = &ListModelQualityJobDefinitionsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListModelQualityJobDefinitions API operation for Amazon SageMaker Service.
//
// Gets a list of model quality monitoring job definitions in your account.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListModelQualityJobDefinitions for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModelQualityJobDefinitions
func (c *SageMaker) ListModelQualityJobDefinitions(input *ListModelQualityJobDefinitionsInput) (*ListModelQualityJobDefinitionsOutput, error) {
	req, out := c.ListModelQualityJobDefinitionsRequest(input)
	return out, req.Send()
}

// ListModelQualityJobDefinitionsWithContext is the same as ListModelQualityJobDefinitions with the addition of
// the ability to pass a context and additional request options.
//
// See ListModelQualityJobDefinitions for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListModelQualityJobDefinitionsWithContext(ctx aws.Context, input *ListModelQualityJobDefinitionsInput, opts ...request.Option) (*ListModelQualityJobDefinitionsOutput, error) {
	req, out := c.ListModelQualityJobDefinitionsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListModelQualityJobDefinitionsPages iterates over the pages of a ListModelQualityJobDefinitions operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListModelQualityJobDefinitions method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListModelQualityJobDefinitions operation.
//	pageNum := 0
//	err := client.ListModelQualityJobDefinitionsPages(params,
//	    func(page *sagemaker.ListModelQualityJobDefinitionsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListModelQualityJobDefinitionsPages(input *ListModelQualityJobDefinitionsInput, fn func(*ListModelQualityJobDefinitionsOutput, bool) bool) error {
	return c.ListModelQualityJobDefinitionsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListModelQualityJobDefinitionsPagesWithContext same as ListModelQualityJobDefinitionsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListModelQualityJobDefinitionsPagesWithContext(ctx aws.Context, input *ListModelQualityJobDefinitionsInput, fn func(*ListModelQualityJobDefinitionsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListModelQualityJobDefinitionsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListModelQualityJobDefinitionsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListModelQualityJobDefinitionsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListModels = "ListModels"

// ListModelsRequest generates a "aws/request.Request" representing the
// client's request for the ListModels operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListModels for more information on using the ListModels
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListModelsRequest method.
//	req, resp := client.ListModelsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModels
func (c *SageMaker) ListModelsRequest(input *ListModelsInput) (req *request.Request, output *ListModelsOutput) {
	op := &request.Operation{
		Name:       opListModels,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListModelsInput{}
	}

	output = &ListModelsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListModels API operation for Amazon SageMaker Service.
//
// Lists models created with the CreateModel API.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListModels for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListModels
func (c *SageMaker) ListModels(input *ListModelsInput) (*ListModelsOutput, error) {
	req, out := c.ListModelsRequest(input)
	return out, req.Send()
}

// ListModelsWithContext is the same as ListModels with the addition of
// the ability to pass a context and additional request options.
//
// See ListModels for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListModelsWithContext(ctx aws.Context, input *ListModelsInput, opts ...request.Option) (*ListModelsOutput, error) {
	req, out := c.ListModelsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListModelsPages iterates over the pages of a ListModels operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListModels method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListModels operation.
//	pageNum := 0
//	err := client.ListModelsPages(params,
//	    func(page *sagemaker.ListModelsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListModelsPages(input *ListModelsInput, fn func(*ListModelsOutput, bool) bool) error {
	return c.ListModelsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListModelsPagesWithContext same as ListModelsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListModelsPagesWithContext(ctx aws.Context, input *ListModelsInput, fn func(*ListModelsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListModelsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListModelsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListModelsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListMonitoringAlertHistory = "ListMonitoringAlertHistory"

// ListMonitoringAlertHistoryRequest generates a "aws/request.Request" representing the
// client's request for the ListMonitoringAlertHistory operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListMonitoringAlertHistory for more information on using the ListMonitoringAlertHistory
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListMonitoringAlertHistoryRequest method.
//	req, resp := client.ListMonitoringAlertHistoryRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListMonitoringAlertHistory
func (c *SageMaker) ListMonitoringAlertHistoryRequest(input *ListMonitoringAlertHistoryInput) (req *request.Request, output *ListMonitoringAlertHistoryOutput) {
	op := &request.Operation{
		Name:       opListMonitoringAlertHistory,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListMonitoringAlertHistoryInput{}
	}

	output = &ListMonitoringAlertHistoryOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListMonitoringAlertHistory API operation for Amazon SageMaker Service.
//
// Gets a list of past alerts in a model monitoring schedule.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListMonitoringAlertHistory for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListMonitoringAlertHistory
func (c *SageMaker) ListMonitoringAlertHistory(input *ListMonitoringAlertHistoryInput) (*ListMonitoringAlertHistoryOutput, error) {
	req, out := c.ListMonitoringAlertHistoryRequest(input)
	return out, req.Send()
}

// ListMonitoringAlertHistoryWithContext is the same as ListMonitoringAlertHistory with the addition of
// the ability to pass a context and additional request options.
//
// See ListMonitoringAlertHistory for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListMonitoringAlertHistoryWithContext(ctx aws.Context, input *ListMonitoringAlertHistoryInput, opts ...request.Option) (*ListMonitoringAlertHistoryOutput, error) {
	req, out := c.ListMonitoringAlertHistoryRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListMonitoringAlertHistoryPages iterates over the pages of a ListMonitoringAlertHistory operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListMonitoringAlertHistory method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListMonitoringAlertHistory operation.
//	pageNum := 0
//	err := client.ListMonitoringAlertHistoryPages(params,
//	    func(page *sagemaker.ListMonitoringAlertHistoryOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListMonitoringAlertHistoryPages(input *ListMonitoringAlertHistoryInput, fn func(*ListMonitoringAlertHistoryOutput, bool) bool) error {
	return c.ListMonitoringAlertHistoryPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListMonitoringAlertHistoryPagesWithContext same as ListMonitoringAlertHistoryPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListMonitoringAlertHistoryPagesWithContext(ctx aws.Context, input *ListMonitoringAlertHistoryInput, fn func(*ListMonitoringAlertHistoryOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListMonitoringAlertHistoryInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListMonitoringAlertHistoryRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListMonitoringAlertHistoryOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListMonitoringAlerts = "ListMonitoringAlerts"

// ListMonitoringAlertsRequest generates a "aws/request.Request" representing the
// client's request for the ListMonitoringAlerts operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListMonitoringAlerts for more information on using the ListMonitoringAlerts
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListMonitoringAlertsRequest method.
//	req, resp := client.ListMonitoringAlertsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListMonitoringAlerts
func (c *SageMaker) ListMonitoringAlertsRequest(input *ListMonitoringAlertsInput) (req *request.Request, output *ListMonitoringAlertsOutput) {
	op := &request.Operation{
		Name:       opListMonitoringAlerts,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListMonitoringAlertsInput{}
	}

	output = &ListMonitoringAlertsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListMonitoringAlerts API operation for Amazon SageMaker Service.
//
// Gets the alerts for a single monitoring schedule.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListMonitoringAlerts for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListMonitoringAlerts
func (c *SageMaker) ListMonitoringAlerts(input *ListMonitoringAlertsInput) (*ListMonitoringAlertsOutput, error) {
	req, out := c.ListMonitoringAlertsRequest(input)
	return out, req.Send()
}

// ListMonitoringAlertsWithContext is the same as ListMonitoringAlerts with the addition of
// the ability to pass a context and additional request options.
//
// See ListMonitoringAlerts for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListMonitoringAlertsWithContext(ctx aws.Context, input *ListMonitoringAlertsInput, opts ...request.Option) (*ListMonitoringAlertsOutput, error) {
	req, out := c.ListMonitoringAlertsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListMonitoringAlertsPages iterates over the pages of a ListMonitoringAlerts operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListMonitoringAlerts method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListMonitoringAlerts operation.
//	pageNum := 0
//	err := client.ListMonitoringAlertsPages(params,
//	    func(page *sagemaker.ListMonitoringAlertsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListMonitoringAlertsPages(input *ListMonitoringAlertsInput, fn func(*ListMonitoringAlertsOutput, bool) bool) error {
	return c.ListMonitoringAlertsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListMonitoringAlertsPagesWithContext same as ListMonitoringAlertsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListMonitoringAlertsPagesWithContext(ctx aws.Context, input *ListMonitoringAlertsInput, fn func(*ListMonitoringAlertsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListMonitoringAlertsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListMonitoringAlertsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListMonitoringAlertsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListMonitoringExecutions = "ListMonitoringExecutions"

// ListMonitoringExecutionsRequest generates a "aws/request.Request" representing the
// client's request for the ListMonitoringExecutions operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListMonitoringExecutions for more information on using the ListMonitoringExecutions
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListMonitoringExecutionsRequest method.
//	req, resp := client.ListMonitoringExecutionsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListMonitoringExecutions
func (c *SageMaker) ListMonitoringExecutionsRequest(input *ListMonitoringExecutionsInput) (req *request.Request, output *ListMonitoringExecutionsOutput) {
	op := &request.Operation{
		Name:       opListMonitoringExecutions,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListMonitoringExecutionsInput{}
	}

	output = &ListMonitoringExecutionsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListMonitoringExecutions API operation for Amazon SageMaker Service.
//
// Returns list of all monitoring job executions.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListMonitoringExecutions for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListMonitoringExecutions
func (c *SageMaker) ListMonitoringExecutions(input *ListMonitoringExecutionsInput) (*ListMonitoringExecutionsOutput, error) {
	req, out := c.ListMonitoringExecutionsRequest(input)
	return out, req.Send()
}

// ListMonitoringExecutionsWithContext is the same as ListMonitoringExecutions with the addition of
// the ability to pass a context and additional request options.
//
// See ListMonitoringExecutions for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListMonitoringExecutionsWithContext(ctx aws.Context, input *ListMonitoringExecutionsInput, opts ...request.Option) (*ListMonitoringExecutionsOutput, error) {
	req, out := c.ListMonitoringExecutionsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListMonitoringExecutionsPages iterates over the pages of a ListMonitoringExecutions operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListMonitoringExecutions method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListMonitoringExecutions operation.
//	pageNum := 0
//	err := client.ListMonitoringExecutionsPages(params,
//	    func(page *sagemaker.ListMonitoringExecutionsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListMonitoringExecutionsPages(input *ListMonitoringExecutionsInput, fn func(*ListMonitoringExecutionsOutput, bool) bool) error {
	return c.ListMonitoringExecutionsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListMonitoringExecutionsPagesWithContext same as ListMonitoringExecutionsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListMonitoringExecutionsPagesWithContext(ctx aws.Context, input *ListMonitoringExecutionsInput, fn func(*ListMonitoringExecutionsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListMonitoringExecutionsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListMonitoringExecutionsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListMonitoringExecutionsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListMonitoringSchedules = "ListMonitoringSchedules"

// ListMonitoringSchedulesRequest generates a "aws/request.Request" representing the
// client's request for the ListMonitoringSchedules operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListMonitoringSchedules for more information on using the ListMonitoringSchedules
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListMonitoringSchedulesRequest method.
//	req, resp := client.ListMonitoringSchedulesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListMonitoringSchedules
func (c *SageMaker) ListMonitoringSchedulesRequest(input *ListMonitoringSchedulesInput) (req *request.Request, output *ListMonitoringSchedulesOutput) {
	op := &request.Operation{
		Name:       opListMonitoringSchedules,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListMonitoringSchedulesInput{}
	}

	output = &ListMonitoringSchedulesOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListMonitoringSchedules API operation for Amazon SageMaker Service.
//
// Returns list of all monitoring schedules.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListMonitoringSchedules for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListMonitoringSchedules
func (c *SageMaker) ListMonitoringSchedules(input *ListMonitoringSchedulesInput) (*ListMonitoringSchedulesOutput, error) {
	req, out := c.ListMonitoringSchedulesRequest(input)
	return out, req.Send()
}

// ListMonitoringSchedulesWithContext is the same as ListMonitoringSchedules with the addition of
// the ability to pass a context and additional request options.
//
// See ListMonitoringSchedules for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListMonitoringSchedulesWithContext(ctx aws.Context, input *ListMonitoringSchedulesInput, opts ...request.Option) (*ListMonitoringSchedulesOutput, error) {
	req, out := c.ListMonitoringSchedulesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListMonitoringSchedulesPages iterates over the pages of a ListMonitoringSchedules operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListMonitoringSchedules method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListMonitoringSchedules operation.
//	pageNum := 0
//	err := client.ListMonitoringSchedulesPages(params,
//	    func(page *sagemaker.ListMonitoringSchedulesOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListMonitoringSchedulesPages(input *ListMonitoringSchedulesInput, fn func(*ListMonitoringSchedulesOutput, bool) bool) error {
	return c.ListMonitoringSchedulesPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListMonitoringSchedulesPagesWithContext same as ListMonitoringSchedulesPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListMonitoringSchedulesPagesWithContext(ctx aws.Context, input *ListMonitoringSchedulesInput, fn func(*ListMonitoringSchedulesOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListMonitoringSchedulesInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListMonitoringSchedulesRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListMonitoringSchedulesOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListNotebookInstanceLifecycleConfigs = "ListNotebookInstanceLifecycleConfigs"

// ListNotebookInstanceLifecycleConfigsRequest generates a "aws/request.Request" representing the
// client's request for the ListNotebookInstanceLifecycleConfigs operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListNotebookInstanceLifecycleConfigs for more information on using the ListNotebookInstanceLifecycleConfigs
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListNotebookInstanceLifecycleConfigsRequest method.
//	req, resp := client.ListNotebookInstanceLifecycleConfigsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListNotebookInstanceLifecycleConfigs
func (c *SageMaker) ListNotebookInstanceLifecycleConfigsRequest(input *ListNotebookInstanceLifecycleConfigsInput) (req *request.Request, output *ListNotebookInstanceLifecycleConfigsOutput) {
	op := &request.Operation{
		Name:       opListNotebookInstanceLifecycleConfigs,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListNotebookInstanceLifecycleConfigsInput{}
	}

	output = &ListNotebookInstanceLifecycleConfigsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListNotebookInstanceLifecycleConfigs API operation for Amazon SageMaker Service.
//
// Lists notebook instance lifestyle configurations created with the CreateNotebookInstanceLifecycleConfig
// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateNotebookInstanceLifecycleConfig.html)
// API.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListNotebookInstanceLifecycleConfigs for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListNotebookInstanceLifecycleConfigs
func (c *SageMaker) ListNotebookInstanceLifecycleConfigs(input *ListNotebookInstanceLifecycleConfigsInput) (*ListNotebookInstanceLifecycleConfigsOutput, error) {
	req, out := c.ListNotebookInstanceLifecycleConfigsRequest(input)
	return out, req.Send()
}

// ListNotebookInstanceLifecycleConfigsWithContext is the same as ListNotebookInstanceLifecycleConfigs with the addition of
// the ability to pass a context and additional request options.
//
// See ListNotebookInstanceLifecycleConfigs for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListNotebookInstanceLifecycleConfigsWithContext(ctx aws.Context, input *ListNotebookInstanceLifecycleConfigsInput, opts ...request.Option) (*ListNotebookInstanceLifecycleConfigsOutput, error) {
	req, out := c.ListNotebookInstanceLifecycleConfigsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListNotebookInstanceLifecycleConfigsPages iterates over the pages of a ListNotebookInstanceLifecycleConfigs operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListNotebookInstanceLifecycleConfigs method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListNotebookInstanceLifecycleConfigs operation.
//	pageNum := 0
//	err := client.ListNotebookInstanceLifecycleConfigsPages(params,
//	    func(page *sagemaker.ListNotebookInstanceLifecycleConfigsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListNotebookInstanceLifecycleConfigsPages(input *ListNotebookInstanceLifecycleConfigsInput, fn func(*ListNotebookInstanceLifecycleConfigsOutput, bool) bool) error {
	return c.ListNotebookInstanceLifecycleConfigsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListNotebookInstanceLifecycleConfigsPagesWithContext same as ListNotebookInstanceLifecycleConfigsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListNotebookInstanceLifecycleConfigsPagesWithContext(ctx aws.Context, input *ListNotebookInstanceLifecycleConfigsInput, fn func(*ListNotebookInstanceLifecycleConfigsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListNotebookInstanceLifecycleConfigsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListNotebookInstanceLifecycleConfigsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListNotebookInstanceLifecycleConfigsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListNotebookInstances = "ListNotebookInstances"

// ListNotebookInstancesRequest generates a "aws/request.Request" representing the
// client's request for the ListNotebookInstances operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListNotebookInstances for more information on using the ListNotebookInstances
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListNotebookInstancesRequest method.
//	req, resp := client.ListNotebookInstancesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListNotebookInstances
func (c *SageMaker) ListNotebookInstancesRequest(input *ListNotebookInstancesInput) (req *request.Request, output *ListNotebookInstancesOutput) {
	op := &request.Operation{
		Name:       opListNotebookInstances,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListNotebookInstancesInput{}
	}

	output = &ListNotebookInstancesOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListNotebookInstances API operation for Amazon SageMaker Service.
//
// Returns a list of the SageMaker notebook instances in the requester's account
// in an Amazon Web Services Region.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListNotebookInstances for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListNotebookInstances
func (c *SageMaker) ListNotebookInstances(input *ListNotebookInstancesInput) (*ListNotebookInstancesOutput, error) {
	req, out := c.ListNotebookInstancesRequest(input)
	return out, req.Send()
}

// ListNotebookInstancesWithContext is the same as ListNotebookInstances with the addition of
// the ability to pass a context and additional request options.
//
// See ListNotebookInstances for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListNotebookInstancesWithContext(ctx aws.Context, input *ListNotebookInstancesInput, opts ...request.Option) (*ListNotebookInstancesOutput, error) {
	req, out := c.ListNotebookInstancesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListNotebookInstancesPages iterates over the pages of a ListNotebookInstances operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListNotebookInstances method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListNotebookInstances operation.
//	pageNum := 0
//	err := client.ListNotebookInstancesPages(params,
//	    func(page *sagemaker.ListNotebookInstancesOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListNotebookInstancesPages(input *ListNotebookInstancesInput, fn func(*ListNotebookInstancesOutput, bool) bool) error {
	return c.ListNotebookInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListNotebookInstancesPagesWithContext same as ListNotebookInstancesPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListNotebookInstancesPagesWithContext(ctx aws.Context, input *ListNotebookInstancesInput, fn func(*ListNotebookInstancesOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListNotebookInstancesInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListNotebookInstancesRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListNotebookInstancesOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListPipelineExecutionSteps = "ListPipelineExecutionSteps"

// ListPipelineExecutionStepsRequest generates a "aws/request.Request" representing the
// client's request for the ListPipelineExecutionSteps operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListPipelineExecutionSteps for more information on using the ListPipelineExecutionSteps
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListPipelineExecutionStepsRequest method.
//	req, resp := client.ListPipelineExecutionStepsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListPipelineExecutionSteps
func (c *SageMaker) ListPipelineExecutionStepsRequest(input *ListPipelineExecutionStepsInput) (req *request.Request, output *ListPipelineExecutionStepsOutput) {
	op := &request.Operation{
		Name:       opListPipelineExecutionSteps,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListPipelineExecutionStepsInput{}
	}

	output = &ListPipelineExecutionStepsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListPipelineExecutionSteps API operation for Amazon SageMaker Service.
//
// Gets a list of PipeLineExecutionStep objects.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListPipelineExecutionSteps for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListPipelineExecutionSteps
func (c *SageMaker) ListPipelineExecutionSteps(input *ListPipelineExecutionStepsInput) (*ListPipelineExecutionStepsOutput, error) {
	req, out := c.ListPipelineExecutionStepsRequest(input)
	return out, req.Send()
}

// ListPipelineExecutionStepsWithContext is the same as ListPipelineExecutionSteps with the addition of
// the ability to pass a context and additional request options.
//
// See ListPipelineExecutionSteps for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListPipelineExecutionStepsWithContext(ctx aws.Context, input *ListPipelineExecutionStepsInput, opts ...request.Option) (*ListPipelineExecutionStepsOutput, error) {
	req, out := c.ListPipelineExecutionStepsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListPipelineExecutionStepsPages iterates over the pages of a ListPipelineExecutionSteps operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListPipelineExecutionSteps method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListPipelineExecutionSteps operation.
//	pageNum := 0
//	err := client.ListPipelineExecutionStepsPages(params,
//	    func(page *sagemaker.ListPipelineExecutionStepsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListPipelineExecutionStepsPages(input *ListPipelineExecutionStepsInput, fn func(*ListPipelineExecutionStepsOutput, bool) bool) error {
	return c.ListPipelineExecutionStepsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListPipelineExecutionStepsPagesWithContext same as ListPipelineExecutionStepsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListPipelineExecutionStepsPagesWithContext(ctx aws.Context, input *ListPipelineExecutionStepsInput, fn func(*ListPipelineExecutionStepsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListPipelineExecutionStepsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListPipelineExecutionStepsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListPipelineExecutionStepsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListPipelineExecutions = "ListPipelineExecutions"

// ListPipelineExecutionsRequest generates a "aws/request.Request" representing the
// client's request for the ListPipelineExecutions operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListPipelineExecutions for more information on using the ListPipelineExecutions
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListPipelineExecutionsRequest method.
//	req, resp := client.ListPipelineExecutionsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListPipelineExecutions
func (c *SageMaker) ListPipelineExecutionsRequest(input *ListPipelineExecutionsInput) (req *request.Request, output *ListPipelineExecutionsOutput) {
	op := &request.Operation{
		Name:       opListPipelineExecutions,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListPipelineExecutionsInput{}
	}

	output = &ListPipelineExecutionsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListPipelineExecutions API operation for Amazon SageMaker Service.
//
// Gets a list of the pipeline executions.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListPipelineExecutions for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListPipelineExecutions
func (c *SageMaker) ListPipelineExecutions(input *ListPipelineExecutionsInput) (*ListPipelineExecutionsOutput, error) {
	req, out := c.ListPipelineExecutionsRequest(input)
	return out, req.Send()
}

// ListPipelineExecutionsWithContext is the same as ListPipelineExecutions with the addition of
// the ability to pass a context and additional request options.
//
// See ListPipelineExecutions for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListPipelineExecutionsWithContext(ctx aws.Context, input *ListPipelineExecutionsInput, opts ...request.Option) (*ListPipelineExecutionsOutput, error) {
	req, out := c.ListPipelineExecutionsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListPipelineExecutionsPages iterates over the pages of a ListPipelineExecutions operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListPipelineExecutions method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListPipelineExecutions operation.
//	pageNum := 0
//	err := client.ListPipelineExecutionsPages(params,
//	    func(page *sagemaker.ListPipelineExecutionsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListPipelineExecutionsPages(input *ListPipelineExecutionsInput, fn func(*ListPipelineExecutionsOutput, bool) bool) error {
	return c.ListPipelineExecutionsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListPipelineExecutionsPagesWithContext same as ListPipelineExecutionsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListPipelineExecutionsPagesWithContext(ctx aws.Context, input *ListPipelineExecutionsInput, fn func(*ListPipelineExecutionsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListPipelineExecutionsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListPipelineExecutionsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListPipelineExecutionsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListPipelineParametersForExecution = "ListPipelineParametersForExecution"

// ListPipelineParametersForExecutionRequest generates a "aws/request.Request" representing the
// client's request for the ListPipelineParametersForExecution operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListPipelineParametersForExecution for more information on using the ListPipelineParametersForExecution
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListPipelineParametersForExecutionRequest method.
//	req, resp := client.ListPipelineParametersForExecutionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListPipelineParametersForExecution
func (c *SageMaker) ListPipelineParametersForExecutionRequest(input *ListPipelineParametersForExecutionInput) (req *request.Request, output *ListPipelineParametersForExecutionOutput) {
	op := &request.Operation{
		Name:       opListPipelineParametersForExecution,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListPipelineParametersForExecutionInput{}
	}

	output = &ListPipelineParametersForExecutionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListPipelineParametersForExecution API operation for Amazon SageMaker Service.
//
// Gets a list of parameters for a pipeline execution.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListPipelineParametersForExecution for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListPipelineParametersForExecution
func (c *SageMaker) ListPipelineParametersForExecution(input *ListPipelineParametersForExecutionInput) (*ListPipelineParametersForExecutionOutput, error) {
	req, out := c.ListPipelineParametersForExecutionRequest(input)
	return out, req.Send()
}

// ListPipelineParametersForExecutionWithContext is the same as ListPipelineParametersForExecution with the addition of
// the ability to pass a context and additional request options.
//
// See ListPipelineParametersForExecution for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListPipelineParametersForExecutionWithContext(ctx aws.Context, input *ListPipelineParametersForExecutionInput, opts ...request.Option) (*ListPipelineParametersForExecutionOutput, error) {
	req, out := c.ListPipelineParametersForExecutionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListPipelineParametersForExecutionPages iterates over the pages of a ListPipelineParametersForExecution operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListPipelineParametersForExecution method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListPipelineParametersForExecution operation.
//	pageNum := 0
//	err := client.ListPipelineParametersForExecutionPages(params,
//	    func(page *sagemaker.ListPipelineParametersForExecutionOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListPipelineParametersForExecutionPages(input *ListPipelineParametersForExecutionInput, fn func(*ListPipelineParametersForExecutionOutput, bool) bool) error {
	return c.ListPipelineParametersForExecutionPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListPipelineParametersForExecutionPagesWithContext same as ListPipelineParametersForExecutionPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListPipelineParametersForExecutionPagesWithContext(ctx aws.Context, input *ListPipelineParametersForExecutionInput, fn func(*ListPipelineParametersForExecutionOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListPipelineParametersForExecutionInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListPipelineParametersForExecutionRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListPipelineParametersForExecutionOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListPipelines = "ListPipelines"

// ListPipelinesRequest generates a "aws/request.Request" representing the
// client's request for the ListPipelines operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListPipelines for more information on using the ListPipelines
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListPipelinesRequest method.
//	req, resp := client.ListPipelinesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListPipelines
func (c *SageMaker) ListPipelinesRequest(input *ListPipelinesInput) (req *request.Request, output *ListPipelinesOutput) {
	op := &request.Operation{
		Name:       opListPipelines,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListPipelinesInput{}
	}

	output = &ListPipelinesOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListPipelines API operation for Amazon SageMaker Service.
//
// Gets a list of pipelines.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListPipelines for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListPipelines
func (c *SageMaker) ListPipelines(input *ListPipelinesInput) (*ListPipelinesOutput, error) {
	req, out := c.ListPipelinesRequest(input)
	return out, req.Send()
}

// ListPipelinesWithContext is the same as ListPipelines with the addition of
// the ability to pass a context and additional request options.
//
// See ListPipelines for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListPipelinesWithContext(ctx aws.Context, input *ListPipelinesInput, opts ...request.Option) (*ListPipelinesOutput, error) {
	req, out := c.ListPipelinesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListPipelinesPages iterates over the pages of a ListPipelines operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListPipelines method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListPipelines operation.
//	pageNum := 0
//	err := client.ListPipelinesPages(params,
//	    func(page *sagemaker.ListPipelinesOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListPipelinesPages(input *ListPipelinesInput, fn func(*ListPipelinesOutput, bool) bool) error {
	return c.ListPipelinesPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListPipelinesPagesWithContext same as ListPipelinesPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListPipelinesPagesWithContext(ctx aws.Context, input *ListPipelinesInput, fn func(*ListPipelinesOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListPipelinesInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListPipelinesRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListPipelinesOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListProcessingJobs = "ListProcessingJobs"

// ListProcessingJobsRequest generates a "aws/request.Request" representing the
// client's request for the ListProcessingJobs operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListProcessingJobs for more information on using the ListProcessingJobs
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListProcessingJobsRequest method.
//	req, resp := client.ListProcessingJobsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListProcessingJobs
func (c *SageMaker) ListProcessingJobsRequest(input *ListProcessingJobsInput) (req *request.Request, output *ListProcessingJobsOutput) {
	op := &request.Operation{
		Name:       opListProcessingJobs,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListProcessingJobsInput{}
	}

	output = &ListProcessingJobsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListProcessingJobs API operation for Amazon SageMaker Service.
//
// Lists processing jobs that satisfy various filters.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListProcessingJobs for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListProcessingJobs
func (c *SageMaker) ListProcessingJobs(input *ListProcessingJobsInput) (*ListProcessingJobsOutput, error) {
	req, out := c.ListProcessingJobsRequest(input)
	return out, req.Send()
}

// ListProcessingJobsWithContext is the same as ListProcessingJobs with the addition of
// the ability to pass a context and additional request options.
//
// See ListProcessingJobs for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListProcessingJobsWithContext(ctx aws.Context, input *ListProcessingJobsInput, opts ...request.Option) (*ListProcessingJobsOutput, error) {
	req, out := c.ListProcessingJobsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListProcessingJobsPages iterates over the pages of a ListProcessingJobs operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListProcessingJobs method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListProcessingJobs operation.
//	pageNum := 0
//	err := client.ListProcessingJobsPages(params,
//	    func(page *sagemaker.ListProcessingJobsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListProcessingJobsPages(input *ListProcessingJobsInput, fn func(*ListProcessingJobsOutput, bool) bool) error {
	return c.ListProcessingJobsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListProcessingJobsPagesWithContext same as ListProcessingJobsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListProcessingJobsPagesWithContext(ctx aws.Context, input *ListProcessingJobsInput, fn func(*ListProcessingJobsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListProcessingJobsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListProcessingJobsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListProcessingJobsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListProjects = "ListProjects"

// ListProjectsRequest generates a "aws/request.Request" representing the
// client's request for the ListProjects operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListProjects for more information on using the ListProjects
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListProjectsRequest method.
//	req, resp := client.ListProjectsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListProjects
func (c *SageMaker) ListProjectsRequest(input *ListProjectsInput) (req *request.Request, output *ListProjectsOutput) {
	op := &request.Operation{
		Name:       opListProjects,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListProjectsInput{}
	}

	output = &ListProjectsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListProjects API operation for Amazon SageMaker Service.
//
// Gets a list of the projects in an Amazon Web Services account.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListProjects for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListProjects
func (c *SageMaker) ListProjects(input *ListProjectsInput) (*ListProjectsOutput, error) {
	req, out := c.ListProjectsRequest(input)
	return out, req.Send()
}

// ListProjectsWithContext is the same as ListProjects with the addition of
// the ability to pass a context and additional request options.
//
// See ListProjects for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListProjectsWithContext(ctx aws.Context, input *ListProjectsInput, opts ...request.Option) (*ListProjectsOutput, error) {
	req, out := c.ListProjectsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListProjectsPages iterates over the pages of a ListProjects operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListProjects method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListProjects operation.
//	pageNum := 0
//	err := client.ListProjectsPages(params,
//	    func(page *sagemaker.ListProjectsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListProjectsPages(input *ListProjectsInput, fn func(*ListProjectsOutput, bool) bool) error {
	return c.ListProjectsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListProjectsPagesWithContext same as ListProjectsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListProjectsPagesWithContext(ctx aws.Context, input *ListProjectsInput, fn func(*ListProjectsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListProjectsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListProjectsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListProjectsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListResourceCatalogs = "ListResourceCatalogs"

// ListResourceCatalogsRequest generates a "aws/request.Request" representing the
// client's request for the ListResourceCatalogs operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListResourceCatalogs for more information on using the ListResourceCatalogs
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListResourceCatalogsRequest method.
//	req, resp := client.ListResourceCatalogsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListResourceCatalogs
func (c *SageMaker) ListResourceCatalogsRequest(input *ListResourceCatalogsInput) (req *request.Request, output *ListResourceCatalogsOutput) {
	op := &request.Operation{
		Name:       opListResourceCatalogs,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListResourceCatalogsInput{}
	}

	output = &ListResourceCatalogsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListResourceCatalogs API operation for Amazon SageMaker Service.
//
// Lists Amazon SageMaker Catalogs based on given filters and orders. The maximum
// number of ResourceCatalogs viewable is 1000.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListResourceCatalogs for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListResourceCatalogs
func (c *SageMaker) ListResourceCatalogs(input *ListResourceCatalogsInput) (*ListResourceCatalogsOutput, error) {
	req, out := c.ListResourceCatalogsRequest(input)
	return out, req.Send()
}

// ListResourceCatalogsWithContext is the same as ListResourceCatalogs with the addition of
// the ability to pass a context and additional request options.
//
// See ListResourceCatalogs for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListResourceCatalogsWithContext(ctx aws.Context, input *ListResourceCatalogsInput, opts ...request.Option) (*ListResourceCatalogsOutput, error) {
	req, out := c.ListResourceCatalogsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListResourceCatalogsPages iterates over the pages of a ListResourceCatalogs operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListResourceCatalogs method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListResourceCatalogs operation.
//	pageNum := 0
//	err := client.ListResourceCatalogsPages(params,
//	    func(page *sagemaker.ListResourceCatalogsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListResourceCatalogsPages(input *ListResourceCatalogsInput, fn func(*ListResourceCatalogsOutput, bool) bool) error {
	return c.ListResourceCatalogsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListResourceCatalogsPagesWithContext same as ListResourceCatalogsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListResourceCatalogsPagesWithContext(ctx aws.Context, input *ListResourceCatalogsInput, fn func(*ListResourceCatalogsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListResourceCatalogsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListResourceCatalogsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListResourceCatalogsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListSpaces = "ListSpaces"

// ListSpacesRequest generates a "aws/request.Request" representing the
// client's request for the ListSpaces operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListSpaces for more information on using the ListSpaces
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListSpacesRequest method.
//	req, resp := client.ListSpacesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListSpaces
func (c *SageMaker) ListSpacesRequest(input *ListSpacesInput) (req *request.Request, output *ListSpacesOutput) {
	op := &request.Operation{
		Name:       opListSpaces,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListSpacesInput{}
	}

	output = &ListSpacesOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListSpaces API operation for Amazon SageMaker Service.
//
// Lists spaces.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListSpaces for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListSpaces
func (c *SageMaker) ListSpaces(input *ListSpacesInput) (*ListSpacesOutput, error) {
	req, out := c.ListSpacesRequest(input)
	return out, req.Send()
}

// ListSpacesWithContext is the same as ListSpaces with the addition of
// the ability to pass a context and additional request options.
//
// See ListSpaces for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListSpacesWithContext(ctx aws.Context, input *ListSpacesInput, opts ...request.Option) (*ListSpacesOutput, error) {
	req, out := c.ListSpacesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListSpacesPages iterates over the pages of a ListSpaces operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListSpaces method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListSpaces operation.
//	pageNum := 0
//	err := client.ListSpacesPages(params,
//	    func(page *sagemaker.ListSpacesOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListSpacesPages(input *ListSpacesInput, fn func(*ListSpacesOutput, bool) bool) error {
	return c.ListSpacesPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListSpacesPagesWithContext same as ListSpacesPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListSpacesPagesWithContext(ctx aws.Context, input *ListSpacesInput, fn func(*ListSpacesOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListSpacesInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListSpacesRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListSpacesOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListStageDevices = "ListStageDevices"

// ListStageDevicesRequest generates a "aws/request.Request" representing the
// client's request for the ListStageDevices operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListStageDevices for more information on using the ListStageDevices
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListStageDevicesRequest method.
//	req, resp := client.ListStageDevicesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListStageDevices
func (c *SageMaker) ListStageDevicesRequest(input *ListStageDevicesInput) (req *request.Request, output *ListStageDevicesOutput) {
	op := &request.Operation{
		Name:       opListStageDevices,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListStageDevicesInput{}
	}

	output = &ListStageDevicesOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListStageDevices API operation for Amazon SageMaker Service.
//
// Lists devices allocated to the stage, containing detailed device information
// and deployment status.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListStageDevices for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListStageDevices
func (c *SageMaker) ListStageDevices(input *ListStageDevicesInput) (*ListStageDevicesOutput, error) {
	req, out := c.ListStageDevicesRequest(input)
	return out, req.Send()
}

// ListStageDevicesWithContext is the same as ListStageDevices with the addition of
// the ability to pass a context and additional request options.
//
// See ListStageDevices for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListStageDevicesWithContext(ctx aws.Context, input *ListStageDevicesInput, opts ...request.Option) (*ListStageDevicesOutput, error) {
	req, out := c.ListStageDevicesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListStageDevicesPages iterates over the pages of a ListStageDevices operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListStageDevices method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListStageDevices operation.
//	pageNum := 0
//	err := client.ListStageDevicesPages(params,
//	    func(page *sagemaker.ListStageDevicesOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListStageDevicesPages(input *ListStageDevicesInput, fn func(*ListStageDevicesOutput, bool) bool) error {
	return c.ListStageDevicesPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListStageDevicesPagesWithContext same as ListStageDevicesPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListStageDevicesPagesWithContext(ctx aws.Context, input *ListStageDevicesInput, fn func(*ListStageDevicesOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListStageDevicesInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListStageDevicesRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListStageDevicesOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListStudioLifecycleConfigs = "ListStudioLifecycleConfigs"

// ListStudioLifecycleConfigsRequest generates a "aws/request.Request" representing the
// client's request for the ListStudioLifecycleConfigs operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListStudioLifecycleConfigs for more information on using the ListStudioLifecycleConfigs
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListStudioLifecycleConfigsRequest method.
//	req, resp := client.ListStudioLifecycleConfigsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListStudioLifecycleConfigs
func (c *SageMaker) ListStudioLifecycleConfigsRequest(input *ListStudioLifecycleConfigsInput) (req *request.Request, output *ListStudioLifecycleConfigsOutput) {
	op := &request.Operation{
		Name:       opListStudioLifecycleConfigs,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListStudioLifecycleConfigsInput{}
	}

	output = &ListStudioLifecycleConfigsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListStudioLifecycleConfigs API operation for Amazon SageMaker Service.
//
// Lists the Amazon SageMaker Studio Lifecycle Configurations in your Amazon
// Web Services Account.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListStudioLifecycleConfigs for usage and error information.
//
// Returned Error Types:
//   - ResourceInUse
//     Resource being accessed is in use.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListStudioLifecycleConfigs
func (c *SageMaker) ListStudioLifecycleConfigs(input *ListStudioLifecycleConfigsInput) (*ListStudioLifecycleConfigsOutput, error) {
	req, out := c.ListStudioLifecycleConfigsRequest(input)
	return out, req.Send()
}

// ListStudioLifecycleConfigsWithContext is the same as ListStudioLifecycleConfigs with the addition of
// the ability to pass a context and additional request options.
//
// See ListStudioLifecycleConfigs for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListStudioLifecycleConfigsWithContext(ctx aws.Context, input *ListStudioLifecycleConfigsInput, opts ...request.Option) (*ListStudioLifecycleConfigsOutput, error) {
	req, out := c.ListStudioLifecycleConfigsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListStudioLifecycleConfigsPages iterates over the pages of a ListStudioLifecycleConfigs operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListStudioLifecycleConfigs method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListStudioLifecycleConfigs operation.
//	pageNum := 0
//	err := client.ListStudioLifecycleConfigsPages(params,
//	    func(page *sagemaker.ListStudioLifecycleConfigsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListStudioLifecycleConfigsPages(input *ListStudioLifecycleConfigsInput, fn func(*ListStudioLifecycleConfigsOutput, bool) bool) error {
	return c.ListStudioLifecycleConfigsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListStudioLifecycleConfigsPagesWithContext same as ListStudioLifecycleConfigsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListStudioLifecycleConfigsPagesWithContext(ctx aws.Context, input *ListStudioLifecycleConfigsInput, fn func(*ListStudioLifecycleConfigsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListStudioLifecycleConfigsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListStudioLifecycleConfigsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListStudioLifecycleConfigsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListSubscribedWorkteams = "ListSubscribedWorkteams"

// ListSubscribedWorkteamsRequest generates a "aws/request.Request" representing the
// client's request for the ListSubscribedWorkteams operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListSubscribedWorkteams for more information on using the ListSubscribedWorkteams
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListSubscribedWorkteamsRequest method.
//	req, resp := client.ListSubscribedWorkteamsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListSubscribedWorkteams
func (c *SageMaker) ListSubscribedWorkteamsRequest(input *ListSubscribedWorkteamsInput) (req *request.Request, output *ListSubscribedWorkteamsOutput) {
	op := &request.Operation{
		Name:       opListSubscribedWorkteams,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListSubscribedWorkteamsInput{}
	}

	output = &ListSubscribedWorkteamsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListSubscribedWorkteams API operation for Amazon SageMaker Service.
//
// Gets a list of the work teams that you are subscribed to in the Amazon Web
// Services Marketplace. The list may be empty if no work team satisfies the
// filter specified in the NameContains parameter.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListSubscribedWorkteams for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListSubscribedWorkteams
func (c *SageMaker) ListSubscribedWorkteams(input *ListSubscribedWorkteamsInput) (*ListSubscribedWorkteamsOutput, error) {
	req, out := c.ListSubscribedWorkteamsRequest(input)
	return out, req.Send()
}

// ListSubscribedWorkteamsWithContext is the same as ListSubscribedWorkteams with the addition of
// the ability to pass a context and additional request options.
//
// See ListSubscribedWorkteams for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListSubscribedWorkteamsWithContext(ctx aws.Context, input *ListSubscribedWorkteamsInput, opts ...request.Option) (*ListSubscribedWorkteamsOutput, error) {
	req, out := c.ListSubscribedWorkteamsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListSubscribedWorkteamsPages iterates over the pages of a ListSubscribedWorkteams operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListSubscribedWorkteams method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListSubscribedWorkteams operation.
//	pageNum := 0
//	err := client.ListSubscribedWorkteamsPages(params,
//	    func(page *sagemaker.ListSubscribedWorkteamsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListSubscribedWorkteamsPages(input *ListSubscribedWorkteamsInput, fn func(*ListSubscribedWorkteamsOutput, bool) bool) error {
	return c.ListSubscribedWorkteamsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListSubscribedWorkteamsPagesWithContext same as ListSubscribedWorkteamsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListSubscribedWorkteamsPagesWithContext(ctx aws.Context, input *ListSubscribedWorkteamsInput, fn func(*ListSubscribedWorkteamsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListSubscribedWorkteamsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListSubscribedWorkteamsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListSubscribedWorkteamsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListTags = "ListTags"

// ListTagsRequest generates a "aws/request.Request" representing the
// client's request for the ListTags operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListTags for more information on using the ListTags
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListTagsRequest method.
//	req, resp := client.ListTagsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTags
func (c *SageMaker) ListTagsRequest(input *ListTagsInput) (req *request.Request, output *ListTagsOutput) {
	op := &request.Operation{
		Name:       opListTags,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListTagsInput{}
	}

	output = &ListTagsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListTags API operation for Amazon SageMaker Service.
//
// Returns the tags for the specified SageMaker resource.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListTags for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTags
func (c *SageMaker) ListTags(input *ListTagsInput) (*ListTagsOutput, error) {
	req, out := c.ListTagsRequest(input)
	return out, req.Send()
}

// ListTagsWithContext is the same as ListTags with the addition of
// the ability to pass a context and additional request options.
//
// See ListTags for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListTagsWithContext(ctx aws.Context, input *ListTagsInput, opts ...request.Option) (*ListTagsOutput, error) {
	req, out := c.ListTagsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListTagsPages iterates over the pages of a ListTags operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListTags method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListTags operation.
//	pageNum := 0
//	err := client.ListTagsPages(params,
//	    func(page *sagemaker.ListTagsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListTagsPages(input *ListTagsInput, fn func(*ListTagsOutput, bool) bool) error {
	return c.ListTagsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListTagsPagesWithContext same as ListTagsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListTagsPagesWithContext(ctx aws.Context, input *ListTagsInput, fn func(*ListTagsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListTagsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListTagsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListTagsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListTrainingJobs = "ListTrainingJobs"

// ListTrainingJobsRequest generates a "aws/request.Request" representing the
// client's request for the ListTrainingJobs operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListTrainingJobs for more information on using the ListTrainingJobs
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListTrainingJobsRequest method.
//	req, resp := client.ListTrainingJobsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTrainingJobs
func (c *SageMaker) ListTrainingJobsRequest(input *ListTrainingJobsInput) (req *request.Request, output *ListTrainingJobsOutput) {
	op := &request.Operation{
		Name:       opListTrainingJobs,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListTrainingJobsInput{}
	}

	output = &ListTrainingJobsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListTrainingJobs API operation for Amazon SageMaker Service.
//
// Lists training jobs.
//
// When StatusEquals and MaxResults are set at the same time, the MaxResults
// number of training jobs are first retrieved ignoring the StatusEquals parameter
// and then they are filtered by the StatusEquals parameter, which is returned
// as a response.
//
// For example, if ListTrainingJobs is invoked with the following parameters:
//
// { ... MaxResults: 100, StatusEquals: InProgress ... }
//
// First, 100 trainings jobs with any status, including those other than InProgress,
// are selected (sorted according to the creation time, from the most current
// to the oldest). Next, those with a status of InProgress are returned.
//
// You can quickly test the API using the following Amazon Web Services CLI
// code.
//
// aws sagemaker list-training-jobs --max-results 100 --status-equals InProgress
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListTrainingJobs for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTrainingJobs
func (c *SageMaker) ListTrainingJobs(input *ListTrainingJobsInput) (*ListTrainingJobsOutput, error) {
	req, out := c.ListTrainingJobsRequest(input)
	return out, req.Send()
}

// ListTrainingJobsWithContext is the same as ListTrainingJobs with the addition of
// the ability to pass a context and additional request options.
//
// See ListTrainingJobs for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListTrainingJobsWithContext(ctx aws.Context, input *ListTrainingJobsInput, opts ...request.Option) (*ListTrainingJobsOutput, error) {
	req, out := c.ListTrainingJobsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListTrainingJobsPages iterates over the pages of a ListTrainingJobs operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListTrainingJobs method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListTrainingJobs operation.
//	pageNum := 0
//	err := client.ListTrainingJobsPages(params,
//	    func(page *sagemaker.ListTrainingJobsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListTrainingJobsPages(input *ListTrainingJobsInput, fn func(*ListTrainingJobsOutput, bool) bool) error {
	return c.ListTrainingJobsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListTrainingJobsPagesWithContext same as ListTrainingJobsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListTrainingJobsPagesWithContext(ctx aws.Context, input *ListTrainingJobsInput, fn func(*ListTrainingJobsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListTrainingJobsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListTrainingJobsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListTrainingJobsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListTrainingJobsForHyperParameterTuningJob = "ListTrainingJobsForHyperParameterTuningJob"

// ListTrainingJobsForHyperParameterTuningJobRequest generates a "aws/request.Request" representing the
// client's request for the ListTrainingJobsForHyperParameterTuningJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListTrainingJobsForHyperParameterTuningJob for more information on using the ListTrainingJobsForHyperParameterTuningJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListTrainingJobsForHyperParameterTuningJobRequest method.
//	req, resp := client.ListTrainingJobsForHyperParameterTuningJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTrainingJobsForHyperParameterTuningJob
func (c *SageMaker) ListTrainingJobsForHyperParameterTuningJobRequest(input *ListTrainingJobsForHyperParameterTuningJobInput) (req *request.Request, output *ListTrainingJobsForHyperParameterTuningJobOutput) {
	op := &request.Operation{
		Name:       opListTrainingJobsForHyperParameterTuningJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListTrainingJobsForHyperParameterTuningJobInput{}
	}

	output = &ListTrainingJobsForHyperParameterTuningJobOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListTrainingJobsForHyperParameterTuningJob API operation for Amazon SageMaker Service.
//
// Gets a list of TrainingJobSummary (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobSummary.html)
// objects that describe the training jobs that a hyperparameter tuning job
// launched.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListTrainingJobsForHyperParameterTuningJob for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTrainingJobsForHyperParameterTuningJob
func (c *SageMaker) ListTrainingJobsForHyperParameterTuningJob(input *ListTrainingJobsForHyperParameterTuningJobInput) (*ListTrainingJobsForHyperParameterTuningJobOutput, error) {
	req, out := c.ListTrainingJobsForHyperParameterTuningJobRequest(input)
	return out, req.Send()
}

// ListTrainingJobsForHyperParameterTuningJobWithContext is the same as ListTrainingJobsForHyperParameterTuningJob with the addition of
// the ability to pass a context and additional request options.
//
// See ListTrainingJobsForHyperParameterTuningJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListTrainingJobsForHyperParameterTuningJobWithContext(ctx aws.Context, input *ListTrainingJobsForHyperParameterTuningJobInput, opts ...request.Option) (*ListTrainingJobsForHyperParameterTuningJobOutput, error) {
	req, out := c.ListTrainingJobsForHyperParameterTuningJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListTrainingJobsForHyperParameterTuningJobPages iterates over the pages of a ListTrainingJobsForHyperParameterTuningJob operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListTrainingJobsForHyperParameterTuningJob method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListTrainingJobsForHyperParameterTuningJob operation.
//	pageNum := 0
//	err := client.ListTrainingJobsForHyperParameterTuningJobPages(params,
//	    func(page *sagemaker.ListTrainingJobsForHyperParameterTuningJobOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListTrainingJobsForHyperParameterTuningJobPages(input *ListTrainingJobsForHyperParameterTuningJobInput, fn func(*ListTrainingJobsForHyperParameterTuningJobOutput, bool) bool) error {
	return c.ListTrainingJobsForHyperParameterTuningJobPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListTrainingJobsForHyperParameterTuningJobPagesWithContext same as ListTrainingJobsForHyperParameterTuningJobPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListTrainingJobsForHyperParameterTuningJobPagesWithContext(ctx aws.Context, input *ListTrainingJobsForHyperParameterTuningJobInput, fn func(*ListTrainingJobsForHyperParameterTuningJobOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListTrainingJobsForHyperParameterTuningJobInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListTrainingJobsForHyperParameterTuningJobRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListTrainingJobsForHyperParameterTuningJobOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListTransformJobs = "ListTransformJobs"

// ListTransformJobsRequest generates a "aws/request.Request" representing the
// client's request for the ListTransformJobs operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListTransformJobs for more information on using the ListTransformJobs
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListTransformJobsRequest method.
//	req, resp := client.ListTransformJobsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTransformJobs
func (c *SageMaker) ListTransformJobsRequest(input *ListTransformJobsInput) (req *request.Request, output *ListTransformJobsOutput) {
	op := &request.Operation{
		Name:       opListTransformJobs,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListTransformJobsInput{}
	}

	output = &ListTransformJobsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListTransformJobs API operation for Amazon SageMaker Service.
//
// Lists transform jobs.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListTransformJobs for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTransformJobs
func (c *SageMaker) ListTransformJobs(input *ListTransformJobsInput) (*ListTransformJobsOutput, error) {
	req, out := c.ListTransformJobsRequest(input)
	return out, req.Send()
}

// ListTransformJobsWithContext is the same as ListTransformJobs with the addition of
// the ability to pass a context and additional request options.
//
// See ListTransformJobs for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListTransformJobsWithContext(ctx aws.Context, input *ListTransformJobsInput, opts ...request.Option) (*ListTransformJobsOutput, error) {
	req, out := c.ListTransformJobsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListTransformJobsPages iterates over the pages of a ListTransformJobs operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListTransformJobs method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListTransformJobs operation.
//	pageNum := 0
//	err := client.ListTransformJobsPages(params,
//	    func(page *sagemaker.ListTransformJobsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListTransformJobsPages(input *ListTransformJobsInput, fn func(*ListTransformJobsOutput, bool) bool) error {
	return c.ListTransformJobsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListTransformJobsPagesWithContext same as ListTransformJobsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListTransformJobsPagesWithContext(ctx aws.Context, input *ListTransformJobsInput, fn func(*ListTransformJobsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListTransformJobsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListTransformJobsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListTransformJobsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListTrialComponents = "ListTrialComponents"

// ListTrialComponentsRequest generates a "aws/request.Request" representing the
// client's request for the ListTrialComponents operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListTrialComponents for more information on using the ListTrialComponents
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListTrialComponentsRequest method.
//	req, resp := client.ListTrialComponentsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTrialComponents
func (c *SageMaker) ListTrialComponentsRequest(input *ListTrialComponentsInput) (req *request.Request, output *ListTrialComponentsOutput) {
	op := &request.Operation{
		Name:       opListTrialComponents,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListTrialComponentsInput{}
	}

	output = &ListTrialComponentsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListTrialComponents API operation for Amazon SageMaker Service.
//
// Lists the trial components in your account. You can sort the list by trial
// component name or creation time. You can filter the list to show only components
// that were created in a specific time range. You can also filter on one of
// the following:
//
//   - ExperimentName
//
//   - SourceArn
//
//   - TrialName
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListTrialComponents for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTrialComponents
func (c *SageMaker) ListTrialComponents(input *ListTrialComponentsInput) (*ListTrialComponentsOutput, error) {
	req, out := c.ListTrialComponentsRequest(input)
	return out, req.Send()
}

// ListTrialComponentsWithContext is the same as ListTrialComponents with the addition of
// the ability to pass a context and additional request options.
//
// See ListTrialComponents for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListTrialComponentsWithContext(ctx aws.Context, input *ListTrialComponentsInput, opts ...request.Option) (*ListTrialComponentsOutput, error) {
	req, out := c.ListTrialComponentsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListTrialComponentsPages iterates over the pages of a ListTrialComponents operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListTrialComponents method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListTrialComponents operation.
//	pageNum := 0
//	err := client.ListTrialComponentsPages(params,
//	    func(page *sagemaker.ListTrialComponentsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListTrialComponentsPages(input *ListTrialComponentsInput, fn func(*ListTrialComponentsOutput, bool) bool) error {
	return c.ListTrialComponentsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListTrialComponentsPagesWithContext same as ListTrialComponentsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListTrialComponentsPagesWithContext(ctx aws.Context, input *ListTrialComponentsInput, fn func(*ListTrialComponentsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListTrialComponentsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListTrialComponentsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListTrialComponentsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListTrials = "ListTrials"

// ListTrialsRequest generates a "aws/request.Request" representing the
// client's request for the ListTrials operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListTrials for more information on using the ListTrials
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListTrialsRequest method.
//	req, resp := client.ListTrialsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTrials
func (c *SageMaker) ListTrialsRequest(input *ListTrialsInput) (req *request.Request, output *ListTrialsOutput) {
	op := &request.Operation{
		Name:       opListTrials,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListTrialsInput{}
	}

	output = &ListTrialsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListTrials API operation for Amazon SageMaker Service.
//
// Lists the trials in your account. Specify an experiment name to limit the
// list to the trials that are part of that experiment. Specify a trial component
// name to limit the list to the trials that associated with that trial component.
// The list can be filtered to show only trials that were created in a specific
// time range. The list can be sorted by trial name or creation time.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListTrials for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListTrials
func (c *SageMaker) ListTrials(input *ListTrialsInput) (*ListTrialsOutput, error) {
	req, out := c.ListTrialsRequest(input)
	return out, req.Send()
}

// ListTrialsWithContext is the same as ListTrials with the addition of
// the ability to pass a context and additional request options.
//
// See ListTrials for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListTrialsWithContext(ctx aws.Context, input *ListTrialsInput, opts ...request.Option) (*ListTrialsOutput, error) {
	req, out := c.ListTrialsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListTrialsPages iterates over the pages of a ListTrials operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListTrials method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListTrials operation.
//	pageNum := 0
//	err := client.ListTrialsPages(params,
//	    func(page *sagemaker.ListTrialsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListTrialsPages(input *ListTrialsInput, fn func(*ListTrialsOutput, bool) bool) error {
	return c.ListTrialsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListTrialsPagesWithContext same as ListTrialsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListTrialsPagesWithContext(ctx aws.Context, input *ListTrialsInput, fn func(*ListTrialsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListTrialsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListTrialsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListTrialsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListUserProfiles = "ListUserProfiles"

// ListUserProfilesRequest generates a "aws/request.Request" representing the
// client's request for the ListUserProfiles operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListUserProfiles for more information on using the ListUserProfiles
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListUserProfilesRequest method.
//	req, resp := client.ListUserProfilesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListUserProfiles
func (c *SageMaker) ListUserProfilesRequest(input *ListUserProfilesInput) (req *request.Request, output *ListUserProfilesOutput) {
	op := &request.Operation{
		Name:       opListUserProfiles,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListUserProfilesInput{}
	}

	output = &ListUserProfilesOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListUserProfiles API operation for Amazon SageMaker Service.
//
// Lists user profiles.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListUserProfiles for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListUserProfiles
func (c *SageMaker) ListUserProfiles(input *ListUserProfilesInput) (*ListUserProfilesOutput, error) {
	req, out := c.ListUserProfilesRequest(input)
	return out, req.Send()
}

// ListUserProfilesWithContext is the same as ListUserProfiles with the addition of
// the ability to pass a context and additional request options.
//
// See ListUserProfiles for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListUserProfilesWithContext(ctx aws.Context, input *ListUserProfilesInput, opts ...request.Option) (*ListUserProfilesOutput, error) {
	req, out := c.ListUserProfilesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListUserProfilesPages iterates over the pages of a ListUserProfiles operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListUserProfiles method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListUserProfiles operation.
//	pageNum := 0
//	err := client.ListUserProfilesPages(params,
//	    func(page *sagemaker.ListUserProfilesOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListUserProfilesPages(input *ListUserProfilesInput, fn func(*ListUserProfilesOutput, bool) bool) error {
	return c.ListUserProfilesPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListUserProfilesPagesWithContext same as ListUserProfilesPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListUserProfilesPagesWithContext(ctx aws.Context, input *ListUserProfilesInput, fn func(*ListUserProfilesOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListUserProfilesInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListUserProfilesRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListUserProfilesOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListWorkforces = "ListWorkforces"

// ListWorkforcesRequest generates a "aws/request.Request" representing the
// client's request for the ListWorkforces operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListWorkforces for more information on using the ListWorkforces
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListWorkforcesRequest method.
//	req, resp := client.ListWorkforcesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListWorkforces
func (c *SageMaker) ListWorkforcesRequest(input *ListWorkforcesInput) (req *request.Request, output *ListWorkforcesOutput) {
	op := &request.Operation{
		Name:       opListWorkforces,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListWorkforcesInput{}
	}

	output = &ListWorkforcesOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListWorkforces API operation for Amazon SageMaker Service.
//
// Use this operation to list all private and vendor workforces in an Amazon
// Web Services Region. Note that you can only have one private workforce per
// Amazon Web Services Region.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListWorkforces for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListWorkforces
func (c *SageMaker) ListWorkforces(input *ListWorkforcesInput) (*ListWorkforcesOutput, error) {
	req, out := c.ListWorkforcesRequest(input)
	return out, req.Send()
}

// ListWorkforcesWithContext is the same as ListWorkforces with the addition of
// the ability to pass a context and additional request options.
//
// See ListWorkforces for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListWorkforcesWithContext(ctx aws.Context, input *ListWorkforcesInput, opts ...request.Option) (*ListWorkforcesOutput, error) {
	req, out := c.ListWorkforcesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListWorkforcesPages iterates over the pages of a ListWorkforces operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListWorkforces method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListWorkforces operation.
//	pageNum := 0
//	err := client.ListWorkforcesPages(params,
//	    func(page *sagemaker.ListWorkforcesOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListWorkforcesPages(input *ListWorkforcesInput, fn func(*ListWorkforcesOutput, bool) bool) error {
	return c.ListWorkforcesPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListWorkforcesPagesWithContext same as ListWorkforcesPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListWorkforcesPagesWithContext(ctx aws.Context, input *ListWorkforcesInput, fn func(*ListWorkforcesOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListWorkforcesInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListWorkforcesRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListWorkforcesOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListWorkteams = "ListWorkteams"

// ListWorkteamsRequest generates a "aws/request.Request" representing the
// client's request for the ListWorkteams operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListWorkteams for more information on using the ListWorkteams
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListWorkteamsRequest method.
//	req, resp := client.ListWorkteamsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListWorkteams
func (c *SageMaker) ListWorkteamsRequest(input *ListWorkteamsInput) (req *request.Request, output *ListWorkteamsOutput) {
	op := &request.Operation{
		Name:       opListWorkteams,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListWorkteamsInput{}
	}

	output = &ListWorkteamsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListWorkteams API operation for Amazon SageMaker Service.
//
// Gets a list of private work teams that you have defined in a region. The
// list may be empty if no work team satisfies the filter specified in the NameContains
// parameter.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation ListWorkteams for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/ListWorkteams
func (c *SageMaker) ListWorkteams(input *ListWorkteamsInput) (*ListWorkteamsOutput, error) {
	req, out := c.ListWorkteamsRequest(input)
	return out, req.Send()
}

// ListWorkteamsWithContext is the same as ListWorkteams with the addition of
// the ability to pass a context and additional request options.
//
// See ListWorkteams for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListWorkteamsWithContext(ctx aws.Context, input *ListWorkteamsInput, opts ...request.Option) (*ListWorkteamsOutput, error) {
	req, out := c.ListWorkteamsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListWorkteamsPages iterates over the pages of a ListWorkteams operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListWorkteams method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListWorkteams operation.
//	pageNum := 0
//	err := client.ListWorkteamsPages(params,
//	    func(page *sagemaker.ListWorkteamsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) ListWorkteamsPages(input *ListWorkteamsInput, fn func(*ListWorkteamsOutput, bool) bool) error {
	return c.ListWorkteamsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListWorkteamsPagesWithContext same as ListWorkteamsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) ListWorkteamsPagesWithContext(ctx aws.Context, input *ListWorkteamsInput, fn func(*ListWorkteamsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListWorkteamsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListWorkteamsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListWorkteamsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opPutModelPackageGroupPolicy = "PutModelPackageGroupPolicy"

// PutModelPackageGroupPolicyRequest generates a "aws/request.Request" representing the
// client's request for the PutModelPackageGroupPolicy operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See PutModelPackageGroupPolicy for more information on using the PutModelPackageGroupPolicy
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the PutModelPackageGroupPolicyRequest method.
//	req, resp := client.PutModelPackageGroupPolicyRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/PutModelPackageGroupPolicy
func (c *SageMaker) PutModelPackageGroupPolicyRequest(input *PutModelPackageGroupPolicyInput) (req *request.Request, output *PutModelPackageGroupPolicyOutput) {
	op := &request.Operation{
		Name:       opPutModelPackageGroupPolicy,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &PutModelPackageGroupPolicyInput{}
	}

	output = &PutModelPackageGroupPolicyOutput{}
	req = c.newRequest(op, input, output)
	return
}

// PutModelPackageGroupPolicy API operation for Amazon SageMaker Service.
//
// Adds a resouce policy to control access to a model group. For information
// about resoure policies, see Identity-based policies and resource-based policies
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html)
// in the Amazon Web Services Identity and Access Management User Guide..
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation PutModelPackageGroupPolicy for usage and error information.
//
// Returned Error Types:
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/PutModelPackageGroupPolicy
func (c *SageMaker) PutModelPackageGroupPolicy(input *PutModelPackageGroupPolicyInput) (*PutModelPackageGroupPolicyOutput, error) {
	req, out := c.PutModelPackageGroupPolicyRequest(input)
	return out, req.Send()
}

// PutModelPackageGroupPolicyWithContext is the same as PutModelPackageGroupPolicy with the addition of
// the ability to pass a context and additional request options.
//
// See PutModelPackageGroupPolicy for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) PutModelPackageGroupPolicyWithContext(ctx aws.Context, input *PutModelPackageGroupPolicyInput, opts ...request.Option) (*PutModelPackageGroupPolicyOutput, error) {
	req, out := c.PutModelPackageGroupPolicyRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opQueryLineage = "QueryLineage"

// QueryLineageRequest generates a "aws/request.Request" representing the
// client's request for the QueryLineage operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See QueryLineage for more information on using the QueryLineage
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the QueryLineageRequest method.
//	req, resp := client.QueryLineageRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/QueryLineage
func (c *SageMaker) QueryLineageRequest(input *QueryLineageInput) (req *request.Request, output *QueryLineageOutput) {
	op := &request.Operation{
		Name:       opQueryLineage,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &QueryLineageInput{}
	}

	output = &QueryLineageOutput{}
	req = c.newRequest(op, input, output)
	return
}

// QueryLineage API operation for Amazon SageMaker Service.
//
// Use this action to inspect your lineage and discover relationships between
// entities. For more information, see Querying Lineage Entities (https://docs.aws.amazon.com/sagemaker/latest/dg/querying-lineage-entities.html)
// in the Amazon SageMaker Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation QueryLineage for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/QueryLineage
func (c *SageMaker) QueryLineage(input *QueryLineageInput) (*QueryLineageOutput, error) {
	req, out := c.QueryLineageRequest(input)
	return out, req.Send()
}

// QueryLineageWithContext is the same as QueryLineage with the addition of
// the ability to pass a context and additional request options.
//
// See QueryLineage for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) QueryLineageWithContext(ctx aws.Context, input *QueryLineageInput, opts ...request.Option) (*QueryLineageOutput, error) {
	req, out := c.QueryLineageRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// QueryLineagePages iterates over the pages of a QueryLineage operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See QueryLineage method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a QueryLineage operation.
//	pageNum := 0
//	err := client.QueryLineagePages(params,
//	    func(page *sagemaker.QueryLineageOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) QueryLineagePages(input *QueryLineageInput, fn func(*QueryLineageOutput, bool) bool) error {
	return c.QueryLineagePagesWithContext(aws.BackgroundContext(), input, fn)
}

// QueryLineagePagesWithContext same as QueryLineagePages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) QueryLineagePagesWithContext(ctx aws.Context, input *QueryLineageInput, fn func(*QueryLineageOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *QueryLineageInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.QueryLineageRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*QueryLineageOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opRegisterDevices = "RegisterDevices"

// RegisterDevicesRequest generates a "aws/request.Request" representing the
// client's request for the RegisterDevices operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See RegisterDevices for more information on using the RegisterDevices
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the RegisterDevicesRequest method.
//	req, resp := client.RegisterDevicesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RegisterDevices
func (c *SageMaker) RegisterDevicesRequest(input *RegisterDevicesInput) (req *request.Request, output *RegisterDevicesOutput) {
	op := &request.Operation{
		Name:       opRegisterDevices,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &RegisterDevicesInput{}
	}

	output = &RegisterDevicesOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// RegisterDevices API operation for Amazon SageMaker Service.
//
// Register devices.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation RegisterDevices for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RegisterDevices
func (c *SageMaker) RegisterDevices(input *RegisterDevicesInput) (*RegisterDevicesOutput, error) {
	req, out := c.RegisterDevicesRequest(input)
	return out, req.Send()
}

// RegisterDevicesWithContext is the same as RegisterDevices with the addition of
// the ability to pass a context and additional request options.
//
// See RegisterDevices for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) RegisterDevicesWithContext(ctx aws.Context, input *RegisterDevicesInput, opts ...request.Option) (*RegisterDevicesOutput, error) {
	req, out := c.RegisterDevicesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opRenderUiTemplate = "RenderUiTemplate"

// RenderUiTemplateRequest generates a "aws/request.Request" representing the
// client's request for the RenderUiTemplate operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See RenderUiTemplate for more information on using the RenderUiTemplate
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the RenderUiTemplateRequest method.
//	req, resp := client.RenderUiTemplateRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RenderUiTemplate
func (c *SageMaker) RenderUiTemplateRequest(input *RenderUiTemplateInput) (req *request.Request, output *RenderUiTemplateOutput) {
	op := &request.Operation{
		Name:       opRenderUiTemplate,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &RenderUiTemplateInput{}
	}

	output = &RenderUiTemplateOutput{}
	req = c.newRequest(op, input, output)
	return
}

// RenderUiTemplate API operation for Amazon SageMaker Service.
//
// Renders the UI template so that you can preview the worker's experience.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation RenderUiTemplate for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RenderUiTemplate
func (c *SageMaker) RenderUiTemplate(input *RenderUiTemplateInput) (*RenderUiTemplateOutput, error) {
	req, out := c.RenderUiTemplateRequest(input)
	return out, req.Send()
}

// RenderUiTemplateWithContext is the same as RenderUiTemplate with the addition of
// the ability to pass a context and additional request options.
//
// See RenderUiTemplate for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) RenderUiTemplateWithContext(ctx aws.Context, input *RenderUiTemplateInput, opts ...request.Option) (*RenderUiTemplateOutput, error) {
	req, out := c.RenderUiTemplateRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opRetryPipelineExecution = "RetryPipelineExecution"

// RetryPipelineExecutionRequest generates a "aws/request.Request" representing the
// client's request for the RetryPipelineExecution operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See RetryPipelineExecution for more information on using the RetryPipelineExecution
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the RetryPipelineExecutionRequest method.
//	req, resp := client.RetryPipelineExecutionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RetryPipelineExecution
func (c *SageMaker) RetryPipelineExecutionRequest(input *RetryPipelineExecutionInput) (req *request.Request, output *RetryPipelineExecutionOutput) {
	op := &request.Operation{
		Name:       opRetryPipelineExecution,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &RetryPipelineExecutionInput{}
	}

	output = &RetryPipelineExecutionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// RetryPipelineExecution API operation for Amazon SageMaker Service.
//
// Retry the execution of the pipeline.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation RetryPipelineExecution for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFound
//     Resource being access is not found.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/RetryPipelineExecution
func (c *SageMaker) RetryPipelineExecution(input *RetryPipelineExecutionInput) (*RetryPipelineExecutionOutput, error) {
	req, out := c.RetryPipelineExecutionRequest(input)
	return out, req.Send()
}

// RetryPipelineExecutionWithContext is the same as RetryPipelineExecution with the addition of
// the ability to pass a context and additional request options.
//
// See RetryPipelineExecution for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) RetryPipelineExecutionWithContext(ctx aws.Context, input *RetryPipelineExecutionInput, opts ...request.Option) (*RetryPipelineExecutionOutput, error) {
	req, out := c.RetryPipelineExecutionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opSearch = "Search"

// SearchRequest generates a "aws/request.Request" representing the
// client's request for the Search operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See Search for more information on using the Search
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the SearchRequest method.
//	req, resp := client.SearchRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Search
func (c *SageMaker) SearchRequest(input *SearchInput) (req *request.Request, output *SearchOutput) {
	op := &request.Operation{
		Name:       opSearch,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &SearchInput{}
	}

	output = &SearchOutput{}
	req = c.newRequest(op, input, output)
	return
}

// Search API operation for Amazon SageMaker Service.
//
// Finds SageMaker resources that match a search query. Matching resources are
// returned as a list of SearchRecord objects in the response. You can sort
// the search results by any resource property in a ascending or descending
// order.
//
// You can query against the following value types: numeric, text, Boolean,
// and timestamp.
//
// The Search API may provide access to otherwise restricted data. See Amazon
// SageMaker API Permissions: Actions, Permissions, and Resources Reference
// (https://docs.aws.amazon.com/sagemaker/latest/dg/api-permissions-reference.html)
// for more information.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation Search for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Search
func (c *SageMaker) Search(input *SearchInput) (*SearchOutput, error) {
	req, out := c.SearchRequest(input)
	return out, req.Send()
}

// SearchWithContext is the same as Search with the addition of
// the ability to pass a context and additional request options.
//
// See Search for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) SearchWithContext(ctx aws.Context, input *SearchInput, opts ...request.Option) (*SearchOutput, error) {
	req, out := c.SearchRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// SearchPages iterates over the pages of a Search operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See Search method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a Search operation.
//	pageNum := 0
//	err := client.SearchPages(params,
//	    func(page *sagemaker.SearchOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *SageMaker) SearchPages(input *SearchInput, fn func(*SearchOutput, bool) bool) error {
	return c.SearchPagesWithContext(aws.BackgroundContext(), input, fn)
}

// SearchPagesWithContext same as SearchPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) SearchPagesWithContext(ctx aws.Context, input *SearchInput, fn func(*SearchOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *SearchInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.SearchRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*SearchOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opSendPipelineExecutionStepFailure = "SendPipelineExecutionStepFailure"

// SendPipelineExecutionStepFailureRequest generates a "aws/request.Request" representing the
// client's request for the SendPipelineExecutionStepFailure operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See SendPipelineExecutionStepFailure for more information on using the SendPipelineExecutionStepFailure
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the SendPipelineExecutionStepFailureRequest method.
//	req, resp := client.SendPipelineExecutionStepFailureRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SendPipelineExecutionStepFailure
func (c *SageMaker) SendPipelineExecutionStepFailureRequest(input *SendPipelineExecutionStepFailureInput) (req *request.Request, output *SendPipelineExecutionStepFailureOutput) {
	op := &request.Operation{
		Name:       opSendPipelineExecutionStepFailure,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &SendPipelineExecutionStepFailureInput{}
	}

	output = &SendPipelineExecutionStepFailureOutput{}
	req = c.newRequest(op, input, output)
	return
}

// SendPipelineExecutionStepFailure API operation for Amazon SageMaker Service.
//
// Notifies the pipeline that the execution of a callback step failed, along
// with a message describing why. When a callback step is run, the pipeline
// generates a callback token and includes the token in a message sent to Amazon
// Simple Queue Service (Amazon SQS).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation SendPipelineExecutionStepFailure for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFound
//     Resource being access is not found.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SendPipelineExecutionStepFailure
func (c *SageMaker) SendPipelineExecutionStepFailure(input *SendPipelineExecutionStepFailureInput) (*SendPipelineExecutionStepFailureOutput, error) {
	req, out := c.SendPipelineExecutionStepFailureRequest(input)
	return out, req.Send()
}

// SendPipelineExecutionStepFailureWithContext is the same as SendPipelineExecutionStepFailure with the addition of
// the ability to pass a context and additional request options.
//
// See SendPipelineExecutionStepFailure for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) SendPipelineExecutionStepFailureWithContext(ctx aws.Context, input *SendPipelineExecutionStepFailureInput, opts ...request.Option) (*SendPipelineExecutionStepFailureOutput, error) {
	req, out := c.SendPipelineExecutionStepFailureRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opSendPipelineExecutionStepSuccess = "SendPipelineExecutionStepSuccess"

// SendPipelineExecutionStepSuccessRequest generates a "aws/request.Request" representing the
// client's request for the SendPipelineExecutionStepSuccess operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See SendPipelineExecutionStepSuccess for more information on using the SendPipelineExecutionStepSuccess
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the SendPipelineExecutionStepSuccessRequest method.
//	req, resp := client.SendPipelineExecutionStepSuccessRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SendPipelineExecutionStepSuccess
func (c *SageMaker) SendPipelineExecutionStepSuccessRequest(input *SendPipelineExecutionStepSuccessInput) (req *request.Request, output *SendPipelineExecutionStepSuccessOutput) {
	op := &request.Operation{
		Name:       opSendPipelineExecutionStepSuccess,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &SendPipelineExecutionStepSuccessInput{}
	}

	output = &SendPipelineExecutionStepSuccessOutput{}
	req = c.newRequest(op, input, output)
	return
}

// SendPipelineExecutionStepSuccess API operation for Amazon SageMaker Service.
//
// Notifies the pipeline that the execution of a callback step succeeded and
// provides a list of the step's output parameters. When a callback step is
// run, the pipeline generates a callback token and includes the token in a
// message sent to Amazon Simple Queue Service (Amazon SQS).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation SendPipelineExecutionStepSuccess for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFound
//     Resource being access is not found.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/SendPipelineExecutionStepSuccess
func (c *SageMaker) SendPipelineExecutionStepSuccess(input *SendPipelineExecutionStepSuccessInput) (*SendPipelineExecutionStepSuccessOutput, error) {
	req, out := c.SendPipelineExecutionStepSuccessRequest(input)
	return out, req.Send()
}

// SendPipelineExecutionStepSuccessWithContext is the same as SendPipelineExecutionStepSuccess with the addition of
// the ability to pass a context and additional request options.
//
// See SendPipelineExecutionStepSuccess for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) SendPipelineExecutionStepSuccessWithContext(ctx aws.Context, input *SendPipelineExecutionStepSuccessInput, opts ...request.Option) (*SendPipelineExecutionStepSuccessOutput, error) {
	req, out := c.SendPipelineExecutionStepSuccessRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opStartEdgeDeploymentStage = "StartEdgeDeploymentStage"

// StartEdgeDeploymentStageRequest generates a "aws/request.Request" representing the
// client's request for the StartEdgeDeploymentStage operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See StartEdgeDeploymentStage for more information on using the StartEdgeDeploymentStage
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the StartEdgeDeploymentStageRequest method.
//	req, resp := client.StartEdgeDeploymentStageRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StartEdgeDeploymentStage
func (c *SageMaker) StartEdgeDeploymentStageRequest(input *StartEdgeDeploymentStageInput) (req *request.Request, output *StartEdgeDeploymentStageOutput) {
	op := &request.Operation{
		Name:       opStartEdgeDeploymentStage,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &StartEdgeDeploymentStageInput{}
	}

	output = &StartEdgeDeploymentStageOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// StartEdgeDeploymentStage API operation for Amazon SageMaker Service.
//
// Starts a stage in an edge deployment plan.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation StartEdgeDeploymentStage for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StartEdgeDeploymentStage
func (c *SageMaker) StartEdgeDeploymentStage(input *StartEdgeDeploymentStageInput) (*StartEdgeDeploymentStageOutput, error) {
	req, out := c.StartEdgeDeploymentStageRequest(input)
	return out, req.Send()
}

// StartEdgeDeploymentStageWithContext is the same as StartEdgeDeploymentStage with the addition of
// the ability to pass a context and additional request options.
//
// See StartEdgeDeploymentStage for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) StartEdgeDeploymentStageWithContext(ctx aws.Context, input *StartEdgeDeploymentStageInput, opts ...request.Option) (*StartEdgeDeploymentStageOutput, error) {
	req, out := c.StartEdgeDeploymentStageRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opStartInferenceExperiment = "StartInferenceExperiment"

// StartInferenceExperimentRequest generates a "aws/request.Request" representing the
// client's request for the StartInferenceExperiment operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See StartInferenceExperiment for more information on using the StartInferenceExperiment
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the StartInferenceExperimentRequest method.
//	req, resp := client.StartInferenceExperimentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StartInferenceExperiment
func (c *SageMaker) StartInferenceExperimentRequest(input *StartInferenceExperimentInput) (req *request.Request, output *StartInferenceExperimentOutput) {
	op := &request.Operation{
		Name:       opStartInferenceExperiment,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &StartInferenceExperimentInput{}
	}

	output = &StartInferenceExperimentOutput{}
	req = c.newRequest(op, input, output)
	return
}

// StartInferenceExperiment API operation for Amazon SageMaker Service.
//
// Starts an inference experiment.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation StartInferenceExperiment for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StartInferenceExperiment
func (c *SageMaker) StartInferenceExperiment(input *StartInferenceExperimentInput) (*StartInferenceExperimentOutput, error) {
	req, out := c.StartInferenceExperimentRequest(input)
	return out, req.Send()
}

// StartInferenceExperimentWithContext is the same as StartInferenceExperiment with the addition of
// the ability to pass a context and additional request options.
//
// See StartInferenceExperiment for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) StartInferenceExperimentWithContext(ctx aws.Context, input *StartInferenceExperimentInput, opts ...request.Option) (*StartInferenceExperimentOutput, error) {
	req, out := c.StartInferenceExperimentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opStartMonitoringSchedule = "StartMonitoringSchedule"

// StartMonitoringScheduleRequest generates a "aws/request.Request" representing the
// client's request for the StartMonitoringSchedule operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See StartMonitoringSchedule for more information on using the StartMonitoringSchedule
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the StartMonitoringScheduleRequest method.
//	req, resp := client.StartMonitoringScheduleRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StartMonitoringSchedule
func (c *SageMaker) StartMonitoringScheduleRequest(input *StartMonitoringScheduleInput) (req *request.Request, output *StartMonitoringScheduleOutput) {
	op := &request.Operation{
		Name:       opStartMonitoringSchedule,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &StartMonitoringScheduleInput{}
	}

	output = &StartMonitoringScheduleOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// StartMonitoringSchedule API operation for Amazon SageMaker Service.
//
// Starts a previously stopped monitoring schedule.
//
// By default, when you successfully create a new schedule, the status of a
// monitoring schedule is scheduled.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation StartMonitoringSchedule for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StartMonitoringSchedule
func (c *SageMaker) StartMonitoringSchedule(input *StartMonitoringScheduleInput) (*StartMonitoringScheduleOutput, error) {
	req, out := c.StartMonitoringScheduleRequest(input)
	return out, req.Send()
}

// StartMonitoringScheduleWithContext is the same as StartMonitoringSchedule with the addition of
// the ability to pass a context and additional request options.
//
// See StartMonitoringSchedule for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) StartMonitoringScheduleWithContext(ctx aws.Context, input *StartMonitoringScheduleInput, opts ...request.Option) (*StartMonitoringScheduleOutput, error) {
	req, out := c.StartMonitoringScheduleRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opStartNotebookInstance = "StartNotebookInstance"

// StartNotebookInstanceRequest generates a "aws/request.Request" representing the
// client's request for the StartNotebookInstance operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See StartNotebookInstance for more information on using the StartNotebookInstance
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the StartNotebookInstanceRequest method.
//	req, resp := client.StartNotebookInstanceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StartNotebookInstance
func (c *SageMaker) StartNotebookInstanceRequest(input *StartNotebookInstanceInput) (req *request.Request, output *StartNotebookInstanceOutput) {
	op := &request.Operation{
		Name:       opStartNotebookInstance,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &StartNotebookInstanceInput{}
	}

	output = &StartNotebookInstanceOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// StartNotebookInstance API operation for Amazon SageMaker Service.
//
// Launches an ML compute instance with the latest version of the libraries
// and attaches your ML storage volume. After configuring the notebook instance,
// SageMaker sets the notebook instance status to InService. A notebook instance's
// status must be InService before you can connect to your Jupyter notebook.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation StartNotebookInstance for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StartNotebookInstance
func (c *SageMaker) StartNotebookInstance(input *StartNotebookInstanceInput) (*StartNotebookInstanceOutput, error) {
	req, out := c.StartNotebookInstanceRequest(input)
	return out, req.Send()
}

// StartNotebookInstanceWithContext is the same as StartNotebookInstance with the addition of
// the ability to pass a context and additional request options.
//
// See StartNotebookInstance for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) StartNotebookInstanceWithContext(ctx aws.Context, input *StartNotebookInstanceInput, opts ...request.Option) (*StartNotebookInstanceOutput, error) {
	req, out := c.StartNotebookInstanceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opStartPipelineExecution = "StartPipelineExecution"

// StartPipelineExecutionRequest generates a "aws/request.Request" representing the
// client's request for the StartPipelineExecution operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See StartPipelineExecution for more information on using the StartPipelineExecution
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the StartPipelineExecutionRequest method.
//	req, resp := client.StartPipelineExecutionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StartPipelineExecution
func (c *SageMaker) StartPipelineExecutionRequest(input *StartPipelineExecutionInput) (req *request.Request, output *StartPipelineExecutionOutput) {
	op := &request.Operation{
		Name:       opStartPipelineExecution,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &StartPipelineExecutionInput{}
	}

	output = &StartPipelineExecutionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// StartPipelineExecution API operation for Amazon SageMaker Service.
//
// Starts a pipeline execution.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation StartPipelineExecution for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFound
//     Resource being access is not found.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StartPipelineExecution
func (c *SageMaker) StartPipelineExecution(input *StartPipelineExecutionInput) (*StartPipelineExecutionOutput, error) {
	req, out := c.StartPipelineExecutionRequest(input)
	return out, req.Send()
}

// StartPipelineExecutionWithContext is the same as StartPipelineExecution with the addition of
// the ability to pass a context and additional request options.
//
// See StartPipelineExecution for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) StartPipelineExecutionWithContext(ctx aws.Context, input *StartPipelineExecutionInput, opts ...request.Option) (*StartPipelineExecutionOutput, error) {
	req, out := c.StartPipelineExecutionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opStopAutoMLJob = "StopAutoMLJob"

// StopAutoMLJobRequest generates a "aws/request.Request" representing the
// client's request for the StopAutoMLJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See StopAutoMLJob for more information on using the StopAutoMLJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the StopAutoMLJobRequest method.
//	req, resp := client.StopAutoMLJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopAutoMLJob
func (c *SageMaker) StopAutoMLJobRequest(input *StopAutoMLJobInput) (req *request.Request, output *StopAutoMLJobOutput) {
	op := &request.Operation{
		Name:       opStopAutoMLJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &StopAutoMLJobInput{}
	}

	output = &StopAutoMLJobOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// StopAutoMLJob API operation for Amazon SageMaker Service.
//
// A method for forcing a running job to shut down.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation StopAutoMLJob for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopAutoMLJob
func (c *SageMaker) StopAutoMLJob(input *StopAutoMLJobInput) (*StopAutoMLJobOutput, error) {
	req, out := c.StopAutoMLJobRequest(input)
	return out, req.Send()
}

// StopAutoMLJobWithContext is the same as StopAutoMLJob with the addition of
// the ability to pass a context and additional request options.
//
// See StopAutoMLJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) StopAutoMLJobWithContext(ctx aws.Context, input *StopAutoMLJobInput, opts ...request.Option) (*StopAutoMLJobOutput, error) {
	req, out := c.StopAutoMLJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opStopCompilationJob = "StopCompilationJob"

// StopCompilationJobRequest generates a "aws/request.Request" representing the
// client's request for the StopCompilationJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See StopCompilationJob for more information on using the StopCompilationJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the StopCompilationJobRequest method.
//	req, resp := client.StopCompilationJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopCompilationJob
func (c *SageMaker) StopCompilationJobRequest(input *StopCompilationJobInput) (req *request.Request, output *StopCompilationJobOutput) {
	op := &request.Operation{
		Name:       opStopCompilationJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &StopCompilationJobInput{}
	}

	output = &StopCompilationJobOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// StopCompilationJob API operation for Amazon SageMaker Service.
//
// Stops a model compilation job.
//
// To stop a job, Amazon SageMaker sends the algorithm the SIGTERM signal. This
// gracefully shuts the job down. If the job hasn't stopped, it sends the SIGKILL
// signal.
//
// When it receives a StopCompilationJob request, Amazon SageMaker changes the
// CompilationJobStatus of the job to Stopping. After Amazon SageMaker stops
// the job, it sets the CompilationJobStatus to Stopped.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation StopCompilationJob for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopCompilationJob
func (c *SageMaker) StopCompilationJob(input *StopCompilationJobInput) (*StopCompilationJobOutput, error) {
	req, out := c.StopCompilationJobRequest(input)
	return out, req.Send()
}

// StopCompilationJobWithContext is the same as StopCompilationJob with the addition of
// the ability to pass a context and additional request options.
//
// See StopCompilationJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) StopCompilationJobWithContext(ctx aws.Context, input *StopCompilationJobInput, opts ...request.Option) (*StopCompilationJobOutput, error) {
	req, out := c.StopCompilationJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opStopEdgeDeploymentStage = "StopEdgeDeploymentStage"

// StopEdgeDeploymentStageRequest generates a "aws/request.Request" representing the
// client's request for the StopEdgeDeploymentStage operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See StopEdgeDeploymentStage for more information on using the StopEdgeDeploymentStage
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the StopEdgeDeploymentStageRequest method.
//	req, resp := client.StopEdgeDeploymentStageRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopEdgeDeploymentStage
func (c *SageMaker) StopEdgeDeploymentStageRequest(input *StopEdgeDeploymentStageInput) (req *request.Request, output *StopEdgeDeploymentStageOutput) {
	op := &request.Operation{
		Name:       opStopEdgeDeploymentStage,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &StopEdgeDeploymentStageInput{}
	}

	output = &StopEdgeDeploymentStageOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// StopEdgeDeploymentStage API operation for Amazon SageMaker Service.
//
// Stops a stage in an edge deployment plan.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation StopEdgeDeploymentStage for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopEdgeDeploymentStage
func (c *SageMaker) StopEdgeDeploymentStage(input *StopEdgeDeploymentStageInput) (*StopEdgeDeploymentStageOutput, error) {
	req, out := c.StopEdgeDeploymentStageRequest(input)
	return out, req.Send()
}

// StopEdgeDeploymentStageWithContext is the same as StopEdgeDeploymentStage with the addition of
// the ability to pass a context and additional request options.
//
// See StopEdgeDeploymentStage for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) StopEdgeDeploymentStageWithContext(ctx aws.Context, input *StopEdgeDeploymentStageInput, opts ...request.Option) (*StopEdgeDeploymentStageOutput, error) {
	req, out := c.StopEdgeDeploymentStageRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opStopEdgePackagingJob = "StopEdgePackagingJob"

// StopEdgePackagingJobRequest generates a "aws/request.Request" representing the
// client's request for the StopEdgePackagingJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See StopEdgePackagingJob for more information on using the StopEdgePackagingJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the StopEdgePackagingJobRequest method.
//	req, resp := client.StopEdgePackagingJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopEdgePackagingJob
func (c *SageMaker) StopEdgePackagingJobRequest(input *StopEdgePackagingJobInput) (req *request.Request, output *StopEdgePackagingJobOutput) {
	op := &request.Operation{
		Name:       opStopEdgePackagingJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &StopEdgePackagingJobInput{}
	}

	output = &StopEdgePackagingJobOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// StopEdgePackagingJob API operation for Amazon SageMaker Service.
//
// Request to stop an edge packaging job.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation StopEdgePackagingJob for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopEdgePackagingJob
func (c *SageMaker) StopEdgePackagingJob(input *StopEdgePackagingJobInput) (*StopEdgePackagingJobOutput, error) {
	req, out := c.StopEdgePackagingJobRequest(input)
	return out, req.Send()
}

// StopEdgePackagingJobWithContext is the same as StopEdgePackagingJob with the addition of
// the ability to pass a context and additional request options.
//
// See StopEdgePackagingJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) StopEdgePackagingJobWithContext(ctx aws.Context, input *StopEdgePackagingJobInput, opts ...request.Option) (*StopEdgePackagingJobOutput, error) {
	req, out := c.StopEdgePackagingJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opStopHyperParameterTuningJob = "StopHyperParameterTuningJob"

// StopHyperParameterTuningJobRequest generates a "aws/request.Request" representing the
// client's request for the StopHyperParameterTuningJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See StopHyperParameterTuningJob for more information on using the StopHyperParameterTuningJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the StopHyperParameterTuningJobRequest method.
//	req, resp := client.StopHyperParameterTuningJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopHyperParameterTuningJob
func (c *SageMaker) StopHyperParameterTuningJobRequest(input *StopHyperParameterTuningJobInput) (req *request.Request, output *StopHyperParameterTuningJobOutput) {
	op := &request.Operation{
		Name:       opStopHyperParameterTuningJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &StopHyperParameterTuningJobInput{}
	}

	output = &StopHyperParameterTuningJobOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// StopHyperParameterTuningJob API operation for Amazon SageMaker Service.
//
// Stops a running hyperparameter tuning job and all running training jobs that
// the tuning job launched.
//
// All model artifacts output from the training jobs are stored in Amazon Simple
// Storage Service (Amazon S3). All data that the training jobs write to Amazon
// CloudWatch Logs are still available in CloudWatch. After the tuning job moves
// to the Stopped state, it releases all reserved resources for the tuning job.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation StopHyperParameterTuningJob for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopHyperParameterTuningJob
func (c *SageMaker) StopHyperParameterTuningJob(input *StopHyperParameterTuningJobInput) (*StopHyperParameterTuningJobOutput, error) {
	req, out := c.StopHyperParameterTuningJobRequest(input)
	return out, req.Send()
}

// StopHyperParameterTuningJobWithContext is the same as StopHyperParameterTuningJob with the addition of
// the ability to pass a context and additional request options.
//
// See StopHyperParameterTuningJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) StopHyperParameterTuningJobWithContext(ctx aws.Context, input *StopHyperParameterTuningJobInput, opts ...request.Option) (*StopHyperParameterTuningJobOutput, error) {
	req, out := c.StopHyperParameterTuningJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opStopInferenceExperiment = "StopInferenceExperiment"

// StopInferenceExperimentRequest generates a "aws/request.Request" representing the
// client's request for the StopInferenceExperiment operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See StopInferenceExperiment for more information on using the StopInferenceExperiment
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the StopInferenceExperimentRequest method.
//	req, resp := client.StopInferenceExperimentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopInferenceExperiment
func (c *SageMaker) StopInferenceExperimentRequest(input *StopInferenceExperimentInput) (req *request.Request, output *StopInferenceExperimentOutput) {
	op := &request.Operation{
		Name:       opStopInferenceExperiment,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &StopInferenceExperimentInput{}
	}

	output = &StopInferenceExperimentOutput{}
	req = c.newRequest(op, input, output)
	return
}

// StopInferenceExperiment API operation for Amazon SageMaker Service.
//
// Stops an inference experiment.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation StopInferenceExperiment for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopInferenceExperiment
func (c *SageMaker) StopInferenceExperiment(input *StopInferenceExperimentInput) (*StopInferenceExperimentOutput, error) {
	req, out := c.StopInferenceExperimentRequest(input)
	return out, req.Send()
}

// StopInferenceExperimentWithContext is the same as StopInferenceExperiment with the addition of
// the ability to pass a context and additional request options.
//
// See StopInferenceExperiment for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) StopInferenceExperimentWithContext(ctx aws.Context, input *StopInferenceExperimentInput, opts ...request.Option) (*StopInferenceExperimentOutput, error) {
	req, out := c.StopInferenceExperimentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opStopInferenceRecommendationsJob = "StopInferenceRecommendationsJob"

// StopInferenceRecommendationsJobRequest generates a "aws/request.Request" representing the
// client's request for the StopInferenceRecommendationsJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See StopInferenceRecommendationsJob for more information on using the StopInferenceRecommendationsJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the StopInferenceRecommendationsJobRequest method.
//	req, resp := client.StopInferenceRecommendationsJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopInferenceRecommendationsJob
func (c *SageMaker) StopInferenceRecommendationsJobRequest(input *StopInferenceRecommendationsJobInput) (req *request.Request, output *StopInferenceRecommendationsJobOutput) {
	op := &request.Operation{
		Name:       opStopInferenceRecommendationsJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &StopInferenceRecommendationsJobInput{}
	}

	output = &StopInferenceRecommendationsJobOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// StopInferenceRecommendationsJob API operation for Amazon SageMaker Service.
//
// Stops an Inference Recommender job.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation StopInferenceRecommendationsJob for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopInferenceRecommendationsJob
func (c *SageMaker) StopInferenceRecommendationsJob(input *StopInferenceRecommendationsJobInput) (*StopInferenceRecommendationsJobOutput, error) {
	req, out := c.StopInferenceRecommendationsJobRequest(input)
	return out, req.Send()
}

// StopInferenceRecommendationsJobWithContext is the same as StopInferenceRecommendationsJob with the addition of
// the ability to pass a context and additional request options.
//
// See StopInferenceRecommendationsJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) StopInferenceRecommendationsJobWithContext(ctx aws.Context, input *StopInferenceRecommendationsJobInput, opts ...request.Option) (*StopInferenceRecommendationsJobOutput, error) {
	req, out := c.StopInferenceRecommendationsJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opStopLabelingJob = "StopLabelingJob"

// StopLabelingJobRequest generates a "aws/request.Request" representing the
// client's request for the StopLabelingJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See StopLabelingJob for more information on using the StopLabelingJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the StopLabelingJobRequest method.
//	req, resp := client.StopLabelingJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopLabelingJob
func (c *SageMaker) StopLabelingJobRequest(input *StopLabelingJobInput) (req *request.Request, output *StopLabelingJobOutput) {
	op := &request.Operation{
		Name:       opStopLabelingJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &StopLabelingJobInput{}
	}

	output = &StopLabelingJobOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// StopLabelingJob API operation for Amazon SageMaker Service.
//
// Stops a running labeling job. A job that is stopped cannot be restarted.
// Any results obtained before the job is stopped are placed in the Amazon S3
// output bucket.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation StopLabelingJob for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopLabelingJob
func (c *SageMaker) StopLabelingJob(input *StopLabelingJobInput) (*StopLabelingJobOutput, error) {
	req, out := c.StopLabelingJobRequest(input)
	return out, req.Send()
}

// StopLabelingJobWithContext is the same as StopLabelingJob with the addition of
// the ability to pass a context and additional request options.
//
// See StopLabelingJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) StopLabelingJobWithContext(ctx aws.Context, input *StopLabelingJobInput, opts ...request.Option) (*StopLabelingJobOutput, error) {
	req, out := c.StopLabelingJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opStopMonitoringSchedule = "StopMonitoringSchedule"

// StopMonitoringScheduleRequest generates a "aws/request.Request" representing the
// client's request for the StopMonitoringSchedule operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See StopMonitoringSchedule for more information on using the StopMonitoringSchedule
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the StopMonitoringScheduleRequest method.
//	req, resp := client.StopMonitoringScheduleRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopMonitoringSchedule
func (c *SageMaker) StopMonitoringScheduleRequest(input *StopMonitoringScheduleInput) (req *request.Request, output *StopMonitoringScheduleOutput) {
	op := &request.Operation{
		Name:       opStopMonitoringSchedule,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &StopMonitoringScheduleInput{}
	}

	output = &StopMonitoringScheduleOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// StopMonitoringSchedule API operation for Amazon SageMaker Service.
//
// Stops a previously started monitoring schedule.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation StopMonitoringSchedule for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopMonitoringSchedule
func (c *SageMaker) StopMonitoringSchedule(input *StopMonitoringScheduleInput) (*StopMonitoringScheduleOutput, error) {
	req, out := c.StopMonitoringScheduleRequest(input)
	return out, req.Send()
}

// StopMonitoringScheduleWithContext is the same as StopMonitoringSchedule with the addition of
// the ability to pass a context and additional request options.
//
// See StopMonitoringSchedule for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) StopMonitoringScheduleWithContext(ctx aws.Context, input *StopMonitoringScheduleInput, opts ...request.Option) (*StopMonitoringScheduleOutput, error) {
	req, out := c.StopMonitoringScheduleRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opStopNotebookInstance = "StopNotebookInstance"

// StopNotebookInstanceRequest generates a "aws/request.Request" representing the
// client's request for the StopNotebookInstance operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See StopNotebookInstance for more information on using the StopNotebookInstance
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the StopNotebookInstanceRequest method.
//	req, resp := client.StopNotebookInstanceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopNotebookInstance
func (c *SageMaker) StopNotebookInstanceRequest(input *StopNotebookInstanceInput) (req *request.Request, output *StopNotebookInstanceOutput) {
	op := &request.Operation{
		Name:       opStopNotebookInstance,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &StopNotebookInstanceInput{}
	}

	output = &StopNotebookInstanceOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// StopNotebookInstance API operation for Amazon SageMaker Service.
//
// Terminates the ML compute instance. Before terminating the instance, SageMaker
// disconnects the ML storage volume from it. SageMaker preserves the ML storage
// volume. SageMaker stops charging you for the ML compute instance when you
// call StopNotebookInstance.
//
// To access data on the ML storage volume for a notebook instance that has
// been terminated, call the StartNotebookInstance API. StartNotebookInstance
// launches another ML compute instance, configures it, and attaches the preserved
// ML storage volume so you can continue your work.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation StopNotebookInstance for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopNotebookInstance
func (c *SageMaker) StopNotebookInstance(input *StopNotebookInstanceInput) (*StopNotebookInstanceOutput, error) {
	req, out := c.StopNotebookInstanceRequest(input)
	return out, req.Send()
}

// StopNotebookInstanceWithContext is the same as StopNotebookInstance with the addition of
// the ability to pass a context and additional request options.
//
// See StopNotebookInstance for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) StopNotebookInstanceWithContext(ctx aws.Context, input *StopNotebookInstanceInput, opts ...request.Option) (*StopNotebookInstanceOutput, error) {
	req, out := c.StopNotebookInstanceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opStopPipelineExecution = "StopPipelineExecution"

// StopPipelineExecutionRequest generates a "aws/request.Request" representing the
// client's request for the StopPipelineExecution operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See StopPipelineExecution for more information on using the StopPipelineExecution
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the StopPipelineExecutionRequest method.
//	req, resp := client.StopPipelineExecutionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopPipelineExecution
func (c *SageMaker) StopPipelineExecutionRequest(input *StopPipelineExecutionInput) (req *request.Request, output *StopPipelineExecutionOutput) {
	op := &request.Operation{
		Name:       opStopPipelineExecution,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &StopPipelineExecutionInput{}
	}

	output = &StopPipelineExecutionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// StopPipelineExecution API operation for Amazon SageMaker Service.
//
// Stops a pipeline execution.
//
// # Callback Step
//
// A pipeline execution won't stop while a callback step is running. When you
// call StopPipelineExecution on a pipeline execution with a running callback
// step, SageMaker Pipelines sends an additional Amazon SQS message to the specified
// SQS queue. The body of the SQS message contains a "Status" field which is
// set to "Stopping".
//
// You should add logic to your Amazon SQS message consumer to take any needed
// action (for example, resource cleanup) upon receipt of the message followed
// by a call to SendPipelineExecutionStepSuccess or SendPipelineExecutionStepFailure.
//
// Only when SageMaker Pipelines receives one of these calls will it stop the
// pipeline execution.
//
// # Lambda Step
//
// A pipeline execution can't be stopped while a lambda step is running because
// the Lambda function invoked by the lambda step can't be stopped. If you attempt
// to stop the execution while the Lambda function is running, the pipeline
// waits for the Lambda function to finish or until the timeout is hit, whichever
// occurs first, and then stops. If the Lambda function finishes, the pipeline
// execution status is Stopped. If the timeout is hit the pipeline execution
// status is Failed.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation StopPipelineExecution for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFound
//     Resource being access is not found.
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopPipelineExecution
func (c *SageMaker) StopPipelineExecution(input *StopPipelineExecutionInput) (*StopPipelineExecutionOutput, error) {
	req, out := c.StopPipelineExecutionRequest(input)
	return out, req.Send()
}

// StopPipelineExecutionWithContext is the same as StopPipelineExecution with the addition of
// the ability to pass a context and additional request options.
//
// See StopPipelineExecution for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) StopPipelineExecutionWithContext(ctx aws.Context, input *StopPipelineExecutionInput, opts ...request.Option) (*StopPipelineExecutionOutput, error) {
	req, out := c.StopPipelineExecutionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opStopProcessingJob = "StopProcessingJob"

// StopProcessingJobRequest generates a "aws/request.Request" representing the
// client's request for the StopProcessingJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See StopProcessingJob for more information on using the StopProcessingJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the StopProcessingJobRequest method.
//	req, resp := client.StopProcessingJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopProcessingJob
func (c *SageMaker) StopProcessingJobRequest(input *StopProcessingJobInput) (req *request.Request, output *StopProcessingJobOutput) {
	op := &request.Operation{
		Name:       opStopProcessingJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &StopProcessingJobInput{}
	}

	output = &StopProcessingJobOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// StopProcessingJob API operation for Amazon SageMaker Service.
//
// Stops a processing job.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation StopProcessingJob for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopProcessingJob
func (c *SageMaker) StopProcessingJob(input *StopProcessingJobInput) (*StopProcessingJobOutput, error) {
	req, out := c.StopProcessingJobRequest(input)
	return out, req.Send()
}

// StopProcessingJobWithContext is the same as StopProcessingJob with the addition of
// the ability to pass a context and additional request options.
//
// See StopProcessingJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) StopProcessingJobWithContext(ctx aws.Context, input *StopProcessingJobInput, opts ...request.Option) (*StopProcessingJobOutput, error) {
	req, out := c.StopProcessingJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opStopTrainingJob = "StopTrainingJob"

// StopTrainingJobRequest generates a "aws/request.Request" representing the
// client's request for the StopTrainingJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See StopTrainingJob for more information on using the StopTrainingJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the StopTrainingJobRequest method.
//	req, resp := client.StopTrainingJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopTrainingJob
func (c *SageMaker) StopTrainingJobRequest(input *StopTrainingJobInput) (req *request.Request, output *StopTrainingJobOutput) {
	op := &request.Operation{
		Name:       opStopTrainingJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &StopTrainingJobInput{}
	}

	output = &StopTrainingJobOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// StopTrainingJob API operation for Amazon SageMaker Service.
//
// Stops a training job. To stop a job, SageMaker sends the algorithm the SIGTERM
// signal, which delays job termination for 120 seconds. Algorithms might use
// this 120-second window to save the model artifacts, so the results of the
// training is not lost.
//
// When it receives a StopTrainingJob request, SageMaker changes the status
// of the job to Stopping. After SageMaker stops the job, it sets the status
// to Stopped.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation StopTrainingJob for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopTrainingJob
func (c *SageMaker) StopTrainingJob(input *StopTrainingJobInput) (*StopTrainingJobOutput, error) {
	req, out := c.StopTrainingJobRequest(input)
	return out, req.Send()
}

// StopTrainingJobWithContext is the same as StopTrainingJob with the addition of
// the ability to pass a context and additional request options.
//
// See StopTrainingJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) StopTrainingJobWithContext(ctx aws.Context, input *StopTrainingJobInput, opts ...request.Option) (*StopTrainingJobOutput, error) {
	req, out := c.StopTrainingJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opStopTransformJob = "StopTransformJob"

// StopTransformJobRequest generates a "aws/request.Request" representing the
// client's request for the StopTransformJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See StopTransformJob for more information on using the StopTransformJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the StopTransformJobRequest method.
//	req, resp := client.StopTransformJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopTransformJob
func (c *SageMaker) StopTransformJobRequest(input *StopTransformJobInput) (req *request.Request, output *StopTransformJobOutput) {
	op := &request.Operation{
		Name:       opStopTransformJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &StopTransformJobInput{}
	}

	output = &StopTransformJobOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// StopTransformJob API operation for Amazon SageMaker Service.
//
// Stops a batch transform job.
//
// When Amazon SageMaker receives a StopTransformJob request, the status of
// the job changes to Stopping. After Amazon SageMaker stops the job, the status
// is set to Stopped. When you stop a batch transform job before it is completed,
// Amazon SageMaker doesn't store the job's output in Amazon S3.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation StopTransformJob for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/StopTransformJob
func (c *SageMaker) StopTransformJob(input *StopTransformJobInput) (*StopTransformJobOutput, error) {
	req, out := c.StopTransformJobRequest(input)
	return out, req.Send()
}

// StopTransformJobWithContext is the same as StopTransformJob with the addition of
// the ability to pass a context and additional request options.
//
// See StopTransformJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) StopTransformJobWithContext(ctx aws.Context, input *StopTransformJobInput, opts ...request.Option) (*StopTransformJobOutput, error) {
	req, out := c.StopTransformJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateAction = "UpdateAction"

// UpdateActionRequest generates a "aws/request.Request" representing the
// client's request for the UpdateAction operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateAction for more information on using the UpdateAction
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateActionRequest method.
//	req, resp := client.UpdateActionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateAction
func (c *SageMaker) UpdateActionRequest(input *UpdateActionInput) (req *request.Request, output *UpdateActionOutput) {
	op := &request.Operation{
		Name:       opUpdateAction,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateActionInput{}
	}

	output = &UpdateActionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateAction API operation for Amazon SageMaker Service.
//
// Updates an action.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateAction for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateAction
func (c *SageMaker) UpdateAction(input *UpdateActionInput) (*UpdateActionOutput, error) {
	req, out := c.UpdateActionRequest(input)
	return out, req.Send()
}

// UpdateActionWithContext is the same as UpdateAction with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateAction for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateActionWithContext(ctx aws.Context, input *UpdateActionInput, opts ...request.Option) (*UpdateActionOutput, error) {
	req, out := c.UpdateActionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateAppImageConfig = "UpdateAppImageConfig"

// UpdateAppImageConfigRequest generates a "aws/request.Request" representing the
// client's request for the UpdateAppImageConfig operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateAppImageConfig for more information on using the UpdateAppImageConfig
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateAppImageConfigRequest method.
//	req, resp := client.UpdateAppImageConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateAppImageConfig
func (c *SageMaker) UpdateAppImageConfigRequest(input *UpdateAppImageConfigInput) (req *request.Request, output *UpdateAppImageConfigOutput) {
	op := &request.Operation{
		Name:       opUpdateAppImageConfig,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateAppImageConfigInput{}
	}

	output = &UpdateAppImageConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateAppImageConfig API operation for Amazon SageMaker Service.
//
// Updates the properties of an AppImageConfig.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateAppImageConfig for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateAppImageConfig
func (c *SageMaker) UpdateAppImageConfig(input *UpdateAppImageConfigInput) (*UpdateAppImageConfigOutput, error) {
	req, out := c.UpdateAppImageConfigRequest(input)
	return out, req.Send()
}

// UpdateAppImageConfigWithContext is the same as UpdateAppImageConfig with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateAppImageConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateAppImageConfigWithContext(ctx aws.Context, input *UpdateAppImageConfigInput, opts ...request.Option) (*UpdateAppImageConfigOutput, error) {
	req, out := c.UpdateAppImageConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateArtifact = "UpdateArtifact"

// UpdateArtifactRequest generates a "aws/request.Request" representing the
// client's request for the UpdateArtifact operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateArtifact for more information on using the UpdateArtifact
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateArtifactRequest method.
//	req, resp := client.UpdateArtifactRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateArtifact
func (c *SageMaker) UpdateArtifactRequest(input *UpdateArtifactInput) (req *request.Request, output *UpdateArtifactOutput) {
	op := &request.Operation{
		Name:       opUpdateArtifact,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateArtifactInput{}
	}

	output = &UpdateArtifactOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateArtifact API operation for Amazon SageMaker Service.
//
// Updates an artifact.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateArtifact for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateArtifact
func (c *SageMaker) UpdateArtifact(input *UpdateArtifactInput) (*UpdateArtifactOutput, error) {
	req, out := c.UpdateArtifactRequest(input)
	return out, req.Send()
}

// UpdateArtifactWithContext is the same as UpdateArtifact with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateArtifact for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateArtifactWithContext(ctx aws.Context, input *UpdateArtifactInput, opts ...request.Option) (*UpdateArtifactOutput, error) {
	req, out := c.UpdateArtifactRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateCluster = "UpdateCluster"

// UpdateClusterRequest generates a "aws/request.Request" representing the
// client's request for the UpdateCluster operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateCluster for more information on using the UpdateCluster
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateClusterRequest method.
//	req, resp := client.UpdateClusterRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateCluster
func (c *SageMaker) UpdateClusterRequest(input *UpdateClusterInput) (req *request.Request, output *UpdateClusterOutput) {
	op := &request.Operation{
		Name:       opUpdateCluster,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateClusterInput{}
	}

	output = &UpdateClusterOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateCluster API operation for Amazon SageMaker Service.
//
// Update a SageMaker HyperPod cluster.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateCluster for usage and error information.
//
// Returned Error Types:
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateCluster
func (c *SageMaker) UpdateCluster(input *UpdateClusterInput) (*UpdateClusterOutput, error) {
	req, out := c.UpdateClusterRequest(input)
	return out, req.Send()
}

// UpdateClusterWithContext is the same as UpdateCluster with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateCluster for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateClusterWithContext(ctx aws.Context, input *UpdateClusterInput, opts ...request.Option) (*UpdateClusterOutput, error) {
	req, out := c.UpdateClusterRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateCodeRepository = "UpdateCodeRepository"

// UpdateCodeRepositoryRequest generates a "aws/request.Request" representing the
// client's request for the UpdateCodeRepository operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateCodeRepository for more information on using the UpdateCodeRepository
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateCodeRepositoryRequest method.
//	req, resp := client.UpdateCodeRepositoryRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateCodeRepository
func (c *SageMaker) UpdateCodeRepositoryRequest(input *UpdateCodeRepositoryInput) (req *request.Request, output *UpdateCodeRepositoryOutput) {
	op := &request.Operation{
		Name:       opUpdateCodeRepository,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateCodeRepositoryInput{}
	}

	output = &UpdateCodeRepositoryOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateCodeRepository API operation for Amazon SageMaker Service.
//
// Updates the specified Git repository with the specified values.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateCodeRepository for usage and error information.
//
// Returned Error Types:
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateCodeRepository
func (c *SageMaker) UpdateCodeRepository(input *UpdateCodeRepositoryInput) (*UpdateCodeRepositoryOutput, error) {
	req, out := c.UpdateCodeRepositoryRequest(input)
	return out, req.Send()
}

// UpdateCodeRepositoryWithContext is the same as UpdateCodeRepository with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateCodeRepository for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateCodeRepositoryWithContext(ctx aws.Context, input *UpdateCodeRepositoryInput, opts ...request.Option) (*UpdateCodeRepositoryOutput, error) {
	req, out := c.UpdateCodeRepositoryRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateContext = "UpdateContext"

// UpdateContextRequest generates a "aws/request.Request" representing the
// client's request for the UpdateContext operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateContext for more information on using the UpdateContext
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateContextRequest method.
//	req, resp := client.UpdateContextRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateContext
func (c *SageMaker) UpdateContextRequest(input *UpdateContextInput) (req *request.Request, output *UpdateContextOutput) {
	op := &request.Operation{
		Name:       opUpdateContext,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateContextInput{}
	}

	output = &UpdateContextOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateContext API operation for Amazon SageMaker Service.
//
// Updates a context.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateContext for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateContext
func (c *SageMaker) UpdateContext(input *UpdateContextInput) (*UpdateContextOutput, error) {
	req, out := c.UpdateContextRequest(input)
	return out, req.Send()
}

// UpdateContextWithContext is the same as UpdateContext with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateContext for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateContextWithContext(ctx aws.Context, input *UpdateContextInput, opts ...request.Option) (*UpdateContextOutput, error) {
	req, out := c.UpdateContextRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateDeviceFleet = "UpdateDeviceFleet"

// UpdateDeviceFleetRequest generates a "aws/request.Request" representing the
// client's request for the UpdateDeviceFleet operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateDeviceFleet for more information on using the UpdateDeviceFleet
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateDeviceFleetRequest method.
//	req, resp := client.UpdateDeviceFleetRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateDeviceFleet
func (c *SageMaker) UpdateDeviceFleetRequest(input *UpdateDeviceFleetInput) (req *request.Request, output *UpdateDeviceFleetOutput) {
	op := &request.Operation{
		Name:       opUpdateDeviceFleet,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateDeviceFleetInput{}
	}

	output = &UpdateDeviceFleetOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// UpdateDeviceFleet API operation for Amazon SageMaker Service.
//
// Updates a fleet of devices.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateDeviceFleet for usage and error information.
//
// Returned Error Types:
//   - ResourceInUse
//     Resource being accessed is in use.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateDeviceFleet
func (c *SageMaker) UpdateDeviceFleet(input *UpdateDeviceFleetInput) (*UpdateDeviceFleetOutput, error) {
	req, out := c.UpdateDeviceFleetRequest(input)
	return out, req.Send()
}

// UpdateDeviceFleetWithContext is the same as UpdateDeviceFleet with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateDeviceFleet for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateDeviceFleetWithContext(ctx aws.Context, input *UpdateDeviceFleetInput, opts ...request.Option) (*UpdateDeviceFleetOutput, error) {
	req, out := c.UpdateDeviceFleetRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateDevices = "UpdateDevices"

// UpdateDevicesRequest generates a "aws/request.Request" representing the
// client's request for the UpdateDevices operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateDevices for more information on using the UpdateDevices
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateDevicesRequest method.
//	req, resp := client.UpdateDevicesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateDevices
func (c *SageMaker) UpdateDevicesRequest(input *UpdateDevicesInput) (req *request.Request, output *UpdateDevicesOutput) {
	op := &request.Operation{
		Name:       opUpdateDevices,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateDevicesInput{}
	}

	output = &UpdateDevicesOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// UpdateDevices API operation for Amazon SageMaker Service.
//
// Updates one or more devices in a fleet.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateDevices for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateDevices
func (c *SageMaker) UpdateDevices(input *UpdateDevicesInput) (*UpdateDevicesOutput, error) {
	req, out := c.UpdateDevicesRequest(input)
	return out, req.Send()
}

// UpdateDevicesWithContext is the same as UpdateDevices with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateDevices for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateDevicesWithContext(ctx aws.Context, input *UpdateDevicesInput, opts ...request.Option) (*UpdateDevicesOutput, error) {
	req, out := c.UpdateDevicesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateDomain = "UpdateDomain"

// UpdateDomainRequest generates a "aws/request.Request" representing the
// client's request for the UpdateDomain operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateDomain for more information on using the UpdateDomain
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateDomainRequest method.
//	req, resp := client.UpdateDomainRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateDomain
func (c *SageMaker) UpdateDomainRequest(input *UpdateDomainInput) (req *request.Request, output *UpdateDomainOutput) {
	op := &request.Operation{
		Name:       opUpdateDomain,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateDomainInput{}
	}

	output = &UpdateDomainOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateDomain API operation for Amazon SageMaker Service.
//
// Updates the default settings for new user profiles in the domain.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateDomain for usage and error information.
//
// Returned Error Types:
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateDomain
func (c *SageMaker) UpdateDomain(input *UpdateDomainInput) (*UpdateDomainOutput, error) {
	req, out := c.UpdateDomainRequest(input)
	return out, req.Send()
}

// UpdateDomainWithContext is the same as UpdateDomain with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateDomain for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateDomainWithContext(ctx aws.Context, input *UpdateDomainInput, opts ...request.Option) (*UpdateDomainOutput, error) {
	req, out := c.UpdateDomainRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateEndpoint = "UpdateEndpoint"

// UpdateEndpointRequest generates a "aws/request.Request" representing the
// client's request for the UpdateEndpoint operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateEndpoint for more information on using the UpdateEndpoint
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateEndpointRequest method.
//	req, resp := client.UpdateEndpointRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateEndpoint
func (c *SageMaker) UpdateEndpointRequest(input *UpdateEndpointInput) (req *request.Request, output *UpdateEndpointOutput) {
	op := &request.Operation{
		Name:       opUpdateEndpoint,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateEndpointInput{}
	}

	output = &UpdateEndpointOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateEndpoint API operation for Amazon SageMaker Service.
//
// Deploys the EndpointConfig specified in the request to a new fleet of instances.
// SageMaker shifts endpoint traffic to the new instances with the updated endpoint
// configuration and then deletes the old instances using the previous EndpointConfig
// (there is no availability loss). For more information about how to control
// the update and traffic shifting process, see Update models in production
// (https://docs.aws.amazon.com/sagemaker/latest/dg/deployment-guardrails.html).
//
// When SageMaker receives the request, it sets the endpoint status to Updating.
// After updating the endpoint, it sets the status to InService. To check the
// status of an endpoint, use the DescribeEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html)
// API.
//
// You must not delete an EndpointConfig in use by an endpoint that is live
// or while the UpdateEndpoint or CreateEndpoint operations are being performed
// on the endpoint. To update an endpoint, you must create a new EndpointConfig.
//
// If you delete the EndpointConfig of an endpoint that is active or being created
// or updated you may lose visibility into the instance type the endpoint is
// using. The endpoint must be deleted in order to stop incurring charges.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateEndpoint for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateEndpoint
func (c *SageMaker) UpdateEndpoint(input *UpdateEndpointInput) (*UpdateEndpointOutput, error) {
	req, out := c.UpdateEndpointRequest(input)
	return out, req.Send()
}

// UpdateEndpointWithContext is the same as UpdateEndpoint with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateEndpoint for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateEndpointWithContext(ctx aws.Context, input *UpdateEndpointInput, opts ...request.Option) (*UpdateEndpointOutput, error) {
	req, out := c.UpdateEndpointRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateEndpointWeightsAndCapacities = "UpdateEndpointWeightsAndCapacities"

// UpdateEndpointWeightsAndCapacitiesRequest generates a "aws/request.Request" representing the
// client's request for the UpdateEndpointWeightsAndCapacities operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateEndpointWeightsAndCapacities for more information on using the UpdateEndpointWeightsAndCapacities
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateEndpointWeightsAndCapacitiesRequest method.
//	req, resp := client.UpdateEndpointWeightsAndCapacitiesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateEndpointWeightsAndCapacities
func (c *SageMaker) UpdateEndpointWeightsAndCapacitiesRequest(input *UpdateEndpointWeightsAndCapacitiesInput) (req *request.Request, output *UpdateEndpointWeightsAndCapacitiesOutput) {
	op := &request.Operation{
		Name:       opUpdateEndpointWeightsAndCapacities,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateEndpointWeightsAndCapacitiesInput{}
	}

	output = &UpdateEndpointWeightsAndCapacitiesOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateEndpointWeightsAndCapacities API operation for Amazon SageMaker Service.
//
// Updates variant weight of one or more variants associated with an existing
// endpoint, or capacity of one variant associated with an existing endpoint.
// When it receives the request, SageMaker sets the endpoint status to Updating.
// After updating the endpoint, it sets the status to InService. To check the
// status of an endpoint, use the DescribeEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html)
// API.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateEndpointWeightsAndCapacities for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateEndpointWeightsAndCapacities
func (c *SageMaker) UpdateEndpointWeightsAndCapacities(input *UpdateEndpointWeightsAndCapacitiesInput) (*UpdateEndpointWeightsAndCapacitiesOutput, error) {
	req, out := c.UpdateEndpointWeightsAndCapacitiesRequest(input)
	return out, req.Send()
}

// UpdateEndpointWeightsAndCapacitiesWithContext is the same as UpdateEndpointWeightsAndCapacities with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateEndpointWeightsAndCapacities for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateEndpointWeightsAndCapacitiesWithContext(ctx aws.Context, input *UpdateEndpointWeightsAndCapacitiesInput, opts ...request.Option) (*UpdateEndpointWeightsAndCapacitiesOutput, error) {
	req, out := c.UpdateEndpointWeightsAndCapacitiesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateExperiment = "UpdateExperiment"

// UpdateExperimentRequest generates a "aws/request.Request" representing the
// client's request for the UpdateExperiment operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateExperiment for more information on using the UpdateExperiment
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateExperimentRequest method.
//	req, resp := client.UpdateExperimentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateExperiment
func (c *SageMaker) UpdateExperimentRequest(input *UpdateExperimentInput) (req *request.Request, output *UpdateExperimentOutput) {
	op := &request.Operation{
		Name:       opUpdateExperiment,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateExperimentInput{}
	}

	output = &UpdateExperimentOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateExperiment API operation for Amazon SageMaker Service.
//
// Adds, updates, or removes the description of an experiment. Updates the display
// name of an experiment.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateExperiment for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateExperiment
func (c *SageMaker) UpdateExperiment(input *UpdateExperimentInput) (*UpdateExperimentOutput, error) {
	req, out := c.UpdateExperimentRequest(input)
	return out, req.Send()
}

// UpdateExperimentWithContext is the same as UpdateExperiment with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateExperiment for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateExperimentWithContext(ctx aws.Context, input *UpdateExperimentInput, opts ...request.Option) (*UpdateExperimentOutput, error) {
	req, out := c.UpdateExperimentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateFeatureGroup = "UpdateFeatureGroup"

// UpdateFeatureGroupRequest generates a "aws/request.Request" representing the
// client's request for the UpdateFeatureGroup operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateFeatureGroup for more information on using the UpdateFeatureGroup
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateFeatureGroupRequest method.
//	req, resp := client.UpdateFeatureGroupRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateFeatureGroup
func (c *SageMaker) UpdateFeatureGroupRequest(input *UpdateFeatureGroupInput) (req *request.Request, output *UpdateFeatureGroupOutput) {
	op := &request.Operation{
		Name:       opUpdateFeatureGroup,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateFeatureGroupInput{}
	}

	output = &UpdateFeatureGroupOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateFeatureGroup API operation for Amazon SageMaker Service.
//
// Updates the feature group by either adding features or updating the online
// store configuration. Use one of the following request parameters at a time
// while using the UpdateFeatureGroup API.
//
// You can add features for your feature group using the FeatureAdditions request
// parameter. Features cannot be removed from a feature group.
//
// You can update the online store configuration by using the OnlineStoreConfig
// request parameter. If a TtlDuration is specified, the default TtlDuration
// applies for all records added to the feature group after the feature group
// is updated. If a record level TtlDuration exists from using the PutRecord
// API, the record level TtlDuration applies to that record instead of the default
// TtlDuration.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateFeatureGroup for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFound
//     Resource being access is not found.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateFeatureGroup
func (c *SageMaker) UpdateFeatureGroup(input *UpdateFeatureGroupInput) (*UpdateFeatureGroupOutput, error) {
	req, out := c.UpdateFeatureGroupRequest(input)
	return out, req.Send()
}

// UpdateFeatureGroupWithContext is the same as UpdateFeatureGroup with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateFeatureGroup for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateFeatureGroupWithContext(ctx aws.Context, input *UpdateFeatureGroupInput, opts ...request.Option) (*UpdateFeatureGroupOutput, error) {
	req, out := c.UpdateFeatureGroupRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateFeatureMetadata = "UpdateFeatureMetadata"

// UpdateFeatureMetadataRequest generates a "aws/request.Request" representing the
// client's request for the UpdateFeatureMetadata operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateFeatureMetadata for more information on using the UpdateFeatureMetadata
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateFeatureMetadataRequest method.
//	req, resp := client.UpdateFeatureMetadataRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateFeatureMetadata
func (c *SageMaker) UpdateFeatureMetadataRequest(input *UpdateFeatureMetadataInput) (req *request.Request, output *UpdateFeatureMetadataOutput) {
	op := &request.Operation{
		Name:       opUpdateFeatureMetadata,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateFeatureMetadataInput{}
	}

	output = &UpdateFeatureMetadataOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// UpdateFeatureMetadata API operation for Amazon SageMaker Service.
//
// Updates the description and parameters of the feature group.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateFeatureMetadata for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateFeatureMetadata
func (c *SageMaker) UpdateFeatureMetadata(input *UpdateFeatureMetadataInput) (*UpdateFeatureMetadataOutput, error) {
	req, out := c.UpdateFeatureMetadataRequest(input)
	return out, req.Send()
}

// UpdateFeatureMetadataWithContext is the same as UpdateFeatureMetadata with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateFeatureMetadata for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateFeatureMetadataWithContext(ctx aws.Context, input *UpdateFeatureMetadataInput, opts ...request.Option) (*UpdateFeatureMetadataOutput, error) {
	req, out := c.UpdateFeatureMetadataRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateHub = "UpdateHub"

// UpdateHubRequest generates a "aws/request.Request" representing the
// client's request for the UpdateHub operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateHub for more information on using the UpdateHub
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateHubRequest method.
//	req, resp := client.UpdateHubRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateHub
func (c *SageMaker) UpdateHubRequest(input *UpdateHubInput) (req *request.Request, output *UpdateHubOutput) {
	op := &request.Operation{
		Name:       opUpdateHub,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateHubInput{}
	}

	output = &UpdateHubOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateHub API operation for Amazon SageMaker Service.
//
// Update a hub.
//
// Hub APIs are only callable through SageMaker Studio.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateHub for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateHub
func (c *SageMaker) UpdateHub(input *UpdateHubInput) (*UpdateHubOutput, error) {
	req, out := c.UpdateHubRequest(input)
	return out, req.Send()
}

// UpdateHubWithContext is the same as UpdateHub with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateHub for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateHubWithContext(ctx aws.Context, input *UpdateHubInput, opts ...request.Option) (*UpdateHubOutput, error) {
	req, out := c.UpdateHubRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateImage = "UpdateImage"

// UpdateImageRequest generates a "aws/request.Request" representing the
// client's request for the UpdateImage operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateImage for more information on using the UpdateImage
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateImageRequest method.
//	req, resp := client.UpdateImageRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateImage
func (c *SageMaker) UpdateImageRequest(input *UpdateImageInput) (req *request.Request, output *UpdateImageOutput) {
	op := &request.Operation{
		Name:       opUpdateImage,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateImageInput{}
	}

	output = &UpdateImageOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateImage API operation for Amazon SageMaker Service.
//
// Updates the properties of a SageMaker image. To change the image's tags,
// use the AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html)
// and DeleteTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteTags.html)
// APIs.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateImage for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateImage
func (c *SageMaker) UpdateImage(input *UpdateImageInput) (*UpdateImageOutput, error) {
	req, out := c.UpdateImageRequest(input)
	return out, req.Send()
}

// UpdateImageWithContext is the same as UpdateImage with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateImage for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateImageWithContext(ctx aws.Context, input *UpdateImageInput, opts ...request.Option) (*UpdateImageOutput, error) {
	req, out := c.UpdateImageRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateImageVersion = "UpdateImageVersion"

// UpdateImageVersionRequest generates a "aws/request.Request" representing the
// client's request for the UpdateImageVersion operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateImageVersion for more information on using the UpdateImageVersion
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateImageVersionRequest method.
//	req, resp := client.UpdateImageVersionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateImageVersion
func (c *SageMaker) UpdateImageVersionRequest(input *UpdateImageVersionInput) (req *request.Request, output *UpdateImageVersionOutput) {
	op := &request.Operation{
		Name:       opUpdateImageVersion,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateImageVersionInput{}
	}

	output = &UpdateImageVersionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateImageVersion API operation for Amazon SageMaker Service.
//
// Updates the properties of a SageMaker image version.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateImageVersion for usage and error information.
//
// Returned Error Types:
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateImageVersion
func (c *SageMaker) UpdateImageVersion(input *UpdateImageVersionInput) (*UpdateImageVersionOutput, error) {
	req, out := c.UpdateImageVersionRequest(input)
	return out, req.Send()
}

// UpdateImageVersionWithContext is the same as UpdateImageVersion with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateImageVersion for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateImageVersionWithContext(ctx aws.Context, input *UpdateImageVersionInput, opts ...request.Option) (*UpdateImageVersionOutput, error) {
	req, out := c.UpdateImageVersionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateInferenceComponent = "UpdateInferenceComponent"

// UpdateInferenceComponentRequest generates a "aws/request.Request" representing the
// client's request for the UpdateInferenceComponent operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateInferenceComponent for more information on using the UpdateInferenceComponent
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateInferenceComponentRequest method.
//	req, resp := client.UpdateInferenceComponentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateInferenceComponent
func (c *SageMaker) UpdateInferenceComponentRequest(input *UpdateInferenceComponentInput) (req *request.Request, output *UpdateInferenceComponentOutput) {
	op := &request.Operation{
		Name:       opUpdateInferenceComponent,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateInferenceComponentInput{}
	}

	output = &UpdateInferenceComponentOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateInferenceComponent API operation for Amazon SageMaker Service.
//
// Updates an inference component.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateInferenceComponent for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateInferenceComponent
func (c *SageMaker) UpdateInferenceComponent(input *UpdateInferenceComponentInput) (*UpdateInferenceComponentOutput, error) {
	req, out := c.UpdateInferenceComponentRequest(input)
	return out, req.Send()
}

// UpdateInferenceComponentWithContext is the same as UpdateInferenceComponent with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateInferenceComponent for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateInferenceComponentWithContext(ctx aws.Context, input *UpdateInferenceComponentInput, opts ...request.Option) (*UpdateInferenceComponentOutput, error) {
	req, out := c.UpdateInferenceComponentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateInferenceComponentRuntimeConfig = "UpdateInferenceComponentRuntimeConfig"

// UpdateInferenceComponentRuntimeConfigRequest generates a "aws/request.Request" representing the
// client's request for the UpdateInferenceComponentRuntimeConfig operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateInferenceComponentRuntimeConfig for more information on using the UpdateInferenceComponentRuntimeConfig
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateInferenceComponentRuntimeConfigRequest method.
//	req, resp := client.UpdateInferenceComponentRuntimeConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateInferenceComponentRuntimeConfig
func (c *SageMaker) UpdateInferenceComponentRuntimeConfigRequest(input *UpdateInferenceComponentRuntimeConfigInput) (req *request.Request, output *UpdateInferenceComponentRuntimeConfigOutput) {
	op := &request.Operation{
		Name:       opUpdateInferenceComponentRuntimeConfig,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateInferenceComponentRuntimeConfigInput{}
	}

	output = &UpdateInferenceComponentRuntimeConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateInferenceComponentRuntimeConfig API operation for Amazon SageMaker Service.
//
// Runtime settings for a model that is deployed with an inference component.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateInferenceComponentRuntimeConfig for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateInferenceComponentRuntimeConfig
func (c *SageMaker) UpdateInferenceComponentRuntimeConfig(input *UpdateInferenceComponentRuntimeConfigInput) (*UpdateInferenceComponentRuntimeConfigOutput, error) {
	req, out := c.UpdateInferenceComponentRuntimeConfigRequest(input)
	return out, req.Send()
}

// UpdateInferenceComponentRuntimeConfigWithContext is the same as UpdateInferenceComponentRuntimeConfig with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateInferenceComponentRuntimeConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateInferenceComponentRuntimeConfigWithContext(ctx aws.Context, input *UpdateInferenceComponentRuntimeConfigInput, opts ...request.Option) (*UpdateInferenceComponentRuntimeConfigOutput, error) {
	req, out := c.UpdateInferenceComponentRuntimeConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateInferenceExperiment = "UpdateInferenceExperiment"

// UpdateInferenceExperimentRequest generates a "aws/request.Request" representing the
// client's request for the UpdateInferenceExperiment operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateInferenceExperiment for more information on using the UpdateInferenceExperiment
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateInferenceExperimentRequest method.
//	req, resp := client.UpdateInferenceExperimentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateInferenceExperiment
func (c *SageMaker) UpdateInferenceExperimentRequest(input *UpdateInferenceExperimentInput) (req *request.Request, output *UpdateInferenceExperimentOutput) {
	op := &request.Operation{
		Name:       opUpdateInferenceExperiment,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateInferenceExperimentInput{}
	}

	output = &UpdateInferenceExperimentOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateInferenceExperiment API operation for Amazon SageMaker Service.
//
// Updates an inference experiment that you created. The status of the inference
// experiment has to be either Created, Running. For more information on the
// status of an inference experiment, see DescribeInferenceExperiment (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeInferenceExperiment.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateInferenceExperiment for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateInferenceExperiment
func (c *SageMaker) UpdateInferenceExperiment(input *UpdateInferenceExperimentInput) (*UpdateInferenceExperimentOutput, error) {
	req, out := c.UpdateInferenceExperimentRequest(input)
	return out, req.Send()
}

// UpdateInferenceExperimentWithContext is the same as UpdateInferenceExperiment with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateInferenceExperiment for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateInferenceExperimentWithContext(ctx aws.Context, input *UpdateInferenceExperimentInput, opts ...request.Option) (*UpdateInferenceExperimentOutput, error) {
	req, out := c.UpdateInferenceExperimentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateModelCard = "UpdateModelCard"

// UpdateModelCardRequest generates a "aws/request.Request" representing the
// client's request for the UpdateModelCard operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateModelCard for more information on using the UpdateModelCard
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateModelCardRequest method.
//	req, resp := client.UpdateModelCardRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateModelCard
func (c *SageMaker) UpdateModelCardRequest(input *UpdateModelCardInput) (req *request.Request, output *UpdateModelCardOutput) {
	op := &request.Operation{
		Name:       opUpdateModelCard,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateModelCardInput{}
	}

	output = &UpdateModelCardOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateModelCard API operation for Amazon SageMaker Service.
//
// Update an Amazon SageMaker Model Card.
//
// You cannot update both model card content and model card status in a single
// call.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateModelCard for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFound
//     Resource being access is not found.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateModelCard
func (c *SageMaker) UpdateModelCard(input *UpdateModelCardInput) (*UpdateModelCardOutput, error) {
	req, out := c.UpdateModelCardRequest(input)
	return out, req.Send()
}

// UpdateModelCardWithContext is the same as UpdateModelCard with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateModelCard for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateModelCardWithContext(ctx aws.Context, input *UpdateModelCardInput, opts ...request.Option) (*UpdateModelCardOutput, error) {
	req, out := c.UpdateModelCardRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateModelPackage = "UpdateModelPackage"

// UpdateModelPackageRequest generates a "aws/request.Request" representing the
// client's request for the UpdateModelPackage operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateModelPackage for more information on using the UpdateModelPackage
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateModelPackageRequest method.
//	req, resp := client.UpdateModelPackageRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateModelPackage
func (c *SageMaker) UpdateModelPackageRequest(input *UpdateModelPackageInput) (req *request.Request, output *UpdateModelPackageOutput) {
	op := &request.Operation{
		Name:       opUpdateModelPackage,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateModelPackageInput{}
	}

	output = &UpdateModelPackageOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateModelPackage API operation for Amazon SageMaker Service.
//
// Updates a versioned model.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateModelPackage for usage and error information.
//
// Returned Error Types:
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateModelPackage
func (c *SageMaker) UpdateModelPackage(input *UpdateModelPackageInput) (*UpdateModelPackageOutput, error) {
	req, out := c.UpdateModelPackageRequest(input)
	return out, req.Send()
}

// UpdateModelPackageWithContext is the same as UpdateModelPackage with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateModelPackage for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateModelPackageWithContext(ctx aws.Context, input *UpdateModelPackageInput, opts ...request.Option) (*UpdateModelPackageOutput, error) {
	req, out := c.UpdateModelPackageRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateMonitoringAlert = "UpdateMonitoringAlert"

// UpdateMonitoringAlertRequest generates a "aws/request.Request" representing the
// client's request for the UpdateMonitoringAlert operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateMonitoringAlert for more information on using the UpdateMonitoringAlert
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateMonitoringAlertRequest method.
//	req, resp := client.UpdateMonitoringAlertRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateMonitoringAlert
func (c *SageMaker) UpdateMonitoringAlertRequest(input *UpdateMonitoringAlertInput) (req *request.Request, output *UpdateMonitoringAlertOutput) {
	op := &request.Operation{
		Name:       opUpdateMonitoringAlert,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateMonitoringAlertInput{}
	}

	output = &UpdateMonitoringAlertOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateMonitoringAlert API operation for Amazon SageMaker Service.
//
// Update the parameters of a model monitor alert.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateMonitoringAlert for usage and error information.
//
// Returned Error Types:
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateMonitoringAlert
func (c *SageMaker) UpdateMonitoringAlert(input *UpdateMonitoringAlertInput) (*UpdateMonitoringAlertOutput, error) {
	req, out := c.UpdateMonitoringAlertRequest(input)
	return out, req.Send()
}

// UpdateMonitoringAlertWithContext is the same as UpdateMonitoringAlert with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateMonitoringAlert for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateMonitoringAlertWithContext(ctx aws.Context, input *UpdateMonitoringAlertInput, opts ...request.Option) (*UpdateMonitoringAlertOutput, error) {
	req, out := c.UpdateMonitoringAlertRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateMonitoringSchedule = "UpdateMonitoringSchedule"

// UpdateMonitoringScheduleRequest generates a "aws/request.Request" representing the
// client's request for the UpdateMonitoringSchedule operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateMonitoringSchedule for more information on using the UpdateMonitoringSchedule
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateMonitoringScheduleRequest method.
//	req, resp := client.UpdateMonitoringScheduleRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateMonitoringSchedule
func (c *SageMaker) UpdateMonitoringScheduleRequest(input *UpdateMonitoringScheduleInput) (req *request.Request, output *UpdateMonitoringScheduleOutput) {
	op := &request.Operation{
		Name:       opUpdateMonitoringSchedule,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateMonitoringScheduleInput{}
	}

	output = &UpdateMonitoringScheduleOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateMonitoringSchedule API operation for Amazon SageMaker Service.
//
// Updates a previously created schedule.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateMonitoringSchedule for usage and error information.
//
// Returned Error Types:
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateMonitoringSchedule
func (c *SageMaker) UpdateMonitoringSchedule(input *UpdateMonitoringScheduleInput) (*UpdateMonitoringScheduleOutput, error) {
	req, out := c.UpdateMonitoringScheduleRequest(input)
	return out, req.Send()
}

// UpdateMonitoringScheduleWithContext is the same as UpdateMonitoringSchedule with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateMonitoringSchedule for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateMonitoringScheduleWithContext(ctx aws.Context, input *UpdateMonitoringScheduleInput, opts ...request.Option) (*UpdateMonitoringScheduleOutput, error) {
	req, out := c.UpdateMonitoringScheduleRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateNotebookInstance = "UpdateNotebookInstance"

// UpdateNotebookInstanceRequest generates a "aws/request.Request" representing the
// client's request for the UpdateNotebookInstance operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateNotebookInstance for more information on using the UpdateNotebookInstance
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateNotebookInstanceRequest method.
//	req, resp := client.UpdateNotebookInstanceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateNotebookInstance
func (c *SageMaker) UpdateNotebookInstanceRequest(input *UpdateNotebookInstanceInput) (req *request.Request, output *UpdateNotebookInstanceOutput) {
	op := &request.Operation{
		Name:       opUpdateNotebookInstance,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateNotebookInstanceInput{}
	}

	output = &UpdateNotebookInstanceOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// UpdateNotebookInstance API operation for Amazon SageMaker Service.
//
// Updates a notebook instance. NotebookInstance updates include upgrading or
// downgrading the ML compute instance used for your notebook instance to accommodate
// changes in your workload requirements.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateNotebookInstance for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateNotebookInstance
func (c *SageMaker) UpdateNotebookInstance(input *UpdateNotebookInstanceInput) (*UpdateNotebookInstanceOutput, error) {
	req, out := c.UpdateNotebookInstanceRequest(input)
	return out, req.Send()
}

// UpdateNotebookInstanceWithContext is the same as UpdateNotebookInstance with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateNotebookInstance for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateNotebookInstanceWithContext(ctx aws.Context, input *UpdateNotebookInstanceInput, opts ...request.Option) (*UpdateNotebookInstanceOutput, error) {
	req, out := c.UpdateNotebookInstanceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateNotebookInstanceLifecycleConfig = "UpdateNotebookInstanceLifecycleConfig"

// UpdateNotebookInstanceLifecycleConfigRequest generates a "aws/request.Request" representing the
// client's request for the UpdateNotebookInstanceLifecycleConfig operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateNotebookInstanceLifecycleConfig for more information on using the UpdateNotebookInstanceLifecycleConfig
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateNotebookInstanceLifecycleConfigRequest method.
//	req, resp := client.UpdateNotebookInstanceLifecycleConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateNotebookInstanceLifecycleConfig
func (c *SageMaker) UpdateNotebookInstanceLifecycleConfigRequest(input *UpdateNotebookInstanceLifecycleConfigInput) (req *request.Request, output *UpdateNotebookInstanceLifecycleConfigOutput) {
	op := &request.Operation{
		Name:       opUpdateNotebookInstanceLifecycleConfig,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateNotebookInstanceLifecycleConfigInput{}
	}

	output = &UpdateNotebookInstanceLifecycleConfigOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// UpdateNotebookInstanceLifecycleConfig API operation for Amazon SageMaker Service.
//
// Updates a notebook instance lifecycle configuration created with the CreateNotebookInstanceLifecycleConfig
// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateNotebookInstanceLifecycleConfig.html)
// API.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateNotebookInstanceLifecycleConfig for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateNotebookInstanceLifecycleConfig
func (c *SageMaker) UpdateNotebookInstanceLifecycleConfig(input *UpdateNotebookInstanceLifecycleConfigInput) (*UpdateNotebookInstanceLifecycleConfigOutput, error) {
	req, out := c.UpdateNotebookInstanceLifecycleConfigRequest(input)
	return out, req.Send()
}

// UpdateNotebookInstanceLifecycleConfigWithContext is the same as UpdateNotebookInstanceLifecycleConfig with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateNotebookInstanceLifecycleConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateNotebookInstanceLifecycleConfigWithContext(ctx aws.Context, input *UpdateNotebookInstanceLifecycleConfigInput, opts ...request.Option) (*UpdateNotebookInstanceLifecycleConfigOutput, error) {
	req, out := c.UpdateNotebookInstanceLifecycleConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdatePipeline = "UpdatePipeline"

// UpdatePipelineRequest generates a "aws/request.Request" representing the
// client's request for the UpdatePipeline operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdatePipeline for more information on using the UpdatePipeline
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdatePipelineRequest method.
//	req, resp := client.UpdatePipelineRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdatePipeline
func (c *SageMaker) UpdatePipelineRequest(input *UpdatePipelineInput) (req *request.Request, output *UpdatePipelineOutput) {
	op := &request.Operation{
		Name:       opUpdatePipeline,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdatePipelineInput{}
	}

	output = &UpdatePipelineOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdatePipeline API operation for Amazon SageMaker Service.
//
// Updates a pipeline.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdatePipeline for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFound
//     Resource being access is not found.
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdatePipeline
func (c *SageMaker) UpdatePipeline(input *UpdatePipelineInput) (*UpdatePipelineOutput, error) {
	req, out := c.UpdatePipelineRequest(input)
	return out, req.Send()
}

// UpdatePipelineWithContext is the same as UpdatePipeline with the addition of
// the ability to pass a context and additional request options.
//
// See UpdatePipeline for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdatePipelineWithContext(ctx aws.Context, input *UpdatePipelineInput, opts ...request.Option) (*UpdatePipelineOutput, error) {
	req, out := c.UpdatePipelineRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdatePipelineExecution = "UpdatePipelineExecution"

// UpdatePipelineExecutionRequest generates a "aws/request.Request" representing the
// client's request for the UpdatePipelineExecution operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdatePipelineExecution for more information on using the UpdatePipelineExecution
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdatePipelineExecutionRequest method.
//	req, resp := client.UpdatePipelineExecutionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdatePipelineExecution
func (c *SageMaker) UpdatePipelineExecutionRequest(input *UpdatePipelineExecutionInput) (req *request.Request, output *UpdatePipelineExecutionOutput) {
	op := &request.Operation{
		Name:       opUpdatePipelineExecution,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdatePipelineExecutionInput{}
	}

	output = &UpdatePipelineExecutionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdatePipelineExecution API operation for Amazon SageMaker Service.
//
// Updates a pipeline execution.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdatePipelineExecution for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFound
//     Resource being access is not found.
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdatePipelineExecution
func (c *SageMaker) UpdatePipelineExecution(input *UpdatePipelineExecutionInput) (*UpdatePipelineExecutionOutput, error) {
	req, out := c.UpdatePipelineExecutionRequest(input)
	return out, req.Send()
}

// UpdatePipelineExecutionWithContext is the same as UpdatePipelineExecution with the addition of
// the ability to pass a context and additional request options.
//
// See UpdatePipelineExecution for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdatePipelineExecutionWithContext(ctx aws.Context, input *UpdatePipelineExecutionInput, opts ...request.Option) (*UpdatePipelineExecutionOutput, error) {
	req, out := c.UpdatePipelineExecutionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateProject = "UpdateProject"

// UpdateProjectRequest generates a "aws/request.Request" representing the
// client's request for the UpdateProject operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateProject for more information on using the UpdateProject
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateProjectRequest method.
//	req, resp := client.UpdateProjectRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateProject
func (c *SageMaker) UpdateProjectRequest(input *UpdateProjectInput) (req *request.Request, output *UpdateProjectOutput) {
	op := &request.Operation{
		Name:       opUpdateProject,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateProjectInput{}
	}

	output = &UpdateProjectOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateProject API operation for Amazon SageMaker Service.
//
// Updates a machine learning (ML) project that is created from a template that
// sets up an ML pipeline from training to deploying an approved model.
//
// You must not update a project that is in use. If you update the ServiceCatalogProvisioningUpdateDetails
// of a project that is active or being created, or updated, you may lose resources
// already created by the project.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateProject for usage and error information.
//
// Returned Error Types:
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateProject
func (c *SageMaker) UpdateProject(input *UpdateProjectInput) (*UpdateProjectOutput, error) {
	req, out := c.UpdateProjectRequest(input)
	return out, req.Send()
}

// UpdateProjectWithContext is the same as UpdateProject with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateProject for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateProjectWithContext(ctx aws.Context, input *UpdateProjectInput, opts ...request.Option) (*UpdateProjectOutput, error) {
	req, out := c.UpdateProjectRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateSpace = "UpdateSpace"

// UpdateSpaceRequest generates a "aws/request.Request" representing the
// client's request for the UpdateSpace operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateSpace for more information on using the UpdateSpace
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateSpaceRequest method.
//	req, resp := client.UpdateSpaceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateSpace
func (c *SageMaker) UpdateSpaceRequest(input *UpdateSpaceInput) (req *request.Request, output *UpdateSpaceOutput) {
	op := &request.Operation{
		Name:       opUpdateSpace,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateSpaceInput{}
	}

	output = &UpdateSpaceOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateSpace API operation for Amazon SageMaker Service.
//
// Updates the settings of a space.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateSpace for usage and error information.
//
// Returned Error Types:
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateSpace
func (c *SageMaker) UpdateSpace(input *UpdateSpaceInput) (*UpdateSpaceOutput, error) {
	req, out := c.UpdateSpaceRequest(input)
	return out, req.Send()
}

// UpdateSpaceWithContext is the same as UpdateSpace with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateSpace for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateSpaceWithContext(ctx aws.Context, input *UpdateSpaceInput, opts ...request.Option) (*UpdateSpaceOutput, error) {
	req, out := c.UpdateSpaceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateTrainingJob = "UpdateTrainingJob"

// UpdateTrainingJobRequest generates a "aws/request.Request" representing the
// client's request for the UpdateTrainingJob operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateTrainingJob for more information on using the UpdateTrainingJob
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateTrainingJobRequest method.
//	req, resp := client.UpdateTrainingJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateTrainingJob
func (c *SageMaker) UpdateTrainingJobRequest(input *UpdateTrainingJobInput) (req *request.Request, output *UpdateTrainingJobOutput) {
	op := &request.Operation{
		Name:       opUpdateTrainingJob,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateTrainingJobInput{}
	}

	output = &UpdateTrainingJobOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateTrainingJob API operation for Amazon SageMaker Service.
//
// Update a model training job to request a new Debugger profiling configuration
// or to change warm pool retention length.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateTrainingJob for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFound
//     Resource being access is not found.
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateTrainingJob
func (c *SageMaker) UpdateTrainingJob(input *UpdateTrainingJobInput) (*UpdateTrainingJobOutput, error) {
	req, out := c.UpdateTrainingJobRequest(input)
	return out, req.Send()
}

// UpdateTrainingJobWithContext is the same as UpdateTrainingJob with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateTrainingJob for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateTrainingJobWithContext(ctx aws.Context, input *UpdateTrainingJobInput, opts ...request.Option) (*UpdateTrainingJobOutput, error) {
	req, out := c.UpdateTrainingJobRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateTrial = "UpdateTrial"

// UpdateTrialRequest generates a "aws/request.Request" representing the
// client's request for the UpdateTrial operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateTrial for more information on using the UpdateTrial
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateTrialRequest method.
//	req, resp := client.UpdateTrialRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateTrial
func (c *SageMaker) UpdateTrialRequest(input *UpdateTrialInput) (req *request.Request, output *UpdateTrialOutput) {
	op := &request.Operation{
		Name:       opUpdateTrial,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateTrialInput{}
	}

	output = &UpdateTrialOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateTrial API operation for Amazon SageMaker Service.
//
// Updates the display name of a trial.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateTrial for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateTrial
func (c *SageMaker) UpdateTrial(input *UpdateTrialInput) (*UpdateTrialOutput, error) {
	req, out := c.UpdateTrialRequest(input)
	return out, req.Send()
}

// UpdateTrialWithContext is the same as UpdateTrial with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateTrial for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateTrialWithContext(ctx aws.Context, input *UpdateTrialInput, opts ...request.Option) (*UpdateTrialOutput, error) {
	req, out := c.UpdateTrialRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateTrialComponent = "UpdateTrialComponent"

// UpdateTrialComponentRequest generates a "aws/request.Request" representing the
// client's request for the UpdateTrialComponent operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateTrialComponent for more information on using the UpdateTrialComponent
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateTrialComponentRequest method.
//	req, resp := client.UpdateTrialComponentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateTrialComponent
func (c *SageMaker) UpdateTrialComponentRequest(input *UpdateTrialComponentInput) (req *request.Request, output *UpdateTrialComponentOutput) {
	op := &request.Operation{
		Name:       opUpdateTrialComponent,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateTrialComponentInput{}
	}

	output = &UpdateTrialComponentOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateTrialComponent API operation for Amazon SageMaker Service.
//
// Updates one or more properties of a trial component.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateTrialComponent for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateTrialComponent
func (c *SageMaker) UpdateTrialComponent(input *UpdateTrialComponentInput) (*UpdateTrialComponentOutput, error) {
	req, out := c.UpdateTrialComponentRequest(input)
	return out, req.Send()
}

// UpdateTrialComponentWithContext is the same as UpdateTrialComponent with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateTrialComponent for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateTrialComponentWithContext(ctx aws.Context, input *UpdateTrialComponentInput, opts ...request.Option) (*UpdateTrialComponentOutput, error) {
	req, out := c.UpdateTrialComponentRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateUserProfile = "UpdateUserProfile"

// UpdateUserProfileRequest generates a "aws/request.Request" representing the
// client's request for the UpdateUserProfile operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateUserProfile for more information on using the UpdateUserProfile
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateUserProfileRequest method.
//	req, resp := client.UpdateUserProfileRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateUserProfile
func (c *SageMaker) UpdateUserProfileRequest(input *UpdateUserProfileInput) (req *request.Request, output *UpdateUserProfileOutput) {
	op := &request.Operation{
		Name:       opUpdateUserProfile,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateUserProfileInput{}
	}

	output = &UpdateUserProfileOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateUserProfile API operation for Amazon SageMaker Service.
//
// Updates a user profile.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateUserProfile for usage and error information.
//
// Returned Error Types:
//
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
//   - ResourceInUse
//     Resource being accessed is in use.
//
//   - ResourceNotFound
//     Resource being access is not found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateUserProfile
func (c *SageMaker) UpdateUserProfile(input *UpdateUserProfileInput) (*UpdateUserProfileOutput, error) {
	req, out := c.UpdateUserProfileRequest(input)
	return out, req.Send()
}

// UpdateUserProfileWithContext is the same as UpdateUserProfile with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateUserProfile for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateUserProfileWithContext(ctx aws.Context, input *UpdateUserProfileInput, opts ...request.Option) (*UpdateUserProfileOutput, error) {
	req, out := c.UpdateUserProfileRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateWorkforce = "UpdateWorkforce"

// UpdateWorkforceRequest generates a "aws/request.Request" representing the
// client's request for the UpdateWorkforce operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateWorkforce for more information on using the UpdateWorkforce
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateWorkforceRequest method.
//	req, resp := client.UpdateWorkforceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateWorkforce
func (c *SageMaker) UpdateWorkforceRequest(input *UpdateWorkforceInput) (req *request.Request, output *UpdateWorkforceOutput) {
	op := &request.Operation{
		Name:       opUpdateWorkforce,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateWorkforceInput{}
	}

	output = &UpdateWorkforceOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateWorkforce API operation for Amazon SageMaker Service.
//
// Use this operation to update your workforce. You can use this operation to
// require that workers use specific IP addresses to work on tasks and to update
// your OpenID Connect (OIDC) Identity Provider (IdP) workforce configuration.
//
// The worker portal is now supported in VPC and public internet.
//
// Use SourceIpConfig to restrict worker access to tasks to a specific range
// of IP addresses. You specify allowed IP addresses by creating a list of up
// to ten CIDRs (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html).
// By default, a workforce isn't restricted to specific IP addresses. If you
// specify a range of IP addresses, workers who attempt to access tasks using
// any IP address outside the specified range are denied and get a Not Found
// error message on the worker portal.
//
// To restrict access to all the workers in public internet, add the SourceIpConfig
// CIDR value as "10.0.0.0/16".
//
// Amazon SageMaker does not support Source Ip restriction for worker portals
// in VPC.
//
// Use OidcConfig to update the configuration of a workforce created using your
// own OIDC IdP.
//
// You can only update your OIDC IdP configuration when there are no work teams
// associated with your workforce. You can delete work teams using the DeleteWorkteam
// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteWorkteam.html)
// operation.
//
// After restricting access to a range of IP addresses or updating your OIDC
// IdP configuration with this operation, you can view details about your update
// workforce using the DescribeWorkforce (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeWorkforce.html)
// operation.
//
// This operation only applies to private workforces.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateWorkforce for usage and error information.
//
// Returned Error Types:
//   - ConflictException
//     There was a conflict when you attempted to modify a SageMaker entity such
//     as an Experiment or Artifact.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateWorkforce
func (c *SageMaker) UpdateWorkforce(input *UpdateWorkforceInput) (*UpdateWorkforceOutput, error) {
	req, out := c.UpdateWorkforceRequest(input)
	return out, req.Send()
}

// UpdateWorkforceWithContext is the same as UpdateWorkforce with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateWorkforce for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateWorkforceWithContext(ctx aws.Context, input *UpdateWorkforceInput, opts ...request.Option) (*UpdateWorkforceOutput, error) {
	req, out := c.UpdateWorkforceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateWorkteam = "UpdateWorkteam"

// UpdateWorkteamRequest generates a "aws/request.Request" representing the
// client's request for the UpdateWorkteam operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateWorkteam for more information on using the UpdateWorkteam
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the UpdateWorkteamRequest method.
//	req, resp := client.UpdateWorkteamRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateWorkteam
func (c *SageMaker) UpdateWorkteamRequest(input *UpdateWorkteamInput) (req *request.Request, output *UpdateWorkteamOutput) {
	op := &request.Operation{
		Name:       opUpdateWorkteam,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateWorkteamInput{}
	}

	output = &UpdateWorkteamOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateWorkteam API operation for Amazon SageMaker Service.
//
// Updates an existing work team with new member definitions or description.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon SageMaker Service's
// API operation UpdateWorkteam for usage and error information.
//
// Returned Error Types:
//   - ResourceLimitExceeded
//     You have exceeded an SageMaker resource limit. For example, you might have
//     too many training jobs created.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/UpdateWorkteam
func (c *SageMaker) UpdateWorkteam(input *UpdateWorkteamInput) (*UpdateWorkteamOutput, error) {
	req, out := c.UpdateWorkteamRequest(input)
	return out, req.Send()
}

// UpdateWorkteamWithContext is the same as UpdateWorkteam with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateWorkteam for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *SageMaker) UpdateWorkteamWithContext(ctx aws.Context, input *UpdateWorkteamInput, opts ...request.Option) (*UpdateWorkteamOutput, error) {
	req, out := c.UpdateWorkteamRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// A structure describing the source of an action.
type ActionSource struct {
	_ struct{} `type:"structure"`

	// The ID of the source.
	SourceId *string `type:"string"`

	// The type of the source.
	SourceType *string `type:"string"`

	// The URI of the source.
	//
	// SourceUri is a required field
	SourceUri *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ActionSource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ActionSource) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ActionSource) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ActionSource"}
	if s.SourceUri == nil {
		invalidParams.Add(request.NewErrParamRequired("SourceUri"))
	}
	if s.SourceUri != nil && len(*s.SourceUri) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SourceUri", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSourceId sets the SourceId field's value.
func (s *ActionSource) SetSourceId(v string) *ActionSource {
	s.SourceId = &v
	return s
}

// SetSourceType sets the SourceType field's value.
func (s *ActionSource) SetSourceType(v string) *ActionSource {
	s.SourceType = &v
	return s
}

// SetSourceUri sets the SourceUri field's value.
func (s *ActionSource) SetSourceUri(v string) *ActionSource {
	s.SourceUri = &v
	return s
}

// Lists the properties of an action. An action represents an action or activity.
// Some examples are a workflow step and a model deployment. Generally, an action
// involves at least one input artifact or output artifact.
type ActionSummary struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the action.
	ActionArn *string `type:"string"`

	// The name of the action.
	ActionName *string `min:"1" type:"string"`

	// The type of the action.
	ActionType *string `type:"string"`

	// When the action was created.
	CreationTime *time.Time `type:"timestamp"`

	// When the action was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The source of the action.
	Source *ActionSource `type:"structure"`

	// The status of the action.
	Status *string `type:"string" enum:"ActionStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ActionSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ActionSummary) GoString() string {
	return s.String()
}

// SetActionArn sets the ActionArn field's value.
func (s *ActionSummary) SetActionArn(v string) *ActionSummary {
	s.ActionArn = &v
	return s
}

// SetActionName sets the ActionName field's value.
func (s *ActionSummary) SetActionName(v string) *ActionSummary {
	s.ActionName = &v
	return s
}

// SetActionType sets the ActionType field's value.
func (s *ActionSummary) SetActionType(v string) *ActionSummary {
	s.ActionType = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *ActionSummary) SetCreationTime(v time.Time) *ActionSummary {
	s.CreationTime = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *ActionSummary) SetLastModifiedTime(v time.Time) *ActionSummary {
	s.LastModifiedTime = &v
	return s
}

// SetSource sets the Source field's value.
func (s *ActionSummary) SetSource(v *ActionSource) *ActionSummary {
	s.Source = v
	return s
}

// SetStatus sets the Status field's value.
func (s *ActionSummary) SetStatus(v string) *ActionSummary {
	s.Status = &v
	return s
}

type AddAssociationInput struct {
	_ struct{} `type:"structure"`

	// The type of association. The following are suggested uses for each type.
	// Amazon SageMaker places no restrictions on their use.
	//
	//    * ContributedTo - The source contributed to the destination or had a part
	//    in enabling the destination. For example, the training data contributed
	//    to the training job.
	//
	//    * AssociatedWith - The source is connected to the destination. For example,
	//    an approval workflow is associated with a model deployment.
	//
	//    * DerivedFrom - The destination is a modification of the source. For example,
	//    a digest output of a channel input for a processing job is derived from
	//    the original inputs.
	//
	//    * Produced - The source generated the destination. For example, a training
	//    job produced a model artifact.
	AssociationType *string `type:"string" enum:"AssociationEdgeType"`

	// The Amazon Resource Name (ARN) of the destination.
	//
	// DestinationArn is a required field
	DestinationArn *string `type:"string" required:"true"`

	// The ARN of the source.
	//
	// SourceArn is a required field
	SourceArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AddAssociationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AddAssociationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AddAssociationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AddAssociationInput"}
	if s.DestinationArn == nil {
		invalidParams.Add(request.NewErrParamRequired("DestinationArn"))
	}
	if s.SourceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("SourceArn"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAssociationType sets the AssociationType field's value.
func (s *AddAssociationInput) SetAssociationType(v string) *AddAssociationInput {
	s.AssociationType = &v
	return s
}

// SetDestinationArn sets the DestinationArn field's value.
func (s *AddAssociationInput) SetDestinationArn(v string) *AddAssociationInput {
	s.DestinationArn = &v
	return s
}

// SetSourceArn sets the SourceArn field's value.
func (s *AddAssociationInput) SetSourceArn(v string) *AddAssociationInput {
	s.SourceArn = &v
	return s
}

type AddAssociationOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the destination.
	DestinationArn *string `type:"string"`

	// The ARN of the source.
	SourceArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AddAssociationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AddAssociationOutput) GoString() string {
	return s.String()
}

// SetDestinationArn sets the DestinationArn field's value.
func (s *AddAssociationOutput) SetDestinationArn(v string) *AddAssociationOutput {
	s.DestinationArn = &v
	return s
}

// SetSourceArn sets the SourceArn field's value.
func (s *AddAssociationOutput) SetSourceArn(v string) *AddAssociationOutput {
	s.SourceArn = &v
	return s
}

type AddTagsInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the resource that you want to tag.
	//
	// ResourceArn is a required field
	ResourceArn *string `type:"string" required:"true"`

	// An array of key-value pairs. You can use tags to categorize your Amazon Web
	// Services resources in different ways, for example, by purpose, owner, or
	// environment. For more information, see Tagging Amazon Web Services Resources
	// (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
	//
	// Tags is a required field
	Tags []*Tag `type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AddTagsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AddTagsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AddTagsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AddTagsInput"}
	if s.ResourceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
	}
	if s.Tags == nil {
		invalidParams.Add(request.NewErrParamRequired("Tags"))
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetResourceArn sets the ResourceArn field's value.
func (s *AddTagsInput) SetResourceArn(v string) *AddTagsInput {
	s.ResourceArn = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *AddTagsInput) SetTags(v []*Tag) *AddTagsInput {
	s.Tags = v
	return s
}

type AddTagsOutput struct {
	_ struct{} `type:"structure"`

	// A list of tags associated with the SageMaker resource.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AddTagsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AddTagsOutput) GoString() string {
	return s.String()
}

// SetTags sets the Tags field's value.
func (s *AddTagsOutput) SetTags(v []*Tag) *AddTagsOutput {
	s.Tags = v
	return s
}

// A structure of additional Inference Specification. Additional Inference Specification
// specifies details about inference jobs that can be run with models based
// on this model package
type AdditionalInferenceSpecificationDefinition struct {
	_ struct{} `type:"structure"`

	// The Amazon ECR registry path of the Docker image that contains the inference
	// code.
	//
	// Containers is a required field
	Containers []*ModelPackageContainerDefinition `min:"1" type:"list" required:"true"`

	// A description of the additional Inference specification
	Description *string `type:"string"`

	// A unique name to identify the additional inference specification. The name
	// must be unique within the list of your additional inference specifications
	// for a particular model package.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// The supported MIME types for the input data.
	SupportedContentTypes []*string `type:"list"`

	// A list of the instance types that are used to generate inferences in real-time.
	SupportedRealtimeInferenceInstanceTypes []*string `type:"list" enum:"ProductionVariantInstanceType"`

	// The supported MIME types for the output data.
	SupportedResponseMIMETypes []*string `type:"list"`

	// A list of the instance types on which a transformation job can be run or
	// on which an endpoint can be deployed.
	SupportedTransformInstanceTypes []*string `min:"1" type:"list" enum:"TransformInstanceType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AdditionalInferenceSpecificationDefinition) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AdditionalInferenceSpecificationDefinition) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AdditionalInferenceSpecificationDefinition) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AdditionalInferenceSpecificationDefinition"}
	if s.Containers == nil {
		invalidParams.Add(request.NewErrParamRequired("Containers"))
	}
	if s.Containers != nil && len(s.Containers) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Containers", 1))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.SupportedTransformInstanceTypes != nil && len(s.SupportedTransformInstanceTypes) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SupportedTransformInstanceTypes", 1))
	}
	if s.Containers != nil {
		for i, v := range s.Containers {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Containers", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContainers sets the Containers field's value.
func (s *AdditionalInferenceSpecificationDefinition) SetContainers(v []*ModelPackageContainerDefinition) *AdditionalInferenceSpecificationDefinition {
	s.Containers = v
	return s
}

// SetDescription sets the Description field's value.
func (s *AdditionalInferenceSpecificationDefinition) SetDescription(v string) *AdditionalInferenceSpecificationDefinition {
	s.Description = &v
	return s
}

// SetName sets the Name field's value.
func (s *AdditionalInferenceSpecificationDefinition) SetName(v string) *AdditionalInferenceSpecificationDefinition {
	s.Name = &v
	return s
}

// SetSupportedContentTypes sets the SupportedContentTypes field's value.
func (s *AdditionalInferenceSpecificationDefinition) SetSupportedContentTypes(v []*string) *AdditionalInferenceSpecificationDefinition {
	s.SupportedContentTypes = v
	return s
}

// SetSupportedRealtimeInferenceInstanceTypes sets the SupportedRealtimeInferenceInstanceTypes field's value.
func (s *AdditionalInferenceSpecificationDefinition) SetSupportedRealtimeInferenceInstanceTypes(v []*string) *AdditionalInferenceSpecificationDefinition {
	s.SupportedRealtimeInferenceInstanceTypes = v
	return s
}

// SetSupportedResponseMIMETypes sets the SupportedResponseMIMETypes field's value.
func (s *AdditionalInferenceSpecificationDefinition) SetSupportedResponseMIMETypes(v []*string) *AdditionalInferenceSpecificationDefinition {
	s.SupportedResponseMIMETypes = v
	return s
}

// SetSupportedTransformInstanceTypes sets the SupportedTransformInstanceTypes field's value.
func (s *AdditionalInferenceSpecificationDefinition) SetSupportedTransformInstanceTypes(v []*string) *AdditionalInferenceSpecificationDefinition {
	s.SupportedTransformInstanceTypes = v
	return s
}

// A data source used for training or inference that is in addition to the input
// dataset or model data.
type AdditionalS3DataSource struct {
	_ struct{} `type:"structure"`

	// The type of compression used for an additional data source used in inference
	// or training. Specify None if your additional data source is not compressed.
	CompressionType *string `type:"string" enum:"CompressionType"`

	// The data type of the additional data source that you specify for use in inference
	// or training.
	//
	// S3DataType is a required field
	S3DataType *string `type:"string" required:"true" enum:"AdditionalS3DataSourceDataType"`

	// The uniform resource identifier (URI) used to identify an additional data
	// source used in inference or training.
	//
	// S3Uri is a required field
	S3Uri *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AdditionalS3DataSource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AdditionalS3DataSource) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AdditionalS3DataSource) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AdditionalS3DataSource"}
	if s.S3DataType == nil {
		invalidParams.Add(request.NewErrParamRequired("S3DataType"))
	}
	if s.S3Uri == nil {
		invalidParams.Add(request.NewErrParamRequired("S3Uri"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCompressionType sets the CompressionType field's value.
func (s *AdditionalS3DataSource) SetCompressionType(v string) *AdditionalS3DataSource {
	s.CompressionType = &v
	return s
}

// SetS3DataType sets the S3DataType field's value.
func (s *AdditionalS3DataSource) SetS3DataType(v string) *AdditionalS3DataSource {
	s.S3DataType = &v
	return s
}

// SetS3Uri sets the S3Uri field's value.
func (s *AdditionalS3DataSource) SetS3Uri(v string) *AdditionalS3DataSource {
	s.S3Uri = &v
	return s
}

// Edge Manager agent version.
type AgentVersion struct {
	_ struct{} `type:"structure"`

	// The number of Edge Manager agents.
	//
	// AgentCount is a required field
	AgentCount *int64 `type:"long" required:"true"`

	// Version of the agent.
	//
	// Version is a required field
	Version *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AgentVersion) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AgentVersion) GoString() string {
	return s.String()
}

// SetAgentCount sets the AgentCount field's value.
func (s *AgentVersion) SetAgentCount(v int64) *AgentVersion {
	s.AgentCount = &v
	return s
}

// SetVersion sets the Version field's value.
func (s *AgentVersion) SetVersion(v string) *AgentVersion {
	s.Version = &v
	return s
}

// An Amazon CloudWatch alarm configured to monitor metrics on an endpoint.
type Alarm struct {
	_ struct{} `type:"structure"`

	// The name of a CloudWatch alarm in your account.
	AlarmName *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Alarm) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Alarm) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *Alarm) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "Alarm"}
	if s.AlarmName != nil && len(*s.AlarmName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AlarmName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAlarmName sets the AlarmName field's value.
func (s *Alarm) SetAlarmName(v string) *Alarm {
	s.AlarmName = &v
	return s
}

// Specifies the training algorithm to use in a CreateTrainingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)
// request.
//
// For more information about algorithms provided by SageMaker, see Algorithms
// (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). For information
// about using your own algorithms, see Using Your Own Algorithms with Amazon
// SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html).
type AlgorithmSpecification struct {
	_ struct{} `type:"structure"`

	// The name of the algorithm resource to use for the training job. This must
	// be an algorithm resource that you created or subscribe to on Amazon Web Services
	// Marketplace.
	//
	// You must specify either the algorithm name to the AlgorithmName parameter
	// or the image URI of the algorithm container to the TrainingImage parameter.
	//
	// Note that the AlgorithmName parameter is mutually exclusive with the TrainingImage
	// parameter. If you specify a value for the AlgorithmName parameter, you can't
	// specify a value for TrainingImage, and vice versa.
	//
	// If you specify values for both parameters, the training job might break;
	// if you don't specify any value for both parameters, the training job might
	// raise a null error.
	AlgorithmName *string `min:"1" type:"string"`

	// The arguments for a container used to run a training job. See How Amazon
	// SageMaker Runs Your Training Image (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-training-algo-dockerfile.html)
	// for additional information.
	ContainerArguments []*string `min:"1" type:"list"`

	// The entrypoint script for a Docker container (https://docs.docker.com/engine/reference/builder/)
	// used to run a training job. This script takes precedence over the default
	// train processing instructions. See How Amazon SageMaker Runs Your Training
	// Image (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-training-algo-dockerfile.html)
	// for more information.
	ContainerEntrypoint []*string `min:"1" type:"list"`

	// To generate and save time-series metrics during training, set to true. The
	// default is false and time-series metrics aren't generated except in the following
	// cases:
	//
	//    * You use one of the SageMaker built-in algorithms
	//
	//    * You use one of the following Prebuilt SageMaker Docker Images (https://docs.aws.amazon.com/sagemaker/latest/dg/pre-built-containers-frameworks-deep-learning.html):
	//    Tensorflow (version >= 1.15) MXNet (version >= 1.6) PyTorch (version >=
	//    1.3)
	//
	//    * You specify at least one MetricDefinition (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_MetricDefinition.html)
	EnableSageMakerMetricsTimeSeries *bool `type:"boolean"`

	// A list of metric definition objects. Each object specifies the metric name
	// and regular expressions used to parse algorithm logs. SageMaker publishes
	// each metric to Amazon CloudWatch.
	MetricDefinitions []*MetricDefinition `type:"list"`

	// The registry path of the Docker image that contains the training algorithm.
	// For information about docker registry paths for SageMaker built-in algorithms,
	// see Docker Registry Paths and Example Code (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html)
	// in the Amazon SageMaker developer guide. SageMaker supports both registry/repository[:tag]
	// and registry/repository[@digest] image path formats. For more information
	// about using your custom training container, see Using Your Own Algorithms
	// with Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html).
	//
	// You must specify either the algorithm name to the AlgorithmName parameter
	// or the image URI of the algorithm container to the TrainingImage parameter.
	//
	// For more information, see the note in the AlgorithmName parameter description.
	TrainingImage *string `type:"string"`

	// The configuration to use an image from a private Docker registry for a training
	// job.
	TrainingImageConfig *TrainingImageConfig `type:"structure"`

	// The training input mode that the algorithm supports. For more information
	// about input modes, see Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html).
	//
	// Pipe mode
	//
	// If an algorithm supports Pipe mode, Amazon SageMaker streams data directly
	// from Amazon S3 to the container.
	//
	// File mode
	//
	// If an algorithm supports File mode, SageMaker downloads the training data
	// from S3 to the provisioned ML storage volume, and mounts the directory to
	// the Docker volume for the training container.
	//
	// You must provision the ML storage volume with sufficient capacity to accommodate
	// the data downloaded from S3. In addition to the training data, the ML storage
	// volume also stores the output model. The algorithm container uses the ML
	// storage volume to also store intermediate information, if any.
	//
	// For distributed algorithms, training data is distributed uniformly. Your
	// training duration is predictable if the input data objects sizes are approximately
	// the same. SageMaker does not split the files any further for model training.
	// If the object sizes are skewed, training won't be optimal as the data distribution
	// is also skewed when one host in a training cluster is overloaded, thus becoming
	// a bottleneck in training.
	//
	// FastFile mode
	//
	// If an algorithm supports FastFile mode, SageMaker streams data directly from
	// S3 to the container with no code changes, and provides file system access
	// to the data. Users can author their training script to interact with these
	// files as if they were stored on disk.
	//
	// FastFile mode works best when the data is read sequentially. Augmented manifest
	// files aren't supported. The startup time is lower when there are fewer files
	// in the S3 bucket provided.
	//
	// TrainingInputMode is a required field
	TrainingInputMode *string `type:"string" required:"true" enum:"TrainingInputMode"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AlgorithmSpecification) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AlgorithmSpecification) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AlgorithmSpecification) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AlgorithmSpecification"}
	if s.AlgorithmName != nil && len(*s.AlgorithmName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AlgorithmName", 1))
	}
	if s.ContainerArguments != nil && len(s.ContainerArguments) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ContainerArguments", 1))
	}
	if s.ContainerEntrypoint != nil && len(s.ContainerEntrypoint) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ContainerEntrypoint", 1))
	}
	if s.TrainingInputMode == nil {
		invalidParams.Add(request.NewErrParamRequired("TrainingInputMode"))
	}
	if s.MetricDefinitions != nil {
		for i, v := range s.MetricDefinitions {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MetricDefinitions", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.TrainingImageConfig != nil {
		if err := s.TrainingImageConfig.Validate(); err != nil {
			invalidParams.AddNested("TrainingImageConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAlgorithmName sets the AlgorithmName field's value.
func (s *AlgorithmSpecification) SetAlgorithmName(v string) *AlgorithmSpecification {
	s.AlgorithmName = &v
	return s
}

// SetContainerArguments sets the ContainerArguments field's value.
func (s *AlgorithmSpecification) SetContainerArguments(v []*string) *AlgorithmSpecification {
	s.ContainerArguments = v
	return s
}

// SetContainerEntrypoint sets the ContainerEntrypoint field's value.
func (s *AlgorithmSpecification) SetContainerEntrypoint(v []*string) *AlgorithmSpecification {
	s.ContainerEntrypoint = v
	return s
}

// SetEnableSageMakerMetricsTimeSeries sets the EnableSageMakerMetricsTimeSeries field's value.
func (s *AlgorithmSpecification) SetEnableSageMakerMetricsTimeSeries(v bool) *AlgorithmSpecification {
	s.EnableSageMakerMetricsTimeSeries = &v
	return s
}

// SetMetricDefinitions sets the MetricDefinitions field's value.
func (s *AlgorithmSpecification) SetMetricDefinitions(v []*MetricDefinition) *AlgorithmSpecification {
	s.MetricDefinitions = v
	return s
}

// SetTrainingImage sets the TrainingImage field's value.
func (s *AlgorithmSpecification) SetTrainingImage(v string) *AlgorithmSpecification {
	s.TrainingImage = &v
	return s
}

// SetTrainingImageConfig sets the TrainingImageConfig field's value.
func (s *AlgorithmSpecification) SetTrainingImageConfig(v *TrainingImageConfig) *AlgorithmSpecification {
	s.TrainingImageConfig = v
	return s
}

// SetTrainingInputMode sets the TrainingInputMode field's value.
func (s *AlgorithmSpecification) SetTrainingInputMode(v string) *AlgorithmSpecification {
	s.TrainingInputMode = &v
	return s
}

// Specifies the validation and image scan statuses of the algorithm.
type AlgorithmStatusDetails struct {
	_ struct{} `type:"structure"`

	// The status of the scan of the algorithm's Docker image container.
	ImageScanStatuses []*AlgorithmStatusItem `type:"list"`

	// The status of algorithm validation.
	ValidationStatuses []*AlgorithmStatusItem `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AlgorithmStatusDetails) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AlgorithmStatusDetails) GoString() string {
	return s.String()
}

// SetImageScanStatuses sets the ImageScanStatuses field's value.
func (s *AlgorithmStatusDetails) SetImageScanStatuses(v []*AlgorithmStatusItem) *AlgorithmStatusDetails {
	s.ImageScanStatuses = v
	return s
}

// SetValidationStatuses sets the ValidationStatuses field's value.
func (s *AlgorithmStatusDetails) SetValidationStatuses(v []*AlgorithmStatusItem) *AlgorithmStatusDetails {
	s.ValidationStatuses = v
	return s
}

// Represents the overall status of an algorithm.
type AlgorithmStatusItem struct {
	_ struct{} `type:"structure"`

	// if the overall status is Failed, the reason for the failure.
	FailureReason *string `type:"string"`

	// The name of the algorithm for which the overall status is being reported.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// The current status.
	//
	// Status is a required field
	Status *string `type:"string" required:"true" enum:"DetailedAlgorithmStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AlgorithmStatusItem) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AlgorithmStatusItem) GoString() string {
	return s.String()
}

// SetFailureReason sets the FailureReason field's value.
func (s *AlgorithmStatusItem) SetFailureReason(v string) *AlgorithmStatusItem {
	s.FailureReason = &v
	return s
}

// SetName sets the Name field's value.
func (s *AlgorithmStatusItem) SetName(v string) *AlgorithmStatusItem {
	s.Name = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *AlgorithmStatusItem) SetStatus(v string) *AlgorithmStatusItem {
	s.Status = &v
	return s
}

// Provides summary information about an algorithm.
type AlgorithmSummary struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the algorithm.
	//
	// AlgorithmArn is a required field
	AlgorithmArn *string `min:"1" type:"string" required:"true"`

	// A brief description of the algorithm.
	AlgorithmDescription *string `type:"string"`

	// The name of the algorithm that is described by the summary.
	//
	// AlgorithmName is a required field
	AlgorithmName *string `min:"1" type:"string" required:"true"`

	// The overall status of the algorithm.
	//
	// AlgorithmStatus is a required field
	AlgorithmStatus *string `type:"string" required:"true" enum:"AlgorithmStatus"`

	// A timestamp that shows when the algorithm was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AlgorithmSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AlgorithmSummary) GoString() string {
	return s.String()
}

// SetAlgorithmArn sets the AlgorithmArn field's value.
func (s *AlgorithmSummary) SetAlgorithmArn(v string) *AlgorithmSummary {
	s.AlgorithmArn = &v
	return s
}

// SetAlgorithmDescription sets the AlgorithmDescription field's value.
func (s *AlgorithmSummary) SetAlgorithmDescription(v string) *AlgorithmSummary {
	s.AlgorithmDescription = &v
	return s
}

// SetAlgorithmName sets the AlgorithmName field's value.
func (s *AlgorithmSummary) SetAlgorithmName(v string) *AlgorithmSummary {
	s.AlgorithmName = &v
	return s
}

// SetAlgorithmStatus sets the AlgorithmStatus field's value.
func (s *AlgorithmSummary) SetAlgorithmStatus(v string) *AlgorithmSummary {
	s.AlgorithmStatus = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *AlgorithmSummary) SetCreationTime(v time.Time) *AlgorithmSummary {
	s.CreationTime = &v
	return s
}

// Defines a training job and a batch transform job that SageMaker runs to validate
// your algorithm.
//
// The data provided in the validation profile is made available to your buyers
// on Amazon Web Services Marketplace.
type AlgorithmValidationProfile struct {
	_ struct{} `type:"structure"`

	// The name of the profile for the algorithm. The name must have 1 to 63 characters.
	// Valid characters are a-z, A-Z, 0-9, and - (hyphen).
	//
	// ProfileName is a required field
	ProfileName *string `min:"1" type:"string" required:"true"`

	// The TrainingJobDefinition object that describes the training job that SageMaker
	// runs to validate your algorithm.
	//
	// TrainingJobDefinition is a required field
	TrainingJobDefinition *TrainingJobDefinition `type:"structure" required:"true"`

	// The TransformJobDefinition object that describes the transform job that SageMaker
	// runs to validate your algorithm.
	TransformJobDefinition *TransformJobDefinition `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AlgorithmValidationProfile) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AlgorithmValidationProfile) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AlgorithmValidationProfile) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AlgorithmValidationProfile"}
	if s.ProfileName == nil {
		invalidParams.Add(request.NewErrParamRequired("ProfileName"))
	}
	if s.ProfileName != nil && len(*s.ProfileName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ProfileName", 1))
	}
	if s.TrainingJobDefinition == nil {
		invalidParams.Add(request.NewErrParamRequired("TrainingJobDefinition"))
	}
	if s.TrainingJobDefinition != nil {
		if err := s.TrainingJobDefinition.Validate(); err != nil {
			invalidParams.AddNested("TrainingJobDefinition", err.(request.ErrInvalidParams))
		}
	}
	if s.TransformJobDefinition != nil {
		if err := s.TransformJobDefinition.Validate(); err != nil {
			invalidParams.AddNested("TransformJobDefinition", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetProfileName sets the ProfileName field's value.
func (s *AlgorithmValidationProfile) SetProfileName(v string) *AlgorithmValidationProfile {
	s.ProfileName = &v
	return s
}

// SetTrainingJobDefinition sets the TrainingJobDefinition field's value.
func (s *AlgorithmValidationProfile) SetTrainingJobDefinition(v *TrainingJobDefinition) *AlgorithmValidationProfile {
	s.TrainingJobDefinition = v
	return s
}

// SetTransformJobDefinition sets the TransformJobDefinition field's value.
func (s *AlgorithmValidationProfile) SetTransformJobDefinition(v *TransformJobDefinition) *AlgorithmValidationProfile {
	s.TransformJobDefinition = v
	return s
}

// Specifies configurations for one or more training jobs that SageMaker runs
// to test the algorithm.
type AlgorithmValidationSpecification struct {
	_ struct{} `type:"structure"`

	// An array of AlgorithmValidationProfile objects, each of which specifies a
	// training job and batch transform job that SageMaker runs to validate your
	// algorithm.
	//
	// ValidationProfiles is a required field
	ValidationProfiles []*AlgorithmValidationProfile `min:"1" type:"list" required:"true"`

	// The IAM roles that SageMaker uses to run the training jobs.
	//
	// ValidationRole is a required field
	ValidationRole *string `min:"20" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AlgorithmValidationSpecification) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AlgorithmValidationSpecification) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AlgorithmValidationSpecification) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AlgorithmValidationSpecification"}
	if s.ValidationProfiles == nil {
		invalidParams.Add(request.NewErrParamRequired("ValidationProfiles"))
	}
	if s.ValidationProfiles != nil && len(s.ValidationProfiles) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ValidationProfiles", 1))
	}
	if s.ValidationRole == nil {
		invalidParams.Add(request.NewErrParamRequired("ValidationRole"))
	}
	if s.ValidationRole != nil && len(*s.ValidationRole) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("ValidationRole", 20))
	}
	if s.ValidationProfiles != nil {
		for i, v := range s.ValidationProfiles {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ValidationProfiles", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetValidationProfiles sets the ValidationProfiles field's value.
func (s *AlgorithmValidationSpecification) SetValidationProfiles(v []*AlgorithmValidationProfile) *AlgorithmValidationSpecification {
	s.ValidationProfiles = v
	return s
}

// SetValidationRole sets the ValidationRole field's value.
func (s *AlgorithmValidationSpecification) SetValidationRole(v string) *AlgorithmValidationSpecification {
	s.ValidationRole = &v
	return s
}

// Configures how labels are consolidated across human workers and processes
// output data.
type AnnotationConsolidationConfig struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of a Lambda function implements the logic
	// for annotation consolidation (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-annotation-consolidation.html)
	// and to process output data.
	//
	// This parameter is required for all labeling jobs. For built-in task types
	// (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html), use
	// one of the following Amazon SageMaker Ground Truth Lambda function ARNs for
	// AnnotationConsolidationLambdaArn. For custom labeling workflows, see Post-annotation
	// Lambda (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-custom-templates-step3.html#sms-custom-templates-step3-postlambda).
	//
	// Bounding box - Finds the most similar boxes from different workers based
	// on the Jaccard index of the boxes.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:ACS-BoundingBox
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:ACS-BoundingBox
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:ACS-BoundingBox
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:ACS-BoundingBox
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-BoundingBox
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-BoundingBox
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:ACS-BoundingBox
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:ACS-BoundingBox
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-BoundingBox
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:ACS-BoundingBox
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-BoundingBox
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:ACS-BoundingBox
	//
	// Image classification - Uses a variant of the Expectation Maximization approach
	// to estimate the true class of an image based on annotations from individual
	// workers.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:ACS-ImageMultiClass
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:ACS-ImageMultiClass
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:ACS-ImageMultiClass
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:ACS-ImageMultiClass
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-ImageMultiClass
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-ImageMultiClass
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:ACS-ImageMultiClass
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:ACS-ImageMultiClass
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-ImageMultiClass
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:ACS-ImageMultiClass
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-ImageMultiClass
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:ACS-ImageMultiClass
	//
	// Multi-label image classification - Uses a variant of the Expectation Maximization
	// approach to estimate the true classes of an image based on annotations from
	// individual workers.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:ACS-ImageMultiClassMultiLabel
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:ACS-ImageMultiClassMultiLabel
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:ACS-ImageMultiClassMultiLabel
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:ACS-ImageMultiClassMultiLabel
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-ImageMultiClassMultiLabel
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-ImageMultiClassMultiLabel
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:ACS-ImageMultiClassMultiLabel
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:ACS-ImageMultiClassMultiLabel
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-ImageMultiClassMultiLabel
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:ACS-ImageMultiClassMultiLabel
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-ImageMultiClassMultiLabel
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:ACS-ImageMultiClassMultiLabel
	//
	// Semantic segmentation - Treats each pixel in an image as a multi-class classification
	// and treats pixel annotations from workers as "votes" for the correct label.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:ACS-SemanticSegmentation
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:ACS-SemanticSegmentation
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:ACS-SemanticSegmentation
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:ACS-SemanticSegmentation
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-SemanticSegmentation
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-SemanticSegmentation
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:ACS-SemanticSegmentation
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:ACS-SemanticSegmentation
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-SemanticSegmentation
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:ACS-SemanticSegmentation
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-SemanticSegmentation
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:ACS-SemanticSegmentation
	//
	// Text classification - Uses a variant of the Expectation Maximization approach
	// to estimate the true class of text based on annotations from individual workers.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:ACS-TextMultiClass
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:ACS-TextMultiClass
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:ACS-TextMultiClass
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:ACS-TextMultiClass
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-TextMultiClass
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-TextMultiClass
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:ACS-TextMultiClass
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:ACS-TextMultiClass
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-TextMultiClass
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:ACS-TextMultiClass
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-TextMultiClass
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:ACS-TextMultiClass
	//
	// Multi-label text classification - Uses a variant of the Expectation Maximization
	// approach to estimate the true classes of text based on annotations from individual
	// workers.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:ACS-TextMultiClassMultiLabel
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:ACS-TextMultiClassMultiLabel
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:ACS-TextMultiClassMultiLabel
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:ACS-TextMultiClassMultiLabel
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-TextMultiClassMultiLabel
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-TextMultiClassMultiLabel
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:ACS-TextMultiClassMultiLabel
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:ACS-TextMultiClassMultiLabel
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-TextMultiClassMultiLabel
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:ACS-TextMultiClassMultiLabel
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-TextMultiClassMultiLabel
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:ACS-TextMultiClassMultiLabel
	//
	// Named entity recognition - Groups similar selections and calculates aggregate
	// boundaries, resolving to most-assigned label.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:ACS-NamedEntityRecognition
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:ACS-NamedEntityRecognition
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:ACS-NamedEntityRecognition
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:ACS-NamedEntityRecognition
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-NamedEntityRecognition
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-NamedEntityRecognition
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:ACS-NamedEntityRecognition
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:ACS-NamedEntityRecognition
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-NamedEntityRecognition
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:ACS-NamedEntityRecognition
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-NamedEntityRecognition
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:ACS-NamedEntityRecognition
	//
	// Video Classification - Use this task type when you need workers to classify
	// videos using predefined labels that you specify. Workers are shown videos
	// and are asked to choose one label for each video.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:ACS-VideoMultiClass
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:ACS-VideoMultiClass
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:ACS-VideoMultiClass
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:ACS-VideoMultiClass
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VideoMultiClass
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VideoMultiClass
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:ACS-VideoMultiClass
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:ACS-VideoMultiClass
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VideoMultiClass
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:ACS-VideoMultiClass
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VideoMultiClass
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:ACS-VideoMultiClass
	//
	// Video Frame Object Detection - Use this task type to have workers identify
	// and locate objects in a sequence of video frames (images extracted from a
	// video) using bounding boxes. For example, you can use this task to ask workers
	// to identify and localize various objects in a series of video frames, such
	// as cars, bikes, and pedestrians.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:ACS-VideoObjectDetection
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:ACS-VideoObjectDetection
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:ACS-VideoObjectDetection
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:ACS-VideoObjectDetection
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VideoObjectDetection
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VideoObjectDetection
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:ACS-VideoObjectDetection
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:ACS-VideoObjectDetection
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VideoObjectDetection
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:ACS-VideoObjectDetection
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VideoObjectDetection
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:ACS-VideoObjectDetection
	//
	// Video Frame Object Tracking - Use this task type to have workers track the
	// movement of objects in a sequence of video frames (images extracted from
	// a video) using bounding boxes. For example, you can use this task to ask
	// workers to track the movement of objects, such as cars, bikes, and pedestrians.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:ACS-VideoObjectTracking
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:ACS-VideoObjectTracking
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:ACS-VideoObjectTracking
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:ACS-VideoObjectTracking
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VideoObjectTracking
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VideoObjectTracking
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:ACS-VideoObjectTracking
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:ACS-VideoObjectTracking
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VideoObjectTracking
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:ACS-VideoObjectTracking
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VideoObjectTracking
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:ACS-VideoObjectTracking
	//
	// 3D Point Cloud Object Detection - Use this task type when you want workers
	// to classify objects in a 3D point cloud by drawing 3D cuboids around objects.
	// For example, you can use this task type to ask workers to identify different
	// types of objects in a point cloud, such as cars, bikes, and pedestrians.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:ACS-3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:ACS-3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:ACS-3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:ACS-3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:ACS-3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:ACS-3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:ACS-3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:ACS-3DPointCloudObjectDetection
	//
	// 3D Point Cloud Object Tracking - Use this task type when you want workers
	// to draw 3D cuboids around objects that appear in a sequence of 3D point cloud
	// frames. For example, you can use this task type to ask workers to track the
	// movement of vehicles across multiple point cloud frames.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:ACS-3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:ACS-3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:ACS-3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:ACS-3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:ACS-3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:ACS-3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:ACS-3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:ACS-3DPointCloudObjectTracking
	//
	// 3D Point Cloud Semantic Segmentation - Use this task type when you want workers
	// to create a point-level semantic segmentation masks by painting objects in
	// a 3D point cloud using different colors where each color is assigned to one
	// of the classes you specify.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:ACS-3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:ACS-3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:ACS-3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:ACS-3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:ACS-3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:ACS-3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:ACS-3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:ACS-3DPointCloudSemanticSegmentation
	//
	// Use the following ARNs for Label Verification and Adjustment Jobs
	//
	// Use label verification and adjustment jobs to review and adjust labels. To
	// learn more, see Verify and Adjust Labels (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-verification-data.html).
	//
	// Semantic Segmentation Adjustment - Treats each pixel in an image as a multi-class
	// classification and treats pixel adjusted annotations from workers as "votes"
	// for the correct label.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:ACS-AdjustmentSemanticSegmentation
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:ACS-AdjustmentSemanticSegmentation
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:ACS-AdjustmentSemanticSegmentation
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:ACS-AdjustmentSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-AdjustmentSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-AdjustmentSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:ACS-AdjustmentSemanticSegmentation
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:ACS-AdjustmentSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-AdjustmentSemanticSegmentation
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:ACS-AdjustmentSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-AdjustmentSemanticSegmentation
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:ACS-AdjustmentSemanticSegmentation
	//
	// Semantic Segmentation Verification - Uses a variant of the Expectation Maximization
	// approach to estimate the true class of verification judgment for semantic
	// segmentation labels based on annotations from individual workers.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:ACS-VerificationSemanticSegmentation
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:ACS-VerificationSemanticSegmentation
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:ACS-VerificationSemanticSegmentation
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:ACS-VerificationSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VerificationSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VerificationSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:ACS-VerificationSemanticSegmentation
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:ACS-VerificationSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VerificationSemanticSegmentation
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:ACS-VerificationSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VerificationSemanticSegmentation
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:ACS-VerificationSemanticSegmentation
	//
	// Bounding Box Adjustment - Finds the most similar boxes from different workers
	// based on the Jaccard index of the adjusted annotations.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:ACS-AdjustmentBoundingBox
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:ACS-AdjustmentBoundingBox
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:ACS-AdjustmentBoundingBox
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:ACS-AdjustmentBoundingBox
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-AdjustmentBoundingBox
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-AdjustmentBoundingBox
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:ACS-AdjustmentBoundingBox
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:ACS-AdjustmentBoundingBox
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-AdjustmentBoundingBox
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:ACS-AdjustmentBoundingBox
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-AdjustmentBoundingBox
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:ACS-AdjustmentBoundingBox
	//
	// Bounding Box Verification - Uses a variant of the Expectation Maximization
	// approach to estimate the true class of verification judgement for bounding
	// box labels based on annotations from individual workers.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:ACS-VerificationBoundingBox
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:ACS-VerificationBoundingBox
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:ACS-VerificationBoundingBox
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:ACS-VerificationBoundingBox
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VerificationBoundingBox
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VerificationBoundingBox
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:ACS-VerificationBoundingBox
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:ACS-VerificationBoundingBox
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VerificationBoundingBox
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:ACS-VerificationBoundingBox
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VerificationBoundingBox
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:ACS-VerificationBoundingBox
	//
	// Video Frame Object Detection Adjustment - Use this task type when you want
	// workers to adjust bounding boxes that workers have added to video frames
	// to classify and localize objects in a sequence of video frames.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:ACS-AdjustmentVideoObjectDetection
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:ACS-AdjustmentVideoObjectDetection
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:ACS-AdjustmentVideoObjectDetection
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:ACS-AdjustmentVideoObjectDetection
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-AdjustmentVideoObjectDetection
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-AdjustmentVideoObjectDetection
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:ACS-AdjustmentVideoObjectDetection
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:ACS-AdjustmentVideoObjectDetection
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-AdjustmentVideoObjectDetection
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:ACS-AdjustmentVideoObjectDetection
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-AdjustmentVideoObjectDetection
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:ACS-AdjustmentVideoObjectDetection
	//
	// Video Frame Object Tracking Adjustment - Use this task type when you want
	// workers to adjust bounding boxes that workers have added to video frames
	// to track object movement across a sequence of video frames.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:ACS-AdjustmentVideoObjectTracking
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:ACS-AdjustmentVideoObjectTracking
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:ACS-AdjustmentVideoObjectTracking
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:ACS-AdjustmentVideoObjectTracking
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-AdjustmentVideoObjectTracking
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-AdjustmentVideoObjectTracking
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:ACS-AdjustmentVideoObjectTracking
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:ACS-AdjustmentVideoObjectTracking
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-AdjustmentVideoObjectTracking
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:ACS-AdjustmentVideoObjectTracking
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-AdjustmentVideoObjectTracking
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:ACS-AdjustmentVideoObjectTracking
	//
	// 3D Point Cloud Object Detection Adjustment - Use this task type when you
	// want workers to adjust 3D cuboids around objects in a 3D point cloud.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:ACS-Adjustment3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:ACS-Adjustment3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:ACS-Adjustment3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:ACS-Adjustment3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-Adjustment3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-Adjustment3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:ACS-Adjustment3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:ACS-Adjustment3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-Adjustment3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:ACS-Adjustment3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-Adjustment3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:ACS-Adjustment3DPointCloudObjectDetection
	//
	// 3D Point Cloud Object Tracking Adjustment - Use this task type when you want
	// workers to adjust 3D cuboids around objects that appear in a sequence of
	// 3D point cloud frames.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:ACS-Adjustment3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:ACS-Adjustment3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:ACS-Adjustment3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:ACS-Adjustment3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-Adjustment3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-Adjustment3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:ACS-Adjustment3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:ACS-Adjustment3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-Adjustment3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:ACS-Adjustment3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-Adjustment3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:ACS-Adjustment3DPointCloudObjectTracking
	//
	// 3D Point Cloud Semantic Segmentation Adjustment - Use this task type when
	// you want workers to adjust a point-level semantic segmentation masks using
	// a paint tool.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:ACS-3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:ACS-Adjustment3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:ACS-Adjustment3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:ACS-Adjustment3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:ACS-Adjustment3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-Adjustment3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-Adjustment3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:ACS-Adjustment3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:ACS-Adjustment3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-Adjustment3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:ACS-Adjustment3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-Adjustment3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:ACS-Adjustment3DPointCloudSemanticSegmentation
	//
	// AnnotationConsolidationLambdaArn is a required field
	AnnotationConsolidationLambdaArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AnnotationConsolidationConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AnnotationConsolidationConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AnnotationConsolidationConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AnnotationConsolidationConfig"}
	if s.AnnotationConsolidationLambdaArn == nil {
		invalidParams.Add(request.NewErrParamRequired("AnnotationConsolidationLambdaArn"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAnnotationConsolidationLambdaArn sets the AnnotationConsolidationLambdaArn field's value.
func (s *AnnotationConsolidationConfig) SetAnnotationConsolidationLambdaArn(v string) *AnnotationConsolidationConfig {
	s.AnnotationConsolidationLambdaArn = &v
	return s
}

// Details about an Amazon SageMaker app.
type AppDetails struct {
	_ struct{} `type:"structure"`

	// The name of the app.
	AppName *string `type:"string"`

	// The type of app.
	AppType *string `type:"string" enum:"AppType"`

	// The creation time.
	CreationTime *time.Time `type:"timestamp"`

	// The domain ID.
	DomainId *string `type:"string"`

	// Specifies the ARN's of a SageMaker image and SageMaker image version, and
	// the instance type that the version runs on.
	ResourceSpec *ResourceSpec `type:"structure"`

	// The name of the space.
	SpaceName *string `type:"string"`

	// The status.
	Status *string `type:"string" enum:"AppStatus"`

	// The user profile name.
	UserProfileName *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppDetails) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppDetails) GoString() string {
	return s.String()
}

// SetAppName sets the AppName field's value.
func (s *AppDetails) SetAppName(v string) *AppDetails {
	s.AppName = &v
	return s
}

// SetAppType sets the AppType field's value.
func (s *AppDetails) SetAppType(v string) *AppDetails {
	s.AppType = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *AppDetails) SetCreationTime(v time.Time) *AppDetails {
	s.CreationTime = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *AppDetails) SetDomainId(v string) *AppDetails {
	s.DomainId = &v
	return s
}

// SetResourceSpec sets the ResourceSpec field's value.
func (s *AppDetails) SetResourceSpec(v *ResourceSpec) *AppDetails {
	s.ResourceSpec = v
	return s
}

// SetSpaceName sets the SpaceName field's value.
func (s *AppDetails) SetSpaceName(v string) *AppDetails {
	s.SpaceName = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *AppDetails) SetStatus(v string) *AppDetails {
	s.Status = &v
	return s
}

// SetUserProfileName sets the UserProfileName field's value.
func (s *AppDetails) SetUserProfileName(v string) *AppDetails {
	s.UserProfileName = &v
	return s
}

// The configuration for running a SageMaker image as a KernelGateway app.
type AppImageConfigDetails struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the AppImageConfig.
	AppImageConfigArn *string `type:"string"`

	// The name of the AppImageConfig. Must be unique to your account.
	AppImageConfigName *string `type:"string"`

	// When the AppImageConfig was created.
	CreationTime *time.Time `type:"timestamp"`

	// The configuration for the file system and the runtime, such as the environment
	// variables and entry point.
	JupyterLabAppImageConfig *JupyterLabAppImageConfig `type:"structure"`

	// The configuration for the file system and kernels in the SageMaker image.
	KernelGatewayImageConfig *KernelGatewayImageConfig `type:"structure"`

	// When the AppImageConfig was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppImageConfigDetails) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppImageConfigDetails) GoString() string {
	return s.String()
}

// SetAppImageConfigArn sets the AppImageConfigArn field's value.
func (s *AppImageConfigDetails) SetAppImageConfigArn(v string) *AppImageConfigDetails {
	s.AppImageConfigArn = &v
	return s
}

// SetAppImageConfigName sets the AppImageConfigName field's value.
func (s *AppImageConfigDetails) SetAppImageConfigName(v string) *AppImageConfigDetails {
	s.AppImageConfigName = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *AppImageConfigDetails) SetCreationTime(v time.Time) *AppImageConfigDetails {
	s.CreationTime = &v
	return s
}

// SetJupyterLabAppImageConfig sets the JupyterLabAppImageConfig field's value.
func (s *AppImageConfigDetails) SetJupyterLabAppImageConfig(v *JupyterLabAppImageConfig) *AppImageConfigDetails {
	s.JupyterLabAppImageConfig = v
	return s
}

// SetKernelGatewayImageConfig sets the KernelGatewayImageConfig field's value.
func (s *AppImageConfigDetails) SetKernelGatewayImageConfig(v *KernelGatewayImageConfig) *AppImageConfigDetails {
	s.KernelGatewayImageConfig = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *AppImageConfigDetails) SetLastModifiedTime(v time.Time) *AppImageConfigDetails {
	s.LastModifiedTime = &v
	return s
}

// Configuration to run a processing job in a specified container image.
type AppSpecification struct {
	_ struct{} `type:"structure"`

	// The arguments for a container used to run a processing job.
	ContainerArguments []*string `min:"1" type:"list"`

	// The entrypoint for a container used to run a processing job.
	ContainerEntrypoint []*string `min:"1" type:"list"`

	// The container image to be run by the processing job.
	//
	// ImageUri is a required field
	ImageUri *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppSpecification) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AppSpecification) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AppSpecification) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AppSpecification"}
	if s.ContainerArguments != nil && len(s.ContainerArguments) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ContainerArguments", 1))
	}
	if s.ContainerEntrypoint != nil && len(s.ContainerEntrypoint) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ContainerEntrypoint", 1))
	}
	if s.ImageUri == nil {
		invalidParams.Add(request.NewErrParamRequired("ImageUri"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContainerArguments sets the ContainerArguments field's value.
func (s *AppSpecification) SetContainerArguments(v []*string) *AppSpecification {
	s.ContainerArguments = v
	return s
}

// SetContainerEntrypoint sets the ContainerEntrypoint field's value.
func (s *AppSpecification) SetContainerEntrypoint(v []*string) *AppSpecification {
	s.ContainerEntrypoint = v
	return s
}

// SetImageUri sets the ImageUri field's value.
func (s *AppSpecification) SetImageUri(v string) *AppSpecification {
	s.ImageUri = &v
	return s
}

// A structure describing the source of an artifact.
type ArtifactSource struct {
	_ struct{} `type:"structure"`

	// A list of source types.
	SourceTypes []*ArtifactSourceType `type:"list"`

	// The URI of the source.
	//
	// SourceUri is a required field
	SourceUri *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ArtifactSource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ArtifactSource) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ArtifactSource) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ArtifactSource"}
	if s.SourceUri == nil {
		invalidParams.Add(request.NewErrParamRequired("SourceUri"))
	}
	if s.SourceUri != nil && len(*s.SourceUri) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SourceUri", 1))
	}
	if s.SourceTypes != nil {
		for i, v := range s.SourceTypes {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SourceTypes", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSourceTypes sets the SourceTypes field's value.
func (s *ArtifactSource) SetSourceTypes(v []*ArtifactSourceType) *ArtifactSource {
	s.SourceTypes = v
	return s
}

// SetSourceUri sets the SourceUri field's value.
func (s *ArtifactSource) SetSourceUri(v string) *ArtifactSource {
	s.SourceUri = &v
	return s
}

// The ID and ID type of an artifact source.
type ArtifactSourceType struct {
	_ struct{} `type:"structure"`

	// The type of ID.
	//
	// SourceIdType is a required field
	SourceIdType *string `type:"string" required:"true" enum:"ArtifactSourceIdType"`

	// The ID.
	//
	// Value is a required field
	Value *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ArtifactSourceType) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ArtifactSourceType) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ArtifactSourceType) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ArtifactSourceType"}
	if s.SourceIdType == nil {
		invalidParams.Add(request.NewErrParamRequired("SourceIdType"))
	}
	if s.Value == nil {
		invalidParams.Add(request.NewErrParamRequired("Value"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSourceIdType sets the SourceIdType field's value.
func (s *ArtifactSourceType) SetSourceIdType(v string) *ArtifactSourceType {
	s.SourceIdType = &v
	return s
}

// SetValue sets the Value field's value.
func (s *ArtifactSourceType) SetValue(v string) *ArtifactSourceType {
	s.Value = &v
	return s
}

// Lists a summary of the properties of an artifact. An artifact represents
// a URI addressable object or data. Some examples are a dataset and a model.
type ArtifactSummary struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the artifact.
	ArtifactArn *string `type:"string"`

	// The name of the artifact.
	ArtifactName *string `min:"1" type:"string"`

	// The type of the artifact.
	ArtifactType *string `type:"string"`

	// When the artifact was created.
	CreationTime *time.Time `type:"timestamp"`

	// When the artifact was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The source of the artifact.
	Source *ArtifactSource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ArtifactSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ArtifactSummary) GoString() string {
	return s.String()
}

// SetArtifactArn sets the ArtifactArn field's value.
func (s *ArtifactSummary) SetArtifactArn(v string) *ArtifactSummary {
	s.ArtifactArn = &v
	return s
}

// SetArtifactName sets the ArtifactName field's value.
func (s *ArtifactSummary) SetArtifactName(v string) *ArtifactSummary {
	s.ArtifactName = &v
	return s
}

// SetArtifactType sets the ArtifactType field's value.
func (s *ArtifactSummary) SetArtifactType(v string) *ArtifactSummary {
	s.ArtifactType = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *ArtifactSummary) SetCreationTime(v time.Time) *ArtifactSummary {
	s.CreationTime = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *ArtifactSummary) SetLastModifiedTime(v time.Time) *ArtifactSummary {
	s.LastModifiedTime = &v
	return s
}

// SetSource sets the Source field's value.
func (s *ArtifactSummary) SetSource(v *ArtifactSource) *ArtifactSummary {
	s.Source = v
	return s
}

type AssociateTrialComponentInput struct {
	_ struct{} `type:"structure"`

	// The name of the component to associated with the trial.
	//
	// TrialComponentName is a required field
	TrialComponentName *string `min:"1" type:"string" required:"true"`

	// The name of the trial to associate with.
	//
	// TrialName is a required field
	TrialName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssociateTrialComponentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssociateTrialComponentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AssociateTrialComponentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AssociateTrialComponentInput"}
	if s.TrialComponentName == nil {
		invalidParams.Add(request.NewErrParamRequired("TrialComponentName"))
	}
	if s.TrialComponentName != nil && len(*s.TrialComponentName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TrialComponentName", 1))
	}
	if s.TrialName == nil {
		invalidParams.Add(request.NewErrParamRequired("TrialName"))
	}
	if s.TrialName != nil && len(*s.TrialName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TrialName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetTrialComponentName sets the TrialComponentName field's value.
func (s *AssociateTrialComponentInput) SetTrialComponentName(v string) *AssociateTrialComponentInput {
	s.TrialComponentName = &v
	return s
}

// SetTrialName sets the TrialName field's value.
func (s *AssociateTrialComponentInput) SetTrialName(v string) *AssociateTrialComponentInput {
	s.TrialName = &v
	return s
}

type AssociateTrialComponentOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the trial.
	TrialArn *string `type:"string"`

	// The Amazon Resource Name (ARN) of the trial component.
	TrialComponentArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssociateTrialComponentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssociateTrialComponentOutput) GoString() string {
	return s.String()
}

// SetTrialArn sets the TrialArn field's value.
func (s *AssociateTrialComponentOutput) SetTrialArn(v string) *AssociateTrialComponentOutput {
	s.TrialArn = &v
	return s
}

// SetTrialComponentArn sets the TrialComponentArn field's value.
func (s *AssociateTrialComponentOutput) SetTrialComponentArn(v string) *AssociateTrialComponentOutput {
	s.TrialComponentArn = &v
	return s
}

// Lists a summary of the properties of an association. An association is an
// entity that links other lineage or experiment entities. An example would
// be an association between a training job and a model.
type AssociationSummary struct {
	_ struct{} `type:"structure"`

	// The type of the association.
	AssociationType *string `type:"string" enum:"AssociationEdgeType"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	CreatedBy *UserContext `type:"structure"`

	// When the association was created.
	CreationTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the destination.
	DestinationArn *string `type:"string"`

	// The name of the destination.
	DestinationName *string `min:"1" type:"string"`

	// The destination type.
	DestinationType *string `type:"string"`

	// The ARN of the source.
	SourceArn *string `type:"string"`

	// The name of the source.
	SourceName *string `min:"1" type:"string"`

	// The source type.
	SourceType *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssociationSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AssociationSummary) GoString() string {
	return s.String()
}

// SetAssociationType sets the AssociationType field's value.
func (s *AssociationSummary) SetAssociationType(v string) *AssociationSummary {
	s.AssociationType = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *AssociationSummary) SetCreatedBy(v *UserContext) *AssociationSummary {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *AssociationSummary) SetCreationTime(v time.Time) *AssociationSummary {
	s.CreationTime = &v
	return s
}

// SetDestinationArn sets the DestinationArn field's value.
func (s *AssociationSummary) SetDestinationArn(v string) *AssociationSummary {
	s.DestinationArn = &v
	return s
}

// SetDestinationName sets the DestinationName field's value.
func (s *AssociationSummary) SetDestinationName(v string) *AssociationSummary {
	s.DestinationName = &v
	return s
}

// SetDestinationType sets the DestinationType field's value.
func (s *AssociationSummary) SetDestinationType(v string) *AssociationSummary {
	s.DestinationType = &v
	return s
}

// SetSourceArn sets the SourceArn field's value.
func (s *AssociationSummary) SetSourceArn(v string) *AssociationSummary {
	s.SourceArn = &v
	return s
}

// SetSourceName sets the SourceName field's value.
func (s *AssociationSummary) SetSourceName(v string) *AssociationSummary {
	s.SourceName = &v
	return s
}

// SetSourceType sets the SourceType field's value.
func (s *AssociationSummary) SetSourceType(v string) *AssociationSummary {
	s.SourceType = &v
	return s
}

// Configures the behavior of the client used by SageMaker to interact with
// the model container during asynchronous inference.
type AsyncInferenceClientConfig struct {
	_ struct{} `type:"structure"`

	// The maximum number of concurrent requests sent by the SageMaker client to
	// the model container. If no value is provided, SageMaker chooses an optimal
	// value.
	MaxConcurrentInvocationsPerInstance *int64 `min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AsyncInferenceClientConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AsyncInferenceClientConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AsyncInferenceClientConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AsyncInferenceClientConfig"}
	if s.MaxConcurrentInvocationsPerInstance != nil && *s.MaxConcurrentInvocationsPerInstance < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxConcurrentInvocationsPerInstance", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxConcurrentInvocationsPerInstance sets the MaxConcurrentInvocationsPerInstance field's value.
func (s *AsyncInferenceClientConfig) SetMaxConcurrentInvocationsPerInstance(v int64) *AsyncInferenceClientConfig {
	s.MaxConcurrentInvocationsPerInstance = &v
	return s
}

// Specifies configuration for how an endpoint performs asynchronous inference.
type AsyncInferenceConfig struct {
	_ struct{} `type:"structure"`

	// Configures the behavior of the client used by SageMaker to interact with
	// the model container during asynchronous inference.
	ClientConfig *AsyncInferenceClientConfig `type:"structure"`

	// Specifies the configuration for asynchronous inference invocation outputs.
	//
	// OutputConfig is a required field
	OutputConfig *AsyncInferenceOutputConfig `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AsyncInferenceConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AsyncInferenceConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AsyncInferenceConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AsyncInferenceConfig"}
	if s.OutputConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("OutputConfig"))
	}
	if s.ClientConfig != nil {
		if err := s.ClientConfig.Validate(); err != nil {
			invalidParams.AddNested("ClientConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClientConfig sets the ClientConfig field's value.
func (s *AsyncInferenceConfig) SetClientConfig(v *AsyncInferenceClientConfig) *AsyncInferenceConfig {
	s.ClientConfig = v
	return s
}

// SetOutputConfig sets the OutputConfig field's value.
func (s *AsyncInferenceConfig) SetOutputConfig(v *AsyncInferenceOutputConfig) *AsyncInferenceConfig {
	s.OutputConfig = v
	return s
}

// Specifies the configuration for notifications of inference results for asynchronous
// inference.
type AsyncInferenceNotificationConfig struct {
	_ struct{} `type:"structure"`

	// Amazon SNS topic to post a notification to when inference fails. If no topic
	// is provided, no notification is sent on failure.
	ErrorTopic *string `type:"string"`

	// The Amazon SNS topics where you want the inference response to be included.
	//
	// The inference response is included only if the response size is less than
	// or equal to 128 KB.
	IncludeInferenceResponseIn []*string `type:"list" enum:"AsyncNotificationTopicTypes"`

	// Amazon SNS topic to post a notification to when inference completes successfully.
	// If no topic is provided, no notification is sent on success.
	SuccessTopic *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AsyncInferenceNotificationConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AsyncInferenceNotificationConfig) GoString() string {
	return s.String()
}

// SetErrorTopic sets the ErrorTopic field's value.
func (s *AsyncInferenceNotificationConfig) SetErrorTopic(v string) *AsyncInferenceNotificationConfig {
	s.ErrorTopic = &v
	return s
}

// SetIncludeInferenceResponseIn sets the IncludeInferenceResponseIn field's value.
func (s *AsyncInferenceNotificationConfig) SetIncludeInferenceResponseIn(v []*string) *AsyncInferenceNotificationConfig {
	s.IncludeInferenceResponseIn = v
	return s
}

// SetSuccessTopic sets the SuccessTopic field's value.
func (s *AsyncInferenceNotificationConfig) SetSuccessTopic(v string) *AsyncInferenceNotificationConfig {
	s.SuccessTopic = &v
	return s
}

// Specifies the configuration for asynchronous inference invocation outputs.
type AsyncInferenceOutputConfig struct {
	_ struct{} `type:"structure"`

	// The Amazon Web Services Key Management Service (Amazon Web Services KMS)
	// key that SageMaker uses to encrypt the asynchronous inference output in Amazon
	// S3.
	KmsKeyId *string `type:"string"`

	// Specifies the configuration for notifications of inference results for asynchronous
	// inference.
	NotificationConfig *AsyncInferenceNotificationConfig `type:"structure"`

	// The Amazon S3 location to upload failure inference responses to.
	S3FailurePath *string `type:"string"`

	// The Amazon S3 location to upload inference responses to.
	S3OutputPath *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AsyncInferenceOutputConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AsyncInferenceOutputConfig) GoString() string {
	return s.String()
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *AsyncInferenceOutputConfig) SetKmsKeyId(v string) *AsyncInferenceOutputConfig {
	s.KmsKeyId = &v
	return s
}

// SetNotificationConfig sets the NotificationConfig field's value.
func (s *AsyncInferenceOutputConfig) SetNotificationConfig(v *AsyncInferenceNotificationConfig) *AsyncInferenceOutputConfig {
	s.NotificationConfig = v
	return s
}

// SetS3FailurePath sets the S3FailurePath field's value.
func (s *AsyncInferenceOutputConfig) SetS3FailurePath(v string) *AsyncInferenceOutputConfig {
	s.S3FailurePath = &v
	return s
}

// SetS3OutputPath sets the S3OutputPath field's value.
func (s *AsyncInferenceOutputConfig) SetS3OutputPath(v string) *AsyncInferenceOutputConfig {
	s.S3OutputPath = &v
	return s
}

// Configuration for Athena Dataset Definition input.
type AthenaDatasetDefinition struct {
	_ struct{} `type:"structure"`

	// The name of the data catalog used in Athena query execution.
	//
	// Catalog is a required field
	Catalog *string `min:"1" type:"string" required:"true"`

	// The name of the database used in the Athena query execution.
	//
	// Database is a required field
	Database *string `min:"1" type:"string" required:"true"`

	// The Amazon Web Services Key Management Service (Amazon Web Services KMS)
	// key that Amazon SageMaker uses to encrypt data generated from an Athena query
	// execution.
	KmsKeyId *string `type:"string"`

	// The compression used for Athena query results.
	OutputCompression *string `type:"string" enum:"AthenaResultCompressionType"`

	// The data storage format for Athena query results.
	//
	// OutputFormat is a required field
	OutputFormat *string `type:"string" required:"true" enum:"AthenaResultFormat"`

	// The location in Amazon S3 where Athena query results are stored.
	//
	// OutputS3Uri is a required field
	OutputS3Uri *string `type:"string" required:"true"`

	// The SQL query statements, to be executed.
	//
	// QueryString is a required field
	QueryString *string `min:"1" type:"string" required:"true"`

	// The name of the workgroup in which the Athena query is being started.
	WorkGroup *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AthenaDatasetDefinition) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AthenaDatasetDefinition) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AthenaDatasetDefinition) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AthenaDatasetDefinition"}
	if s.Catalog == nil {
		invalidParams.Add(request.NewErrParamRequired("Catalog"))
	}
	if s.Catalog != nil && len(*s.Catalog) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Catalog", 1))
	}
	if s.Database == nil {
		invalidParams.Add(request.NewErrParamRequired("Database"))
	}
	if s.Database != nil && len(*s.Database) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Database", 1))
	}
	if s.OutputFormat == nil {
		invalidParams.Add(request.NewErrParamRequired("OutputFormat"))
	}
	if s.OutputS3Uri == nil {
		invalidParams.Add(request.NewErrParamRequired("OutputS3Uri"))
	}
	if s.QueryString == nil {
		invalidParams.Add(request.NewErrParamRequired("QueryString"))
	}
	if s.QueryString != nil && len(*s.QueryString) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
	}
	if s.WorkGroup != nil && len(*s.WorkGroup) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("WorkGroup", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCatalog sets the Catalog field's value.
func (s *AthenaDatasetDefinition) SetCatalog(v string) *AthenaDatasetDefinition {
	s.Catalog = &v
	return s
}

// SetDatabase sets the Database field's value.
func (s *AthenaDatasetDefinition) SetDatabase(v string) *AthenaDatasetDefinition {
	s.Database = &v
	return s
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *AthenaDatasetDefinition) SetKmsKeyId(v string) *AthenaDatasetDefinition {
	s.KmsKeyId = &v
	return s
}

// SetOutputCompression sets the OutputCompression field's value.
func (s *AthenaDatasetDefinition) SetOutputCompression(v string) *AthenaDatasetDefinition {
	s.OutputCompression = &v
	return s
}

// SetOutputFormat sets the OutputFormat field's value.
func (s *AthenaDatasetDefinition) SetOutputFormat(v string) *AthenaDatasetDefinition {
	s.OutputFormat = &v
	return s
}

// SetOutputS3Uri sets the OutputS3Uri field's value.
func (s *AthenaDatasetDefinition) SetOutputS3Uri(v string) *AthenaDatasetDefinition {
	s.OutputS3Uri = &v
	return s
}

// SetQueryString sets the QueryString field's value.
func (s *AthenaDatasetDefinition) SetQueryString(v string) *AthenaDatasetDefinition {
	s.QueryString = &v
	return s
}

// SetWorkGroup sets the WorkGroup field's value.
func (s *AthenaDatasetDefinition) SetWorkGroup(v string) *AthenaDatasetDefinition {
	s.WorkGroup = &v
	return s
}

// The collection of algorithms run on a dataset for training the model candidates
// of an Autopilot job.
type AutoMLAlgorithmConfig struct {
	_ struct{} `type:"structure"`

	// The selection of algorithms run on a dataset to train the model candidates
	// of an Autopilot job.
	//
	// Selected algorithms must belong to the list corresponding to the training
	// mode set in AutoMLJobConfig.Mode (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobConfig.html#sagemaker-Type-AutoMLJobConfig-Mode)
	// (ENSEMBLING or HYPERPARAMETER_TUNING). Choose a minimum of 1 algorithm.
	//
	//    * In ENSEMBLING mode: "catboost" "extra-trees" "fastai" "lightgbm" "linear-learner"
	//    "nn-torch" "randomforest" "xgboost"
	//
	//    * In HYPERPARAMETER_TUNING mode: "linear-learner" "mlp" "xgboost"
	//
	// AutoMLAlgorithms is a required field
	AutoMLAlgorithms []*string `type:"list" required:"true" enum:"AutoMLAlgorithm"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLAlgorithmConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLAlgorithmConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AutoMLAlgorithmConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AutoMLAlgorithmConfig"}
	if s.AutoMLAlgorithms == nil {
		invalidParams.Add(request.NewErrParamRequired("AutoMLAlgorithms"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAutoMLAlgorithms sets the AutoMLAlgorithms field's value.
func (s *AutoMLAlgorithmConfig) SetAutoMLAlgorithms(v []*string) *AutoMLAlgorithmConfig {
	s.AutoMLAlgorithms = v
	return s
}

// Information about a candidate produced by an AutoML training job, including
// its status, steps, and other properties.
type AutoMLCandidate struct {
	_ struct{} `type:"structure"`

	// The name of the candidate.
	//
	// CandidateName is a required field
	CandidateName *string `min:"1" type:"string" required:"true"`

	// The properties of an AutoML candidate job.
	CandidateProperties *CandidateProperties `type:"structure"`

	// The candidate's status.
	//
	// CandidateStatus is a required field
	CandidateStatus *string `type:"string" required:"true" enum:"CandidateStatus"`

	// Information about the candidate's steps.
	//
	// CandidateSteps is a required field
	CandidateSteps []*AutoMLCandidateStep `type:"list" required:"true"`

	// The creation time.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The end time.
	EndTime *time.Time `type:"timestamp"`

	// The failure reason.
	FailureReason *string `type:"string"`

	// The best candidate result from an AutoML training job.
	FinalAutoMLJobObjectiveMetric *FinalAutoMLJobObjectiveMetric `type:"structure"`

	// The mapping of all supported processing unit (CPU, GPU, etc...) to inference
	// container definitions for the candidate. This field is populated for the
	// AutoML jobs V2 (for example, for jobs created by calling CreateAutoMLJobV2)
	// related to image or text classification problem types only.
	InferenceContainerDefinitions map[string][]*AutoMLContainerDefinition `type:"map"`

	// Information about the recommended inference container definitions.
	InferenceContainers []*AutoMLContainerDefinition `type:"list"`

	// The last modified time.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`

	// The objective's status.
	//
	// ObjectiveStatus is a required field
	ObjectiveStatus *string `type:"string" required:"true" enum:"ObjectiveStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLCandidate) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLCandidate) GoString() string {
	return s.String()
}

// SetCandidateName sets the CandidateName field's value.
func (s *AutoMLCandidate) SetCandidateName(v string) *AutoMLCandidate {
	s.CandidateName = &v
	return s
}

// SetCandidateProperties sets the CandidateProperties field's value.
func (s *AutoMLCandidate) SetCandidateProperties(v *CandidateProperties) *AutoMLCandidate {
	s.CandidateProperties = v
	return s
}

// SetCandidateStatus sets the CandidateStatus field's value.
func (s *AutoMLCandidate) SetCandidateStatus(v string) *AutoMLCandidate {
	s.CandidateStatus = &v
	return s
}

// SetCandidateSteps sets the CandidateSteps field's value.
func (s *AutoMLCandidate) SetCandidateSteps(v []*AutoMLCandidateStep) *AutoMLCandidate {
	s.CandidateSteps = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *AutoMLCandidate) SetCreationTime(v time.Time) *AutoMLCandidate {
	s.CreationTime = &v
	return s
}

// SetEndTime sets the EndTime field's value.
func (s *AutoMLCandidate) SetEndTime(v time.Time) *AutoMLCandidate {
	s.EndTime = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *AutoMLCandidate) SetFailureReason(v string) *AutoMLCandidate {
	s.FailureReason = &v
	return s
}

// SetFinalAutoMLJobObjectiveMetric sets the FinalAutoMLJobObjectiveMetric field's value.
func (s *AutoMLCandidate) SetFinalAutoMLJobObjectiveMetric(v *FinalAutoMLJobObjectiveMetric) *AutoMLCandidate {
	s.FinalAutoMLJobObjectiveMetric = v
	return s
}

// SetInferenceContainerDefinitions sets the InferenceContainerDefinitions field's value.
func (s *AutoMLCandidate) SetInferenceContainerDefinitions(v map[string][]*AutoMLContainerDefinition) *AutoMLCandidate {
	s.InferenceContainerDefinitions = v
	return s
}

// SetInferenceContainers sets the InferenceContainers field's value.
func (s *AutoMLCandidate) SetInferenceContainers(v []*AutoMLContainerDefinition) *AutoMLCandidate {
	s.InferenceContainers = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *AutoMLCandidate) SetLastModifiedTime(v time.Time) *AutoMLCandidate {
	s.LastModifiedTime = &v
	return s
}

// SetObjectiveStatus sets the ObjectiveStatus field's value.
func (s *AutoMLCandidate) SetObjectiveStatus(v string) *AutoMLCandidate {
	s.ObjectiveStatus = &v
	return s
}

// Stores the configuration information for how a candidate is generated (optional).
type AutoMLCandidateGenerationConfig struct {
	_ struct{} `type:"structure"`

	// Stores the configuration information for the selection of algorithms used
	// to train the model candidates.
	//
	// The list of available algorithms to choose from depends on the training mode
	// set in AutoMLJobConfig.Mode (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobConfig.html).
	//
	//    * AlgorithmsConfig should not be set in AUTO training mode.
	//
	//    * When AlgorithmsConfig is provided, one AutoMLAlgorithms attribute must
	//    be set and one only. If the list of algorithms provided as values for
	//    AutoMLAlgorithms is empty, AutoMLCandidateGenerationConfig uses the full
	//    set of algorithms for the given training mode.
	//
	//    * When AlgorithmsConfig is not provided, AutoMLCandidateGenerationConfig
	//    uses the full set of algorithms for the given training mode.
	//
	// For the list of all algorithms per training mode, see AutoMLAlgorithmConfig
	// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLAlgorithmConfig.html).
	//
	// For more information on each algorithm, see the Algorithm support (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html#autopilot-algorithm-support)
	// section in Autopilot developer guide.
	AlgorithmsConfig []*AutoMLAlgorithmConfig `type:"list"`

	// A URL to the Amazon S3 data source containing selected features from the
	// input data source to run an Autopilot job. You can input FeatureAttributeNames
	// (optional) in JSON format as shown below:
	//
	// { "FeatureAttributeNames":["col1", "col2", ...] }.
	//
	// You can also specify the data type of the feature (optional) in the format
	// shown below:
	//
	// { "FeatureDataTypes":{"col1":"numeric", "col2":"categorical" ... } }
	//
	// These column keys may not include the target column.
	//
	// In ensembling mode, Autopilot only supports the following data types: numeric,
	// categorical, text, and datetime. In HPO mode, Autopilot can support numeric,
	// categorical, text, datetime, and sequence.
	//
	// If only FeatureDataTypes is provided, the column keys (col1, col2,..) should
	// be a subset of the column names in the input data.
	//
	// If both FeatureDataTypes and FeatureAttributeNames are provided, then the
	// column keys should be a subset of the column names provided in FeatureAttributeNames.
	//
	// The key name FeatureAttributeNames is fixed. The values listed in ["col1",
	// "col2", ...] are case sensitive and should be a list of strings containing
	// unique values that are a subset of the column names in the input data. The
	// list of columns provided must not include the target column.
	FeatureSpecificationS3Uri *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLCandidateGenerationConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLCandidateGenerationConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AutoMLCandidateGenerationConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AutoMLCandidateGenerationConfig"}
	if s.AlgorithmsConfig != nil {
		for i, v := range s.AlgorithmsConfig {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AlgorithmsConfig", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAlgorithmsConfig sets the AlgorithmsConfig field's value.
func (s *AutoMLCandidateGenerationConfig) SetAlgorithmsConfig(v []*AutoMLAlgorithmConfig) *AutoMLCandidateGenerationConfig {
	s.AlgorithmsConfig = v
	return s
}

// SetFeatureSpecificationS3Uri sets the FeatureSpecificationS3Uri field's value.
func (s *AutoMLCandidateGenerationConfig) SetFeatureSpecificationS3Uri(v string) *AutoMLCandidateGenerationConfig {
	s.FeatureSpecificationS3Uri = &v
	return s
}

// Information about the steps for a candidate and what step it is working on.
type AutoMLCandidateStep struct {
	_ struct{} `type:"structure"`

	// The ARN for the candidate's step.
	//
	// CandidateStepArn is a required field
	CandidateStepArn *string `min:"1" type:"string" required:"true"`

	// The name for the candidate's step.
	//
	// CandidateStepName is a required field
	CandidateStepName *string `min:"1" type:"string" required:"true"`

	// Whether the candidate is at the transform, training, or processing step.
	//
	// CandidateStepType is a required field
	CandidateStepType *string `type:"string" required:"true" enum:"CandidateStepType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLCandidateStep) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLCandidateStep) GoString() string {
	return s.String()
}

// SetCandidateStepArn sets the CandidateStepArn field's value.
func (s *AutoMLCandidateStep) SetCandidateStepArn(v string) *AutoMLCandidateStep {
	s.CandidateStepArn = &v
	return s
}

// SetCandidateStepName sets the CandidateStepName field's value.
func (s *AutoMLCandidateStep) SetCandidateStepName(v string) *AutoMLCandidateStep {
	s.CandidateStepName = &v
	return s
}

// SetCandidateStepType sets the CandidateStepType field's value.
func (s *AutoMLCandidateStep) SetCandidateStepType(v string) *AutoMLCandidateStep {
	s.CandidateStepType = &v
	return s
}

// A channel is a named input source that training algorithms can consume. The
// validation dataset size is limited to less than 2 GB. The training dataset
// size must be less than 100 GB. For more information, see Channel (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Channel.html).
//
// A validation dataset must contain the same headers as the training dataset.
type AutoMLChannel struct {
	_ struct{} `type:"structure"`

	// The channel type (optional) is an enum string. The default value is training.
	// Channels for training and validation must share the same ContentType and
	// TargetAttributeName. For information on specifying training and validation
	// channel types, see How to specify training and validation datasets (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-datasets-problem-types.html#autopilot-data-sources-training-or-validation).
	ChannelType *string `type:"string" enum:"AutoMLChannelType"`

	// You can use Gzip or None. The default value is None.
	CompressionType *string `type:"string" enum:"CompressionType"`

	// The content type of the data from the input source. You can use text/csv;header=present
	// or x-application/vnd.amazon+parquet. The default value is text/csv;header=present.
	ContentType *string `type:"string"`

	// The data source for an AutoML channel.
	DataSource *AutoMLDataSource `type:"structure"`

	// If specified, this column name indicates which column of the dataset should
	// be treated as sample weights for use by the objective metric during the training,
	// evaluation, and the selection of the best model. This column is not considered
	// as a predictive feature. For more information on Autopilot metrics, see Metrics
	// and validation (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-metrics-validation.html).
	//
	// Sample weights should be numeric, non-negative, with larger values indicating
	// which rows are more important than others. Data points that have invalid
	// or no weight value are excluded.
	//
	// Support for sample weights is available in Ensembling (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLAlgorithmConfig.html)
	// mode only.
	SampleWeightAttributeName *string `min:"1" type:"string"`

	// The name of the target variable in supervised learning, usually represented
	// by 'y'.
	//
	// TargetAttributeName is a required field
	TargetAttributeName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLChannel) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLChannel) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AutoMLChannel) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AutoMLChannel"}
	if s.SampleWeightAttributeName != nil && len(*s.SampleWeightAttributeName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SampleWeightAttributeName", 1))
	}
	if s.TargetAttributeName == nil {
		invalidParams.Add(request.NewErrParamRequired("TargetAttributeName"))
	}
	if s.TargetAttributeName != nil && len(*s.TargetAttributeName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TargetAttributeName", 1))
	}
	if s.DataSource != nil {
		if err := s.DataSource.Validate(); err != nil {
			invalidParams.AddNested("DataSource", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelType sets the ChannelType field's value.
func (s *AutoMLChannel) SetChannelType(v string) *AutoMLChannel {
	s.ChannelType = &v
	return s
}

// SetCompressionType sets the CompressionType field's value.
func (s *AutoMLChannel) SetCompressionType(v string) *AutoMLChannel {
	s.CompressionType = &v
	return s
}

// SetContentType sets the ContentType field's value.
func (s *AutoMLChannel) SetContentType(v string) *AutoMLChannel {
	s.ContentType = &v
	return s
}

// SetDataSource sets the DataSource field's value.
func (s *AutoMLChannel) SetDataSource(v *AutoMLDataSource) *AutoMLChannel {
	s.DataSource = v
	return s
}

// SetSampleWeightAttributeName sets the SampleWeightAttributeName field's value.
func (s *AutoMLChannel) SetSampleWeightAttributeName(v string) *AutoMLChannel {
	s.SampleWeightAttributeName = &v
	return s
}

// SetTargetAttributeName sets the TargetAttributeName field's value.
func (s *AutoMLChannel) SetTargetAttributeName(v string) *AutoMLChannel {
	s.TargetAttributeName = &v
	return s
}

// A list of container definitions that describe the different containers that
// make up an AutoML candidate. For more information, see ContainerDefinition
// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerDefinition.html).
type AutoMLContainerDefinition struct {
	_ struct{} `type:"structure"`

	// The environment variables to set in the container. For more information,
	// see ContainerDefinition (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerDefinition.html).
	Environment map[string]*string `type:"map"`

	// The Amazon Elastic Container Registry (Amazon ECR) path of the container.
	// For more information, see ContainerDefinition (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerDefinition.html).
	//
	// Image is a required field
	Image *string `type:"string" required:"true"`

	// The location of the model artifacts. For more information, see ContainerDefinition
	// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerDefinition.html).
	//
	// ModelDataUrl is a required field
	ModelDataUrl *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLContainerDefinition) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLContainerDefinition) GoString() string {
	return s.String()
}

// SetEnvironment sets the Environment field's value.
func (s *AutoMLContainerDefinition) SetEnvironment(v map[string]*string) *AutoMLContainerDefinition {
	s.Environment = v
	return s
}

// SetImage sets the Image field's value.
func (s *AutoMLContainerDefinition) SetImage(v string) *AutoMLContainerDefinition {
	s.Image = &v
	return s
}

// SetModelDataUrl sets the ModelDataUrl field's value.
func (s *AutoMLContainerDefinition) SetModelDataUrl(v string) *AutoMLContainerDefinition {
	s.ModelDataUrl = &v
	return s
}

// The data source for the Autopilot job.
type AutoMLDataSource struct {
	_ struct{} `type:"structure"`

	// The Amazon S3 location of the input data.
	//
	// S3DataSource is a required field
	S3DataSource *AutoMLS3DataSource `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLDataSource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLDataSource) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AutoMLDataSource) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AutoMLDataSource"}
	if s.S3DataSource == nil {
		invalidParams.Add(request.NewErrParamRequired("S3DataSource"))
	}
	if s.S3DataSource != nil {
		if err := s.S3DataSource.Validate(); err != nil {
			invalidParams.AddNested("S3DataSource", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetS3DataSource sets the S3DataSource field's value.
func (s *AutoMLDataSource) SetS3DataSource(v *AutoMLS3DataSource) *AutoMLDataSource {
	s.S3DataSource = v
	return s
}

// This structure specifies how to split the data into train and validation
// datasets.
//
// The validation and training datasets must contain the same headers. For jobs
// created by calling CreateAutoMLJob, the validation dataset must be less than
// 2 GB in size.
type AutoMLDataSplitConfig struct {
	_ struct{} `type:"structure"`

	// The validation fraction (optional) is a float that specifies the portion
	// of the training dataset to be used for validation. The default value is 0.2,
	// and values must be greater than 0 and less than 1. We recommend setting this
	// value to be less than 0.5.
	ValidationFraction *float64 `type:"float"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLDataSplitConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLDataSplitConfig) GoString() string {
	return s.String()
}

// SetValidationFraction sets the ValidationFraction field's value.
func (s *AutoMLDataSplitConfig) SetValidationFraction(v float64) *AutoMLDataSplitConfig {
	s.ValidationFraction = &v
	return s
}

// The artifacts that are generated during an AutoML job.
type AutoMLJobArtifacts struct {
	_ struct{} `type:"structure"`

	// The URL of the notebook location.
	CandidateDefinitionNotebookLocation *string `min:"1" type:"string"`

	// The URL of the notebook location.
	DataExplorationNotebookLocation *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLJobArtifacts) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLJobArtifacts) GoString() string {
	return s.String()
}

// SetCandidateDefinitionNotebookLocation sets the CandidateDefinitionNotebookLocation field's value.
func (s *AutoMLJobArtifacts) SetCandidateDefinitionNotebookLocation(v string) *AutoMLJobArtifacts {
	s.CandidateDefinitionNotebookLocation = &v
	return s
}

// SetDataExplorationNotebookLocation sets the DataExplorationNotebookLocation field's value.
func (s *AutoMLJobArtifacts) SetDataExplorationNotebookLocation(v string) *AutoMLJobArtifacts {
	s.DataExplorationNotebookLocation = &v
	return s
}

// A channel is a named input source that training algorithms can consume. This
// channel is used for AutoML jobs V2 (jobs created by calling CreateAutoMLJobV2
// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html)).
type AutoMLJobChannel struct {
	_ struct{} `type:"structure"`

	// The type of channel. Defines whether the data are used for training or validation.
	// The default value is training. Channels for training and validation must
	// share the same ContentType
	//
	// The type of channel defaults to training for the time-series forecasting
	// problem type.
	ChannelType *string `type:"string" enum:"AutoMLChannelType"`

	// The allowed compression types depend on the input format and problem type.
	// We allow the compression type Gzip for S3Prefix inputs on tabular data only.
	// For all other inputs, the compression type should be None. If no compression
	// type is provided, we default to None.
	CompressionType *string `type:"string" enum:"CompressionType"`

	// The content type of the data from the input source. The following are the
	// allowed content types for different problems:
	//
	//    * For tabular problem types: text/csv;header=present or x-application/vnd.amazon+parquet.
	//    The default value is text/csv;header=present.
	//
	//    * For image classification: image/png, image/jpeg, or image/*. The default
	//    value is image/*.
	//
	//    * For text classification: text/csv;header=present or x-application/vnd.amazon+parquet.
	//    The default value is text/csv;header=present.
	//
	//    * For time-series forecasting: text/csv;header=present or x-application/vnd.amazon+parquet.
	//    The default value is text/csv;header=present.
	//
	//    * For text generation (LLMs fine-tuning): text/csv;header=present or x-application/vnd.amazon+parquet.
	//    The default value is text/csv;header=present.
	ContentType *string `type:"string"`

	// The data source for an AutoML channel (Required).
	DataSource *AutoMLDataSource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLJobChannel) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLJobChannel) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AutoMLJobChannel) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AutoMLJobChannel"}
	if s.DataSource != nil {
		if err := s.DataSource.Validate(); err != nil {
			invalidParams.AddNested("DataSource", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelType sets the ChannelType field's value.
func (s *AutoMLJobChannel) SetChannelType(v string) *AutoMLJobChannel {
	s.ChannelType = &v
	return s
}

// SetCompressionType sets the CompressionType field's value.
func (s *AutoMLJobChannel) SetCompressionType(v string) *AutoMLJobChannel {
	s.CompressionType = &v
	return s
}

// SetContentType sets the ContentType field's value.
func (s *AutoMLJobChannel) SetContentType(v string) *AutoMLJobChannel {
	s.ContentType = &v
	return s
}

// SetDataSource sets the DataSource field's value.
func (s *AutoMLJobChannel) SetDataSource(v *AutoMLDataSource) *AutoMLJobChannel {
	s.DataSource = v
	return s
}

// How long a job is allowed to run, or how many candidates a job is allowed
// to generate.
type AutoMLJobCompletionCriteria struct {
	_ struct{} `type:"structure"`

	// The maximum runtime, in seconds, an AutoML job has to complete.
	//
	// If an AutoML job exceeds the maximum runtime, the job is stopped automatically
	// and its processing is ended gracefully. The AutoML job identifies the best
	// model whose training was completed and marks it as the best-performing model.
	// Any unfinished steps of the job, such as automatic one-click Autopilot model
	// deployment, are not completed.
	MaxAutoMLJobRuntimeInSeconds *int64 `min:"1" type:"integer"`

	// The maximum number of times a training job is allowed to run.
	//
	// For text and image classification, time-series forecasting, as well as text
	// generation (LLMs fine-tuning) problem types, the supported value is 1. For
	// tabular problem types, the maximum value is 750.
	MaxCandidates *int64 `min:"1" type:"integer"`

	// The maximum time, in seconds, that each training job executed inside hyperparameter
	// tuning is allowed to run as part of a hyperparameter tuning job. For more
	// information, see the StoppingCondition (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StoppingCondition.html)
	// used by the CreateHyperParameterTuningJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html)
	// action.
	//
	// For job V2s (jobs created by calling CreateAutoMLJobV2), this field controls
	// the runtime of the job candidate.
	//
	// For TextGenerationJobConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TextClassificationJobConfig.html)
	// problem types, the maximum time defaults to 72 hours (259200 seconds).
	MaxRuntimePerTrainingJobInSeconds *int64 `min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLJobCompletionCriteria) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLJobCompletionCriteria) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AutoMLJobCompletionCriteria) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AutoMLJobCompletionCriteria"}
	if s.MaxAutoMLJobRuntimeInSeconds != nil && *s.MaxAutoMLJobRuntimeInSeconds < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxAutoMLJobRuntimeInSeconds", 1))
	}
	if s.MaxCandidates != nil && *s.MaxCandidates < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxCandidates", 1))
	}
	if s.MaxRuntimePerTrainingJobInSeconds != nil && *s.MaxRuntimePerTrainingJobInSeconds < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxRuntimePerTrainingJobInSeconds", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxAutoMLJobRuntimeInSeconds sets the MaxAutoMLJobRuntimeInSeconds field's value.
func (s *AutoMLJobCompletionCriteria) SetMaxAutoMLJobRuntimeInSeconds(v int64) *AutoMLJobCompletionCriteria {
	s.MaxAutoMLJobRuntimeInSeconds = &v
	return s
}

// SetMaxCandidates sets the MaxCandidates field's value.
func (s *AutoMLJobCompletionCriteria) SetMaxCandidates(v int64) *AutoMLJobCompletionCriteria {
	s.MaxCandidates = &v
	return s
}

// SetMaxRuntimePerTrainingJobInSeconds sets the MaxRuntimePerTrainingJobInSeconds field's value.
func (s *AutoMLJobCompletionCriteria) SetMaxRuntimePerTrainingJobInSeconds(v int64) *AutoMLJobCompletionCriteria {
	s.MaxRuntimePerTrainingJobInSeconds = &v
	return s
}

// A collection of settings used for an AutoML job.
type AutoMLJobConfig struct {
	_ struct{} `type:"structure"`

	// The configuration for generating a candidate for an AutoML job (optional).
	CandidateGenerationConfig *AutoMLCandidateGenerationConfig `type:"structure"`

	// How long an AutoML job is allowed to run, or how many candidates a job is
	// allowed to generate.
	CompletionCriteria *AutoMLJobCompletionCriteria `type:"structure"`

	// The configuration for splitting the input training dataset.
	//
	// Type: AutoMLDataSplitConfig
	DataSplitConfig *AutoMLDataSplitConfig `type:"structure"`

	// The method that Autopilot uses to train the data. You can either specify
	// the mode manually or let Autopilot choose for you based on the dataset size
	// by selecting AUTO. In AUTO mode, Autopilot chooses ENSEMBLING for datasets
	// smaller than 100 MB, and HYPERPARAMETER_TUNING for larger ones.
	//
	// The ENSEMBLING mode uses a multi-stack ensemble model to predict classification
	// and regression tasks directly from your dataset. This machine learning mode
	// combines several base models to produce an optimal predictive model. It then
	// uses a stacking ensemble method to combine predictions from contributing
	// members. A multi-stack ensemble model can provide better performance over
	// a single model by combining the predictive capabilities of multiple models.
	// See Autopilot algorithm support (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html#autopilot-algorithm-support)
	// for a list of algorithms supported by ENSEMBLING mode.
	//
	// The HYPERPARAMETER_TUNING (HPO) mode uses the best hyperparameters to train
	// the best version of a model. HPO automatically selects an algorithm for the
	// type of problem you want to solve. Then HPO finds the best hyperparameters
	// according to your objective metric. See Autopilot algorithm support (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html#autopilot-algorithm-support)
	// for a list of algorithms supported by HYPERPARAMETER_TUNING mode.
	Mode *string `type:"string" enum:"AutoMLMode"`

	// The security configuration for traffic encryption or Amazon VPC settings.
	SecurityConfig *AutoMLSecurityConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLJobConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLJobConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AutoMLJobConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AutoMLJobConfig"}
	if s.CandidateGenerationConfig != nil {
		if err := s.CandidateGenerationConfig.Validate(); err != nil {
			invalidParams.AddNested("CandidateGenerationConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.CompletionCriteria != nil {
		if err := s.CompletionCriteria.Validate(); err != nil {
			invalidParams.AddNested("CompletionCriteria", err.(request.ErrInvalidParams))
		}
	}
	if s.SecurityConfig != nil {
		if err := s.SecurityConfig.Validate(); err != nil {
			invalidParams.AddNested("SecurityConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCandidateGenerationConfig sets the CandidateGenerationConfig field's value.
func (s *AutoMLJobConfig) SetCandidateGenerationConfig(v *AutoMLCandidateGenerationConfig) *AutoMLJobConfig {
	s.CandidateGenerationConfig = v
	return s
}

// SetCompletionCriteria sets the CompletionCriteria field's value.
func (s *AutoMLJobConfig) SetCompletionCriteria(v *AutoMLJobCompletionCriteria) *AutoMLJobConfig {
	s.CompletionCriteria = v
	return s
}

// SetDataSplitConfig sets the DataSplitConfig field's value.
func (s *AutoMLJobConfig) SetDataSplitConfig(v *AutoMLDataSplitConfig) *AutoMLJobConfig {
	s.DataSplitConfig = v
	return s
}

// SetMode sets the Mode field's value.
func (s *AutoMLJobConfig) SetMode(v string) *AutoMLJobConfig {
	s.Mode = &v
	return s
}

// SetSecurityConfig sets the SecurityConfig field's value.
func (s *AutoMLJobConfig) SetSecurityConfig(v *AutoMLSecurityConfig) *AutoMLJobConfig {
	s.SecurityConfig = v
	return s
}

// Specifies a metric to minimize or maximize as the objective of an AutoML
// job.
type AutoMLJobObjective struct {
	_ struct{} `type:"structure"`

	// The name of the objective metric used to measure the predictive quality of
	// a machine learning system. During training, the model's parameters are updated
	// iteratively to optimize its performance based on the feedback provided by
	// the objective metric when evaluating the model on the validation dataset.
	//
	// The list of available metrics supported by Autopilot and the default metric
	// applied when you do not specify a metric name explicitly depend on the problem
	// type.
	//
	//    * For tabular problem types: List of available metrics: Regression: InferenceLatency,
	//    MAE, MSE, R2, RMSE Binary classification: Accuracy, AUC, BalancedAccuracy,
	//    F1, InferenceLatency, LogLoss, Precision, Recall Multiclass classification:
	//    Accuracy, BalancedAccuracy, F1macro, InferenceLatency, LogLoss, PrecisionMacro,
	//    RecallMacro For a description of each metric, see Autopilot metrics for
	//    classification and regression (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-metrics-validation.html#autopilot-metrics).
	//    Default objective metrics: Regression: MSE. Binary classification: F1.
	//    Multiclass classification: Accuracy.
	//
	//    * For image or text classification problem types: List of available metrics:
	//    Accuracy For a description of each metric, see Autopilot metrics for text
	//    and image classification (https://docs.aws.amazon.com/sagemaker/latest/dg/text-classification-data-format-and-metric.html).
	//    Default objective metrics: Accuracy
	//
	//    * For time-series forecasting problem types: List of available metrics:
	//    RMSE, wQL, Average wQL, MASE, MAPE, WAPE For a description of each metric,
	//    see Autopilot metrics for time-series forecasting (https://docs.aws.amazon.com/sagemaker/latest/dg/timeseries-objective-metric.html).
	//    Default objective metrics: AverageWeightedQuantileLoss
	//
	//    * For text generation problem types (LLMs fine-tuning): Fine-tuning language
	//    models in Autopilot does not require setting the AutoMLJobObjective field.
	//    Autopilot fine-tunes LLMs without requiring multiple candidates to be
	//    trained and evaluated. Instead, using your dataset, Autopilot directly
	//    fine-tunes your target model to enhance a default objective metric, the
	//    cross-entropy loss. After fine-tuning a language model, you can evaluate
	//    the quality of its generated text using different metrics. For a list
	//    of the available metrics, see Metrics for fine-tuning LLMs in Autopilot
	//    (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-llms-finetuning-metrics.html).
	//
	// MetricName is a required field
	MetricName *string `type:"string" required:"true" enum:"AutoMLMetricEnum"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLJobObjective) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLJobObjective) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AutoMLJobObjective) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AutoMLJobObjective"}
	if s.MetricName == nil {
		invalidParams.Add(request.NewErrParamRequired("MetricName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMetricName sets the MetricName field's value.
func (s *AutoMLJobObjective) SetMetricName(v string) *AutoMLJobObjective {
	s.MetricName = &v
	return s
}

// Metadata for an AutoML job step.
type AutoMLJobStepMetadata struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the AutoML job.
	Arn *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLJobStepMetadata) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLJobStepMetadata) GoString() string {
	return s.String()
}

// SetArn sets the Arn field's value.
func (s *AutoMLJobStepMetadata) SetArn(v string) *AutoMLJobStepMetadata {
	s.Arn = &v
	return s
}

// Provides a summary about an AutoML job.
type AutoMLJobSummary struct {
	_ struct{} `type:"structure"`

	// The ARN of the AutoML job.
	//
	// AutoMLJobArn is a required field
	AutoMLJobArn *string `min:"1" type:"string" required:"true"`

	// The name of the AutoML job you are requesting.
	//
	// AutoMLJobName is a required field
	AutoMLJobName *string `min:"1" type:"string" required:"true"`

	// The secondary status of the AutoML job.
	//
	// AutoMLJobSecondaryStatus is a required field
	AutoMLJobSecondaryStatus *string `type:"string" required:"true" enum:"AutoMLJobSecondaryStatus"`

	// The status of the AutoML job.
	//
	// AutoMLJobStatus is a required field
	AutoMLJobStatus *string `type:"string" required:"true" enum:"AutoMLJobStatus"`

	// When the AutoML job was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The end time of an AutoML job.
	EndTime *time.Time `type:"timestamp"`

	// The failure reason of an AutoML job.
	FailureReason *string `type:"string"`

	// When the AutoML job was last modified.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`

	// The list of reasons for partial failures within an AutoML job.
	PartialFailureReasons []*AutoMLPartialFailureReason `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLJobSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLJobSummary) GoString() string {
	return s.String()
}

// SetAutoMLJobArn sets the AutoMLJobArn field's value.
func (s *AutoMLJobSummary) SetAutoMLJobArn(v string) *AutoMLJobSummary {
	s.AutoMLJobArn = &v
	return s
}

// SetAutoMLJobName sets the AutoMLJobName field's value.
func (s *AutoMLJobSummary) SetAutoMLJobName(v string) *AutoMLJobSummary {
	s.AutoMLJobName = &v
	return s
}

// SetAutoMLJobSecondaryStatus sets the AutoMLJobSecondaryStatus field's value.
func (s *AutoMLJobSummary) SetAutoMLJobSecondaryStatus(v string) *AutoMLJobSummary {
	s.AutoMLJobSecondaryStatus = &v
	return s
}

// SetAutoMLJobStatus sets the AutoMLJobStatus field's value.
func (s *AutoMLJobSummary) SetAutoMLJobStatus(v string) *AutoMLJobSummary {
	s.AutoMLJobStatus = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *AutoMLJobSummary) SetCreationTime(v time.Time) *AutoMLJobSummary {
	s.CreationTime = &v
	return s
}

// SetEndTime sets the EndTime field's value.
func (s *AutoMLJobSummary) SetEndTime(v time.Time) *AutoMLJobSummary {
	s.EndTime = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *AutoMLJobSummary) SetFailureReason(v string) *AutoMLJobSummary {
	s.FailureReason = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *AutoMLJobSummary) SetLastModifiedTime(v time.Time) *AutoMLJobSummary {
	s.LastModifiedTime = &v
	return s
}

// SetPartialFailureReasons sets the PartialFailureReasons field's value.
func (s *AutoMLJobSummary) SetPartialFailureReasons(v []*AutoMLPartialFailureReason) *AutoMLJobSummary {
	s.PartialFailureReasons = v
	return s
}

// The output data configuration.
type AutoMLOutputDataConfig struct {
	_ struct{} `type:"structure"`

	// The Key Management Service (KMS) encryption key ID.
	KmsKeyId *string `type:"string"`

	// The Amazon S3 output path. Must be 128 characters or less.
	//
	// S3OutputPath is a required field
	S3OutputPath *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLOutputDataConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLOutputDataConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AutoMLOutputDataConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AutoMLOutputDataConfig"}
	if s.S3OutputPath == nil {
		invalidParams.Add(request.NewErrParamRequired("S3OutputPath"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *AutoMLOutputDataConfig) SetKmsKeyId(v string) *AutoMLOutputDataConfig {
	s.KmsKeyId = &v
	return s
}

// SetS3OutputPath sets the S3OutputPath field's value.
func (s *AutoMLOutputDataConfig) SetS3OutputPath(v string) *AutoMLOutputDataConfig {
	s.S3OutputPath = &v
	return s
}

// The reason for a partial failure of an AutoML job.
type AutoMLPartialFailureReason struct {
	_ struct{} `type:"structure"`

	// The message containing the reason for a partial failure of an AutoML job.
	PartialFailureMessage *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLPartialFailureReason) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLPartialFailureReason) GoString() string {
	return s.String()
}

// SetPartialFailureMessage sets the PartialFailureMessage field's value.
func (s *AutoMLPartialFailureReason) SetPartialFailureMessage(v string) *AutoMLPartialFailureReason {
	s.PartialFailureMessage = &v
	return s
}

// A collection of settings specific to the problem type used to configure an
// AutoML job V2. There must be one and only one config of the following type.
type AutoMLProblemTypeConfig struct {
	_ struct{} `type:"structure"`

	// Settings used to configure an AutoML job V2 for the image classification
	// problem type.
	ImageClassificationJobConfig *ImageClassificationJobConfig `type:"structure"`

	// Settings used to configure an AutoML job V2 for the tabular problem type
	// (regression, classification).
	TabularJobConfig *TabularJobConfig `type:"structure"`

	// Settings used to configure an AutoML job V2 for the text classification problem
	// type.
	TextClassificationJobConfig *TextClassificationJobConfig `type:"structure"`

	// Settings used to configure an AutoML job V2 for the text generation (LLMs
	// fine-tuning) problem type.
	//
	// The text generation models that support fine-tuning in Autopilot are currently
	// accessible exclusively in regions supported by Canvas. Refer to the documentation
	// of Canvas for the full list of its supported Regions (https://docs.aws.amazon.com/sagemaker/latest/dg/canvas.html).
	TextGenerationJobConfig *TextGenerationJobConfig `type:"structure"`

	// Settings used to configure an AutoML job V2 for the time-series forecasting
	// problem type.
	TimeSeriesForecastingJobConfig *TimeSeriesForecastingJobConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLProblemTypeConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLProblemTypeConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AutoMLProblemTypeConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AutoMLProblemTypeConfig"}
	if s.ImageClassificationJobConfig != nil {
		if err := s.ImageClassificationJobConfig.Validate(); err != nil {
			invalidParams.AddNested("ImageClassificationJobConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.TabularJobConfig != nil {
		if err := s.TabularJobConfig.Validate(); err != nil {
			invalidParams.AddNested("TabularJobConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.TextClassificationJobConfig != nil {
		if err := s.TextClassificationJobConfig.Validate(); err != nil {
			invalidParams.AddNested("TextClassificationJobConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.TextGenerationJobConfig != nil {
		if err := s.TextGenerationJobConfig.Validate(); err != nil {
			invalidParams.AddNested("TextGenerationJobConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.TimeSeriesForecastingJobConfig != nil {
		if err := s.TimeSeriesForecastingJobConfig.Validate(); err != nil {
			invalidParams.AddNested("TimeSeriesForecastingJobConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetImageClassificationJobConfig sets the ImageClassificationJobConfig field's value.
func (s *AutoMLProblemTypeConfig) SetImageClassificationJobConfig(v *ImageClassificationJobConfig) *AutoMLProblemTypeConfig {
	s.ImageClassificationJobConfig = v
	return s
}

// SetTabularJobConfig sets the TabularJobConfig field's value.
func (s *AutoMLProblemTypeConfig) SetTabularJobConfig(v *TabularJobConfig) *AutoMLProblemTypeConfig {
	s.TabularJobConfig = v
	return s
}

// SetTextClassificationJobConfig sets the TextClassificationJobConfig field's value.
func (s *AutoMLProblemTypeConfig) SetTextClassificationJobConfig(v *TextClassificationJobConfig) *AutoMLProblemTypeConfig {
	s.TextClassificationJobConfig = v
	return s
}

// SetTextGenerationJobConfig sets the TextGenerationJobConfig field's value.
func (s *AutoMLProblemTypeConfig) SetTextGenerationJobConfig(v *TextGenerationJobConfig) *AutoMLProblemTypeConfig {
	s.TextGenerationJobConfig = v
	return s
}

// SetTimeSeriesForecastingJobConfig sets the TimeSeriesForecastingJobConfig field's value.
func (s *AutoMLProblemTypeConfig) SetTimeSeriesForecastingJobConfig(v *TimeSeriesForecastingJobConfig) *AutoMLProblemTypeConfig {
	s.TimeSeriesForecastingJobConfig = v
	return s
}

// Stores resolved attributes specific to the problem type of an AutoML job
// V2.
type AutoMLProblemTypeResolvedAttributes struct {
	_ struct{} `type:"structure"`

	// The resolved attributes for the tabular problem type.
	TabularResolvedAttributes *TabularResolvedAttributes `type:"structure"`

	// The resolved attributes for the text generation problem type.
	TextGenerationResolvedAttributes *TextGenerationResolvedAttributes `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLProblemTypeResolvedAttributes) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLProblemTypeResolvedAttributes) GoString() string {
	return s.String()
}

// SetTabularResolvedAttributes sets the TabularResolvedAttributes field's value.
func (s *AutoMLProblemTypeResolvedAttributes) SetTabularResolvedAttributes(v *TabularResolvedAttributes) *AutoMLProblemTypeResolvedAttributes {
	s.TabularResolvedAttributes = v
	return s
}

// SetTextGenerationResolvedAttributes sets the TextGenerationResolvedAttributes field's value.
func (s *AutoMLProblemTypeResolvedAttributes) SetTextGenerationResolvedAttributes(v *TextGenerationResolvedAttributes) *AutoMLProblemTypeResolvedAttributes {
	s.TextGenerationResolvedAttributes = v
	return s
}

// The resolved attributes used to configure an AutoML job V2.
type AutoMLResolvedAttributes struct {
	_ struct{} `type:"structure"`

	// Specifies a metric to minimize or maximize as the objective of an AutoML
	// job.
	AutoMLJobObjective *AutoMLJobObjective `type:"structure"`

	// Defines the resolved attributes specific to a problem type.
	AutoMLProblemTypeResolvedAttributes *AutoMLProblemTypeResolvedAttributes `type:"structure"`

	// How long a job is allowed to run, or how many candidates a job is allowed
	// to generate.
	CompletionCriteria *AutoMLJobCompletionCriteria `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLResolvedAttributes) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLResolvedAttributes) GoString() string {
	return s.String()
}

// SetAutoMLJobObjective sets the AutoMLJobObjective field's value.
func (s *AutoMLResolvedAttributes) SetAutoMLJobObjective(v *AutoMLJobObjective) *AutoMLResolvedAttributes {
	s.AutoMLJobObjective = v
	return s
}

// SetAutoMLProblemTypeResolvedAttributes sets the AutoMLProblemTypeResolvedAttributes field's value.
func (s *AutoMLResolvedAttributes) SetAutoMLProblemTypeResolvedAttributes(v *AutoMLProblemTypeResolvedAttributes) *AutoMLResolvedAttributes {
	s.AutoMLProblemTypeResolvedAttributes = v
	return s
}

// SetCompletionCriteria sets the CompletionCriteria field's value.
func (s *AutoMLResolvedAttributes) SetCompletionCriteria(v *AutoMLJobCompletionCriteria) *AutoMLResolvedAttributes {
	s.CompletionCriteria = v
	return s
}

// Describes the Amazon S3 data source.
type AutoMLS3DataSource struct {
	_ struct{} `type:"structure"`

	// The data type.
	//
	//    * If you choose S3Prefix, S3Uri identifies a key name prefix. SageMaker
	//    uses all objects that match the specified key name prefix for model training.
	//    The S3Prefix should have the following format: s3://DOC-EXAMPLE-BUCKET/DOC-EXAMPLE-FOLDER-OR-FILE
	//
	//    * If you choose ManifestFile, S3Uri identifies an object that is a manifest
	//    file containing a list of object keys that you want SageMaker to use for
	//    model training. A ManifestFile should have the format shown below: [ {"prefix":
	//    "s3://DOC-EXAMPLE-BUCKET/DOC-EXAMPLE-FOLDER/DOC-EXAMPLE-PREFIX/"}, "DOC-EXAMPLE-RELATIVE-PATH/DOC-EXAMPLE-FOLDER/DATA-1",
	//    "DOC-EXAMPLE-RELATIVE-PATH/DOC-EXAMPLE-FOLDER/DATA-2", ... "DOC-EXAMPLE-RELATIVE-PATH/DOC-EXAMPLE-FOLDER/DATA-N"
	//    ]
	//
	//    * If you choose AugmentedManifestFile, S3Uri identifies an object that
	//    is an augmented manifest file in JSON lines format. This file contains
	//    the data you want to use for model training. AugmentedManifestFile is
	//    available for V2 API jobs only (for example, for jobs created by calling
	//    CreateAutoMLJobV2). Here is a minimal, single-record example of an AugmentedManifestFile:
	//    {"source-ref": "s3://DOC-EXAMPLE-BUCKET/DOC-EXAMPLE-FOLDER/cats/cat.jpg",
	//    "label-metadata": {"class-name": "cat" } For more information on AugmentedManifestFile,
	//    see Provide Dataset Metadata to Training Jobs with an Augmented Manifest
	//    File (https://docs.aws.amazon.com/sagemaker/latest/dg/augmented-manifest.html).
	//
	// S3DataType is a required field
	S3DataType *string `type:"string" required:"true" enum:"AutoMLS3DataType"`

	// The URL to the Amazon S3 data source. The Uri refers to the Amazon S3 prefix
	// or ManifestFile depending on the data type.
	//
	// S3Uri is a required field
	S3Uri *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLS3DataSource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLS3DataSource) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AutoMLS3DataSource) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AutoMLS3DataSource"}
	if s.S3DataType == nil {
		invalidParams.Add(request.NewErrParamRequired("S3DataType"))
	}
	if s.S3Uri == nil {
		invalidParams.Add(request.NewErrParamRequired("S3Uri"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetS3DataType sets the S3DataType field's value.
func (s *AutoMLS3DataSource) SetS3DataType(v string) *AutoMLS3DataSource {
	s.S3DataType = &v
	return s
}

// SetS3Uri sets the S3Uri field's value.
func (s *AutoMLS3DataSource) SetS3Uri(v string) *AutoMLS3DataSource {
	s.S3Uri = &v
	return s
}

// Security options.
type AutoMLSecurityConfig struct {
	_ struct{} `type:"structure"`

	// Whether to use traffic encryption between the container layers.
	EnableInterContainerTrafficEncryption *bool `type:"boolean"`

	// The key used to encrypt stored data.
	VolumeKmsKeyId *string `type:"string"`

	// The VPC configuration.
	VpcConfig *VpcConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLSecurityConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoMLSecurityConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AutoMLSecurityConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AutoMLSecurityConfig"}
	if s.VpcConfig != nil {
		if err := s.VpcConfig.Validate(); err != nil {
			invalidParams.AddNested("VpcConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEnableInterContainerTrafficEncryption sets the EnableInterContainerTrafficEncryption field's value.
func (s *AutoMLSecurityConfig) SetEnableInterContainerTrafficEncryption(v bool) *AutoMLSecurityConfig {
	s.EnableInterContainerTrafficEncryption = &v
	return s
}

// SetVolumeKmsKeyId sets the VolumeKmsKeyId field's value.
func (s *AutoMLSecurityConfig) SetVolumeKmsKeyId(v string) *AutoMLSecurityConfig {
	s.VolumeKmsKeyId = &v
	return s
}

// SetVpcConfig sets the VpcConfig field's value.
func (s *AutoMLSecurityConfig) SetVpcConfig(v *VpcConfig) *AutoMLSecurityConfig {
	s.VpcConfig = v
	return s
}

// The name and an example value of the hyperparameter that you want to use
// in Autotune. If Automatic model tuning (AMT) determines that your hyperparameter
// is eligible for Autotune, an optimal hyperparameter range is selected for
// you.
type AutoParameter struct {
	_ struct{} `type:"structure"`

	// The name of the hyperparameter to optimize using Autotune.
	//
	// Name is a required field
	Name *string `type:"string" required:"true"`

	// An example value of the hyperparameter to optimize using Autotune.
	//
	// ValueHint is a required field
	ValueHint *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoParameter) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoParameter) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AutoParameter) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AutoParameter"}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.ValueHint == nil {
		invalidParams.Add(request.NewErrParamRequired("ValueHint"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetName sets the Name field's value.
func (s *AutoParameter) SetName(v string) *AutoParameter {
	s.Name = &v
	return s
}

// SetValueHint sets the ValueHint field's value.
func (s *AutoParameter) SetValueHint(v string) *AutoParameter {
	s.ValueHint = &v
	return s
}

// Automatic rollback configuration for handling endpoint deployment failures
// and recovery.
type AutoRollbackConfig struct {
	_ struct{} `type:"structure"`

	// List of CloudWatch alarms in your account that are configured to monitor
	// metrics on an endpoint. If any alarms are tripped during a deployment, SageMaker
	// rolls back the deployment.
	Alarms []*Alarm `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoRollbackConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoRollbackConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AutoRollbackConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AutoRollbackConfig"}
	if s.Alarms != nil && len(s.Alarms) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Alarms", 1))
	}
	if s.Alarms != nil {
		for i, v := range s.Alarms {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Alarms", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAlarms sets the Alarms field's value.
func (s *AutoRollbackConfig) SetAlarms(v []*Alarm) *AutoRollbackConfig {
	s.Alarms = v
	return s
}

// A flag to indicate if you want to use Autotune to automatically find optimal
// values for the following fields:
//
//   - ParameterRanges (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html#sagemaker-Type-HyperParameterTuningJobConfig-ParameterRanges):
//     The names and ranges of parameters that a hyperparameter tuning job can
//     optimize.
//
//   - ResourceLimits (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html):
//     The maximum resources that can be used for a training job. These resources
//     include the maximum number of training jobs, the maximum runtime of a
//     tuning job, and the maximum number of training jobs to run at the same
//     time.
//
//   - TrainingJobEarlyStoppingType (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html#sagemaker-Type-HyperParameterTuningJobConfig-TrainingJobEarlyStoppingType):
//     A flag that specifies whether or not to use early stopping for training
//     jobs launched by a hyperparameter tuning job.
//
//   - RetryStrategy (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html#sagemaker-Type-HyperParameterTrainingJobDefinition-RetryStrategy):
//     The number of times to retry a training job.
//
//   - Strategy (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html):
//     Specifies how hyperparameter tuning chooses the combinations of hyperparameter
//     values to use for the training jobs that it launches.
//
//   - ConvergenceDetected (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ConvergenceDetected.html):
//     A flag to indicate that Automatic model tuning (AMT) has detected model
//     convergence.
type Autotune struct {
	_ struct{} `type:"structure"`

	// Set Mode to Enabled if you want to use Autotune.
	//
	// Mode is a required field
	Mode *string `type:"string" required:"true" enum:"AutotuneMode"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Autotune) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Autotune) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *Autotune) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "Autotune"}
	if s.Mode == nil {
		invalidParams.Add(request.NewErrParamRequired("Mode"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMode sets the Mode field's value.
func (s *Autotune) SetMode(v string) *Autotune {
	s.Mode = &v
	return s
}

// Configuration to control how SageMaker captures inference data for batch
// transform jobs.
type BatchDataCaptureConfig struct {
	_ struct{} `type:"structure"`

	// The Amazon S3 location being used to capture the data.
	//
	// DestinationS3Uri is a required field
	DestinationS3Uri *string `type:"string" required:"true"`

	// Flag that indicates whether to append inference id to the output.
	GenerateInferenceId *bool `type:"boolean"`

	// The Amazon Resource Name (ARN) of a Amazon Web Services Key Management Service
	// key that SageMaker uses to encrypt data on the storage volume attached to
	// the ML compute instance that hosts the batch transform job.
	//
	// The KmsKeyId can be any of the following formats:
	//
	//    * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
	//
	//    * Key ARN: arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
	//
	//    * Alias name: alias/ExampleAlias
	//
	//    * Alias name ARN: arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias
	KmsKeyId *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchDataCaptureConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchDataCaptureConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *BatchDataCaptureConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "BatchDataCaptureConfig"}
	if s.DestinationS3Uri == nil {
		invalidParams.Add(request.NewErrParamRequired("DestinationS3Uri"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDestinationS3Uri sets the DestinationS3Uri field's value.
func (s *BatchDataCaptureConfig) SetDestinationS3Uri(v string) *BatchDataCaptureConfig {
	s.DestinationS3Uri = &v
	return s
}

// SetGenerateInferenceId sets the GenerateInferenceId field's value.
func (s *BatchDataCaptureConfig) SetGenerateInferenceId(v bool) *BatchDataCaptureConfig {
	s.GenerateInferenceId = &v
	return s
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *BatchDataCaptureConfig) SetKmsKeyId(v string) *BatchDataCaptureConfig {
	s.KmsKeyId = &v
	return s
}

// The error code and error description associated with the resource.
type BatchDescribeModelPackageError struct {
	_ struct{} `type:"structure"`

	// ErrorCode is a required field
	ErrorCode *string `type:"string" required:"true"`

	// ErrorResponse is a required field
	ErrorResponse *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchDescribeModelPackageError) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchDescribeModelPackageError) GoString() string {
	return s.String()
}

// SetErrorCode sets the ErrorCode field's value.
func (s *BatchDescribeModelPackageError) SetErrorCode(v string) *BatchDescribeModelPackageError {
	s.ErrorCode = &v
	return s
}

// SetErrorResponse sets the ErrorResponse field's value.
func (s *BatchDescribeModelPackageError) SetErrorResponse(v string) *BatchDescribeModelPackageError {
	s.ErrorResponse = &v
	return s
}

type BatchDescribeModelPackageInput struct {
	_ struct{} `type:"structure"`

	// The list of Amazon Resource Name (ARN) of the model package groups.
	//
	// ModelPackageArnList is a required field
	ModelPackageArnList []*string `min:"1" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchDescribeModelPackageInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchDescribeModelPackageInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *BatchDescribeModelPackageInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "BatchDescribeModelPackageInput"}
	if s.ModelPackageArnList == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelPackageArnList"))
	}
	if s.ModelPackageArnList != nil && len(s.ModelPackageArnList) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelPackageArnList", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetModelPackageArnList sets the ModelPackageArnList field's value.
func (s *BatchDescribeModelPackageInput) SetModelPackageArnList(v []*string) *BatchDescribeModelPackageInput {
	s.ModelPackageArnList = v
	return s
}

type BatchDescribeModelPackageOutput struct {
	_ struct{} `type:"structure"`

	// A map of the resource and BatchDescribeModelPackageError objects reporting
	// the error associated with describing the model package.
	BatchDescribeModelPackageErrorMap map[string]*BatchDescribeModelPackageError `type:"map"`

	// The summaries for the model package versions
	ModelPackageSummaries map[string]*BatchDescribeModelPackageSummary `type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchDescribeModelPackageOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchDescribeModelPackageOutput) GoString() string {
	return s.String()
}

// SetBatchDescribeModelPackageErrorMap sets the BatchDescribeModelPackageErrorMap field's value.
func (s *BatchDescribeModelPackageOutput) SetBatchDescribeModelPackageErrorMap(v map[string]*BatchDescribeModelPackageError) *BatchDescribeModelPackageOutput {
	s.BatchDescribeModelPackageErrorMap = v
	return s
}

// SetModelPackageSummaries sets the ModelPackageSummaries field's value.
func (s *BatchDescribeModelPackageOutput) SetModelPackageSummaries(v map[string]*BatchDescribeModelPackageSummary) *BatchDescribeModelPackageOutput {
	s.ModelPackageSummaries = v
	return s
}

// Provides summary information about the model package.
type BatchDescribeModelPackageSummary struct {
	_ struct{} `type:"structure"`

	// The creation time of the mortgage package summary.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// Defines how to perform inference generation after a training job is run.
	//
	// InferenceSpecification is a required field
	InferenceSpecification *InferenceSpecification `type:"structure" required:"true"`

	// The approval status of the model.
	ModelApprovalStatus *string `type:"string" enum:"ModelApprovalStatus"`

	// The Amazon Resource Name (ARN) of the model package.
	//
	// ModelPackageArn is a required field
	ModelPackageArn *string `min:"1" type:"string" required:"true"`

	// The description of the model package.
	ModelPackageDescription *string `type:"string"`

	// The group name for the model package
	//
	// ModelPackageGroupName is a required field
	ModelPackageGroupName *string `min:"1" type:"string" required:"true"`

	// The status of the mortgage package.
	//
	// ModelPackageStatus is a required field
	ModelPackageStatus *string `type:"string" required:"true" enum:"ModelPackageStatus"`

	// The version number of a versioned model.
	ModelPackageVersion *int64 `min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchDescribeModelPackageSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchDescribeModelPackageSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *BatchDescribeModelPackageSummary) SetCreationTime(v time.Time) *BatchDescribeModelPackageSummary {
	s.CreationTime = &v
	return s
}

// SetInferenceSpecification sets the InferenceSpecification field's value.
func (s *BatchDescribeModelPackageSummary) SetInferenceSpecification(v *InferenceSpecification) *BatchDescribeModelPackageSummary {
	s.InferenceSpecification = v
	return s
}

// SetModelApprovalStatus sets the ModelApprovalStatus field's value.
func (s *BatchDescribeModelPackageSummary) SetModelApprovalStatus(v string) *BatchDescribeModelPackageSummary {
	s.ModelApprovalStatus = &v
	return s
}

// SetModelPackageArn sets the ModelPackageArn field's value.
func (s *BatchDescribeModelPackageSummary) SetModelPackageArn(v string) *BatchDescribeModelPackageSummary {
	s.ModelPackageArn = &v
	return s
}

// SetModelPackageDescription sets the ModelPackageDescription field's value.
func (s *BatchDescribeModelPackageSummary) SetModelPackageDescription(v string) *BatchDescribeModelPackageSummary {
	s.ModelPackageDescription = &v
	return s
}

// SetModelPackageGroupName sets the ModelPackageGroupName field's value.
func (s *BatchDescribeModelPackageSummary) SetModelPackageGroupName(v string) *BatchDescribeModelPackageSummary {
	s.ModelPackageGroupName = &v
	return s
}

// SetModelPackageStatus sets the ModelPackageStatus field's value.
func (s *BatchDescribeModelPackageSummary) SetModelPackageStatus(v string) *BatchDescribeModelPackageSummary {
	s.ModelPackageStatus = &v
	return s
}

// SetModelPackageVersion sets the ModelPackageVersion field's value.
func (s *BatchDescribeModelPackageSummary) SetModelPackageVersion(v int64) *BatchDescribeModelPackageSummary {
	s.ModelPackageVersion = &v
	return s
}

// Input object for the batch transform job.
type BatchTransformInput_ struct {
	_ struct{} `type:"structure"`

	// The Amazon S3 location being used to capture the data.
	//
	// DataCapturedDestinationS3Uri is a required field
	DataCapturedDestinationS3Uri *string `type:"string" required:"true"`

	// The dataset format for your batch transform job.
	//
	// DatasetFormat is a required field
	DatasetFormat *MonitoringDatasetFormat `type:"structure" required:"true"`

	// If specified, monitoring jobs subtract this time from the end time. For information
	// about using offsets for scheduling monitoring jobs, see Schedule Model Quality
	// Monitoring Jobs (https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-schedule.html).
	EndTimeOffset *string `min:"1" type:"string"`

	// The attributes of the input data to exclude from the analysis.
	ExcludeFeaturesAttribute *string `type:"string"`

	// The attributes of the input data that are the input features.
	FeaturesAttribute *string `type:"string"`

	// The attribute of the input data that represents the ground truth label.
	InferenceAttribute *string `type:"string"`

	// Path to the filesystem where the batch transform data is available to the
	// container.
	//
	// LocalPath is a required field
	LocalPath *string `type:"string" required:"true"`

	// In a classification problem, the attribute that represents the class probability.
	ProbabilityAttribute *string `type:"string"`

	// The threshold for the class probability to be evaluated as a positive result.
	ProbabilityThresholdAttribute *float64 `type:"double"`

	// Whether input data distributed in Amazon S3 is fully replicated or sharded
	// by an S3 key. Defaults to FullyReplicated
	S3DataDistributionType *string `type:"string" enum:"ProcessingS3DataDistributionType"`

	// Whether the Pipe or File is used as the input mode for transferring data
	// for the monitoring job. Pipe mode is recommended for large datasets. File
	// mode is useful for small files that fit in memory. Defaults to File.
	S3InputMode *string `type:"string" enum:"ProcessingS3InputMode"`

	// If specified, monitoring jobs substract this time from the start time. For
	// information about using offsets for scheduling monitoring jobs, see Schedule
	// Model Quality Monitoring Jobs (https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-schedule.html).
	StartTimeOffset *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchTransformInput_) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchTransformInput_) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *BatchTransformInput_) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "BatchTransformInput_"}
	if s.DataCapturedDestinationS3Uri == nil {
		invalidParams.Add(request.NewErrParamRequired("DataCapturedDestinationS3Uri"))
	}
	if s.DatasetFormat == nil {
		invalidParams.Add(request.NewErrParamRequired("DatasetFormat"))
	}
	if s.EndTimeOffset != nil && len(*s.EndTimeOffset) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("EndTimeOffset", 1))
	}
	if s.LocalPath == nil {
		invalidParams.Add(request.NewErrParamRequired("LocalPath"))
	}
	if s.StartTimeOffset != nil && len(*s.StartTimeOffset) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("StartTimeOffset", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDataCapturedDestinationS3Uri sets the DataCapturedDestinationS3Uri field's value.
func (s *BatchTransformInput_) SetDataCapturedDestinationS3Uri(v string) *BatchTransformInput_ {
	s.DataCapturedDestinationS3Uri = &v
	return s
}

// SetDatasetFormat sets the DatasetFormat field's value.
func (s *BatchTransformInput_) SetDatasetFormat(v *MonitoringDatasetFormat) *BatchTransformInput_ {
	s.DatasetFormat = v
	return s
}

// SetEndTimeOffset sets the EndTimeOffset field's value.
func (s *BatchTransformInput_) SetEndTimeOffset(v string) *BatchTransformInput_ {
	s.EndTimeOffset = &v
	return s
}

// SetExcludeFeaturesAttribute sets the ExcludeFeaturesAttribute field's value.
func (s *BatchTransformInput_) SetExcludeFeaturesAttribute(v string) *BatchTransformInput_ {
	s.ExcludeFeaturesAttribute = &v
	return s
}

// SetFeaturesAttribute sets the FeaturesAttribute field's value.
func (s *BatchTransformInput_) SetFeaturesAttribute(v string) *BatchTransformInput_ {
	s.FeaturesAttribute = &v
	return s
}

// SetInferenceAttribute sets the InferenceAttribute field's value.
func (s *BatchTransformInput_) SetInferenceAttribute(v string) *BatchTransformInput_ {
	s.InferenceAttribute = &v
	return s
}

// SetLocalPath sets the LocalPath field's value.
func (s *BatchTransformInput_) SetLocalPath(v string) *BatchTransformInput_ {
	s.LocalPath = &v
	return s
}

// SetProbabilityAttribute sets the ProbabilityAttribute field's value.
func (s *BatchTransformInput_) SetProbabilityAttribute(v string) *BatchTransformInput_ {
	s.ProbabilityAttribute = &v
	return s
}

// SetProbabilityThresholdAttribute sets the ProbabilityThresholdAttribute field's value.
func (s *BatchTransformInput_) SetProbabilityThresholdAttribute(v float64) *BatchTransformInput_ {
	s.ProbabilityThresholdAttribute = &v
	return s
}

// SetS3DataDistributionType sets the S3DataDistributionType field's value.
func (s *BatchTransformInput_) SetS3DataDistributionType(v string) *BatchTransformInput_ {
	s.S3DataDistributionType = &v
	return s
}

// SetS3InputMode sets the S3InputMode field's value.
func (s *BatchTransformInput_) SetS3InputMode(v string) *BatchTransformInput_ {
	s.S3InputMode = &v
	return s
}

// SetStartTimeOffset sets the StartTimeOffset field's value.
func (s *BatchTransformInput_) SetStartTimeOffset(v string) *BatchTransformInput_ {
	s.StartTimeOffset = &v
	return s
}

// A structure that keeps track of which training jobs launched by your hyperparameter
// tuning job are not improving model performance as evaluated against an objective
// function.
type BestObjectiveNotImproving struct {
	_ struct{} `type:"structure"`

	// The number of training jobs that have failed to improve model performance
	// by 1% or greater over prior training jobs as evaluated against an objective
	// function.
	MaxNumberOfTrainingJobsNotImproving *int64 `min:"3" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BestObjectiveNotImproving) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BestObjectiveNotImproving) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *BestObjectiveNotImproving) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "BestObjectiveNotImproving"}
	if s.MaxNumberOfTrainingJobsNotImproving != nil && *s.MaxNumberOfTrainingJobsNotImproving < 3 {
		invalidParams.Add(request.NewErrParamMinValue("MaxNumberOfTrainingJobsNotImproving", 3))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxNumberOfTrainingJobsNotImproving sets the MaxNumberOfTrainingJobsNotImproving field's value.
func (s *BestObjectiveNotImproving) SetMaxNumberOfTrainingJobsNotImproving(v int64) *BestObjectiveNotImproving {
	s.MaxNumberOfTrainingJobsNotImproving = &v
	return s
}

// Contains bias metrics for a model.
type Bias struct {
	_ struct{} `type:"structure"`

	// The post-training bias report for a model.
	PostTrainingReport *MetricsSource `type:"structure"`

	// The pre-training bias report for a model.
	PreTrainingReport *MetricsSource `type:"structure"`

	// The bias report for a model
	Report *MetricsSource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Bias) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Bias) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *Bias) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "Bias"}
	if s.PostTrainingReport != nil {
		if err := s.PostTrainingReport.Validate(); err != nil {
			invalidParams.AddNested("PostTrainingReport", err.(request.ErrInvalidParams))
		}
	}
	if s.PreTrainingReport != nil {
		if err := s.PreTrainingReport.Validate(); err != nil {
			invalidParams.AddNested("PreTrainingReport", err.(request.ErrInvalidParams))
		}
	}
	if s.Report != nil {
		if err := s.Report.Validate(); err != nil {
			invalidParams.AddNested("Report", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetPostTrainingReport sets the PostTrainingReport field's value.
func (s *Bias) SetPostTrainingReport(v *MetricsSource) *Bias {
	s.PostTrainingReport = v
	return s
}

// SetPreTrainingReport sets the PreTrainingReport field's value.
func (s *Bias) SetPreTrainingReport(v *MetricsSource) *Bias {
	s.PreTrainingReport = v
	return s
}

// SetReport sets the Report field's value.
func (s *Bias) SetReport(v *MetricsSource) *Bias {
	s.Report = v
	return s
}

// Update policy for a blue/green deployment. If this update policy is specified,
// SageMaker creates a new fleet during the deployment while maintaining the
// old fleet. SageMaker flips traffic to the new fleet according to the specified
// traffic routing configuration. Only one update policy should be used in the
// deployment configuration. If no update policy is specified, SageMaker uses
// a blue/green deployment strategy with all at once traffic shifting by default.
type BlueGreenUpdatePolicy struct {
	_ struct{} `type:"structure"`

	// Maximum execution timeout for the deployment. Note that the timeout value
	// should be larger than the total waiting time specified in TerminationWaitInSeconds
	// and WaitIntervalInSeconds.
	MaximumExecutionTimeoutInSeconds *int64 `min:"600" type:"integer"`

	// Additional waiting time in seconds after the completion of an endpoint deployment
	// before terminating the old endpoint fleet. Default is 0.
	TerminationWaitInSeconds *int64 `type:"integer"`

	// Defines the traffic routing strategy to shift traffic from the old fleet
	// to the new fleet during an endpoint deployment.
	//
	// TrafficRoutingConfiguration is a required field
	TrafficRoutingConfiguration *TrafficRoutingConfig `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BlueGreenUpdatePolicy) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BlueGreenUpdatePolicy) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *BlueGreenUpdatePolicy) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "BlueGreenUpdatePolicy"}
	if s.MaximumExecutionTimeoutInSeconds != nil && *s.MaximumExecutionTimeoutInSeconds < 600 {
		invalidParams.Add(request.NewErrParamMinValue("MaximumExecutionTimeoutInSeconds", 600))
	}
	if s.TrafficRoutingConfiguration == nil {
		invalidParams.Add(request.NewErrParamRequired("TrafficRoutingConfiguration"))
	}
	if s.TrafficRoutingConfiguration != nil {
		if err := s.TrafficRoutingConfiguration.Validate(); err != nil {
			invalidParams.AddNested("TrafficRoutingConfiguration", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaximumExecutionTimeoutInSeconds sets the MaximumExecutionTimeoutInSeconds field's value.
func (s *BlueGreenUpdatePolicy) SetMaximumExecutionTimeoutInSeconds(v int64) *BlueGreenUpdatePolicy {
	s.MaximumExecutionTimeoutInSeconds = &v
	return s
}

// SetTerminationWaitInSeconds sets the TerminationWaitInSeconds field's value.
func (s *BlueGreenUpdatePolicy) SetTerminationWaitInSeconds(v int64) *BlueGreenUpdatePolicy {
	s.TerminationWaitInSeconds = &v
	return s
}

// SetTrafficRoutingConfiguration sets the TrafficRoutingConfiguration field's value.
func (s *BlueGreenUpdatePolicy) SetTrafficRoutingConfiguration(v *TrafficRoutingConfig) *BlueGreenUpdatePolicy {
	s.TrafficRoutingConfiguration = v
	return s
}

// Details on the cache hit of a pipeline execution step.
type CacheHitResult struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the pipeline execution.
	SourcePipelineExecutionArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CacheHitResult) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CacheHitResult) GoString() string {
	return s.String()
}

// SetSourcePipelineExecutionArn sets the SourcePipelineExecutionArn field's value.
func (s *CacheHitResult) SetSourcePipelineExecutionArn(v string) *CacheHitResult {
	s.SourcePipelineExecutionArn = &v
	return s
}

// Metadata about a callback step.
type CallbackStepMetadata struct {
	_ struct{} `type:"structure"`

	// The pipeline generated token from the Amazon SQS queue.
	CallbackToken *string `min:"10" type:"string"`

	// A list of the output parameters of the callback step.
	OutputParameters []*OutputParameter `type:"list"`

	// The URL of the Amazon Simple Queue Service (Amazon SQS) queue used by the
	// callback step.
	SqsQueueUrl *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CallbackStepMetadata) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CallbackStepMetadata) GoString() string {
	return s.String()
}

// SetCallbackToken sets the CallbackToken field's value.
func (s *CallbackStepMetadata) SetCallbackToken(v string) *CallbackStepMetadata {
	s.CallbackToken = &v
	return s
}

// SetOutputParameters sets the OutputParameters field's value.
func (s *CallbackStepMetadata) SetOutputParameters(v []*OutputParameter) *CallbackStepMetadata {
	s.OutputParameters = v
	return s
}

// SetSqsQueueUrl sets the SqsQueueUrl field's value.
func (s *CallbackStepMetadata) SetSqsQueueUrl(v string) *CallbackStepMetadata {
	s.SqsQueueUrl = &v
	return s
}

// The location of artifacts for an AutoML candidate job.
type CandidateArtifactLocations struct {
	_ struct{} `type:"structure"`

	// The Amazon S3 prefix to the accuracy metrics and the inference results observed
	// over the testing window. Available only for the time-series forecasting problem
	// type.
	BacktestResults *string `min:"1" type:"string"`

	// The Amazon S3 prefix to the explainability artifacts generated for the AutoML
	// candidate.
	//
	// Explainability is a required field
	Explainability *string `min:"1" type:"string" required:"true"`

	// The Amazon S3 prefix to the model insight artifacts generated for the AutoML
	// candidate.
	ModelInsights *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CandidateArtifactLocations) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CandidateArtifactLocations) GoString() string {
	return s.String()
}

// SetBacktestResults sets the BacktestResults field's value.
func (s *CandidateArtifactLocations) SetBacktestResults(v string) *CandidateArtifactLocations {
	s.BacktestResults = &v
	return s
}

// SetExplainability sets the Explainability field's value.
func (s *CandidateArtifactLocations) SetExplainability(v string) *CandidateArtifactLocations {
	s.Explainability = &v
	return s
}

// SetModelInsights sets the ModelInsights field's value.
func (s *CandidateArtifactLocations) SetModelInsights(v string) *CandidateArtifactLocations {
	s.ModelInsights = &v
	return s
}

// Stores the configuration information for how model candidates are generated
// using an AutoML job V2.
type CandidateGenerationConfig struct {
	_ struct{} `type:"structure"`

	// Stores the configuration information for the selection of algorithms used
	// to train model candidates on tabular data.
	//
	// The list of available algorithms to choose from depends on the training mode
	// set in TabularJobConfig.Mode (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html).
	//
	//    * AlgorithmsConfig should not be set in AUTO training mode.
	//
	//    * When AlgorithmsConfig is provided, one AutoMLAlgorithms attribute must
	//    be set and one only. If the list of algorithms provided as values for
	//    AutoMLAlgorithms is empty, CandidateGenerationConfig uses the full set
	//    of algorithms for the given training mode.
	//
	//    * When AlgorithmsConfig is not provided, CandidateGenerationConfig uses
	//    the full set of algorithms for the given training mode.
	//
	// For the list of all algorithms per problem type and training mode, see AutoMLAlgorithmConfig
	// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLAlgorithmConfig.html).
	//
	// For more information on each algorithm, see the Algorithm support (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html#autopilot-algorithm-support)
	// section in Autopilot developer guide.
	AlgorithmsConfig []*AutoMLAlgorithmConfig `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CandidateGenerationConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CandidateGenerationConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CandidateGenerationConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CandidateGenerationConfig"}
	if s.AlgorithmsConfig != nil {
		for i, v := range s.AlgorithmsConfig {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AlgorithmsConfig", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAlgorithmsConfig sets the AlgorithmsConfig field's value.
func (s *CandidateGenerationConfig) SetAlgorithmsConfig(v []*AutoMLAlgorithmConfig) *CandidateGenerationConfig {
	s.AlgorithmsConfig = v
	return s
}

// The properties of an AutoML candidate job.
type CandidateProperties struct {
	_ struct{} `type:"structure"`

	// The Amazon S3 prefix to the artifacts generated for an AutoML candidate.
	CandidateArtifactLocations *CandidateArtifactLocations `type:"structure"`

	// Information about the candidate metrics for an AutoML job.
	CandidateMetrics []*MetricDatum `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CandidateProperties) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CandidateProperties) GoString() string {
	return s.String()
}

// SetCandidateArtifactLocations sets the CandidateArtifactLocations field's value.
func (s *CandidateProperties) SetCandidateArtifactLocations(v *CandidateArtifactLocations) *CandidateProperties {
	s.CandidateArtifactLocations = v
	return s
}

// SetCandidateMetrics sets the CandidateMetrics field's value.
func (s *CandidateProperties) SetCandidateMetrics(v []*MetricDatum) *CandidateProperties {
	s.CandidateMetrics = v
	return s
}

// The SageMaker Canvas application settings.
type CanvasAppSettings struct {
	_ struct{} `type:"structure"`

	// The model deployment settings for the SageMaker Canvas application.
	DirectDeploySettings *DirectDeploySettings `type:"structure"`

	// The settings for connecting to an external data source with OAuth.
	IdentityProviderOAuthSettings []*IdentityProviderOAuthSetting `type:"list"`

	// The settings for document querying.
	KendraSettings *KendraSettings `type:"structure"`

	// The model registry settings for the SageMaker Canvas application.
	ModelRegisterSettings *ModelRegisterSettings `type:"structure"`

	// Time series forecast settings for the SageMaker Canvas application.
	TimeSeriesForecastingSettings *TimeSeriesForecastingSettings `type:"structure"`

	// The workspace settings for the SageMaker Canvas application.
	WorkspaceSettings *WorkspaceSettings `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CanvasAppSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CanvasAppSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CanvasAppSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CanvasAppSettings"}
	if s.IdentityProviderOAuthSettings != nil {
		for i, v := range s.IdentityProviderOAuthSettings {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "IdentityProviderOAuthSettings", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.ModelRegisterSettings != nil {
		if err := s.ModelRegisterSettings.Validate(); err != nil {
			invalidParams.AddNested("ModelRegisterSettings", err.(request.ErrInvalidParams))
		}
	}
	if s.TimeSeriesForecastingSettings != nil {
		if err := s.TimeSeriesForecastingSettings.Validate(); err != nil {
			invalidParams.AddNested("TimeSeriesForecastingSettings", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDirectDeploySettings sets the DirectDeploySettings field's value.
func (s *CanvasAppSettings) SetDirectDeploySettings(v *DirectDeploySettings) *CanvasAppSettings {
	s.DirectDeploySettings = v
	return s
}

// SetIdentityProviderOAuthSettings sets the IdentityProviderOAuthSettings field's value.
func (s *CanvasAppSettings) SetIdentityProviderOAuthSettings(v []*IdentityProviderOAuthSetting) *CanvasAppSettings {
	s.IdentityProviderOAuthSettings = v
	return s
}

// SetKendraSettings sets the KendraSettings field's value.
func (s *CanvasAppSettings) SetKendraSettings(v *KendraSettings) *CanvasAppSettings {
	s.KendraSettings = v
	return s
}

// SetModelRegisterSettings sets the ModelRegisterSettings field's value.
func (s *CanvasAppSettings) SetModelRegisterSettings(v *ModelRegisterSettings) *CanvasAppSettings {
	s.ModelRegisterSettings = v
	return s
}

// SetTimeSeriesForecastingSettings sets the TimeSeriesForecastingSettings field's value.
func (s *CanvasAppSettings) SetTimeSeriesForecastingSettings(v *TimeSeriesForecastingSettings) *CanvasAppSettings {
	s.TimeSeriesForecastingSettings = v
	return s
}

// SetWorkspaceSettings sets the WorkspaceSettings field's value.
func (s *CanvasAppSettings) SetWorkspaceSettings(v *WorkspaceSettings) *CanvasAppSettings {
	s.WorkspaceSettings = v
	return s
}

// Specifies the type and size of the endpoint capacity to activate for a blue/green
// deployment, a rolling deployment, or a rollback strategy. You can specify
// your batches as either instance count or the overall percentage or your fleet.
//
// For a rollback strategy, if you don't specify the fields in this object,
// or if you set the Value to 100%, then SageMaker uses a blue/green rollback
// strategy and rolls all traffic back to the blue fleet.
type CapacitySize struct {
	_ struct{} `type:"structure"`

	// Specifies the endpoint capacity type.
	//
	//    * INSTANCE_COUNT: The endpoint activates based on the number of instances.
	//
	//    * CAPACITY_PERCENT: The endpoint activates based on the specified percentage
	//    of capacity.
	//
	// Type is a required field
	Type *string `type:"string" required:"true" enum:"CapacitySizeType"`

	// Defines the capacity size, either as a number of instances or a capacity
	// percentage.
	//
	// Value is a required field
	Value *int64 `min:"1" type:"integer" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CapacitySize) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CapacitySize) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CapacitySize) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CapacitySize"}
	if s.Type == nil {
		invalidParams.Add(request.NewErrParamRequired("Type"))
	}
	if s.Value == nil {
		invalidParams.Add(request.NewErrParamRequired("Value"))
	}
	if s.Value != nil && *s.Value < 1 {
		invalidParams.Add(request.NewErrParamMinValue("Value", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetType sets the Type field's value.
func (s *CapacitySize) SetType(v string) *CapacitySize {
	s.Type = &v
	return s
}

// SetValue sets the Value field's value.
func (s *CapacitySize) SetValue(v int64) *CapacitySize {
	s.Value = &v
	return s
}

// Configuration specifying how to treat different headers. If no headers are
// specified Amazon SageMaker will by default base64 encode when capturing the
// data.
type CaptureContentTypeHeader struct {
	_ struct{} `type:"structure"`

	// The list of all content type headers that Amazon SageMaker will treat as
	// CSV and capture accordingly.
	CsvContentTypes []*string `min:"1" type:"list"`

	// The list of all content type headers that SageMaker will treat as JSON and
	// capture accordingly.
	JsonContentTypes []*string `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CaptureContentTypeHeader) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CaptureContentTypeHeader) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CaptureContentTypeHeader) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CaptureContentTypeHeader"}
	if s.CsvContentTypes != nil && len(s.CsvContentTypes) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("CsvContentTypes", 1))
	}
	if s.JsonContentTypes != nil && len(s.JsonContentTypes) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("JsonContentTypes", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCsvContentTypes sets the CsvContentTypes field's value.
func (s *CaptureContentTypeHeader) SetCsvContentTypes(v []*string) *CaptureContentTypeHeader {
	s.CsvContentTypes = v
	return s
}

// SetJsonContentTypes sets the JsonContentTypes field's value.
func (s *CaptureContentTypeHeader) SetJsonContentTypes(v []*string) *CaptureContentTypeHeader {
	s.JsonContentTypes = v
	return s
}

// Specifies data Model Monitor will capture.
type CaptureOption struct {
	_ struct{} `type:"structure"`

	// Specify the boundary of data to capture.
	//
	// CaptureMode is a required field
	CaptureMode *string `type:"string" required:"true" enum:"CaptureMode"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CaptureOption) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CaptureOption) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CaptureOption) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CaptureOption"}
	if s.CaptureMode == nil {
		invalidParams.Add(request.NewErrParamRequired("CaptureMode"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCaptureMode sets the CaptureMode field's value.
func (s *CaptureOption) SetCaptureMode(v string) *CaptureOption {
	s.CaptureMode = &v
	return s
}

// Environment parameters you want to benchmark your load test against.
type CategoricalParameter struct {
	_ struct{} `type:"structure"`

	// The Name of the environment variable.
	//
	// Name is a required field
	Name *string `type:"string" required:"true"`

	// The list of values you can pass.
	//
	// Value is a required field
	Value []*string `min:"1" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CategoricalParameter) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CategoricalParameter) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CategoricalParameter) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CategoricalParameter"}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Value == nil {
		invalidParams.Add(request.NewErrParamRequired("Value"))
	}
	if s.Value != nil && len(s.Value) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetName sets the Name field's value.
func (s *CategoricalParameter) SetName(v string) *CategoricalParameter {
	s.Name = &v
	return s
}

// SetValue sets the Value field's value.
func (s *CategoricalParameter) SetValue(v []*string) *CategoricalParameter {
	s.Value = v
	return s
}

// A list of categorical hyperparameters to tune.
type CategoricalParameterRange struct {
	_ struct{} `type:"structure"`

	// The name of the categorical hyperparameter to tune.
	//
	// Name is a required field
	Name *string `type:"string" required:"true"`

	// A list of the categories for the hyperparameter.
	//
	// Values is a required field
	Values []*string `min:"1" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CategoricalParameterRange) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CategoricalParameterRange) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CategoricalParameterRange) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CategoricalParameterRange"}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Values == nil {
		invalidParams.Add(request.NewErrParamRequired("Values"))
	}
	if s.Values != nil && len(s.Values) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Values", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetName sets the Name field's value.
func (s *CategoricalParameterRange) SetName(v string) *CategoricalParameterRange {
	s.Name = &v
	return s
}

// SetValues sets the Values field's value.
func (s *CategoricalParameterRange) SetValues(v []*string) *CategoricalParameterRange {
	s.Values = v
	return s
}

// Defines the possible values for a categorical hyperparameter.
type CategoricalParameterRangeSpecification struct {
	_ struct{} `type:"structure"`

	// The allowed categories for the hyperparameter.
	//
	// Values is a required field
	Values []*string `min:"1" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CategoricalParameterRangeSpecification) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CategoricalParameterRangeSpecification) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CategoricalParameterRangeSpecification) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CategoricalParameterRangeSpecification"}
	if s.Values == nil {
		invalidParams.Add(request.NewErrParamRequired("Values"))
	}
	if s.Values != nil && len(s.Values) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Values", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetValues sets the Values field's value.
func (s *CategoricalParameterRangeSpecification) SetValues(v []*string) *CategoricalParameterRangeSpecification {
	s.Values = v
	return s
}

// A channel is a named input source that training algorithms can consume.
type Channel struct {
	_ struct{} `type:"structure"`

	// The name of the channel.
	//
	// ChannelName is a required field
	ChannelName *string `min:"1" type:"string" required:"true"`

	// If training data is compressed, the compression type. The default value is
	// None. CompressionType is used only in Pipe input mode. In File mode, leave
	// this field unset or set it to None.
	CompressionType *string `type:"string" enum:"CompressionType"`

	// The MIME type of the data.
	ContentType *string `type:"string"`

	// The location of the channel data.
	//
	// DataSource is a required field
	DataSource *DataSource `type:"structure" required:"true"`

	// (Optional) The input mode to use for the data channel in a training job.
	// If you don't set a value for InputMode, SageMaker uses the value set for
	// TrainingInputMode. Use this parameter to override the TrainingInputMode setting
	// in a AlgorithmSpecification (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html)
	// request when you have a channel that needs a different input mode from the
	// training job's general setting. To download the data from Amazon Simple Storage
	// Service (Amazon S3) to the provisioned ML storage volume, and mount the directory
	// to a Docker volume, use File input mode. To stream data directly from Amazon
	// S3 to the container, choose Pipe input mode.
	//
	// To use a model for incremental training, choose File input model.
	InputMode *string `type:"string" enum:"TrainingInputMode"`

	// Specify RecordIO as the value when input data is in raw format but the training
	// algorithm requires the RecordIO format. In this case, SageMaker wraps each
	// individual S3 object in a RecordIO record. If the input data is already in
	// RecordIO format, you don't need to set this attribute. For more information,
	// see Create a Dataset Using RecordIO (https://mxnet.apache.org/api/architecture/note_data_loading#data-format).
	//
	// In File mode, leave this field unset or set it to None.
	RecordWrapperType *string `type:"string" enum:"RecordWrapper"`

	// A configuration for a shuffle option for input data in a channel. If you
	// use S3Prefix for S3DataType, this shuffles the results of the S3 key prefix
	// matches. If you use ManifestFile, the order of the S3 object references in
	// the ManifestFile is shuffled. If you use AugmentedManifestFile, the order
	// of the JSON lines in the AugmentedManifestFile is shuffled. The shuffling
	// order is determined using the Seed value.
	//
	// For Pipe input mode, shuffling is done at the start of every epoch. With
	// large datasets this ensures that the order of the training data is different
	// for each epoch, it helps reduce bias and possible overfitting. In a multi-node
	// training job when ShuffleConfig is combined with S3DataDistributionType of
	// ShardedByS3Key, the data is shuffled across nodes so that the content sent
	// to a particular node on the first epoch might be sent to a different node
	// on the second epoch.
	ShuffleConfig *ShuffleConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Channel) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Channel) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *Channel) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "Channel"}
	if s.ChannelName == nil {
		invalidParams.Add(request.NewErrParamRequired("ChannelName"))
	}
	if s.ChannelName != nil && len(*s.ChannelName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ChannelName", 1))
	}
	if s.DataSource == nil {
		invalidParams.Add(request.NewErrParamRequired("DataSource"))
	}
	if s.DataSource != nil {
		if err := s.DataSource.Validate(); err != nil {
			invalidParams.AddNested("DataSource", err.(request.ErrInvalidParams))
		}
	}
	if s.ShuffleConfig != nil {
		if err := s.ShuffleConfig.Validate(); err != nil {
			invalidParams.AddNested("ShuffleConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChannelName sets the ChannelName field's value.
func (s *Channel) SetChannelName(v string) *Channel {
	s.ChannelName = &v
	return s
}

// SetCompressionType sets the CompressionType field's value.
func (s *Channel) SetCompressionType(v string) *Channel {
	s.CompressionType = &v
	return s
}

// SetContentType sets the ContentType field's value.
func (s *Channel) SetContentType(v string) *Channel {
	s.ContentType = &v
	return s
}

// SetDataSource sets the DataSource field's value.
func (s *Channel) SetDataSource(v *DataSource) *Channel {
	s.DataSource = v
	return s
}

// SetInputMode sets the InputMode field's value.
func (s *Channel) SetInputMode(v string) *Channel {
	s.InputMode = &v
	return s
}

// SetRecordWrapperType sets the RecordWrapperType field's value.
func (s *Channel) SetRecordWrapperType(v string) *Channel {
	s.RecordWrapperType = &v
	return s
}

// SetShuffleConfig sets the ShuffleConfig field's value.
func (s *Channel) SetShuffleConfig(v *ShuffleConfig) *Channel {
	s.ShuffleConfig = v
	return s
}

// Defines a named input source, called a channel, to be used by an algorithm.
type ChannelSpecification struct {
	_ struct{} `type:"structure"`

	// A brief description of the channel.
	Description *string `type:"string"`

	// Indicates whether the channel is required by the algorithm.
	IsRequired *bool `type:"boolean"`

	// The name of the channel.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// The allowed compression types, if data compression is used.
	SupportedCompressionTypes []*string `type:"list" enum:"CompressionType"`

	// The supported MIME types for the data.
	//
	// SupportedContentTypes is a required field
	SupportedContentTypes []*string `type:"list" required:"true"`

	// The allowed input mode, either FILE or PIPE.
	//
	// In FILE mode, Amazon SageMaker copies the data from the input source onto
	// the local Amazon Elastic Block Store (Amazon EBS) volumes before starting
	// your training algorithm. This is the most commonly used input mode.
	//
	// In PIPE mode, Amazon SageMaker streams input data from the source directly
	// to your algorithm without using the EBS volume.
	//
	// SupportedInputModes is a required field
	SupportedInputModes []*string `min:"1" type:"list" required:"true" enum:"TrainingInputMode"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelSpecification) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ChannelSpecification) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ChannelSpecification) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ChannelSpecification"}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.SupportedContentTypes == nil {
		invalidParams.Add(request.NewErrParamRequired("SupportedContentTypes"))
	}
	if s.SupportedInputModes == nil {
		invalidParams.Add(request.NewErrParamRequired("SupportedInputModes"))
	}
	if s.SupportedInputModes != nil && len(s.SupportedInputModes) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SupportedInputModes", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDescription sets the Description field's value.
func (s *ChannelSpecification) SetDescription(v string) *ChannelSpecification {
	s.Description = &v
	return s
}

// SetIsRequired sets the IsRequired field's value.
func (s *ChannelSpecification) SetIsRequired(v bool) *ChannelSpecification {
	s.IsRequired = &v
	return s
}

// SetName sets the Name field's value.
func (s *ChannelSpecification) SetName(v string) *ChannelSpecification {
	s.Name = &v
	return s
}

// SetSupportedCompressionTypes sets the SupportedCompressionTypes field's value.
func (s *ChannelSpecification) SetSupportedCompressionTypes(v []*string) *ChannelSpecification {
	s.SupportedCompressionTypes = v
	return s
}

// SetSupportedContentTypes sets the SupportedContentTypes field's value.
func (s *ChannelSpecification) SetSupportedContentTypes(v []*string) *ChannelSpecification {
	s.SupportedContentTypes = v
	return s
}

// SetSupportedInputModes sets the SupportedInputModes field's value.
func (s *ChannelSpecification) SetSupportedInputModes(v []*string) *ChannelSpecification {
	s.SupportedInputModes = v
	return s
}

// Contains information about the output location for managed spot training
// checkpoint data.
type CheckpointConfig struct {
	_ struct{} `type:"structure"`

	// (Optional) The local directory where checkpoints are written. The default
	// directory is /opt/ml/checkpoints/.
	LocalPath *string `type:"string"`

	// Identifies the S3 path where you want SageMaker to store checkpoints. For
	// example, s3://bucket-name/key-name-prefix.
	//
	// S3Uri is a required field
	S3Uri *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CheckpointConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CheckpointConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CheckpointConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CheckpointConfig"}
	if s.S3Uri == nil {
		invalidParams.Add(request.NewErrParamRequired("S3Uri"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetLocalPath sets the LocalPath field's value.
func (s *CheckpointConfig) SetLocalPath(v string) *CheckpointConfig {
	s.LocalPath = &v
	return s
}

// SetS3Uri sets the S3Uri field's value.
func (s *CheckpointConfig) SetS3Uri(v string) *CheckpointConfig {
	s.S3Uri = &v
	return s
}

// The container for the metadata for the ClarifyCheck step. For more information,
// see the topic on ClarifyCheck step (https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-clarify-check)
// in the Amazon SageMaker Developer Guide.
type ClarifyCheckStepMetadata struct {
	_ struct{} `type:"structure"`

	// The Amazon S3 URI of baseline constraints file to be used for the drift check.
	BaselineUsedForDriftCheckConstraints *string `type:"string"`

	// The Amazon S3 URI of the newly calculated baseline constraints file.
	CalculatedBaselineConstraints *string `type:"string"`

	// The Amazon Resource Name (ARN) of the check processing job that was run by
	// this step's execution.
	CheckJobArn *string `type:"string"`

	// The type of the Clarify Check step
	CheckType *string `type:"string"`

	// The model package group name.
	ModelPackageGroupName *string `type:"string"`

	// This flag indicates if a newly calculated baseline can be accessed through
	// step properties BaselineUsedForDriftCheckConstraints and BaselineUsedForDriftCheckStatistics.
	// If it is set to False, the previous baseline of the configured check type
	// must also be available. These can be accessed through the BaselineUsedForDriftCheckConstraints
	// property.
	RegisterNewBaseline *bool `type:"boolean"`

	// This flag indicates if the drift check against the previous baseline will
	// be skipped or not. If it is set to False, the previous baseline of the configured
	// check type must be available.
	SkipCheck *bool `type:"boolean"`

	// The Amazon S3 URI of the violation report if violations are detected.
	ViolationReport *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClarifyCheckStepMetadata) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClarifyCheckStepMetadata) GoString() string {
	return s.String()
}

// SetBaselineUsedForDriftCheckConstraints sets the BaselineUsedForDriftCheckConstraints field's value.
func (s *ClarifyCheckStepMetadata) SetBaselineUsedForDriftCheckConstraints(v string) *ClarifyCheckStepMetadata {
	s.BaselineUsedForDriftCheckConstraints = &v
	return s
}

// SetCalculatedBaselineConstraints sets the CalculatedBaselineConstraints field's value.
func (s *ClarifyCheckStepMetadata) SetCalculatedBaselineConstraints(v string) *ClarifyCheckStepMetadata {
	s.CalculatedBaselineConstraints = &v
	return s
}

// SetCheckJobArn sets the CheckJobArn field's value.
func (s *ClarifyCheckStepMetadata) SetCheckJobArn(v string) *ClarifyCheckStepMetadata {
	s.CheckJobArn = &v
	return s
}

// SetCheckType sets the CheckType field's value.
func (s *ClarifyCheckStepMetadata) SetCheckType(v string) *ClarifyCheckStepMetadata {
	s.CheckType = &v
	return s
}

// SetModelPackageGroupName sets the ModelPackageGroupName field's value.
func (s *ClarifyCheckStepMetadata) SetModelPackageGroupName(v string) *ClarifyCheckStepMetadata {
	s.ModelPackageGroupName = &v
	return s
}

// SetRegisterNewBaseline sets the RegisterNewBaseline field's value.
func (s *ClarifyCheckStepMetadata) SetRegisterNewBaseline(v bool) *ClarifyCheckStepMetadata {
	s.RegisterNewBaseline = &v
	return s
}

// SetSkipCheck sets the SkipCheck field's value.
func (s *ClarifyCheckStepMetadata) SetSkipCheck(v bool) *ClarifyCheckStepMetadata {
	s.SkipCheck = &v
	return s
}

// SetViolationReport sets the ViolationReport field's value.
func (s *ClarifyCheckStepMetadata) SetViolationReport(v string) *ClarifyCheckStepMetadata {
	s.ViolationReport = &v
	return s
}

// The configuration parameters for the SageMaker Clarify explainer.
type ClarifyExplainerConfig struct {
	_ struct{} `type:"structure"`

	// A JMESPath boolean expression used to filter which records to explain. Explanations
	// are activated by default. See EnableExplanations (https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-online-explainability-create-endpoint.html#clarify-online-explainability-create-endpoint-enable)for
	// additional information.
	EnableExplanations *string `min:"1" type:"string"`

	// The inference configuration parameter for the model container.
	InferenceConfig *ClarifyInferenceConfig `type:"structure"`

	// The configuration for SHAP analysis.
	//
	// ShapConfig is a required field
	ShapConfig *ClarifyShapConfig `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClarifyExplainerConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClarifyExplainerConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ClarifyExplainerConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ClarifyExplainerConfig"}
	if s.EnableExplanations != nil && len(*s.EnableExplanations) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("EnableExplanations", 1))
	}
	if s.ShapConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("ShapConfig"))
	}
	if s.InferenceConfig != nil {
		if err := s.InferenceConfig.Validate(); err != nil {
			invalidParams.AddNested("InferenceConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.ShapConfig != nil {
		if err := s.ShapConfig.Validate(); err != nil {
			invalidParams.AddNested("ShapConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEnableExplanations sets the EnableExplanations field's value.
func (s *ClarifyExplainerConfig) SetEnableExplanations(v string) *ClarifyExplainerConfig {
	s.EnableExplanations = &v
	return s
}

// SetInferenceConfig sets the InferenceConfig field's value.
func (s *ClarifyExplainerConfig) SetInferenceConfig(v *ClarifyInferenceConfig) *ClarifyExplainerConfig {
	s.InferenceConfig = v
	return s
}

// SetShapConfig sets the ShapConfig field's value.
func (s *ClarifyExplainerConfig) SetShapConfig(v *ClarifyShapConfig) *ClarifyExplainerConfig {
	s.ShapConfig = v
	return s
}

// The inference configuration parameter for the model container.
type ClarifyInferenceConfig struct {
	_ struct{} `type:"structure"`

	// A template string used to format a JSON record into an acceptable model container
	// input. For example, a ContentTemplate string '{"myfeatures":$features}' will
	// format a list of features [1,2,3] into the record string '{"myfeatures":[1,2,3]}'.
	// Required only when the model container input is in JSON Lines format.
	ContentTemplate *string `min:"1" type:"string"`

	// The names of the features. If provided, these are included in the endpoint
	// response payload to help readability of the InvokeEndpoint output. See the
	// Response (https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-online-explainability-invoke-endpoint.html#clarify-online-explainability-response)
	// section under Invoke the endpoint in the Developer Guide for more information.
	FeatureHeaders []*string `min:"1" type:"list"`

	// A list of data types of the features (optional). Applicable only to NLP explainability.
	// If provided, FeatureTypes must have at least one 'text' string (for example,
	// ['text']). If FeatureTypes is not provided, the explainer infers the feature
	// types based on the baseline data. The feature types are included in the endpoint
	// response payload. For additional information see the response (https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-online-explainability-invoke-endpoint.html#clarify-online-explainability-response)
	// section under Invoke the endpoint in the Developer Guide for more information.
	FeatureTypes []*string `min:"1" type:"list" enum:"ClarifyFeatureType"`

	// Provides the JMESPath expression to extract the features from a model container
	// input in JSON Lines format. For example, if FeaturesAttribute is the JMESPath
	// expression 'myfeatures', it extracts a list of features [1,2,3] from request
	// data '{"myfeatures":[1,2,3]}'.
	FeaturesAttribute *string `min:"1" type:"string"`

	// A JMESPath expression used to locate the list of label headers in the model
	// container output.
	//
	// Example: If the model container output of a batch request is '{"labels":["cat","dog","fish"],"probability":[0.6,0.3,0.1]}',
	// then set LabelAttribute to 'labels' to extract the list of label headers
	// ["cat","dog","fish"]
	LabelAttribute *string `min:"1" type:"string"`

	// For multiclass classification problems, the label headers are the names of
	// the classes. Otherwise, the label header is the name of the predicted label.
	// These are used to help readability for the output of the InvokeEndpoint API.
	// See the response (https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-online-explainability-invoke-endpoint.html#clarify-online-explainability-response)
	// section under Invoke the endpoint in the Developer Guide for more information.
	// If there are no label headers in the model container output, provide them
	// manually using this parameter.
	LabelHeaders []*string `min:"1" type:"list"`

	// A zero-based index used to extract a label header or list of label headers
	// from model container output in CSV format.
	//
	// Example for a multiclass model: If the model container output consists of
	// label headers followed by probabilities: '"[\'cat\',\'dog\',\'fish\']","[0.1,0.6,0.3]"',
	// set LabelIndex to 0 to select the label headers ['cat','dog','fish'].
	LabelIndex *int64 `type:"integer"`

	// The maximum payload size (MB) allowed of a request from the explainer to
	// the model container. Defaults to 6 MB.
	MaxPayloadInMB *int64 `min:"1" type:"integer"`

	// The maximum number of records in a request that the model container can process
	// when querying the model container for the predictions of a synthetic dataset
	// (https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-online-explainability-create-endpoint.html#clarify-online-explainability-create-endpoint-synthetic).
	// A record is a unit of input data that inference can be made on, for example,
	// a single line in CSV data. If MaxRecordCount is 1, the model container expects
	// one record per request. A value of 2 or greater means that the model expects
	// batch requests, which can reduce overhead and speed up the inferencing process.
	// If this parameter is not provided, the explainer will tune the record count
	// per request according to the model container's capacity at runtime.
	MaxRecordCount *int64 `min:"1" type:"integer"`

	// A JMESPath expression used to extract the probability (or score) from the
	// model container output if the model container is in JSON Lines format.
	//
	// Example: If the model container output of a single request is '{"predicted_label":1,"probability":0.6}',
	// then set ProbabilityAttribute to 'probability'.
	ProbabilityAttribute *string `min:"1" type:"string"`

	// A zero-based index used to extract a probability value (score) or list from
	// model container output in CSV format. If this value is not provided, the
	// entire model container output will be treated as a probability value (score)
	// or list.
	//
	// Example for a single class model: If the model container output consists
	// of a string-formatted prediction label followed by its probability: '1,0.6',
	// set ProbabilityIndex to 1 to select the probability value 0.6.
	//
	// Example for a multiclass model: If the model container output consists of
	// a string-formatted prediction label followed by its probability: '"[\'cat\',\'dog\',\'fish\']","[0.1,0.6,0.3]"',
	// set ProbabilityIndex to 1 to select the probability values [0.1,0.6,0.3].
	ProbabilityIndex *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClarifyInferenceConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClarifyInferenceConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ClarifyInferenceConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ClarifyInferenceConfig"}
	if s.ContentTemplate != nil && len(*s.ContentTemplate) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ContentTemplate", 1))
	}
	if s.FeatureHeaders != nil && len(s.FeatureHeaders) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FeatureHeaders", 1))
	}
	if s.FeatureTypes != nil && len(s.FeatureTypes) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FeatureTypes", 1))
	}
	if s.FeaturesAttribute != nil && len(*s.FeaturesAttribute) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FeaturesAttribute", 1))
	}
	if s.LabelAttribute != nil && len(*s.LabelAttribute) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("LabelAttribute", 1))
	}
	if s.LabelHeaders != nil && len(s.LabelHeaders) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("LabelHeaders", 1))
	}
	if s.MaxPayloadInMB != nil && *s.MaxPayloadInMB < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxPayloadInMB", 1))
	}
	if s.MaxRecordCount != nil && *s.MaxRecordCount < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxRecordCount", 1))
	}
	if s.ProbabilityAttribute != nil && len(*s.ProbabilityAttribute) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ProbabilityAttribute", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContentTemplate sets the ContentTemplate field's value.
func (s *ClarifyInferenceConfig) SetContentTemplate(v string) *ClarifyInferenceConfig {
	s.ContentTemplate = &v
	return s
}

// SetFeatureHeaders sets the FeatureHeaders field's value.
func (s *ClarifyInferenceConfig) SetFeatureHeaders(v []*string) *ClarifyInferenceConfig {
	s.FeatureHeaders = v
	return s
}

// SetFeatureTypes sets the FeatureTypes field's value.
func (s *ClarifyInferenceConfig) SetFeatureTypes(v []*string) *ClarifyInferenceConfig {
	s.FeatureTypes = v
	return s
}

// SetFeaturesAttribute sets the FeaturesAttribute field's value.
func (s *ClarifyInferenceConfig) SetFeaturesAttribute(v string) *ClarifyInferenceConfig {
	s.FeaturesAttribute = &v
	return s
}

// SetLabelAttribute sets the LabelAttribute field's value.
func (s *ClarifyInferenceConfig) SetLabelAttribute(v string) *ClarifyInferenceConfig {
	s.LabelAttribute = &v
	return s
}

// SetLabelHeaders sets the LabelHeaders field's value.
func (s *ClarifyInferenceConfig) SetLabelHeaders(v []*string) *ClarifyInferenceConfig {
	s.LabelHeaders = v
	return s
}

// SetLabelIndex sets the LabelIndex field's value.
func (s *ClarifyInferenceConfig) SetLabelIndex(v int64) *ClarifyInferenceConfig {
	s.LabelIndex = &v
	return s
}

// SetMaxPayloadInMB sets the MaxPayloadInMB field's value.
func (s *ClarifyInferenceConfig) SetMaxPayloadInMB(v int64) *ClarifyInferenceConfig {
	s.MaxPayloadInMB = &v
	return s
}

// SetMaxRecordCount sets the MaxRecordCount field's value.
func (s *ClarifyInferenceConfig) SetMaxRecordCount(v int64) *ClarifyInferenceConfig {
	s.MaxRecordCount = &v
	return s
}

// SetProbabilityAttribute sets the ProbabilityAttribute field's value.
func (s *ClarifyInferenceConfig) SetProbabilityAttribute(v string) *ClarifyInferenceConfig {
	s.ProbabilityAttribute = &v
	return s
}

// SetProbabilityIndex sets the ProbabilityIndex field's value.
func (s *ClarifyInferenceConfig) SetProbabilityIndex(v int64) *ClarifyInferenceConfig {
	s.ProbabilityIndex = &v
	return s
}

// The configuration for the SHAP baseline (https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-feature-attribute-shap-baselines.html)
// (also called the background or reference dataset) of the Kernal SHAP algorithm.
//
//   - The number of records in the baseline data determines the size of the
//     synthetic dataset, which has an impact on latency of explainability requests.
//     For more information, see the Synthetic data of Configure and create an
//     endpoint (https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-online-explainability-create-endpoint.html).
//
//   - ShapBaseline and ShapBaselineUri are mutually exclusive parameters.
//     One or the either is required to configure a SHAP baseline.
type ClarifyShapBaselineConfig struct {
	_ struct{} `type:"structure"`

	// The MIME type of the baseline data. Choose from 'text/csv' or 'application/jsonlines'.
	// Defaults to 'text/csv'.
	MimeType *string `type:"string"`

	// The inline SHAP baseline data in string format. ShapBaseline can have one
	// or multiple records to be used as the baseline dataset. The format of the
	// SHAP baseline file should be the same format as the training dataset. For
	// example, if the training dataset is in CSV format and each record contains
	// four features, and all features are numerical, then the format of the baseline
	// data should also share these characteristics. For natural language processing
	// (NLP) of text columns, the baseline value should be the value used to replace
	// the unit of text specified by the Granularity of the TextConfig parameter.
	// The size limit for ShapBasline is 4 KB. Use the ShapBaselineUri parameter
	// if you want to provide more than 4 KB of baseline data.
	ShapBaseline *string `min:"1" type:"string"`

	// The uniform resource identifier (URI) of the S3 bucket where the SHAP baseline
	// file is stored. The format of the SHAP baseline file should be the same format
	// as the format of the training dataset. For example, if the training dataset
	// is in CSV format, and each record in the training dataset has four features,
	// and all features are numerical, then the baseline file should also have this
	// same format. Each record should contain only the features. If you are using
	// a virtual private cloud (VPC), the ShapBaselineUri should be accessible to
	// the VPC. For more information about setting up endpoints with Amazon Virtual
	// Private Cloud, see Give SageMaker access to Resources in your Amazon Virtual
	// Private Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html).
	ShapBaselineUri *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClarifyShapBaselineConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClarifyShapBaselineConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ClarifyShapBaselineConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ClarifyShapBaselineConfig"}
	if s.ShapBaseline != nil && len(*s.ShapBaseline) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ShapBaseline", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMimeType sets the MimeType field's value.
func (s *ClarifyShapBaselineConfig) SetMimeType(v string) *ClarifyShapBaselineConfig {
	s.MimeType = &v
	return s
}

// SetShapBaseline sets the ShapBaseline field's value.
func (s *ClarifyShapBaselineConfig) SetShapBaseline(v string) *ClarifyShapBaselineConfig {
	s.ShapBaseline = &v
	return s
}

// SetShapBaselineUri sets the ShapBaselineUri field's value.
func (s *ClarifyShapBaselineConfig) SetShapBaselineUri(v string) *ClarifyShapBaselineConfig {
	s.ShapBaselineUri = &v
	return s
}

// The configuration for SHAP analysis using SageMaker Clarify Explainer.
type ClarifyShapConfig struct {
	_ struct{} `type:"structure"`

	// The number of samples to be used for analysis by the Kernal SHAP algorithm.
	//
	// The number of samples determines the size of the synthetic dataset, which
	// has an impact on latency of explainability requests. For more information,
	// see the Synthetic data of Configure and create an endpoint (https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-online-explainability-create-endpoint.html).
	NumberOfSamples *int64 `min:"1" type:"integer"`

	// The starting value used to initialize the random number generator in the
	// explainer. Provide a value for this parameter to obtain a deterministic SHAP
	// result.
	Seed *int64 `type:"integer"`

	// The configuration for the SHAP baseline of the Kernal SHAP algorithm.
	//
	// ShapBaselineConfig is a required field
	ShapBaselineConfig *ClarifyShapBaselineConfig `type:"structure" required:"true"`

	// A parameter that indicates if text features are treated as text and explanations
	// are provided for individual units of text. Required for natural language
	// processing (NLP) explainability only.
	TextConfig *ClarifyTextConfig `type:"structure"`

	// A Boolean toggle to indicate if you want to use the logit function (true)
	// or log-odds units (false) for model predictions. Defaults to false.
	UseLogit *bool `type:"boolean"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClarifyShapConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClarifyShapConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ClarifyShapConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ClarifyShapConfig"}
	if s.NumberOfSamples != nil && *s.NumberOfSamples < 1 {
		invalidParams.Add(request.NewErrParamMinValue("NumberOfSamples", 1))
	}
	if s.ShapBaselineConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("ShapBaselineConfig"))
	}
	if s.ShapBaselineConfig != nil {
		if err := s.ShapBaselineConfig.Validate(); err != nil {
			invalidParams.AddNested("ShapBaselineConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.TextConfig != nil {
		if err := s.TextConfig.Validate(); err != nil {
			invalidParams.AddNested("TextConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetNumberOfSamples sets the NumberOfSamples field's value.
func (s *ClarifyShapConfig) SetNumberOfSamples(v int64) *ClarifyShapConfig {
	s.NumberOfSamples = &v
	return s
}

// SetSeed sets the Seed field's value.
func (s *ClarifyShapConfig) SetSeed(v int64) *ClarifyShapConfig {
	s.Seed = &v
	return s
}

// SetShapBaselineConfig sets the ShapBaselineConfig field's value.
func (s *ClarifyShapConfig) SetShapBaselineConfig(v *ClarifyShapBaselineConfig) *ClarifyShapConfig {
	s.ShapBaselineConfig = v
	return s
}

// SetTextConfig sets the TextConfig field's value.
func (s *ClarifyShapConfig) SetTextConfig(v *ClarifyTextConfig) *ClarifyShapConfig {
	s.TextConfig = v
	return s
}

// SetUseLogit sets the UseLogit field's value.
func (s *ClarifyShapConfig) SetUseLogit(v bool) *ClarifyShapConfig {
	s.UseLogit = &v
	return s
}

// A parameter used to configure the SageMaker Clarify explainer to treat text
// features as text so that explanations are provided for individual units of
// text. Required only for natural language processing (NLP) explainability.
type ClarifyTextConfig struct {
	_ struct{} `type:"structure"`

	// The unit of granularity for the analysis of text features. For example, if
	// the unit is 'token', then each token (like a word in English) of the text
	// is treated as a feature. SHAP values are computed for each unit/feature.
	//
	// Granularity is a required field
	Granularity *string `type:"string" required:"true" enum:"ClarifyTextGranularity"`

	// Specifies the language of the text features in ISO 639-1 (https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)
	// or ISO 639-3 (https://en.wikipedia.org/wiki/ISO_639-3) code of a supported
	// language.
	//
	// For a mix of multiple languages, use code 'xx'.
	//
	// Language is a required field
	Language *string `type:"string" required:"true" enum:"ClarifyTextLanguage"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClarifyTextConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClarifyTextConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ClarifyTextConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ClarifyTextConfig"}
	if s.Granularity == nil {
		invalidParams.Add(request.NewErrParamRequired("Granularity"))
	}
	if s.Language == nil {
		invalidParams.Add(request.NewErrParamRequired("Language"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetGranularity sets the Granularity field's value.
func (s *ClarifyTextConfig) SetGranularity(v string) *ClarifyTextConfig {
	s.Granularity = &v
	return s
}

// SetLanguage sets the Language field's value.
func (s *ClarifyTextConfig) SetLanguage(v string) *ClarifyTextConfig {
	s.Language = &v
	return s
}

// Details of an instance group in a SageMaker HyperPod cluster.
type ClusterInstanceGroupDetails struct {
	_ struct{} `type:"structure"`

	// The number of instances that are currently in the instance group of a SageMaker
	// HyperPod cluster.
	CurrentCount *int64 `type:"integer"`

	// The execution role for the instance group to assume.
	ExecutionRole *string `min:"20" type:"string"`

	// The name of the instance group of a SageMaker HyperPod cluster.
	InstanceGroupName *string `min:"1" type:"string"`

	// The instance type of the instance group of a SageMaker HyperPod cluster.
	InstanceType *string `type:"string" enum:"ClusterInstanceType"`

	// Details of LifeCycle configuration for the instance group.
	LifeCycleConfig *ClusterLifeCycleConfig `type:"structure"`

	// The number of instances you specified to add to the instance group of a SageMaker
	// HyperPod cluster.
	TargetCount *int64 `min:"1" type:"integer"`

	// The number you specified to TreadsPerCore in CreateCluster for enabling or
	// disabling multithreading. For instance types that support multithreading,
	// you can specify 1 for disabling multithreading and 2 for enabling multithreading.
	// For more information, see the reference table of CPU cores and threads per
	// CPU core per instance type (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cpu-options-supported-instances-values.html)
	// in the Amazon Elastic Compute Cloud User Guide.
	ThreadsPerCore *int64 `min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClusterInstanceGroupDetails) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClusterInstanceGroupDetails) GoString() string {
	return s.String()
}

// SetCurrentCount sets the CurrentCount field's value.
func (s *ClusterInstanceGroupDetails) SetCurrentCount(v int64) *ClusterInstanceGroupDetails {
	s.CurrentCount = &v
	return s
}

// SetExecutionRole sets the ExecutionRole field's value.
func (s *ClusterInstanceGroupDetails) SetExecutionRole(v string) *ClusterInstanceGroupDetails {
	s.ExecutionRole = &v
	return s
}

// SetInstanceGroupName sets the InstanceGroupName field's value.
func (s *ClusterInstanceGroupDetails) SetInstanceGroupName(v string) *ClusterInstanceGroupDetails {
	s.InstanceGroupName = &v
	return s
}

// SetInstanceType sets the InstanceType field's value.
func (s *ClusterInstanceGroupDetails) SetInstanceType(v string) *ClusterInstanceGroupDetails {
	s.InstanceType = &v
	return s
}

// SetLifeCycleConfig sets the LifeCycleConfig field's value.
func (s *ClusterInstanceGroupDetails) SetLifeCycleConfig(v *ClusterLifeCycleConfig) *ClusterInstanceGroupDetails {
	s.LifeCycleConfig = v
	return s
}

// SetTargetCount sets the TargetCount field's value.
func (s *ClusterInstanceGroupDetails) SetTargetCount(v int64) *ClusterInstanceGroupDetails {
	s.TargetCount = &v
	return s
}

// SetThreadsPerCore sets the ThreadsPerCore field's value.
func (s *ClusterInstanceGroupDetails) SetThreadsPerCore(v int64) *ClusterInstanceGroupDetails {
	s.ThreadsPerCore = &v
	return s
}

// The specifications of an instance group that you need to define.
type ClusterInstanceGroupSpecification struct {
	_ struct{} `type:"structure"`

	// Specifies an IAM execution role to be assumed by the instance group.
	//
	// ExecutionRole is a required field
	ExecutionRole *string `min:"20" type:"string" required:"true"`

	// Specifies the number of instances to add to the instance group of a SageMaker
	// HyperPod cluster.
	//
	// InstanceCount is a required field
	InstanceCount *int64 `min:"1" type:"integer" required:"true"`

	// Specifies the name of the instance group.
	//
	// InstanceGroupName is a required field
	InstanceGroupName *string `min:"1" type:"string" required:"true"`

	// Specifies the instance type of the instance group.
	//
	// InstanceType is a required field
	InstanceType *string `type:"string" required:"true" enum:"ClusterInstanceType"`

	// Specifies the LifeCycle configuration for the instance group.
	//
	// LifeCycleConfig is a required field
	LifeCycleConfig *ClusterLifeCycleConfig `type:"structure" required:"true"`

	// Specifies the value for Threads per core. For instance types that support
	// multithreading, you can specify 1 for disabling multithreading and 2 for
	// enabling multithreading. For instance types that doesn't support multithreading,
	// specify 1. For more information, see the reference table of CPU cores and
	// threads per CPU core per instance type (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cpu-options-supported-instances-values.html)
	// in the Amazon Elastic Compute Cloud User Guide.
	ThreadsPerCore *int64 `min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClusterInstanceGroupSpecification) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClusterInstanceGroupSpecification) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ClusterInstanceGroupSpecification) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ClusterInstanceGroupSpecification"}
	if s.ExecutionRole == nil {
		invalidParams.Add(request.NewErrParamRequired("ExecutionRole"))
	}
	if s.ExecutionRole != nil && len(*s.ExecutionRole) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("ExecutionRole", 20))
	}
	if s.InstanceCount == nil {
		invalidParams.Add(request.NewErrParamRequired("InstanceCount"))
	}
	if s.InstanceCount != nil && *s.InstanceCount < 1 {
		invalidParams.Add(request.NewErrParamMinValue("InstanceCount", 1))
	}
	if s.InstanceGroupName == nil {
		invalidParams.Add(request.NewErrParamRequired("InstanceGroupName"))
	}
	if s.InstanceGroupName != nil && len(*s.InstanceGroupName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("InstanceGroupName", 1))
	}
	if s.InstanceType == nil {
		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
	}
	if s.LifeCycleConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("LifeCycleConfig"))
	}
	if s.ThreadsPerCore != nil && *s.ThreadsPerCore < 1 {
		invalidParams.Add(request.NewErrParamMinValue("ThreadsPerCore", 1))
	}
	if s.LifeCycleConfig != nil {
		if err := s.LifeCycleConfig.Validate(); err != nil {
			invalidParams.AddNested("LifeCycleConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetExecutionRole sets the ExecutionRole field's value.
func (s *ClusterInstanceGroupSpecification) SetExecutionRole(v string) *ClusterInstanceGroupSpecification {
	s.ExecutionRole = &v
	return s
}

// SetInstanceCount sets the InstanceCount field's value.
func (s *ClusterInstanceGroupSpecification) SetInstanceCount(v int64) *ClusterInstanceGroupSpecification {
	s.InstanceCount = &v
	return s
}

// SetInstanceGroupName sets the InstanceGroupName field's value.
func (s *ClusterInstanceGroupSpecification) SetInstanceGroupName(v string) *ClusterInstanceGroupSpecification {
	s.InstanceGroupName = &v
	return s
}

// SetInstanceType sets the InstanceType field's value.
func (s *ClusterInstanceGroupSpecification) SetInstanceType(v string) *ClusterInstanceGroupSpecification {
	s.InstanceType = &v
	return s
}

// SetLifeCycleConfig sets the LifeCycleConfig field's value.
func (s *ClusterInstanceGroupSpecification) SetLifeCycleConfig(v *ClusterLifeCycleConfig) *ClusterInstanceGroupSpecification {
	s.LifeCycleConfig = v
	return s
}

// SetThreadsPerCore sets the ThreadsPerCore field's value.
func (s *ClusterInstanceGroupSpecification) SetThreadsPerCore(v int64) *ClusterInstanceGroupSpecification {
	s.ThreadsPerCore = &v
	return s
}

// Details of an instance in a SageMaker HyperPod cluster.
type ClusterInstanceStatusDetails struct {
	_ struct{} `type:"structure"`

	// The message from an instance in a SageMaker HyperPod cluster.
	Message *string `type:"string"`

	// The status of an instance in a SageMaker HyperPod cluster.
	//
	// Status is a required field
	Status *string `type:"string" required:"true" enum:"ClusterInstanceStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClusterInstanceStatusDetails) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClusterInstanceStatusDetails) GoString() string {
	return s.String()
}

// SetMessage sets the Message field's value.
func (s *ClusterInstanceStatusDetails) SetMessage(v string) *ClusterInstanceStatusDetails {
	s.Message = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *ClusterInstanceStatusDetails) SetStatus(v string) *ClusterInstanceStatusDetails {
	s.Status = &v
	return s
}

// The LifeCycle configuration for a SageMaker HyperPod cluster.
type ClusterLifeCycleConfig struct {
	_ struct{} `type:"structure"`

	// The directory of the LifeCycle script under SourceS3Uri. This LifeCycle script
	// runs during cluster creation.
	//
	// OnCreate is a required field
	OnCreate *string `min:"1" type:"string" required:"true"`

	// An Amazon S3 bucket path where your LifeCycle scripts are stored.
	//
	// SourceS3Uri is a required field
	SourceS3Uri *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClusterLifeCycleConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClusterLifeCycleConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ClusterLifeCycleConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ClusterLifeCycleConfig"}
	if s.OnCreate == nil {
		invalidParams.Add(request.NewErrParamRequired("OnCreate"))
	}
	if s.OnCreate != nil && len(*s.OnCreate) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("OnCreate", 1))
	}
	if s.SourceS3Uri == nil {
		invalidParams.Add(request.NewErrParamRequired("SourceS3Uri"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetOnCreate sets the OnCreate field's value.
func (s *ClusterLifeCycleConfig) SetOnCreate(v string) *ClusterLifeCycleConfig {
	s.OnCreate = &v
	return s
}

// SetSourceS3Uri sets the SourceS3Uri field's value.
func (s *ClusterLifeCycleConfig) SetSourceS3Uri(v string) *ClusterLifeCycleConfig {
	s.SourceS3Uri = &v
	return s
}

// Details of an instance (also called a node interchangeably) in a SageMaker
// HyperPod cluster.
type ClusterNodeDetails struct {
	_ struct{} `type:"structure"`

	// The instance group name in which the instance is.
	InstanceGroupName *string `min:"1" type:"string"`

	// The ID of the instance.
	InstanceId *string `type:"string"`

	// The status of the instance.
	InstanceStatus *ClusterInstanceStatusDetails `type:"structure"`

	// The type of the instance.
	InstanceType *string `type:"string" enum:"ClusterInstanceType"`

	// The time when the instance is launched.
	LaunchTime *time.Time `type:"timestamp"`

	// The LifeCycle configuration applied to the instance.
	LifeCycleConfig *ClusterLifeCycleConfig `type:"structure"`

	// The number of threads per CPU core you specified under CreateCluster.
	ThreadsPerCore *int64 `min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClusterNodeDetails) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClusterNodeDetails) GoString() string {
	return s.String()
}

// SetInstanceGroupName sets the InstanceGroupName field's value.
func (s *ClusterNodeDetails) SetInstanceGroupName(v string) *ClusterNodeDetails {
	s.InstanceGroupName = &v
	return s
}

// SetInstanceId sets the InstanceId field's value.
func (s *ClusterNodeDetails) SetInstanceId(v string) *ClusterNodeDetails {
	s.InstanceId = &v
	return s
}

// SetInstanceStatus sets the InstanceStatus field's value.
func (s *ClusterNodeDetails) SetInstanceStatus(v *ClusterInstanceStatusDetails) *ClusterNodeDetails {
	s.InstanceStatus = v
	return s
}

// SetInstanceType sets the InstanceType field's value.
func (s *ClusterNodeDetails) SetInstanceType(v string) *ClusterNodeDetails {
	s.InstanceType = &v
	return s
}

// SetLaunchTime sets the LaunchTime field's value.
func (s *ClusterNodeDetails) SetLaunchTime(v time.Time) *ClusterNodeDetails {
	s.LaunchTime = &v
	return s
}

// SetLifeCycleConfig sets the LifeCycleConfig field's value.
func (s *ClusterNodeDetails) SetLifeCycleConfig(v *ClusterLifeCycleConfig) *ClusterNodeDetails {
	s.LifeCycleConfig = v
	return s
}

// SetThreadsPerCore sets the ThreadsPerCore field's value.
func (s *ClusterNodeDetails) SetThreadsPerCore(v int64) *ClusterNodeDetails {
	s.ThreadsPerCore = &v
	return s
}

// Lists a summary of the properties of an instance (also called a node interchangeably)
// of a SageMaker HyperPod cluster.
type ClusterNodeSummary struct {
	_ struct{} `type:"structure"`

	// The name of the instance group in which the instance is.
	//
	// InstanceGroupName is a required field
	InstanceGroupName *string `min:"1" type:"string" required:"true"`

	// The ID of the instance.
	//
	// InstanceId is a required field
	InstanceId *string `type:"string" required:"true"`

	// The status of the instance.
	//
	// InstanceStatus is a required field
	InstanceStatus *ClusterInstanceStatusDetails `type:"structure" required:"true"`

	// The type of the instance.
	//
	// InstanceType is a required field
	InstanceType *string `type:"string" required:"true" enum:"ClusterInstanceType"`

	// The time when the instance is launched.
	//
	// LaunchTime is a required field
	LaunchTime *time.Time `type:"timestamp" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClusterNodeSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClusterNodeSummary) GoString() string {
	return s.String()
}

// SetInstanceGroupName sets the InstanceGroupName field's value.
func (s *ClusterNodeSummary) SetInstanceGroupName(v string) *ClusterNodeSummary {
	s.InstanceGroupName = &v
	return s
}

// SetInstanceId sets the InstanceId field's value.
func (s *ClusterNodeSummary) SetInstanceId(v string) *ClusterNodeSummary {
	s.InstanceId = &v
	return s
}

// SetInstanceStatus sets the InstanceStatus field's value.
func (s *ClusterNodeSummary) SetInstanceStatus(v *ClusterInstanceStatusDetails) *ClusterNodeSummary {
	s.InstanceStatus = v
	return s
}

// SetInstanceType sets the InstanceType field's value.
func (s *ClusterNodeSummary) SetInstanceType(v string) *ClusterNodeSummary {
	s.InstanceType = &v
	return s
}

// SetLaunchTime sets the LaunchTime field's value.
func (s *ClusterNodeSummary) SetLaunchTime(v time.Time) *ClusterNodeSummary {
	s.LaunchTime = &v
	return s
}

// Lists a summary of the properties of a SageMaker HyperPod cluster.
type ClusterSummary struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the SageMaker HyperPod cluster.
	//
	// ClusterArn is a required field
	ClusterArn *string `type:"string" required:"true"`

	// The name of the SageMaker HyperPod cluster.
	//
	// ClusterName is a required field
	ClusterName *string `min:"1" type:"string" required:"true"`

	// The status of the SageMaker HyperPod cluster.
	//
	// ClusterStatus is a required field
	ClusterStatus *string `type:"string" required:"true" enum:"ClusterStatus"`

	// The time when the SageMaker HyperPod cluster is created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClusterSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ClusterSummary) GoString() string {
	return s.String()
}

// SetClusterArn sets the ClusterArn field's value.
func (s *ClusterSummary) SetClusterArn(v string) *ClusterSummary {
	s.ClusterArn = &v
	return s
}

// SetClusterName sets the ClusterName field's value.
func (s *ClusterSummary) SetClusterName(v string) *ClusterSummary {
	s.ClusterName = &v
	return s
}

// SetClusterStatus sets the ClusterStatus field's value.
func (s *ClusterSummary) SetClusterStatus(v string) *ClusterSummary {
	s.ClusterStatus = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *ClusterSummary) SetCreationTime(v time.Time) *ClusterSummary {
	s.CreationTime = &v
	return s
}

// The Code Editor application settings.
//
// For more information about Code Editor, see Get started with Code Editor
// in Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/code-editor.html).
type CodeEditorAppSettings struct {
	_ struct{} `type:"structure"`

	// Specifies the ARN's of a SageMaker image and SageMaker image version, and
	// the instance type that the version runs on.
	DefaultResourceSpec *ResourceSpec `type:"structure"`

	// The Amazon Resource Name (ARN) of the Code Editor application lifecycle configuration.
	LifecycleConfigArns []*string `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CodeEditorAppSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CodeEditorAppSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CodeEditorAppSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CodeEditorAppSettings"}
	if s.DefaultResourceSpec != nil {
		if err := s.DefaultResourceSpec.Validate(); err != nil {
			invalidParams.AddNested("DefaultResourceSpec", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDefaultResourceSpec sets the DefaultResourceSpec field's value.
func (s *CodeEditorAppSettings) SetDefaultResourceSpec(v *ResourceSpec) *CodeEditorAppSettings {
	s.DefaultResourceSpec = v
	return s
}

// SetLifecycleConfigArns sets the LifecycleConfigArns field's value.
func (s *CodeEditorAppSettings) SetLifecycleConfigArns(v []*string) *CodeEditorAppSettings {
	s.LifecycleConfigArns = v
	return s
}

// A Git repository that SageMaker automatically displays to users for cloning
// in the JupyterServer application.
type CodeRepository struct {
	_ struct{} `type:"structure"`

	// The URL of the Git repository.
	//
	// RepositoryUrl is a required field
	RepositoryUrl *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CodeRepository) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CodeRepository) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CodeRepository) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CodeRepository"}
	if s.RepositoryUrl == nil {
		invalidParams.Add(request.NewErrParamRequired("RepositoryUrl"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetRepositoryUrl sets the RepositoryUrl field's value.
func (s *CodeRepository) SetRepositoryUrl(v string) *CodeRepository {
	s.RepositoryUrl = &v
	return s
}

// Specifies summary information about a Git repository.
type CodeRepositorySummary struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the Git repository.
	//
	// CodeRepositoryArn is a required field
	CodeRepositoryArn *string `min:"1" type:"string" required:"true"`

	// The name of the Git repository.
	//
	// CodeRepositoryName is a required field
	CodeRepositoryName *string `min:"1" type:"string" required:"true"`

	// The date and time that the Git repository was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// Configuration details for the Git repository, including the URL where it
	// is located and the ARN of the Amazon Web Services Secrets Manager secret
	// that contains the credentials used to access the repository.
	GitConfig *GitConfig `type:"structure"`

	// The date and time that the Git repository was last modified.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CodeRepositorySummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CodeRepositorySummary) GoString() string {
	return s.String()
}

// SetCodeRepositoryArn sets the CodeRepositoryArn field's value.
func (s *CodeRepositorySummary) SetCodeRepositoryArn(v string) *CodeRepositorySummary {
	s.CodeRepositoryArn = &v
	return s
}

// SetCodeRepositoryName sets the CodeRepositoryName field's value.
func (s *CodeRepositorySummary) SetCodeRepositoryName(v string) *CodeRepositorySummary {
	s.CodeRepositoryName = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *CodeRepositorySummary) SetCreationTime(v time.Time) *CodeRepositorySummary {
	s.CreationTime = &v
	return s
}

// SetGitConfig sets the GitConfig field's value.
func (s *CodeRepositorySummary) SetGitConfig(v *GitConfig) *CodeRepositorySummary {
	s.GitConfig = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *CodeRepositorySummary) SetLastModifiedTime(v time.Time) *CodeRepositorySummary {
	s.LastModifiedTime = &v
	return s
}

// Use this parameter to configure your Amazon Cognito workforce. A single Cognito
// workforce is created using and corresponds to a single Amazon Cognito user
// pool (https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html).
type CognitoConfig struct {
	_ struct{} `type:"structure"`

	// The client ID for your Amazon Cognito user pool.
	//
	// ClientId is a required field
	ClientId *string `min:"1" type:"string" required:"true"`

	// A user pool (https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html)
	// is a user directory in Amazon Cognito. With a user pool, your users can sign
	// in to your web or mobile app through Amazon Cognito. Your users can also
	// sign in through social identity providers like Google, Facebook, Amazon,
	// or Apple, and through SAML identity providers.
	//
	// UserPool is a required field
	UserPool *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CognitoConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CognitoConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CognitoConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CognitoConfig"}
	if s.ClientId == nil {
		invalidParams.Add(request.NewErrParamRequired("ClientId"))
	}
	if s.ClientId != nil && len(*s.ClientId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ClientId", 1))
	}
	if s.UserPool == nil {
		invalidParams.Add(request.NewErrParamRequired("UserPool"))
	}
	if s.UserPool != nil && len(*s.UserPool) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("UserPool", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClientId sets the ClientId field's value.
func (s *CognitoConfig) SetClientId(v string) *CognitoConfig {
	s.ClientId = &v
	return s
}

// SetUserPool sets the UserPool field's value.
func (s *CognitoConfig) SetUserPool(v string) *CognitoConfig {
	s.UserPool = &v
	return s
}

// Identifies a Amazon Cognito user group. A user group can be used in on or
// more work teams.
type CognitoMemberDefinition struct {
	_ struct{} `type:"structure"`

	// An identifier for an application client. You must create the app client ID
	// using Amazon Cognito.
	//
	// ClientId is a required field
	ClientId *string `min:"1" type:"string" required:"true"`

	// An identifier for a user group.
	//
	// UserGroup is a required field
	UserGroup *string `min:"1" type:"string" required:"true"`

	// An identifier for a user pool. The user pool must be in the same region as
	// the service that you are calling.
	//
	// UserPool is a required field
	UserPool *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CognitoMemberDefinition) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CognitoMemberDefinition) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CognitoMemberDefinition) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CognitoMemberDefinition"}
	if s.ClientId == nil {
		invalidParams.Add(request.NewErrParamRequired("ClientId"))
	}
	if s.ClientId != nil && len(*s.ClientId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ClientId", 1))
	}
	if s.UserGroup == nil {
		invalidParams.Add(request.NewErrParamRequired("UserGroup"))
	}
	if s.UserGroup != nil && len(*s.UserGroup) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("UserGroup", 1))
	}
	if s.UserPool == nil {
		invalidParams.Add(request.NewErrParamRequired("UserPool"))
	}
	if s.UserPool != nil && len(*s.UserPool) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("UserPool", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClientId sets the ClientId field's value.
func (s *CognitoMemberDefinition) SetClientId(v string) *CognitoMemberDefinition {
	s.ClientId = &v
	return s
}

// SetUserGroup sets the UserGroup field's value.
func (s *CognitoMemberDefinition) SetUserGroup(v string) *CognitoMemberDefinition {
	s.UserGroup = &v
	return s
}

// SetUserPool sets the UserPool field's value.
func (s *CognitoMemberDefinition) SetUserPool(v string) *CognitoMemberDefinition {
	s.UserPool = &v
	return s
}

// Configuration for your collection.
type CollectionConfig struct {
	_ struct{} `type:"structure"`

	// Configuration for your vector collection type.
	//
	//    * Dimension: The number of elements in your vector.
	VectorConfig *VectorConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CollectionConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CollectionConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CollectionConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CollectionConfig"}
	if s.VectorConfig != nil {
		if err := s.VectorConfig.Validate(); err != nil {
			invalidParams.AddNested("VectorConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetVectorConfig sets the VectorConfig field's value.
func (s *CollectionConfig) SetVectorConfig(v *VectorConfig) *CollectionConfig {
	s.VectorConfig = v
	return s
}

// Configuration information for the Amazon SageMaker Debugger output tensor
// collections.
type CollectionConfiguration struct {
	_ struct{} `type:"structure"`

	// The name of the tensor collection. The name must be unique relative to other
	// rule configuration names.
	CollectionName *string `min:"1" type:"string"`

	// Parameter values for the tensor collection. The allowed parameters are "name",
	// "include_regex", "reduction_config", "save_config", "tensor_names", and "save_histogram".
	CollectionParameters map[string]*string `type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CollectionConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CollectionConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CollectionConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CollectionConfiguration"}
	if s.CollectionName != nil && len(*s.CollectionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("CollectionName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCollectionName sets the CollectionName field's value.
func (s *CollectionConfiguration) SetCollectionName(v string) *CollectionConfiguration {
	s.CollectionName = &v
	return s
}

// SetCollectionParameters sets the CollectionParameters field's value.
func (s *CollectionConfiguration) SetCollectionParameters(v map[string]*string) *CollectionConfiguration {
	s.CollectionParameters = v
	return s
}

// A summary of a model compilation job.
type CompilationJobSummary struct {
	_ struct{} `type:"structure"`

	// The time when the model compilation job completed.
	CompilationEndTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the model compilation job.
	//
	// CompilationJobArn is a required field
	CompilationJobArn *string `type:"string" required:"true"`

	// The name of the model compilation job that you want a summary for.
	//
	// CompilationJobName is a required field
	CompilationJobName *string `min:"1" type:"string" required:"true"`

	// The status of the model compilation job.
	//
	// CompilationJobStatus is a required field
	CompilationJobStatus *string `type:"string" required:"true" enum:"CompilationJobStatus"`

	// The time when the model compilation job started.
	CompilationStartTime *time.Time `type:"timestamp"`

	// The type of device that the model will run on after the compilation job has
	// completed.
	CompilationTargetDevice *string `type:"string" enum:"TargetDevice"`

	// The type of accelerator that the model will run on after the compilation
	// job has completed.
	CompilationTargetPlatformAccelerator *string `type:"string" enum:"TargetPlatformAccelerator"`

	// The type of architecture that the model will run on after the compilation
	// job has completed.
	CompilationTargetPlatformArch *string `type:"string" enum:"TargetPlatformArch"`

	// The type of OS that the model will run on after the compilation job has completed.
	CompilationTargetPlatformOs *string `type:"string" enum:"TargetPlatformOs"`

	// The time when the model compilation job was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The time when the model compilation job was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CompilationJobSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CompilationJobSummary) GoString() string {
	return s.String()
}

// SetCompilationEndTime sets the CompilationEndTime field's value.
func (s *CompilationJobSummary) SetCompilationEndTime(v time.Time) *CompilationJobSummary {
	s.CompilationEndTime = &v
	return s
}

// SetCompilationJobArn sets the CompilationJobArn field's value.
func (s *CompilationJobSummary) SetCompilationJobArn(v string) *CompilationJobSummary {
	s.CompilationJobArn = &v
	return s
}

// SetCompilationJobName sets the CompilationJobName field's value.
func (s *CompilationJobSummary) SetCompilationJobName(v string) *CompilationJobSummary {
	s.CompilationJobName = &v
	return s
}

// SetCompilationJobStatus sets the CompilationJobStatus field's value.
func (s *CompilationJobSummary) SetCompilationJobStatus(v string) *CompilationJobSummary {
	s.CompilationJobStatus = &v
	return s
}

// SetCompilationStartTime sets the CompilationStartTime field's value.
func (s *CompilationJobSummary) SetCompilationStartTime(v time.Time) *CompilationJobSummary {
	s.CompilationStartTime = &v
	return s
}

// SetCompilationTargetDevice sets the CompilationTargetDevice field's value.
func (s *CompilationJobSummary) SetCompilationTargetDevice(v string) *CompilationJobSummary {
	s.CompilationTargetDevice = &v
	return s
}

// SetCompilationTargetPlatformAccelerator sets the CompilationTargetPlatformAccelerator field's value.
func (s *CompilationJobSummary) SetCompilationTargetPlatformAccelerator(v string) *CompilationJobSummary {
	s.CompilationTargetPlatformAccelerator = &v
	return s
}

// SetCompilationTargetPlatformArch sets the CompilationTargetPlatformArch field's value.
func (s *CompilationJobSummary) SetCompilationTargetPlatformArch(v string) *CompilationJobSummary {
	s.CompilationTargetPlatformArch = &v
	return s
}

// SetCompilationTargetPlatformOs sets the CompilationTargetPlatformOs field's value.
func (s *CompilationJobSummary) SetCompilationTargetPlatformOs(v string) *CompilationJobSummary {
	s.CompilationTargetPlatformOs = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *CompilationJobSummary) SetCreationTime(v time.Time) *CompilationJobSummary {
	s.CreationTime = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *CompilationJobSummary) SetLastModifiedTime(v time.Time) *CompilationJobSummary {
	s.LastModifiedTime = &v
	return s
}

// Metadata for a Condition step.
type ConditionStepMetadata struct {
	_ struct{} `type:"structure"`

	// The outcome of the Condition step evaluation.
	Outcome *string `type:"string" enum:"ConditionOutcome"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ConditionStepMetadata) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ConditionStepMetadata) GoString() string {
	return s.String()
}

// SetOutcome sets the Outcome field's value.
func (s *ConditionStepMetadata) SetOutcome(v string) *ConditionStepMetadata {
	s.Outcome = &v
	return s
}

// There was a conflict when you attempted to modify a SageMaker entity such
// as an Experiment or Artifact.
type ConflictException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ConflictException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ConflictException) GoString() string {
	return s.String()
}

func newErrorConflictException(v protocol.ResponseMetadata) error {
	return &ConflictException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ConflictException) Code() string {
	return "ConflictException"
}

// Message returns the exception's message.
func (s *ConflictException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ConflictException) OrigErr() error {
	return nil
}

func (s *ConflictException) Error() string {
	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ConflictException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ConflictException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The configuration used to run the application image container.
type ContainerConfig struct {
	_ struct{} `type:"structure"`

	// The arguments for the container when you're running the application.
	ContainerArguments []*string `type:"list"`

	// The entrypoint used to run the application in the container.
	ContainerEntrypoint []*string `type:"list"`

	// The environment variables to set in the container
	ContainerEnvironmentVariables map[string]*string `type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContainerConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContainerConfig) GoString() string {
	return s.String()
}

// SetContainerArguments sets the ContainerArguments field's value.
func (s *ContainerConfig) SetContainerArguments(v []*string) *ContainerConfig {
	s.ContainerArguments = v
	return s
}

// SetContainerEntrypoint sets the ContainerEntrypoint field's value.
func (s *ContainerConfig) SetContainerEntrypoint(v []*string) *ContainerConfig {
	s.ContainerEntrypoint = v
	return s
}

// SetContainerEnvironmentVariables sets the ContainerEnvironmentVariables field's value.
func (s *ContainerConfig) SetContainerEnvironmentVariables(v map[string]*string) *ContainerConfig {
	s.ContainerEnvironmentVariables = v
	return s
}

// Describes the container, as part of model definition.
type ContainerDefinition struct {
	_ struct{} `type:"structure"`

	// This parameter is ignored for models that contain only a PrimaryContainer.
	//
	// When a ContainerDefinition is part of an inference pipeline, the value of
	// the parameter uniquely identifies the container for the purposes of logging
	// and metrics. For information, see Use Logs and Metrics to Monitor an Inference
	// Pipeline (https://docs.aws.amazon.com/sagemaker/latest/dg/inference-pipeline-logs-metrics.html).
	// If you don't specify a value for this parameter for a ContainerDefinition
	// that is part of an inference pipeline, a unique name is automatically assigned
	// based on the position of the ContainerDefinition in the pipeline. If you
	// specify a value for the ContainerHostName for any ContainerDefinition that
	// is part of an inference pipeline, you must specify a value for the ContainerHostName
	// parameter of every ContainerDefinition in that pipeline.
	ContainerHostname *string `type:"string"`

	// The environment variables to set in the Docker container. Each key and value
	// in the Environment string to string map can have length of up to 1024. We
	// support up to 16 entries in the map.
	Environment map[string]*string `type:"map"`

	// The path where inference code is stored. This can be either in Amazon EC2
	// Container Registry or in a Docker registry that is accessible from the same
	// VPC that you configure for your endpoint. If you are using your own custom
	// algorithm instead of an algorithm provided by SageMaker, the inference code
	// must meet SageMaker requirements. SageMaker supports both registry/repository[:tag]
	// and registry/repository[@digest] image path formats. For more information,
	// see Using Your Own Algorithms with Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html).
	//
	// The model artifacts in an Amazon S3 bucket and the Docker image for inference
	// container in Amazon EC2 Container Registry must be in the same region as
	// the model or endpoint you are creating.
	Image *string `type:"string"`

	// Specifies whether the model container is in Amazon ECR or a private Docker
	// registry accessible from your Amazon Virtual Private Cloud (VPC). For information
	// about storing containers in a private Docker registry, see Use a Private
	// Docker Registry for Real-Time Inference Containers (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-containers-inference-private.html).
	//
	// The model artifacts in an Amazon S3 bucket and the Docker image for inference
	// container in Amazon EC2 Container Registry must be in the same region as
	// the model or endpoint you are creating.
	ImageConfig *ImageConfig `type:"structure"`

	// The inference specification name in the model package version.
	InferenceSpecificationName *string `min:"1" type:"string"`

	// Whether the container hosts a single model or multiple models.
	Mode *string `type:"string" enum:"ContainerMode"`

	// Specifies the location of ML model data to deploy.
	//
	// Currently you cannot use ModelDataSource in conjunction with SageMaker batch
	// transform, SageMaker serverless endpoints, SageMaker multi-model endpoints,
	// and SageMaker Marketplace.
	ModelDataSource *ModelDataSource `type:"structure"`

	// The S3 path where the model artifacts, which result from model training,
	// are stored. This path must point to a single gzip compressed tar archive
	// (.tar.gz suffix). The S3 path is required for SageMaker built-in algorithms,
	// but not if you use your own algorithms. For more information on built-in
	// algorithms, see Common Parameters (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html).
	//
	// The model artifacts must be in an S3 bucket that is in the same region as
	// the model or endpoint you are creating.
	//
	// If you provide a value for this parameter, SageMaker uses Amazon Web Services
	// Security Token Service to download model artifacts from the S3 path you provide.
	// Amazon Web Services STS is activated in your Amazon Web Services account
	// by default. If you previously deactivated Amazon Web Services STS for a region,
	// you need to reactivate Amazon Web Services STS for that region. For more
	// information, see Activating and Deactivating Amazon Web Services STS in an
	// Amazon Web Services Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
	// in the Amazon Web Services Identity and Access Management User Guide.
	//
	// If you use a built-in algorithm to create a model, SageMaker requires that
	// you provide a S3 path to the model artifacts in ModelDataUrl.
	ModelDataUrl *string `type:"string"`

	// The name or Amazon Resource Name (ARN) of the model package to use to create
	// the model.
	ModelPackageName *string `min:"1" type:"string"`

	// Specifies additional configuration for multi-model endpoints.
	MultiModelConfig *MultiModelConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContainerDefinition) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContainerDefinition) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ContainerDefinition) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ContainerDefinition"}
	if s.InferenceSpecificationName != nil && len(*s.InferenceSpecificationName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("InferenceSpecificationName", 1))
	}
	if s.ModelPackageName != nil && len(*s.ModelPackageName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelPackageName", 1))
	}
	if s.ImageConfig != nil {
		if err := s.ImageConfig.Validate(); err != nil {
			invalidParams.AddNested("ImageConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.ModelDataSource != nil {
		if err := s.ModelDataSource.Validate(); err != nil {
			invalidParams.AddNested("ModelDataSource", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContainerHostname sets the ContainerHostname field's value.
func (s *ContainerDefinition) SetContainerHostname(v string) *ContainerDefinition {
	s.ContainerHostname = &v
	return s
}

// SetEnvironment sets the Environment field's value.
func (s *ContainerDefinition) SetEnvironment(v map[string]*string) *ContainerDefinition {
	s.Environment = v
	return s
}

// SetImage sets the Image field's value.
func (s *ContainerDefinition) SetImage(v string) *ContainerDefinition {
	s.Image = &v
	return s
}

// SetImageConfig sets the ImageConfig field's value.
func (s *ContainerDefinition) SetImageConfig(v *ImageConfig) *ContainerDefinition {
	s.ImageConfig = v
	return s
}

// SetInferenceSpecificationName sets the InferenceSpecificationName field's value.
func (s *ContainerDefinition) SetInferenceSpecificationName(v string) *ContainerDefinition {
	s.InferenceSpecificationName = &v
	return s
}

// SetMode sets the Mode field's value.
func (s *ContainerDefinition) SetMode(v string) *ContainerDefinition {
	s.Mode = &v
	return s
}

// SetModelDataSource sets the ModelDataSource field's value.
func (s *ContainerDefinition) SetModelDataSource(v *ModelDataSource) *ContainerDefinition {
	s.ModelDataSource = v
	return s
}

// SetModelDataUrl sets the ModelDataUrl field's value.
func (s *ContainerDefinition) SetModelDataUrl(v string) *ContainerDefinition {
	s.ModelDataUrl = &v
	return s
}

// SetModelPackageName sets the ModelPackageName field's value.
func (s *ContainerDefinition) SetModelPackageName(v string) *ContainerDefinition {
	s.ModelPackageName = &v
	return s
}

// SetMultiModelConfig sets the MultiModelConfig field's value.
func (s *ContainerDefinition) SetMultiModelConfig(v *MultiModelConfig) *ContainerDefinition {
	s.MultiModelConfig = v
	return s
}

// A structure describing the source of a context.
type ContextSource struct {
	_ struct{} `type:"structure"`

	// The ID of the source.
	SourceId *string `type:"string"`

	// The type of the source.
	SourceType *string `type:"string"`

	// The URI of the source.
	//
	// SourceUri is a required field
	SourceUri *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContextSource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContextSource) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ContextSource) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ContextSource"}
	if s.SourceUri == nil {
		invalidParams.Add(request.NewErrParamRequired("SourceUri"))
	}
	if s.SourceUri != nil && len(*s.SourceUri) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SourceUri", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSourceId sets the SourceId field's value.
func (s *ContextSource) SetSourceId(v string) *ContextSource {
	s.SourceId = &v
	return s
}

// SetSourceType sets the SourceType field's value.
func (s *ContextSource) SetSourceType(v string) *ContextSource {
	s.SourceType = &v
	return s
}

// SetSourceUri sets the SourceUri field's value.
func (s *ContextSource) SetSourceUri(v string) *ContextSource {
	s.SourceUri = &v
	return s
}

// Lists a summary of the properties of a context. A context provides a logical
// grouping of other entities.
type ContextSummary struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the context.
	ContextArn *string `type:"string"`

	// The name of the context.
	ContextName *string `min:"1" type:"string"`

	// The type of the context.
	ContextType *string `type:"string"`

	// When the context was created.
	CreationTime *time.Time `type:"timestamp"`

	// When the context was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The source of the context.
	Source *ContextSource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContextSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContextSummary) GoString() string {
	return s.String()
}

// SetContextArn sets the ContextArn field's value.
func (s *ContextSummary) SetContextArn(v string) *ContextSummary {
	s.ContextArn = &v
	return s
}

// SetContextName sets the ContextName field's value.
func (s *ContextSummary) SetContextName(v string) *ContextSummary {
	s.ContextName = &v
	return s
}

// SetContextType sets the ContextType field's value.
func (s *ContextSummary) SetContextType(v string) *ContextSummary {
	s.ContextType = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *ContextSummary) SetCreationTime(v time.Time) *ContextSummary {
	s.CreationTime = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *ContextSummary) SetLastModifiedTime(v time.Time) *ContextSummary {
	s.LastModifiedTime = &v
	return s
}

// SetSource sets the Source field's value.
func (s *ContextSummary) SetSource(v *ContextSource) *ContextSummary {
	s.Source = v
	return s
}

// A list of continuous hyperparameters to tune.
type ContinuousParameterRange struct {
	_ struct{} `type:"structure"`

	// The maximum value for the hyperparameter. The tuning job uses floating-point
	// values between MinValue value and this value for tuning.
	//
	// MaxValue is a required field
	MaxValue *string `type:"string" required:"true"`

	// The minimum value for the hyperparameter. The tuning job uses floating-point
	// values between this value and MaxValuefor tuning.
	//
	// MinValue is a required field
	MinValue *string `type:"string" required:"true"`

	// The name of the continuous hyperparameter to tune.
	//
	// Name is a required field
	Name *string `type:"string" required:"true"`

	// The scale that hyperparameter tuning uses to search the hyperparameter range.
	// For information about choosing a hyperparameter scale, see Hyperparameter
	// Scaling (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html#scaling-type).
	// One of the following values:
	//
	// Auto
	//
	// SageMaker hyperparameter tuning chooses the best scale for the hyperparameter.
	//
	// Linear
	//
	// Hyperparameter tuning searches the values in the hyperparameter range by
	// using a linear scale.
	//
	// Logarithmic
	//
	// Hyperparameter tuning searches the values in the hyperparameter range by
	// using a logarithmic scale.
	//
	// Logarithmic scaling works only for ranges that have only values greater than
	// 0.
	//
	// ReverseLogarithmic
	//
	// Hyperparameter tuning searches the values in the hyperparameter range by
	// using a reverse logarithmic scale.
	//
	// Reverse logarithmic scaling works only for ranges that are entirely within
	// the range 0<=x<1.0.
	ScalingType *string `type:"string" enum:"HyperParameterScalingType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContinuousParameterRange) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContinuousParameterRange) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ContinuousParameterRange) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ContinuousParameterRange"}
	if s.MaxValue == nil {
		invalidParams.Add(request.NewErrParamRequired("MaxValue"))
	}
	if s.MinValue == nil {
		invalidParams.Add(request.NewErrParamRequired("MinValue"))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxValue sets the MaxValue field's value.
func (s *ContinuousParameterRange) SetMaxValue(v string) *ContinuousParameterRange {
	s.MaxValue = &v
	return s
}

// SetMinValue sets the MinValue field's value.
func (s *ContinuousParameterRange) SetMinValue(v string) *ContinuousParameterRange {
	s.MinValue = &v
	return s
}

// SetName sets the Name field's value.
func (s *ContinuousParameterRange) SetName(v string) *ContinuousParameterRange {
	s.Name = &v
	return s
}

// SetScalingType sets the ScalingType field's value.
func (s *ContinuousParameterRange) SetScalingType(v string) *ContinuousParameterRange {
	s.ScalingType = &v
	return s
}

// Defines the possible values for a continuous hyperparameter.
type ContinuousParameterRangeSpecification struct {
	_ struct{} `type:"structure"`

	// The maximum floating-point value allowed.
	//
	// MaxValue is a required field
	MaxValue *string `type:"string" required:"true"`

	// The minimum floating-point value allowed.
	//
	// MinValue is a required field
	MinValue *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContinuousParameterRangeSpecification) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContinuousParameterRangeSpecification) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ContinuousParameterRangeSpecification) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ContinuousParameterRangeSpecification"}
	if s.MaxValue == nil {
		invalidParams.Add(request.NewErrParamRequired("MaxValue"))
	}
	if s.MinValue == nil {
		invalidParams.Add(request.NewErrParamRequired("MinValue"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxValue sets the MaxValue field's value.
func (s *ContinuousParameterRangeSpecification) SetMaxValue(v string) *ContinuousParameterRangeSpecification {
	s.MaxValue = &v
	return s
}

// SetMinValue sets the MinValue field's value.
func (s *ContinuousParameterRangeSpecification) SetMinValue(v string) *ContinuousParameterRangeSpecification {
	s.MinValue = &v
	return s
}

// A flag to indicating that automatic model tuning (AMT) has detected model
// convergence, defined as a lack of significant improvement (1% or less) against
// an objective metric.
type ConvergenceDetected struct {
	_ struct{} `type:"structure"`

	// A flag to stop a tuning job once AMT has detected that the job has converged.
	CompleteOnConvergence *string `type:"string" enum:"CompleteOnConvergence"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ConvergenceDetected) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ConvergenceDetected) GoString() string {
	return s.String()
}

// SetCompleteOnConvergence sets the CompleteOnConvergence field's value.
func (s *ConvergenceDetected) SetCompleteOnConvergence(v string) *ConvergenceDetected {
	s.CompleteOnConvergence = &v
	return s
}

type CreateActionInput struct {
	_ struct{} `type:"structure"`

	// The name of the action. Must be unique to your account in an Amazon Web Services
	// Region.
	//
	// ActionName is a required field
	ActionName *string `min:"1" type:"string" required:"true"`

	// The action type.
	//
	// ActionType is a required field
	ActionType *string `type:"string" required:"true"`

	// The description of the action.
	Description *string `type:"string"`

	// Metadata properties of the tracking entity, trial, or trial component.
	MetadataProperties *MetadataProperties `type:"structure"`

	// A list of properties to add to the action.
	Properties map[string]*string `type:"map"`

	// The source type, ID, and URI.
	//
	// Source is a required field
	Source *ActionSource `type:"structure" required:"true"`

	// The status of the action.
	Status *string `type:"string" enum:"ActionStatus"`

	// A list of tags to apply to the action.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateActionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateActionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateActionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateActionInput"}
	if s.ActionName == nil {
		invalidParams.Add(request.NewErrParamRequired("ActionName"))
	}
	if s.ActionName != nil && len(*s.ActionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
	}
	if s.ActionType == nil {
		invalidParams.Add(request.NewErrParamRequired("ActionType"))
	}
	if s.Source == nil {
		invalidParams.Add(request.NewErrParamRequired("Source"))
	}
	if s.Source != nil {
		if err := s.Source.Validate(); err != nil {
			invalidParams.AddNested("Source", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetActionName sets the ActionName field's value.
func (s *CreateActionInput) SetActionName(v string) *CreateActionInput {
	s.ActionName = &v
	return s
}

// SetActionType sets the ActionType field's value.
func (s *CreateActionInput) SetActionType(v string) *CreateActionInput {
	s.ActionType = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *CreateActionInput) SetDescription(v string) *CreateActionInput {
	s.Description = &v
	return s
}

// SetMetadataProperties sets the MetadataProperties field's value.
func (s *CreateActionInput) SetMetadataProperties(v *MetadataProperties) *CreateActionInput {
	s.MetadataProperties = v
	return s
}

// SetProperties sets the Properties field's value.
func (s *CreateActionInput) SetProperties(v map[string]*string) *CreateActionInput {
	s.Properties = v
	return s
}

// SetSource sets the Source field's value.
func (s *CreateActionInput) SetSource(v *ActionSource) *CreateActionInput {
	s.Source = v
	return s
}

// SetStatus sets the Status field's value.
func (s *CreateActionInput) SetStatus(v string) *CreateActionInput {
	s.Status = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateActionInput) SetTags(v []*Tag) *CreateActionInput {
	s.Tags = v
	return s
}

type CreateActionOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the action.
	ActionArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateActionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateActionOutput) GoString() string {
	return s.String()
}

// SetActionArn sets the ActionArn field's value.
func (s *CreateActionOutput) SetActionArn(v string) *CreateActionOutput {
	s.ActionArn = &v
	return s
}

type CreateAlgorithmInput struct {
	_ struct{} `type:"structure"`

	// A description of the algorithm.
	AlgorithmDescription *string `type:"string"`

	// The name of the algorithm.
	//
	// AlgorithmName is a required field
	AlgorithmName *string `min:"1" type:"string" required:"true"`

	// Whether to certify the algorithm so that it can be listed in Amazon Web Services
	// Marketplace.
	CertifyForMarketplace *bool `type:"boolean"`

	// Specifies details about inference jobs that the algorithm runs, including
	// the following:
	//
	//    * The Amazon ECR paths of containers that contain the inference code and
	//    model artifacts.
	//
	//    * The instance types that the algorithm supports for transform jobs and
	//    real-time endpoints used for inference.
	//
	//    * The input and output content formats that the algorithm supports for
	//    inference.
	InferenceSpecification *InferenceSpecification `type:"structure"`

	// An array of key-value pairs. You can use tags to categorize your Amazon Web
	// Services resources in different ways, for example, by purpose, owner, or
	// environment. For more information, see Tagging Amazon Web Services Resources
	// (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
	Tags []*Tag `type:"list"`

	// Specifies details about training jobs run by this algorithm, including the
	// following:
	//
	//    * The Amazon ECR path of the container and the version digest of the algorithm.
	//
	//    * The hyperparameters that the algorithm supports.
	//
	//    * The instance types that the algorithm supports for training.
	//
	//    * Whether the algorithm supports distributed training.
	//
	//    * The metrics that the algorithm emits to Amazon CloudWatch.
	//
	//    * Which metrics that the algorithm emits can be used as the objective
	//    metric for hyperparameter tuning jobs.
	//
	//    * The input channels that the algorithm supports for training data. For
	//    example, an algorithm might support train, validation, and test channels.
	//
	// TrainingSpecification is a required field
	TrainingSpecification *TrainingSpecification `type:"structure" required:"true"`

	// Specifies configurations for one or more training jobs and that SageMaker
	// runs to test the algorithm's training code and, optionally, one or more batch
	// transform jobs that SageMaker runs to test the algorithm's inference code.
	ValidationSpecification *AlgorithmValidationSpecification `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAlgorithmInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAlgorithmInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateAlgorithmInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateAlgorithmInput"}
	if s.AlgorithmName == nil {
		invalidParams.Add(request.NewErrParamRequired("AlgorithmName"))
	}
	if s.AlgorithmName != nil && len(*s.AlgorithmName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AlgorithmName", 1))
	}
	if s.TrainingSpecification == nil {
		invalidParams.Add(request.NewErrParamRequired("TrainingSpecification"))
	}
	if s.InferenceSpecification != nil {
		if err := s.InferenceSpecification.Validate(); err != nil {
			invalidParams.AddNested("InferenceSpecification", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.TrainingSpecification != nil {
		if err := s.TrainingSpecification.Validate(); err != nil {
			invalidParams.AddNested("TrainingSpecification", err.(request.ErrInvalidParams))
		}
	}
	if s.ValidationSpecification != nil {
		if err := s.ValidationSpecification.Validate(); err != nil {
			invalidParams.AddNested("ValidationSpecification", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAlgorithmDescription sets the AlgorithmDescription field's value.
func (s *CreateAlgorithmInput) SetAlgorithmDescription(v string) *CreateAlgorithmInput {
	s.AlgorithmDescription = &v
	return s
}

// SetAlgorithmName sets the AlgorithmName field's value.
func (s *CreateAlgorithmInput) SetAlgorithmName(v string) *CreateAlgorithmInput {
	s.AlgorithmName = &v
	return s
}

// SetCertifyForMarketplace sets the CertifyForMarketplace field's value.
func (s *CreateAlgorithmInput) SetCertifyForMarketplace(v bool) *CreateAlgorithmInput {
	s.CertifyForMarketplace = &v
	return s
}

// SetInferenceSpecification sets the InferenceSpecification field's value.
func (s *CreateAlgorithmInput) SetInferenceSpecification(v *InferenceSpecification) *CreateAlgorithmInput {
	s.InferenceSpecification = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateAlgorithmInput) SetTags(v []*Tag) *CreateAlgorithmInput {
	s.Tags = v
	return s
}

// SetTrainingSpecification sets the TrainingSpecification field's value.
func (s *CreateAlgorithmInput) SetTrainingSpecification(v *TrainingSpecification) *CreateAlgorithmInput {
	s.TrainingSpecification = v
	return s
}

// SetValidationSpecification sets the ValidationSpecification field's value.
func (s *CreateAlgorithmInput) SetValidationSpecification(v *AlgorithmValidationSpecification) *CreateAlgorithmInput {
	s.ValidationSpecification = v
	return s
}

type CreateAlgorithmOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the new algorithm.
	//
	// AlgorithmArn is a required field
	AlgorithmArn *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAlgorithmOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAlgorithmOutput) GoString() string {
	return s.String()
}

// SetAlgorithmArn sets the AlgorithmArn field's value.
func (s *CreateAlgorithmOutput) SetAlgorithmArn(v string) *CreateAlgorithmOutput {
	s.AlgorithmArn = &v
	return s
}

type CreateAppImageConfigInput struct {
	_ struct{} `type:"structure"`

	// The name of the AppImageConfig. Must be unique to your account.
	//
	// AppImageConfigName is a required field
	AppImageConfigName *string `type:"string" required:"true"`

	// The JupyterLabAppImageConfig. You can only specify one image kernel in the
	// AppImageConfig API. This kernel is shown to users before the image starts.
	// After the image runs, all kernels are visible in JupyterLab.
	JupyterLabAppImageConfig *JupyterLabAppImageConfig `type:"structure"`

	// The KernelGatewayImageConfig. You can only specify one image kernel in the
	// AppImageConfig API. This kernel will be shown to users before the image starts.
	// Once the image runs, all kernels are visible in JupyterLab.
	KernelGatewayImageConfig *KernelGatewayImageConfig `type:"structure"`

	// A list of tags to apply to the AppImageConfig.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAppImageConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAppImageConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateAppImageConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateAppImageConfigInput"}
	if s.AppImageConfigName == nil {
		invalidParams.Add(request.NewErrParamRequired("AppImageConfigName"))
	}
	if s.KernelGatewayImageConfig != nil {
		if err := s.KernelGatewayImageConfig.Validate(); err != nil {
			invalidParams.AddNested("KernelGatewayImageConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppImageConfigName sets the AppImageConfigName field's value.
func (s *CreateAppImageConfigInput) SetAppImageConfigName(v string) *CreateAppImageConfigInput {
	s.AppImageConfigName = &v
	return s
}

// SetJupyterLabAppImageConfig sets the JupyterLabAppImageConfig field's value.
func (s *CreateAppImageConfigInput) SetJupyterLabAppImageConfig(v *JupyterLabAppImageConfig) *CreateAppImageConfigInput {
	s.JupyterLabAppImageConfig = v
	return s
}

// SetKernelGatewayImageConfig sets the KernelGatewayImageConfig field's value.
func (s *CreateAppImageConfigInput) SetKernelGatewayImageConfig(v *KernelGatewayImageConfig) *CreateAppImageConfigInput {
	s.KernelGatewayImageConfig = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateAppImageConfigInput) SetTags(v []*Tag) *CreateAppImageConfigInput {
	s.Tags = v
	return s
}

type CreateAppImageConfigOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the AppImageConfig.
	AppImageConfigArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAppImageConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAppImageConfigOutput) GoString() string {
	return s.String()
}

// SetAppImageConfigArn sets the AppImageConfigArn field's value.
func (s *CreateAppImageConfigOutput) SetAppImageConfigArn(v string) *CreateAppImageConfigOutput {
	s.AppImageConfigArn = &v
	return s
}

type CreateAppInput struct {
	_ struct{} `type:"structure"`

	// The name of the app.
	//
	// AppName is a required field
	AppName *string `type:"string" required:"true"`

	// The type of app.
	//
	// AppType is a required field
	AppType *string `type:"string" required:"true" enum:"AppType"`

	// The domain ID.
	//
	// DomainId is a required field
	DomainId *string `type:"string" required:"true"`

	// The instance type and the Amazon Resource Name (ARN) of the SageMaker image
	// created on the instance.
	//
	// The value of InstanceType passed as part of the ResourceSpec in the CreateApp
	// call overrides the value passed as part of the ResourceSpec configured for
	// the user profile or the domain. If InstanceType is not specified in any of
	// those three ResourceSpec values for a KernelGateway app, the CreateApp call
	// fails with a request validation error.
	ResourceSpec *ResourceSpec `type:"structure"`

	// The name of the space. If this value is not set, then UserProfileName must
	// be set.
	SpaceName *string `type:"string"`

	// Each tag consists of a key and an optional value. Tag keys must be unique
	// per resource.
	Tags []*Tag `type:"list"`

	// The user profile name. If this value is not set, then SpaceName must be set.
	UserProfileName *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAppInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAppInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateAppInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateAppInput"}
	if s.AppName == nil {
		invalidParams.Add(request.NewErrParamRequired("AppName"))
	}
	if s.AppType == nil {
		invalidParams.Add(request.NewErrParamRequired("AppType"))
	}
	if s.DomainId == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainId"))
	}
	if s.ResourceSpec != nil {
		if err := s.ResourceSpec.Validate(); err != nil {
			invalidParams.AddNested("ResourceSpec", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppName sets the AppName field's value.
func (s *CreateAppInput) SetAppName(v string) *CreateAppInput {
	s.AppName = &v
	return s
}

// SetAppType sets the AppType field's value.
func (s *CreateAppInput) SetAppType(v string) *CreateAppInput {
	s.AppType = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *CreateAppInput) SetDomainId(v string) *CreateAppInput {
	s.DomainId = &v
	return s
}

// SetResourceSpec sets the ResourceSpec field's value.
func (s *CreateAppInput) SetResourceSpec(v *ResourceSpec) *CreateAppInput {
	s.ResourceSpec = v
	return s
}

// SetSpaceName sets the SpaceName field's value.
func (s *CreateAppInput) SetSpaceName(v string) *CreateAppInput {
	s.SpaceName = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateAppInput) SetTags(v []*Tag) *CreateAppInput {
	s.Tags = v
	return s
}

// SetUserProfileName sets the UserProfileName field's value.
func (s *CreateAppInput) SetUserProfileName(v string) *CreateAppInput {
	s.UserProfileName = &v
	return s
}

type CreateAppOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the app.
	AppArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAppOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAppOutput) GoString() string {
	return s.String()
}

// SetAppArn sets the AppArn field's value.
func (s *CreateAppOutput) SetAppArn(v string) *CreateAppOutput {
	s.AppArn = &v
	return s
}

type CreateArtifactInput struct {
	_ struct{} `type:"structure"`

	// The name of the artifact. Must be unique to your account in an Amazon Web
	// Services Region.
	ArtifactName *string `min:"1" type:"string"`

	// The artifact type.
	//
	// ArtifactType is a required field
	ArtifactType *string `type:"string" required:"true"`

	// Metadata properties of the tracking entity, trial, or trial component.
	MetadataProperties *MetadataProperties `type:"structure"`

	// A list of properties to add to the artifact.
	Properties map[string]*string `type:"map"`

	// The ID, ID type, and URI of the source.
	//
	// Source is a required field
	Source *ArtifactSource `type:"structure" required:"true"`

	// A list of tags to apply to the artifact.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateArtifactInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateArtifactInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateArtifactInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateArtifactInput"}
	if s.ArtifactName != nil && len(*s.ArtifactName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ArtifactName", 1))
	}
	if s.ArtifactType == nil {
		invalidParams.Add(request.NewErrParamRequired("ArtifactType"))
	}
	if s.Source == nil {
		invalidParams.Add(request.NewErrParamRequired("Source"))
	}
	if s.Source != nil {
		if err := s.Source.Validate(); err != nil {
			invalidParams.AddNested("Source", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetArtifactName sets the ArtifactName field's value.
func (s *CreateArtifactInput) SetArtifactName(v string) *CreateArtifactInput {
	s.ArtifactName = &v
	return s
}

// SetArtifactType sets the ArtifactType field's value.
func (s *CreateArtifactInput) SetArtifactType(v string) *CreateArtifactInput {
	s.ArtifactType = &v
	return s
}

// SetMetadataProperties sets the MetadataProperties field's value.
func (s *CreateArtifactInput) SetMetadataProperties(v *MetadataProperties) *CreateArtifactInput {
	s.MetadataProperties = v
	return s
}

// SetProperties sets the Properties field's value.
func (s *CreateArtifactInput) SetProperties(v map[string]*string) *CreateArtifactInput {
	s.Properties = v
	return s
}

// SetSource sets the Source field's value.
func (s *CreateArtifactInput) SetSource(v *ArtifactSource) *CreateArtifactInput {
	s.Source = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateArtifactInput) SetTags(v []*Tag) *CreateArtifactInput {
	s.Tags = v
	return s
}

type CreateArtifactOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the artifact.
	ArtifactArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateArtifactOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateArtifactOutput) GoString() string {
	return s.String()
}

// SetArtifactArn sets the ArtifactArn field's value.
func (s *CreateArtifactOutput) SetArtifactArn(v string) *CreateArtifactOutput {
	s.ArtifactArn = &v
	return s
}

type CreateAutoMLJobInput struct {
	_ struct{} `type:"structure"`

	// A collection of settings used to configure an AutoML job.
	AutoMLJobConfig *AutoMLJobConfig `type:"structure"`

	// Identifies an Autopilot job. The name must be unique to your account and
	// is case insensitive.
	//
	// AutoMLJobName is a required field
	AutoMLJobName *string `min:"1" type:"string" required:"true"`

	// Specifies a metric to minimize or maximize as the objective of a job. If
	// not specified, the default objective metric depends on the problem type.
	// See AutoMLJobObjective (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobObjective.html)
	// for the default values.
	AutoMLJobObjective *AutoMLJobObjective `type:"structure"`

	// Generates possible candidates without training the models. A candidate is
	// a combination of data preprocessors, algorithms, and algorithm parameter
	// settings.
	GenerateCandidateDefinitionsOnly *bool `type:"boolean"`

	// An array of channel objects that describes the input data and its location.
	// Each channel is a named input source. Similar to InputDataConfig supported
	// by HyperParameterTrainingJobDefinition (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html).
	// Format(s) supported: CSV, Parquet. A minimum of 500 rows is required for
	// the training dataset. There is not a minimum number of rows required for
	// the validation dataset.
	//
	// InputDataConfig is a required field
	InputDataConfig []*AutoMLChannel `min:"1" type:"list" required:"true"`

	// Specifies how to generate the endpoint name for an automatic one-click Autopilot
	// model deployment.
	ModelDeployConfig *ModelDeployConfig `type:"structure"`

	// Provides information about encryption and the Amazon S3 output path needed
	// to store artifacts from an AutoML job. Format(s) supported: CSV.
	//
	// OutputDataConfig is a required field
	OutputDataConfig *AutoMLOutputDataConfig `type:"structure" required:"true"`

	// Defines the type of supervised learning problem available for the candidates.
	// For more information, see Amazon SageMaker Autopilot problem types (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-datasets-problem-types.html#autopilot-problem-types).
	ProblemType *string `type:"string" enum:"ProblemType"`

	// The ARN of the role that is used to access the data.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// An array of key-value pairs. You can use tags to categorize your Amazon Web
	// Services resources in different ways, for example, by purpose, owner, or
	// environment. For more information, see Tagging Amazon Web ServicesResources
	// (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). Tag keys
	// must be unique per resource.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAutoMLJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAutoMLJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateAutoMLJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateAutoMLJobInput"}
	if s.AutoMLJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("AutoMLJobName"))
	}
	if s.AutoMLJobName != nil && len(*s.AutoMLJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AutoMLJobName", 1))
	}
	if s.InputDataConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("InputDataConfig"))
	}
	if s.InputDataConfig != nil && len(s.InputDataConfig) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("InputDataConfig", 1))
	}
	if s.OutputDataConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("OutputDataConfig"))
	}
	if s.RoleArn == nil {
		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.AutoMLJobConfig != nil {
		if err := s.AutoMLJobConfig.Validate(); err != nil {
			invalidParams.AddNested("AutoMLJobConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.AutoMLJobObjective != nil {
		if err := s.AutoMLJobObjective.Validate(); err != nil {
			invalidParams.AddNested("AutoMLJobObjective", err.(request.ErrInvalidParams))
		}
	}
	if s.InputDataConfig != nil {
		for i, v := range s.InputDataConfig {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InputDataConfig", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.OutputDataConfig != nil {
		if err := s.OutputDataConfig.Validate(); err != nil {
			invalidParams.AddNested("OutputDataConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAutoMLJobConfig sets the AutoMLJobConfig field's value.
func (s *CreateAutoMLJobInput) SetAutoMLJobConfig(v *AutoMLJobConfig) *CreateAutoMLJobInput {
	s.AutoMLJobConfig = v
	return s
}

// SetAutoMLJobName sets the AutoMLJobName field's value.
func (s *CreateAutoMLJobInput) SetAutoMLJobName(v string) *CreateAutoMLJobInput {
	s.AutoMLJobName = &v
	return s
}

// SetAutoMLJobObjective sets the AutoMLJobObjective field's value.
func (s *CreateAutoMLJobInput) SetAutoMLJobObjective(v *AutoMLJobObjective) *CreateAutoMLJobInput {
	s.AutoMLJobObjective = v
	return s
}

// SetGenerateCandidateDefinitionsOnly sets the GenerateCandidateDefinitionsOnly field's value.
func (s *CreateAutoMLJobInput) SetGenerateCandidateDefinitionsOnly(v bool) *CreateAutoMLJobInput {
	s.GenerateCandidateDefinitionsOnly = &v
	return s
}

// SetInputDataConfig sets the InputDataConfig field's value.
func (s *CreateAutoMLJobInput) SetInputDataConfig(v []*AutoMLChannel) *CreateAutoMLJobInput {
	s.InputDataConfig = v
	return s
}

// SetModelDeployConfig sets the ModelDeployConfig field's value.
func (s *CreateAutoMLJobInput) SetModelDeployConfig(v *ModelDeployConfig) *CreateAutoMLJobInput {
	s.ModelDeployConfig = v
	return s
}

// SetOutputDataConfig sets the OutputDataConfig field's value.
func (s *CreateAutoMLJobInput) SetOutputDataConfig(v *AutoMLOutputDataConfig) *CreateAutoMLJobInput {
	s.OutputDataConfig = v
	return s
}

// SetProblemType sets the ProblemType field's value.
func (s *CreateAutoMLJobInput) SetProblemType(v string) *CreateAutoMLJobInput {
	s.ProblemType = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *CreateAutoMLJobInput) SetRoleArn(v string) *CreateAutoMLJobInput {
	s.RoleArn = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateAutoMLJobInput) SetTags(v []*Tag) *CreateAutoMLJobInput {
	s.Tags = v
	return s
}

type CreateAutoMLJobOutput struct {
	_ struct{} `type:"structure"`

	// The unique ARN assigned to the AutoML job when it is created.
	//
	// AutoMLJobArn is a required field
	AutoMLJobArn *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAutoMLJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAutoMLJobOutput) GoString() string {
	return s.String()
}

// SetAutoMLJobArn sets the AutoMLJobArn field's value.
func (s *CreateAutoMLJobOutput) SetAutoMLJobArn(v string) *CreateAutoMLJobOutput {
	s.AutoMLJobArn = &v
	return s
}

type CreateAutoMLJobV2Input struct {
	_ struct{} `type:"structure"`

	// An array of channel objects describing the input data and their location.
	// Each channel is a named input source. Similar to the InputDataConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-InputDataConfig)
	// attribute in the CreateAutoMLJob input parameters. The supported formats
	// depend on the problem type:
	//
	//    * For tabular problem types: S3Prefix, ManifestFile.
	//
	//    * For image classification: S3Prefix, ManifestFile, AugmentedManifestFile.
	//
	//    * For text classification: S3Prefix.
	//
	//    * For time-series forecasting: S3Prefix.
	//
	//    * For text generation (LLMs fine-tuning): S3Prefix.
	//
	// AutoMLJobInputDataConfig is a required field
	AutoMLJobInputDataConfig []*AutoMLJobChannel `min:"1" type:"list" required:"true"`

	// Identifies an Autopilot job. The name must be unique to your account and
	// is case insensitive.
	//
	// AutoMLJobName is a required field
	AutoMLJobName *string `min:"1" type:"string" required:"true"`

	// Specifies a metric to minimize or maximize as the objective of a job. If
	// not specified, the default objective metric depends on the problem type.
	// For the list of default values per problem type, see AutoMLJobObjective (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobObjective.html).
	//
	//    * For tabular problem types: You must either provide both the AutoMLJobObjective
	//    and indicate the type of supervised learning problem in AutoMLProblemTypeConfig
	//    (TabularJobConfig.ProblemType), or none at all.
	//
	//    * For text generation problem types (LLMs fine-tuning): Fine-tuning language
	//    models in Autopilot does not require setting the AutoMLJobObjective field.
	//    Autopilot fine-tunes LLMs without requiring multiple candidates to be
	//    trained and evaluated. Instead, using your dataset, Autopilot directly
	//    fine-tunes your target model to enhance a default objective metric, the
	//    cross-entropy loss. After fine-tuning a language model, you can evaluate
	//    the quality of its generated text using different metrics. For a list
	//    of the available metrics, see Metrics for fine-tuning LLMs in Autopilot
	//    (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-llms-finetuning-metrics.html).
	AutoMLJobObjective *AutoMLJobObjective `type:"structure"`

	// Defines the configuration settings of one of the supported problem types.
	//
	// AutoMLProblemTypeConfig is a required field
	AutoMLProblemTypeConfig *AutoMLProblemTypeConfig `type:"structure" required:"true"`

	// This structure specifies how to split the data into train and validation
	// datasets.
	//
	// The validation and training datasets must contain the same headers. For jobs
	// created by calling CreateAutoMLJob, the validation dataset must be less than
	// 2 GB in size.
	//
	// This attribute must not be set for the time-series forecasting problem type,
	// as Autopilot automatically splits the input dataset into training and validation
	// sets.
	DataSplitConfig *AutoMLDataSplitConfig `type:"structure"`

	// Specifies how to generate the endpoint name for an automatic one-click Autopilot
	// model deployment.
	ModelDeployConfig *ModelDeployConfig `type:"structure"`

	// Provides information about encryption and the Amazon S3 output path needed
	// to store artifacts from an AutoML job.
	//
	// OutputDataConfig is a required field
	OutputDataConfig *AutoMLOutputDataConfig `type:"structure" required:"true"`

	// The ARN of the role that is used to access the data.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// The security configuration for traffic encryption or Amazon VPC settings.
	SecurityConfig *AutoMLSecurityConfig `type:"structure"`

	// An array of key-value pairs. You can use tags to categorize your Amazon Web
	// Services resources in different ways, such as by purpose, owner, or environment.
	// For more information, see Tagging Amazon Web ServicesResources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
	// Tag keys must be unique per resource.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAutoMLJobV2Input) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAutoMLJobV2Input) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateAutoMLJobV2Input) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateAutoMLJobV2Input"}
	if s.AutoMLJobInputDataConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("AutoMLJobInputDataConfig"))
	}
	if s.AutoMLJobInputDataConfig != nil && len(s.AutoMLJobInputDataConfig) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AutoMLJobInputDataConfig", 1))
	}
	if s.AutoMLJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("AutoMLJobName"))
	}
	if s.AutoMLJobName != nil && len(*s.AutoMLJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AutoMLJobName", 1))
	}
	if s.AutoMLProblemTypeConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("AutoMLProblemTypeConfig"))
	}
	if s.OutputDataConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("OutputDataConfig"))
	}
	if s.RoleArn == nil {
		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.AutoMLJobInputDataConfig != nil {
		for i, v := range s.AutoMLJobInputDataConfig {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AutoMLJobInputDataConfig", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.AutoMLJobObjective != nil {
		if err := s.AutoMLJobObjective.Validate(); err != nil {
			invalidParams.AddNested("AutoMLJobObjective", err.(request.ErrInvalidParams))
		}
	}
	if s.AutoMLProblemTypeConfig != nil {
		if err := s.AutoMLProblemTypeConfig.Validate(); err != nil {
			invalidParams.AddNested("AutoMLProblemTypeConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.OutputDataConfig != nil {
		if err := s.OutputDataConfig.Validate(); err != nil {
			invalidParams.AddNested("OutputDataConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.SecurityConfig != nil {
		if err := s.SecurityConfig.Validate(); err != nil {
			invalidParams.AddNested("SecurityConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAutoMLJobInputDataConfig sets the AutoMLJobInputDataConfig field's value.
func (s *CreateAutoMLJobV2Input) SetAutoMLJobInputDataConfig(v []*AutoMLJobChannel) *CreateAutoMLJobV2Input {
	s.AutoMLJobInputDataConfig = v
	return s
}

// SetAutoMLJobName sets the AutoMLJobName field's value.
func (s *CreateAutoMLJobV2Input) SetAutoMLJobName(v string) *CreateAutoMLJobV2Input {
	s.AutoMLJobName = &v
	return s
}

// SetAutoMLJobObjective sets the AutoMLJobObjective field's value.
func (s *CreateAutoMLJobV2Input) SetAutoMLJobObjective(v *AutoMLJobObjective) *CreateAutoMLJobV2Input {
	s.AutoMLJobObjective = v
	return s
}

// SetAutoMLProblemTypeConfig sets the AutoMLProblemTypeConfig field's value.
func (s *CreateAutoMLJobV2Input) SetAutoMLProblemTypeConfig(v *AutoMLProblemTypeConfig) *CreateAutoMLJobV2Input {
	s.AutoMLProblemTypeConfig = v
	return s
}

// SetDataSplitConfig sets the DataSplitConfig field's value.
func (s *CreateAutoMLJobV2Input) SetDataSplitConfig(v *AutoMLDataSplitConfig) *CreateAutoMLJobV2Input {
	s.DataSplitConfig = v
	return s
}

// SetModelDeployConfig sets the ModelDeployConfig field's value.
func (s *CreateAutoMLJobV2Input) SetModelDeployConfig(v *ModelDeployConfig) *CreateAutoMLJobV2Input {
	s.ModelDeployConfig = v
	return s
}

// SetOutputDataConfig sets the OutputDataConfig field's value.
func (s *CreateAutoMLJobV2Input) SetOutputDataConfig(v *AutoMLOutputDataConfig) *CreateAutoMLJobV2Input {
	s.OutputDataConfig = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *CreateAutoMLJobV2Input) SetRoleArn(v string) *CreateAutoMLJobV2Input {
	s.RoleArn = &v
	return s
}

// SetSecurityConfig sets the SecurityConfig field's value.
func (s *CreateAutoMLJobV2Input) SetSecurityConfig(v *AutoMLSecurityConfig) *CreateAutoMLJobV2Input {
	s.SecurityConfig = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateAutoMLJobV2Input) SetTags(v []*Tag) *CreateAutoMLJobV2Input {
	s.Tags = v
	return s
}

type CreateAutoMLJobV2Output struct {
	_ struct{} `type:"structure"`

	// The unique ARN assigned to the AutoMLJob when it is created.
	//
	// AutoMLJobArn is a required field
	AutoMLJobArn *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAutoMLJobV2Output) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAutoMLJobV2Output) GoString() string {
	return s.String()
}

// SetAutoMLJobArn sets the AutoMLJobArn field's value.
func (s *CreateAutoMLJobV2Output) SetAutoMLJobArn(v string) *CreateAutoMLJobV2Output {
	s.AutoMLJobArn = &v
	return s
}

type CreateClusterInput struct {
	_ struct{} `type:"structure"`

	// The name for the new SageMaker HyperPod cluster.
	//
	// ClusterName is a required field
	ClusterName *string `min:"1" type:"string" required:"true"`

	// The instance groups to be created in the SageMaker HyperPod cluster.
	//
	// InstanceGroups is a required field
	InstanceGroups []*ClusterInstanceGroupSpecification `min:"1" type:"list" required:"true"`

	// Custom tags for managing the SageMaker HyperPod cluster as an Amazon Web
	// Services resource. You can add tags to your cluster in the same way you add
	// them in other Amazon Web Services services that support tagging. To learn
	// more about tagging Amazon Web Services resources in general, see Tagging
	// Amazon Web Services Resources User Guide (https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html).
	Tags []*Tag `type:"list"`

	// Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs,
	// hosted models, and compute resources have access to. You can control access
	// to and from your resources by configuring a VPC. For more information, see
	// Give SageMaker Access to Resources in your Amazon VPC (https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html).
	VpcConfig *VpcConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateClusterInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateClusterInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateClusterInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateClusterInput"}
	if s.ClusterName == nil {
		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
	}
	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
	}
	if s.InstanceGroups == nil {
		invalidParams.Add(request.NewErrParamRequired("InstanceGroups"))
	}
	if s.InstanceGroups != nil && len(s.InstanceGroups) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("InstanceGroups", 1))
	}
	if s.InstanceGroups != nil {
		for i, v := range s.InstanceGroups {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceGroups", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.VpcConfig != nil {
		if err := s.VpcConfig.Validate(); err != nil {
			invalidParams.AddNested("VpcConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClusterName sets the ClusterName field's value.
func (s *CreateClusterInput) SetClusterName(v string) *CreateClusterInput {
	s.ClusterName = &v
	return s
}

// SetInstanceGroups sets the InstanceGroups field's value.
func (s *CreateClusterInput) SetInstanceGroups(v []*ClusterInstanceGroupSpecification) *CreateClusterInput {
	s.InstanceGroups = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateClusterInput) SetTags(v []*Tag) *CreateClusterInput {
	s.Tags = v
	return s
}

// SetVpcConfig sets the VpcConfig field's value.
func (s *CreateClusterInput) SetVpcConfig(v *VpcConfig) *CreateClusterInput {
	s.VpcConfig = v
	return s
}

type CreateClusterOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the cluster.
	//
	// ClusterArn is a required field
	ClusterArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateClusterOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateClusterOutput) GoString() string {
	return s.String()
}

// SetClusterArn sets the ClusterArn field's value.
func (s *CreateClusterOutput) SetClusterArn(v string) *CreateClusterOutput {
	s.ClusterArn = &v
	return s
}

type CreateCodeRepositoryInput struct {
	_ struct{} `type:"structure"`

	// The name of the Git repository. The name must have 1 to 63 characters. Valid
	// characters are a-z, A-Z, 0-9, and - (hyphen).
	//
	// CodeRepositoryName is a required field
	CodeRepositoryName *string `min:"1" type:"string" required:"true"`

	// Specifies details about the repository, including the URL where the repository
	// is located, the default branch, and credentials to use to access the repository.
	//
	// GitConfig is a required field
	GitConfig *GitConfig `type:"structure" required:"true"`

	// An array of key-value pairs. You can use tags to categorize your Amazon Web
	// Services resources in different ways, for example, by purpose, owner, or
	// environment. For more information, see Tagging Amazon Web Services Resources
	// (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateCodeRepositoryInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateCodeRepositoryInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateCodeRepositoryInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateCodeRepositoryInput"}
	if s.CodeRepositoryName == nil {
		invalidParams.Add(request.NewErrParamRequired("CodeRepositoryName"))
	}
	if s.CodeRepositoryName != nil && len(*s.CodeRepositoryName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("CodeRepositoryName", 1))
	}
	if s.GitConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("GitConfig"))
	}
	if s.GitConfig != nil {
		if err := s.GitConfig.Validate(); err != nil {
			invalidParams.AddNested("GitConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCodeRepositoryName sets the CodeRepositoryName field's value.
func (s *CreateCodeRepositoryInput) SetCodeRepositoryName(v string) *CreateCodeRepositoryInput {
	s.CodeRepositoryName = &v
	return s
}

// SetGitConfig sets the GitConfig field's value.
func (s *CreateCodeRepositoryInput) SetGitConfig(v *GitConfig) *CreateCodeRepositoryInput {
	s.GitConfig = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateCodeRepositoryInput) SetTags(v []*Tag) *CreateCodeRepositoryInput {
	s.Tags = v
	return s
}

type CreateCodeRepositoryOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the new repository.
	//
	// CodeRepositoryArn is a required field
	CodeRepositoryArn *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateCodeRepositoryOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateCodeRepositoryOutput) GoString() string {
	return s.String()
}

// SetCodeRepositoryArn sets the CodeRepositoryArn field's value.
func (s *CreateCodeRepositoryOutput) SetCodeRepositoryArn(v string) *CreateCodeRepositoryOutput {
	s.CodeRepositoryArn = &v
	return s
}

type CreateCompilationJobInput struct {
	_ struct{} `type:"structure"`

	// A name for the model compilation job. The name must be unique within the
	// Amazon Web Services Region and within your Amazon Web Services account.
	//
	// CompilationJobName is a required field
	CompilationJobName *string `min:"1" type:"string" required:"true"`

	// Provides information about the location of input model artifacts, the name
	// and shape of the expected data inputs, and the framework in which the model
	// was trained.
	InputConfig *InputConfig `type:"structure"`

	// The Amazon Resource Name (ARN) of a versioned model package. Provide either
	// a ModelPackageVersionArn or an InputConfig object in the request syntax.
	// The presence of both objects in the CreateCompilationJob request will return
	// an exception.
	ModelPackageVersionArn *string `min:"1" type:"string"`

	// Provides information about the output location for the compiled model and
	// the target device the model runs on.
	//
	// OutputConfig is a required field
	OutputConfig *OutputConfig `type:"structure" required:"true"`

	// The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker
	// to perform tasks on your behalf.
	//
	// During model compilation, Amazon SageMaker needs your permission to:
	//
	//    * Read input data from an S3 bucket
	//
	//    * Write model artifacts to an S3 bucket
	//
	//    * Write logs to Amazon CloudWatch Logs
	//
	//    * Publish metrics to Amazon CloudWatch
	//
	// You grant permissions for all of these tasks to an IAM role. To pass this
	// role to Amazon SageMaker, the caller of this API must have the iam:PassRole
	// permission. For more information, see Amazon SageMaker Roles. (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html)
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// Specifies a limit to how long a model compilation job can run. When the job
	// reaches the time limit, Amazon SageMaker ends the compilation job. Use this
	// API to cap model training costs.
	//
	// StoppingCondition is a required field
	StoppingCondition *StoppingCondition `type:"structure" required:"true"`

	// An array of key-value pairs. You can use tags to categorize your Amazon Web
	// Services resources in different ways, for example, by purpose, owner, or
	// environment. For more information, see Tagging Amazon Web Services Resources
	// (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
	Tags []*Tag `type:"list"`

	// A VpcConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html)
	// object that specifies the VPC that you want your compilation job to connect
	// to. Control access to your models by configuring the VPC. For more information,
	// see Protect Compilation Jobs by Using an Amazon Virtual Private Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/neo-vpc.html).
	VpcConfig *NeoVpcConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateCompilationJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateCompilationJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateCompilationJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateCompilationJobInput"}
	if s.CompilationJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("CompilationJobName"))
	}
	if s.CompilationJobName != nil && len(*s.CompilationJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("CompilationJobName", 1))
	}
	if s.ModelPackageVersionArn != nil && len(*s.ModelPackageVersionArn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelPackageVersionArn", 1))
	}
	if s.OutputConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("OutputConfig"))
	}
	if s.RoleArn == nil {
		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.StoppingCondition == nil {
		invalidParams.Add(request.NewErrParamRequired("StoppingCondition"))
	}
	if s.InputConfig != nil {
		if err := s.InputConfig.Validate(); err != nil {
			invalidParams.AddNested("InputConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.OutputConfig != nil {
		if err := s.OutputConfig.Validate(); err != nil {
			invalidParams.AddNested("OutputConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.StoppingCondition != nil {
		if err := s.StoppingCondition.Validate(); err != nil {
			invalidParams.AddNested("StoppingCondition", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.VpcConfig != nil {
		if err := s.VpcConfig.Validate(); err != nil {
			invalidParams.AddNested("VpcConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCompilationJobName sets the CompilationJobName field's value.
func (s *CreateCompilationJobInput) SetCompilationJobName(v string) *CreateCompilationJobInput {
	s.CompilationJobName = &v
	return s
}

// SetInputConfig sets the InputConfig field's value.
func (s *CreateCompilationJobInput) SetInputConfig(v *InputConfig) *CreateCompilationJobInput {
	s.InputConfig = v
	return s
}

// SetModelPackageVersionArn sets the ModelPackageVersionArn field's value.
func (s *CreateCompilationJobInput) SetModelPackageVersionArn(v string) *CreateCompilationJobInput {
	s.ModelPackageVersionArn = &v
	return s
}

// SetOutputConfig sets the OutputConfig field's value.
func (s *CreateCompilationJobInput) SetOutputConfig(v *OutputConfig) *CreateCompilationJobInput {
	s.OutputConfig = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *CreateCompilationJobInput) SetRoleArn(v string) *CreateCompilationJobInput {
	s.RoleArn = &v
	return s
}

// SetStoppingCondition sets the StoppingCondition field's value.
func (s *CreateCompilationJobInput) SetStoppingCondition(v *StoppingCondition) *CreateCompilationJobInput {
	s.StoppingCondition = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateCompilationJobInput) SetTags(v []*Tag) *CreateCompilationJobInput {
	s.Tags = v
	return s
}

// SetVpcConfig sets the VpcConfig field's value.
func (s *CreateCompilationJobInput) SetVpcConfig(v *NeoVpcConfig) *CreateCompilationJobInput {
	s.VpcConfig = v
	return s
}

type CreateCompilationJobOutput struct {
	_ struct{} `type:"structure"`

	// If the action is successful, the service sends back an HTTP 200 response.
	// Amazon SageMaker returns the following data in JSON format:
	//
	//    * CompilationJobArn: The Amazon Resource Name (ARN) of the compiled job.
	//
	// CompilationJobArn is a required field
	CompilationJobArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateCompilationJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateCompilationJobOutput) GoString() string {
	return s.String()
}

// SetCompilationJobArn sets the CompilationJobArn field's value.
func (s *CreateCompilationJobOutput) SetCompilationJobArn(v string) *CreateCompilationJobOutput {
	s.CompilationJobArn = &v
	return s
}

type CreateContextInput struct {
	_ struct{} `type:"structure"`

	// The name of the context. Must be unique to your account in an Amazon Web
	// Services Region.
	//
	// ContextName is a required field
	ContextName *string `min:"1" type:"string" required:"true"`

	// The context type.
	//
	// ContextType is a required field
	ContextType *string `type:"string" required:"true"`

	// The description of the context.
	Description *string `type:"string"`

	// A list of properties to add to the context.
	Properties map[string]*string `type:"map"`

	// The source type, ID, and URI.
	//
	// Source is a required field
	Source *ContextSource `type:"structure" required:"true"`

	// A list of tags to apply to the context.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateContextInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateContextInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateContextInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateContextInput"}
	if s.ContextName == nil {
		invalidParams.Add(request.NewErrParamRequired("ContextName"))
	}
	if s.ContextName != nil && len(*s.ContextName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ContextName", 1))
	}
	if s.ContextType == nil {
		invalidParams.Add(request.NewErrParamRequired("ContextType"))
	}
	if s.Source == nil {
		invalidParams.Add(request.NewErrParamRequired("Source"))
	}
	if s.Source != nil {
		if err := s.Source.Validate(); err != nil {
			invalidParams.AddNested("Source", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContextName sets the ContextName field's value.
func (s *CreateContextInput) SetContextName(v string) *CreateContextInput {
	s.ContextName = &v
	return s
}

// SetContextType sets the ContextType field's value.
func (s *CreateContextInput) SetContextType(v string) *CreateContextInput {
	s.ContextType = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *CreateContextInput) SetDescription(v string) *CreateContextInput {
	s.Description = &v
	return s
}

// SetProperties sets the Properties field's value.
func (s *CreateContextInput) SetProperties(v map[string]*string) *CreateContextInput {
	s.Properties = v
	return s
}

// SetSource sets the Source field's value.
func (s *CreateContextInput) SetSource(v *ContextSource) *CreateContextInput {
	s.Source = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateContextInput) SetTags(v []*Tag) *CreateContextInput {
	s.Tags = v
	return s
}

type CreateContextOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the context.
	ContextArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateContextOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateContextOutput) GoString() string {
	return s.String()
}

// SetContextArn sets the ContextArn field's value.
func (s *CreateContextOutput) SetContextArn(v string) *CreateContextOutput {
	s.ContextArn = &v
	return s
}

type CreateDataQualityJobDefinitionInput struct {
	_ struct{} `type:"structure"`

	// Specifies the container that runs the monitoring job.
	//
	// DataQualityAppSpecification is a required field
	DataQualityAppSpecification *DataQualityAppSpecification `type:"structure" required:"true"`

	// Configures the constraints and baselines for the monitoring job.
	DataQualityBaselineConfig *DataQualityBaselineConfig `type:"structure"`

	// A list of inputs for the monitoring job. Currently endpoints are supported
	// as monitoring inputs.
	//
	// DataQualityJobInput is a required field
	DataQualityJobInput *DataQualityJobInput `type:"structure" required:"true"`

	// The output configuration for monitoring jobs.
	//
	// DataQualityJobOutputConfig is a required field
	DataQualityJobOutputConfig *MonitoringOutputConfig `type:"structure" required:"true"`

	// The name for the monitoring job definition.
	//
	// JobDefinitionName is a required field
	JobDefinitionName *string `min:"1" type:"string" required:"true"`

	// Identifies the resources to deploy for a monitoring job.
	//
	// JobResources is a required field
	JobResources *MonitoringResources `type:"structure" required:"true"`

	// Specifies networking configuration for the monitoring job.
	NetworkConfig *MonitoringNetworkConfig `type:"structure"`

	// The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume
	// to perform tasks on your behalf.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// A time limit for how long the monitoring job is allowed to run before stopping.
	StoppingCondition *MonitoringStoppingCondition `type:"structure"`

	// (Optional) An array of key-value pairs. For more information, see Using Cost
	// Allocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL)
	// in the Amazon Web Services Billing and Cost Management User Guide.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateDataQualityJobDefinitionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateDataQualityJobDefinitionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateDataQualityJobDefinitionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateDataQualityJobDefinitionInput"}
	if s.DataQualityAppSpecification == nil {
		invalidParams.Add(request.NewErrParamRequired("DataQualityAppSpecification"))
	}
	if s.DataQualityJobInput == nil {
		invalidParams.Add(request.NewErrParamRequired("DataQualityJobInput"))
	}
	if s.DataQualityJobOutputConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("DataQualityJobOutputConfig"))
	}
	if s.JobDefinitionName == nil {
		invalidParams.Add(request.NewErrParamRequired("JobDefinitionName"))
	}
	if s.JobDefinitionName != nil && len(*s.JobDefinitionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("JobDefinitionName", 1))
	}
	if s.JobResources == nil {
		invalidParams.Add(request.NewErrParamRequired("JobResources"))
	}
	if s.RoleArn == nil {
		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.DataQualityAppSpecification != nil {
		if err := s.DataQualityAppSpecification.Validate(); err != nil {
			invalidParams.AddNested("DataQualityAppSpecification", err.(request.ErrInvalidParams))
		}
	}
	if s.DataQualityBaselineConfig != nil {
		if err := s.DataQualityBaselineConfig.Validate(); err != nil {
			invalidParams.AddNested("DataQualityBaselineConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.DataQualityJobInput != nil {
		if err := s.DataQualityJobInput.Validate(); err != nil {
			invalidParams.AddNested("DataQualityJobInput", err.(request.ErrInvalidParams))
		}
	}
	if s.DataQualityJobOutputConfig != nil {
		if err := s.DataQualityJobOutputConfig.Validate(); err != nil {
			invalidParams.AddNested("DataQualityJobOutputConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.JobResources != nil {
		if err := s.JobResources.Validate(); err != nil {
			invalidParams.AddNested("JobResources", err.(request.ErrInvalidParams))
		}
	}
	if s.NetworkConfig != nil {
		if err := s.NetworkConfig.Validate(); err != nil {
			invalidParams.AddNested("NetworkConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.StoppingCondition != nil {
		if err := s.StoppingCondition.Validate(); err != nil {
			invalidParams.AddNested("StoppingCondition", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDataQualityAppSpecification sets the DataQualityAppSpecification field's value.
func (s *CreateDataQualityJobDefinitionInput) SetDataQualityAppSpecification(v *DataQualityAppSpecification) *CreateDataQualityJobDefinitionInput {
	s.DataQualityAppSpecification = v
	return s
}

// SetDataQualityBaselineConfig sets the DataQualityBaselineConfig field's value.
func (s *CreateDataQualityJobDefinitionInput) SetDataQualityBaselineConfig(v *DataQualityBaselineConfig) *CreateDataQualityJobDefinitionInput {
	s.DataQualityBaselineConfig = v
	return s
}

// SetDataQualityJobInput sets the DataQualityJobInput field's value.
func (s *CreateDataQualityJobDefinitionInput) SetDataQualityJobInput(v *DataQualityJobInput) *CreateDataQualityJobDefinitionInput {
	s.DataQualityJobInput = v
	return s
}

// SetDataQualityJobOutputConfig sets the DataQualityJobOutputConfig field's value.
func (s *CreateDataQualityJobDefinitionInput) SetDataQualityJobOutputConfig(v *MonitoringOutputConfig) *CreateDataQualityJobDefinitionInput {
	s.DataQualityJobOutputConfig = v
	return s
}

// SetJobDefinitionName sets the JobDefinitionName field's value.
func (s *CreateDataQualityJobDefinitionInput) SetJobDefinitionName(v string) *CreateDataQualityJobDefinitionInput {
	s.JobDefinitionName = &v
	return s
}

// SetJobResources sets the JobResources field's value.
func (s *CreateDataQualityJobDefinitionInput) SetJobResources(v *MonitoringResources) *CreateDataQualityJobDefinitionInput {
	s.JobResources = v
	return s
}

// SetNetworkConfig sets the NetworkConfig field's value.
func (s *CreateDataQualityJobDefinitionInput) SetNetworkConfig(v *MonitoringNetworkConfig) *CreateDataQualityJobDefinitionInput {
	s.NetworkConfig = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *CreateDataQualityJobDefinitionInput) SetRoleArn(v string) *CreateDataQualityJobDefinitionInput {
	s.RoleArn = &v
	return s
}

// SetStoppingCondition sets the StoppingCondition field's value.
func (s *CreateDataQualityJobDefinitionInput) SetStoppingCondition(v *MonitoringStoppingCondition) *CreateDataQualityJobDefinitionInput {
	s.StoppingCondition = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateDataQualityJobDefinitionInput) SetTags(v []*Tag) *CreateDataQualityJobDefinitionInput {
	s.Tags = v
	return s
}

type CreateDataQualityJobDefinitionOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the job definition.
	//
	// JobDefinitionArn is a required field
	JobDefinitionArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateDataQualityJobDefinitionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateDataQualityJobDefinitionOutput) GoString() string {
	return s.String()
}

// SetJobDefinitionArn sets the JobDefinitionArn field's value.
func (s *CreateDataQualityJobDefinitionOutput) SetJobDefinitionArn(v string) *CreateDataQualityJobDefinitionOutput {
	s.JobDefinitionArn = &v
	return s
}

type CreateDeviceFleetInput struct {
	_ struct{} `type:"structure"`

	// A description of the fleet.
	Description *string `min:"1" type:"string"`

	// The name of the fleet that the device belongs to.
	//
	// DeviceFleetName is a required field
	DeviceFleetName *string `min:"1" type:"string" required:"true"`

	// Whether to create an Amazon Web Services IoT Role Alias during device fleet
	// creation. The name of the role alias generated will match this pattern: "SageMakerEdge-{DeviceFleetName}".
	//
	// For example, if your device fleet is called "demo-fleet", the name of the
	// role alias will be "SageMakerEdge-demo-fleet".
	EnableIotRoleAlias *bool `type:"boolean"`

	// The output configuration for storing sample data collected by the fleet.
	//
	// OutputConfig is a required field
	OutputConfig *EdgeOutputConfig `type:"structure" required:"true"`

	// The Amazon Resource Name (ARN) that has access to Amazon Web Services Internet
	// of Things (IoT).
	RoleArn *string `min:"20" type:"string"`

	// Creates tags for the specified fleet.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateDeviceFleetInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateDeviceFleetInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateDeviceFleetInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateDeviceFleetInput"}
	if s.Description != nil && len(*s.Description) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
	}
	if s.DeviceFleetName == nil {
		invalidParams.Add(request.NewErrParamRequired("DeviceFleetName"))
	}
	if s.DeviceFleetName != nil && len(*s.DeviceFleetName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DeviceFleetName", 1))
	}
	if s.OutputConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("OutputConfig"))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.OutputConfig != nil {
		if err := s.OutputConfig.Validate(); err != nil {
			invalidParams.AddNested("OutputConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDescription sets the Description field's value.
func (s *CreateDeviceFleetInput) SetDescription(v string) *CreateDeviceFleetInput {
	s.Description = &v
	return s
}

// SetDeviceFleetName sets the DeviceFleetName field's value.
func (s *CreateDeviceFleetInput) SetDeviceFleetName(v string) *CreateDeviceFleetInput {
	s.DeviceFleetName = &v
	return s
}

// SetEnableIotRoleAlias sets the EnableIotRoleAlias field's value.
func (s *CreateDeviceFleetInput) SetEnableIotRoleAlias(v bool) *CreateDeviceFleetInput {
	s.EnableIotRoleAlias = &v
	return s
}

// SetOutputConfig sets the OutputConfig field's value.
func (s *CreateDeviceFleetInput) SetOutputConfig(v *EdgeOutputConfig) *CreateDeviceFleetInput {
	s.OutputConfig = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *CreateDeviceFleetInput) SetRoleArn(v string) *CreateDeviceFleetInput {
	s.RoleArn = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateDeviceFleetInput) SetTags(v []*Tag) *CreateDeviceFleetInput {
	s.Tags = v
	return s
}

type CreateDeviceFleetOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateDeviceFleetOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateDeviceFleetOutput) GoString() string {
	return s.String()
}

type CreateDomainInput struct {
	_ struct{} `type:"structure"`

	// Specifies the VPC used for non-EFS traffic. The default value is PublicInternetOnly.
	//
	//    * PublicInternetOnly - Non-EFS traffic is through a VPC managed by Amazon
	//    SageMaker, which allows direct internet access
	//
	//    * VpcOnly - All traffic is through the specified VPC and subnets
	AppNetworkAccessType *string `type:"string" enum:"AppNetworkAccessType"`

	// The entity that creates and manages the required security groups for inter-app
	// communication in VPCOnly mode. Required when CreateDomain.AppNetworkAccessType
	// is VPCOnly and DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn
	// is provided. If setting up the domain for use with RStudio, this value must
	// be set to Service.
	AppSecurityGroupManagement *string `type:"string" enum:"AppSecurityGroupManagement"`

	// The mode of authentication that members use to access the domain.
	//
	// AuthMode is a required field
	AuthMode *string `type:"string" required:"true" enum:"AuthMode"`

	// The default settings used to create a space.
	DefaultSpaceSettings *DefaultSpaceSettings `type:"structure"`

	// The default settings to use to create a user profile when UserSettings isn't
	// specified in the call to the CreateUserProfile API.
	//
	// SecurityGroups is aggregated when specified in both calls. For all other
	// settings in UserSettings, the values specified in CreateUserProfile take
	// precedence over those specified in CreateDomain.
	//
	// DefaultUserSettings is a required field
	DefaultUserSettings *UserSettings `type:"structure" required:"true"`

	// A name for the domain.
	//
	// DomainName is a required field
	DomainName *string `type:"string" required:"true"`

	// A collection of Domain settings.
	DomainSettings *DomainSettings `type:"structure"`

	// Use KmsKeyId.
	//
	// Deprecated: This property is deprecated, use KmsKeyId instead.
	HomeEfsFileSystemKmsKeyId *string `deprecated:"true" type:"string"`

	// SageMaker uses Amazon Web Services KMS to encrypt the EFS volume attached
	// to the domain with an Amazon Web Services managed key by default. For more
	// control, specify a customer managed key.
	KmsKeyId *string `type:"string"`

	// The VPC subnets that the domain uses for communication.
	//
	// SubnetIds is a required field
	SubnetIds []*string `min:"1" type:"list" required:"true"`

	// Tags to associated with the Domain. Each tag consists of a key and an optional
	// value. Tag keys must be unique per resource. Tags are searchable using the
	// Search API.
	//
	// Tags that you specify for the Domain are also added to all Apps that the
	// Domain launches.
	Tags []*Tag `type:"list"`

	// The ID of the Amazon Virtual Private Cloud (VPC) that the domain uses for
	// communication.
	//
	// VpcId is a required field
	VpcId *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateDomainInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateDomainInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateDomainInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateDomainInput"}
	if s.AuthMode == nil {
		invalidParams.Add(request.NewErrParamRequired("AuthMode"))
	}
	if s.DefaultUserSettings == nil {
		invalidParams.Add(request.NewErrParamRequired("DefaultUserSettings"))
	}
	if s.DomainName == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainName"))
	}
	if s.SubnetIds == nil {
		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
	}
	if s.SubnetIds != nil && len(s.SubnetIds) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SubnetIds", 1))
	}
	if s.VpcId == nil {
		invalidParams.Add(request.NewErrParamRequired("VpcId"))
	}
	if s.DefaultSpaceSettings != nil {
		if err := s.DefaultSpaceSettings.Validate(); err != nil {
			invalidParams.AddNested("DefaultSpaceSettings", err.(request.ErrInvalidParams))
		}
	}
	if s.DefaultUserSettings != nil {
		if err := s.DefaultUserSettings.Validate(); err != nil {
			invalidParams.AddNested("DefaultUserSettings", err.(request.ErrInvalidParams))
		}
	}
	if s.DomainSettings != nil {
		if err := s.DomainSettings.Validate(); err != nil {
			invalidParams.AddNested("DomainSettings", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppNetworkAccessType sets the AppNetworkAccessType field's value.
func (s *CreateDomainInput) SetAppNetworkAccessType(v string) *CreateDomainInput {
	s.AppNetworkAccessType = &v
	return s
}

// SetAppSecurityGroupManagement sets the AppSecurityGroupManagement field's value.
func (s *CreateDomainInput) SetAppSecurityGroupManagement(v string) *CreateDomainInput {
	s.AppSecurityGroupManagement = &v
	return s
}

// SetAuthMode sets the AuthMode field's value.
func (s *CreateDomainInput) SetAuthMode(v string) *CreateDomainInput {
	s.AuthMode = &v
	return s
}

// SetDefaultSpaceSettings sets the DefaultSpaceSettings field's value.
func (s *CreateDomainInput) SetDefaultSpaceSettings(v *DefaultSpaceSettings) *CreateDomainInput {
	s.DefaultSpaceSettings = v
	return s
}

// SetDefaultUserSettings sets the DefaultUserSettings field's value.
func (s *CreateDomainInput) SetDefaultUserSettings(v *UserSettings) *CreateDomainInput {
	s.DefaultUserSettings = v
	return s
}

// SetDomainName sets the DomainName field's value.
func (s *CreateDomainInput) SetDomainName(v string) *CreateDomainInput {
	s.DomainName = &v
	return s
}

// SetDomainSettings sets the DomainSettings field's value.
func (s *CreateDomainInput) SetDomainSettings(v *DomainSettings) *CreateDomainInput {
	s.DomainSettings = v
	return s
}

// SetHomeEfsFileSystemKmsKeyId sets the HomeEfsFileSystemKmsKeyId field's value.
func (s *CreateDomainInput) SetHomeEfsFileSystemKmsKeyId(v string) *CreateDomainInput {
	s.HomeEfsFileSystemKmsKeyId = &v
	return s
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *CreateDomainInput) SetKmsKeyId(v string) *CreateDomainInput {
	s.KmsKeyId = &v
	return s
}

// SetSubnetIds sets the SubnetIds field's value.
func (s *CreateDomainInput) SetSubnetIds(v []*string) *CreateDomainInput {
	s.SubnetIds = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateDomainInput) SetTags(v []*Tag) *CreateDomainInput {
	s.Tags = v
	return s
}

// SetVpcId sets the VpcId field's value.
func (s *CreateDomainInput) SetVpcId(v string) *CreateDomainInput {
	s.VpcId = &v
	return s
}

type CreateDomainOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the created domain.
	DomainArn *string `type:"string"`

	// The URL to the created domain.
	Url *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateDomainOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateDomainOutput) GoString() string {
	return s.String()
}

// SetDomainArn sets the DomainArn field's value.
func (s *CreateDomainOutput) SetDomainArn(v string) *CreateDomainOutput {
	s.DomainArn = &v
	return s
}

// SetUrl sets the Url field's value.
func (s *CreateDomainOutput) SetUrl(v string) *CreateDomainOutput {
	s.Url = &v
	return s
}

type CreateEdgeDeploymentPlanInput struct {
	_ struct{} `type:"structure"`

	// The device fleet used for this edge deployment plan.
	//
	// DeviceFleetName is a required field
	DeviceFleetName *string `min:"1" type:"string" required:"true"`

	// The name of the edge deployment plan.
	//
	// EdgeDeploymentPlanName is a required field
	EdgeDeploymentPlanName *string `min:"1" type:"string" required:"true"`

	// List of models associated with the edge deployment plan.
	//
	// ModelConfigs is a required field
	ModelConfigs []*EdgeDeploymentModelConfig `type:"list" required:"true"`

	// List of stages of the edge deployment plan. The number of stages is limited
	// to 10 per deployment.
	Stages []*DeploymentStage `type:"list"`

	// List of tags with which to tag the edge deployment plan.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateEdgeDeploymentPlanInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateEdgeDeploymentPlanInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateEdgeDeploymentPlanInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateEdgeDeploymentPlanInput"}
	if s.DeviceFleetName == nil {
		invalidParams.Add(request.NewErrParamRequired("DeviceFleetName"))
	}
	if s.DeviceFleetName != nil && len(*s.DeviceFleetName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DeviceFleetName", 1))
	}
	if s.EdgeDeploymentPlanName == nil {
		invalidParams.Add(request.NewErrParamRequired("EdgeDeploymentPlanName"))
	}
	if s.EdgeDeploymentPlanName != nil && len(*s.EdgeDeploymentPlanName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("EdgeDeploymentPlanName", 1))
	}
	if s.ModelConfigs == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelConfigs"))
	}
	if s.ModelConfigs != nil {
		for i, v := range s.ModelConfigs {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ModelConfigs", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.Stages != nil {
		for i, v := range s.Stages {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Stages", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDeviceFleetName sets the DeviceFleetName field's value.
func (s *CreateEdgeDeploymentPlanInput) SetDeviceFleetName(v string) *CreateEdgeDeploymentPlanInput {
	s.DeviceFleetName = &v
	return s
}

// SetEdgeDeploymentPlanName sets the EdgeDeploymentPlanName field's value.
func (s *CreateEdgeDeploymentPlanInput) SetEdgeDeploymentPlanName(v string) *CreateEdgeDeploymentPlanInput {
	s.EdgeDeploymentPlanName = &v
	return s
}

// SetModelConfigs sets the ModelConfigs field's value.
func (s *CreateEdgeDeploymentPlanInput) SetModelConfigs(v []*EdgeDeploymentModelConfig) *CreateEdgeDeploymentPlanInput {
	s.ModelConfigs = v
	return s
}

// SetStages sets the Stages field's value.
func (s *CreateEdgeDeploymentPlanInput) SetStages(v []*DeploymentStage) *CreateEdgeDeploymentPlanInput {
	s.Stages = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateEdgeDeploymentPlanInput) SetTags(v []*Tag) *CreateEdgeDeploymentPlanInput {
	s.Tags = v
	return s
}

type CreateEdgeDeploymentPlanOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the edge deployment plan.
	//
	// EdgeDeploymentPlanArn is a required field
	EdgeDeploymentPlanArn *string `min:"20" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateEdgeDeploymentPlanOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateEdgeDeploymentPlanOutput) GoString() string {
	return s.String()
}

// SetEdgeDeploymentPlanArn sets the EdgeDeploymentPlanArn field's value.
func (s *CreateEdgeDeploymentPlanOutput) SetEdgeDeploymentPlanArn(v string) *CreateEdgeDeploymentPlanOutput {
	s.EdgeDeploymentPlanArn = &v
	return s
}

type CreateEdgeDeploymentStageInput struct {
	_ struct{} `type:"structure"`

	// The name of the edge deployment plan.
	//
	// EdgeDeploymentPlanName is a required field
	EdgeDeploymentPlanName *string `min:"1" type:"string" required:"true"`

	// List of stages to be added to the edge deployment plan.
	//
	// Stages is a required field
	Stages []*DeploymentStage `type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateEdgeDeploymentStageInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateEdgeDeploymentStageInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateEdgeDeploymentStageInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateEdgeDeploymentStageInput"}
	if s.EdgeDeploymentPlanName == nil {
		invalidParams.Add(request.NewErrParamRequired("EdgeDeploymentPlanName"))
	}
	if s.EdgeDeploymentPlanName != nil && len(*s.EdgeDeploymentPlanName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("EdgeDeploymentPlanName", 1))
	}
	if s.Stages == nil {
		invalidParams.Add(request.NewErrParamRequired("Stages"))
	}
	if s.Stages != nil {
		for i, v := range s.Stages {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Stages", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEdgeDeploymentPlanName sets the EdgeDeploymentPlanName field's value.
func (s *CreateEdgeDeploymentStageInput) SetEdgeDeploymentPlanName(v string) *CreateEdgeDeploymentStageInput {
	s.EdgeDeploymentPlanName = &v
	return s
}

// SetStages sets the Stages field's value.
func (s *CreateEdgeDeploymentStageInput) SetStages(v []*DeploymentStage) *CreateEdgeDeploymentStageInput {
	s.Stages = v
	return s
}

type CreateEdgeDeploymentStageOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateEdgeDeploymentStageOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateEdgeDeploymentStageOutput) GoString() string {
	return s.String()
}

type CreateEdgePackagingJobInput struct {
	_ struct{} `type:"structure"`

	// The name of the SageMaker Neo compilation job that will be used to locate
	// model artifacts for packaging.
	//
	// CompilationJobName is a required field
	CompilationJobName *string `min:"1" type:"string" required:"true"`

	// The name of the edge packaging job.
	//
	// EdgePackagingJobName is a required field
	EdgePackagingJobName *string `min:"1" type:"string" required:"true"`

	// The name of the model.
	//
	// ModelName is a required field
	ModelName *string `min:"1" type:"string" required:"true"`

	// The version of the model.
	//
	// ModelVersion is a required field
	ModelVersion *string `min:"1" type:"string" required:"true"`

	// Provides information about the output location for the packaged model.
	//
	// OutputConfig is a required field
	OutputConfig *EdgeOutputConfig `type:"structure" required:"true"`

	// The Amazon Web Services KMS key to use when encrypting the EBS volume the
	// edge packaging job runs on.
	ResourceKey *string `type:"string"`

	// The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker
	// to download and upload the model, and to contact SageMaker Neo.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// Creates tags for the packaging job.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateEdgePackagingJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateEdgePackagingJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateEdgePackagingJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateEdgePackagingJobInput"}
	if s.CompilationJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("CompilationJobName"))
	}
	if s.CompilationJobName != nil && len(*s.CompilationJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("CompilationJobName", 1))
	}
	if s.EdgePackagingJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("EdgePackagingJobName"))
	}
	if s.EdgePackagingJobName != nil && len(*s.EdgePackagingJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("EdgePackagingJobName", 1))
	}
	if s.ModelName == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelName"))
	}
	if s.ModelName != nil && len(*s.ModelName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelName", 1))
	}
	if s.ModelVersion == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelVersion"))
	}
	if s.ModelVersion != nil && len(*s.ModelVersion) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelVersion", 1))
	}
	if s.OutputConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("OutputConfig"))
	}
	if s.RoleArn == nil {
		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.OutputConfig != nil {
		if err := s.OutputConfig.Validate(); err != nil {
			invalidParams.AddNested("OutputConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCompilationJobName sets the CompilationJobName field's value.
func (s *CreateEdgePackagingJobInput) SetCompilationJobName(v string) *CreateEdgePackagingJobInput {
	s.CompilationJobName = &v
	return s
}

// SetEdgePackagingJobName sets the EdgePackagingJobName field's value.
func (s *CreateEdgePackagingJobInput) SetEdgePackagingJobName(v string) *CreateEdgePackagingJobInput {
	s.EdgePackagingJobName = &v
	return s
}

// SetModelName sets the ModelName field's value.
func (s *CreateEdgePackagingJobInput) SetModelName(v string) *CreateEdgePackagingJobInput {
	s.ModelName = &v
	return s
}

// SetModelVersion sets the ModelVersion field's value.
func (s *CreateEdgePackagingJobInput) SetModelVersion(v string) *CreateEdgePackagingJobInput {
	s.ModelVersion = &v
	return s
}

// SetOutputConfig sets the OutputConfig field's value.
func (s *CreateEdgePackagingJobInput) SetOutputConfig(v *EdgeOutputConfig) *CreateEdgePackagingJobInput {
	s.OutputConfig = v
	return s
}

// SetResourceKey sets the ResourceKey field's value.
func (s *CreateEdgePackagingJobInput) SetResourceKey(v string) *CreateEdgePackagingJobInput {
	s.ResourceKey = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *CreateEdgePackagingJobInput) SetRoleArn(v string) *CreateEdgePackagingJobInput {
	s.RoleArn = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateEdgePackagingJobInput) SetTags(v []*Tag) *CreateEdgePackagingJobInput {
	s.Tags = v
	return s
}

type CreateEdgePackagingJobOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateEdgePackagingJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateEdgePackagingJobOutput) GoString() string {
	return s.String()
}

type CreateEndpointConfigInput struct {
	_ struct{} `type:"structure"`

	// Specifies configuration for how an endpoint performs asynchronous inference.
	// This is a required field in order for your Endpoint to be invoked using InvokeEndpointAsync
	// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpointAsync.html).
	AsyncInferenceConfig *AsyncInferenceConfig `type:"structure"`

	// Configuration to control how SageMaker captures inference data.
	DataCaptureConfig *DataCaptureConfig `type:"structure"`

	// Sets whether all model containers deployed to the endpoint are isolated.
	// If they are, no inbound or outbound network calls can be made to or from
	// the model containers.
	EnableNetworkIsolation *bool `type:"boolean"`

	// The name of the endpoint configuration. You specify this name in a CreateEndpoint
	// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html)
	// request.
	//
	// EndpointConfigName is a required field
	EndpointConfigName *string `type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume
	// to perform actions on your behalf. For more information, see SageMaker Roles
	// (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html).
	//
	// To be able to pass this role to Amazon SageMaker, the caller of this action
	// must have the iam:PassRole permission.
	ExecutionRoleArn *string `min:"20" type:"string"`

	// A member of CreateEndpointConfig that enables explainers.
	ExplainerConfig *ExplainerConfig `type:"structure"`

	// The Amazon Resource Name (ARN) of a Amazon Web Services Key Management Service
	// key that SageMaker uses to encrypt data on the storage volume attached to
	// the ML compute instance that hosts the endpoint.
	//
	// The KmsKeyId can be any of the following formats:
	//
	//    * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
	//
	//    * Key ARN: arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
	//
	//    * Alias name: alias/ExampleAlias
	//
	//    * Alias name ARN: arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias
	//
	// The KMS key policy must grant permission to the IAM role that you specify
	// in your CreateEndpoint, UpdateEndpoint requests. For more information, refer
	// to the Amazon Web Services Key Management Service section Using Key Policies
	// in Amazon Web Services KMS (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)
	//
	// Certain Nitro-based instances include local storage, dependent on the instance
	// type. Local storage volumes are encrypted using a hardware module on the
	// instance. You can't request a KmsKeyId when using an instance type with local
	// storage. If any of the models that you specify in the ProductionVariants
	// parameter use nitro-based instances with local storage, do not specify a
	// value for the KmsKeyId parameter. If you specify a value for KmsKeyId when
	// using any nitro-based instances with local storage, the call to CreateEndpointConfig
	// fails.
	//
	// For a list of instance types that support local instance storage, see Instance
	// Store Volumes (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes).
	//
	// For more information about local instance storage encryption, see SSD Instance
	// Store Volumes (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html).
	KmsKeyId *string `type:"string"`

	// An array of ProductionVariant objects, one for each model that you want to
	// host at this endpoint.
	//
	// ProductionVariants is a required field
	ProductionVariants []*ProductionVariant `min:"1" type:"list" required:"true"`

	// An array of ProductionVariant objects, one for each model that you want to
	// host at this endpoint in shadow mode with production traffic replicated from
	// the model specified on ProductionVariants. If you use this field, you can
	// only specify one variant for ProductionVariants and one variant for ShadowProductionVariants.
	ShadowProductionVariants []*ProductionVariant `min:"1" type:"list"`

	// An array of key-value pairs. You can use tags to categorize your Amazon Web
	// Services resources in different ways, for example, by purpose, owner, or
	// environment. For more information, see Tagging Amazon Web Services Resources
	// (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
	Tags []*Tag `type:"list"`

	// Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs,
	// hosted models, and compute resources have access to. You can control access
	// to and from your resources by configuring a VPC. For more information, see
	// Give SageMaker Access to Resources in your Amazon VPC (https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html).
	VpcConfig *VpcConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateEndpointConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateEndpointConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateEndpointConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateEndpointConfigInput"}
	if s.EndpointConfigName == nil {
		invalidParams.Add(request.NewErrParamRequired("EndpointConfigName"))
	}
	if s.ExecutionRoleArn != nil && len(*s.ExecutionRoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleArn", 20))
	}
	if s.ProductionVariants == nil {
		invalidParams.Add(request.NewErrParamRequired("ProductionVariants"))
	}
	if s.ProductionVariants != nil && len(s.ProductionVariants) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ProductionVariants", 1))
	}
	if s.ShadowProductionVariants != nil && len(s.ShadowProductionVariants) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ShadowProductionVariants", 1))
	}
	if s.AsyncInferenceConfig != nil {
		if err := s.AsyncInferenceConfig.Validate(); err != nil {
			invalidParams.AddNested("AsyncInferenceConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.DataCaptureConfig != nil {
		if err := s.DataCaptureConfig.Validate(); err != nil {
			invalidParams.AddNested("DataCaptureConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.ExplainerConfig != nil {
		if err := s.ExplainerConfig.Validate(); err != nil {
			invalidParams.AddNested("ExplainerConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.ProductionVariants != nil {
		for i, v := range s.ProductionVariants {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ProductionVariants", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.ShadowProductionVariants != nil {
		for i, v := range s.ShadowProductionVariants {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ShadowProductionVariants", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.VpcConfig != nil {
		if err := s.VpcConfig.Validate(); err != nil {
			invalidParams.AddNested("VpcConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAsyncInferenceConfig sets the AsyncInferenceConfig field's value.
func (s *CreateEndpointConfigInput) SetAsyncInferenceConfig(v *AsyncInferenceConfig) *CreateEndpointConfigInput {
	s.AsyncInferenceConfig = v
	return s
}

// SetDataCaptureConfig sets the DataCaptureConfig field's value.
func (s *CreateEndpointConfigInput) SetDataCaptureConfig(v *DataCaptureConfig) *CreateEndpointConfigInput {
	s.DataCaptureConfig = v
	return s
}

// SetEnableNetworkIsolation sets the EnableNetworkIsolation field's value.
func (s *CreateEndpointConfigInput) SetEnableNetworkIsolation(v bool) *CreateEndpointConfigInput {
	s.EnableNetworkIsolation = &v
	return s
}

// SetEndpointConfigName sets the EndpointConfigName field's value.
func (s *CreateEndpointConfigInput) SetEndpointConfigName(v string) *CreateEndpointConfigInput {
	s.EndpointConfigName = &v
	return s
}

// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
func (s *CreateEndpointConfigInput) SetExecutionRoleArn(v string) *CreateEndpointConfigInput {
	s.ExecutionRoleArn = &v
	return s
}

// SetExplainerConfig sets the ExplainerConfig field's value.
func (s *CreateEndpointConfigInput) SetExplainerConfig(v *ExplainerConfig) *CreateEndpointConfigInput {
	s.ExplainerConfig = v
	return s
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *CreateEndpointConfigInput) SetKmsKeyId(v string) *CreateEndpointConfigInput {
	s.KmsKeyId = &v
	return s
}

// SetProductionVariants sets the ProductionVariants field's value.
func (s *CreateEndpointConfigInput) SetProductionVariants(v []*ProductionVariant) *CreateEndpointConfigInput {
	s.ProductionVariants = v
	return s
}

// SetShadowProductionVariants sets the ShadowProductionVariants field's value.
func (s *CreateEndpointConfigInput) SetShadowProductionVariants(v []*ProductionVariant) *CreateEndpointConfigInput {
	s.ShadowProductionVariants = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateEndpointConfigInput) SetTags(v []*Tag) *CreateEndpointConfigInput {
	s.Tags = v
	return s
}

// SetVpcConfig sets the VpcConfig field's value.
func (s *CreateEndpointConfigInput) SetVpcConfig(v *VpcConfig) *CreateEndpointConfigInput {
	s.VpcConfig = v
	return s
}

type CreateEndpointConfigOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the endpoint configuration.
	//
	// EndpointConfigArn is a required field
	EndpointConfigArn *string `min:"20" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateEndpointConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateEndpointConfigOutput) GoString() string {
	return s.String()
}

// SetEndpointConfigArn sets the EndpointConfigArn field's value.
func (s *CreateEndpointConfigOutput) SetEndpointConfigArn(v string) *CreateEndpointConfigOutput {
	s.EndpointConfigArn = &v
	return s
}

type CreateEndpointInput struct {
	_ struct{} `type:"structure"`

	// The deployment configuration for an endpoint, which contains the desired
	// deployment strategy and rollback configurations.
	DeploymentConfig *DeploymentConfig `type:"structure"`

	// The name of an endpoint configuration. For more information, see CreateEndpointConfig
	// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html).
	//
	// EndpointConfigName is a required field
	EndpointConfigName *string `type:"string" required:"true"`

	// The name of the endpoint.The name must be unique within an Amazon Web Services
	// Region in your Amazon Web Services account. The name is case-insensitive
	// in CreateEndpoint, but the case is preserved and must be matched in InvokeEndpoint
	// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html).
	//
	// EndpointName is a required field
	EndpointName *string `type:"string" required:"true"`

	// An array of key-value pairs. You can use tags to categorize your Amazon Web
	// Services resources in different ways, for example, by purpose, owner, or
	// environment. For more information, see Tagging Amazon Web Services Resources
	// (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateEndpointInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateEndpointInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateEndpointInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateEndpointInput"}
	if s.EndpointConfigName == nil {
		invalidParams.Add(request.NewErrParamRequired("EndpointConfigName"))
	}
	if s.EndpointName == nil {
		invalidParams.Add(request.NewErrParamRequired("EndpointName"))
	}
	if s.DeploymentConfig != nil {
		if err := s.DeploymentConfig.Validate(); err != nil {
			invalidParams.AddNested("DeploymentConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDeploymentConfig sets the DeploymentConfig field's value.
func (s *CreateEndpointInput) SetDeploymentConfig(v *DeploymentConfig) *CreateEndpointInput {
	s.DeploymentConfig = v
	return s
}

// SetEndpointConfigName sets the EndpointConfigName field's value.
func (s *CreateEndpointInput) SetEndpointConfigName(v string) *CreateEndpointInput {
	s.EndpointConfigName = &v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *CreateEndpointInput) SetEndpointName(v string) *CreateEndpointInput {
	s.EndpointName = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateEndpointInput) SetTags(v []*Tag) *CreateEndpointInput {
	s.Tags = v
	return s
}

type CreateEndpointOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the endpoint.
	//
	// EndpointArn is a required field
	EndpointArn *string `min:"20" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateEndpointOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateEndpointOutput) GoString() string {
	return s.String()
}

// SetEndpointArn sets the EndpointArn field's value.
func (s *CreateEndpointOutput) SetEndpointArn(v string) *CreateEndpointOutput {
	s.EndpointArn = &v
	return s
}

type CreateExperimentInput struct {
	_ struct{} `type:"structure"`

	// The description of the experiment.
	Description *string `type:"string"`

	// The name of the experiment as displayed. The name doesn't need to be unique.
	// If you don't specify DisplayName, the value in ExperimentName is displayed.
	DisplayName *string `min:"1" type:"string"`

	// The name of the experiment. The name must be unique in your Amazon Web Services
	// account and is not case-sensitive.
	//
	// ExperimentName is a required field
	ExperimentName *string `min:"1" type:"string" required:"true"`

	// A list of tags to associate with the experiment. You can use Search (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html)
	// API to search on the tags.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateExperimentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateExperimentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateExperimentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateExperimentInput"}
	if s.DisplayName != nil && len(*s.DisplayName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1))
	}
	if s.ExperimentName == nil {
		invalidParams.Add(request.NewErrParamRequired("ExperimentName"))
	}
	if s.ExperimentName != nil && len(*s.ExperimentName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ExperimentName", 1))
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDescription sets the Description field's value.
func (s *CreateExperimentInput) SetDescription(v string) *CreateExperimentInput {
	s.Description = &v
	return s
}

// SetDisplayName sets the DisplayName field's value.
func (s *CreateExperimentInput) SetDisplayName(v string) *CreateExperimentInput {
	s.DisplayName = &v
	return s
}

// SetExperimentName sets the ExperimentName field's value.
func (s *CreateExperimentInput) SetExperimentName(v string) *CreateExperimentInput {
	s.ExperimentName = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateExperimentInput) SetTags(v []*Tag) *CreateExperimentInput {
	s.Tags = v
	return s
}

type CreateExperimentOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the experiment.
	ExperimentArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateExperimentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateExperimentOutput) GoString() string {
	return s.String()
}

// SetExperimentArn sets the ExperimentArn field's value.
func (s *CreateExperimentOutput) SetExperimentArn(v string) *CreateExperimentOutput {
	s.ExperimentArn = &v
	return s
}

type CreateFeatureGroupInput struct {
	_ struct{} `type:"structure"`

	// A free-form description of a FeatureGroup.
	Description *string `type:"string"`

	// The name of the feature that stores the EventTime of a Record in a FeatureGroup.
	//
	// An EventTime is a point in time when a new event occurs that corresponds
	// to the creation or update of a Record in a FeatureGroup. All Records in the
	// FeatureGroup must have a corresponding EventTime.
	//
	// An EventTime can be a String or Fractional.
	//
	//    * Fractional: EventTime feature values must be a Unix timestamp in seconds.
	//
	//    * String: EventTime feature values must be an ISO-8601 string in the format.
	//    The following formats are supported yyyy-MM-dd'T'HH:mm:ssZ and yyyy-MM-dd'T'HH:mm:ss.SSSZ
	//    where yyyy, MM, and dd represent the year, month, and day respectively
	//    and HH, mm, ss, and if applicable, SSS represent the hour, month, second
	//    and milliseconds respsectively. 'T' and Z are constants.
	//
	// EventTimeFeatureName is a required field
	EventTimeFeatureName *string `min:"1" type:"string" required:"true"`

	// A list of Feature names and types. Name and Type is compulsory per Feature.
	//
	// Valid feature FeatureTypes are Integral, Fractional and String.
	//
	// FeatureNames cannot be any of the following: is_deleted, write_time, api_invocation_time
	//
	// You can create up to 2,500 FeatureDefinitions per FeatureGroup.
	//
	// FeatureDefinitions is a required field
	FeatureDefinitions []*FeatureDefinition `min:"1" type:"list" required:"true"`

	// The name of the FeatureGroup. The name must be unique within an Amazon Web
	// Services Region in an Amazon Web Services account. The name:
	//
	//    * Must start and end with an alphanumeric character.
	//
	//    * Can only contain alphanumeric character and hyphens. Spaces are not
	//    allowed.
	//
	// FeatureGroupName is a required field
	FeatureGroupName *string `min:"1" type:"string" required:"true"`

	// Use this to configure an OfflineFeatureStore. This parameter allows you to
	// specify:
	//
	//    * The Amazon Simple Storage Service (Amazon S3) location of an OfflineStore.
	//
	//    * A configuration for an Amazon Web Services Glue or Amazon Web Services
	//    Hive data catalog.
	//
	//    * An KMS encryption key to encrypt the Amazon S3 location used for OfflineStore.
	//    If KMS encryption key is not specified, by default we encrypt all data
	//    at rest using Amazon Web Services KMS key. By defining your bucket-level
	//    key (https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html)
	//    for SSE, you can reduce Amazon Web Services KMS requests costs by up to
	//    99 percent.
	//
	//    * Format for the offline store table. Supported formats are Glue (Default)
	//    and Apache Iceberg (https://iceberg.apache.org/).
	//
	// To learn more about this parameter, see OfflineStoreConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OfflineStoreConfig.html).
	OfflineStoreConfig *OfflineStoreConfig `type:"structure"`

	// You can turn the OnlineStore on or off by specifying True for the EnableOnlineStore
	// flag in OnlineStoreConfig.
	//
	// You can also include an Amazon Web Services KMS key ID (KMSKeyId) for at-rest
	// encryption of the OnlineStore.
	//
	// The default value is False.
	OnlineStoreConfig *OnlineStoreConfig `type:"structure"`

	// The name of the Feature whose value uniquely identifies a Record defined
	// in the FeatureStore. Only the latest record per identifier value will be
	// stored in the OnlineStore. RecordIdentifierFeatureName must be one of feature
	// definitions' names.
	//
	// You use the RecordIdentifierFeatureName to access data in a FeatureStore.
	//
	// This name:
	//
	//    * Must start and end with an alphanumeric character.
	//
	//    * Can only contains alphanumeric characters, hyphens, underscores. Spaces
	//    are not allowed.
	//
	// RecordIdentifierFeatureName is a required field
	RecordIdentifierFeatureName *string `min:"1" type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of the IAM execution role used to persist
	// data into the OfflineStore if an OfflineStoreConfig is provided.
	RoleArn *string `min:"20" type:"string"`

	// Tags used to identify Features in each FeatureGroup.
	Tags []*Tag `type:"list"`

	// Used to set feature group throughput configuration. There are two modes:
	// ON_DEMAND and PROVISIONED. With on-demand mode, you are charged for data
	// reads and writes that your application performs on your feature group. You
	// do not need to specify read and write throughput because Feature Store accommodates
	// your workloads as they ramp up and down. You can switch a feature group to
	// on-demand only once in a 24 hour period. With provisioned throughput mode,
	// you specify the read and write capacity per second that you expect your application
	// to require, and you are billed based on those limits. Exceeding provisioned
	// throughput will result in your requests being throttled.
	//
	// Note: PROVISIONED throughput mode is supported only for feature groups that
	// are offline-only, or use the Standard (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OnlineStoreConfig.html#sagemaker-Type-OnlineStoreConfig-StorageType)
	// tier online store.
	ThroughputConfig *ThroughputConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateFeatureGroupInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateFeatureGroupInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateFeatureGroupInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateFeatureGroupInput"}
	if s.EventTimeFeatureName == nil {
		invalidParams.Add(request.NewErrParamRequired("EventTimeFeatureName"))
	}
	if s.EventTimeFeatureName != nil && len(*s.EventTimeFeatureName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("EventTimeFeatureName", 1))
	}
	if s.FeatureDefinitions == nil {
		invalidParams.Add(request.NewErrParamRequired("FeatureDefinitions"))
	}
	if s.FeatureDefinitions != nil && len(s.FeatureDefinitions) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FeatureDefinitions", 1))
	}
	if s.FeatureGroupName == nil {
		invalidParams.Add(request.NewErrParamRequired("FeatureGroupName"))
	}
	if s.FeatureGroupName != nil && len(*s.FeatureGroupName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FeatureGroupName", 1))
	}
	if s.RecordIdentifierFeatureName == nil {
		invalidParams.Add(request.NewErrParamRequired("RecordIdentifierFeatureName"))
	}
	if s.RecordIdentifierFeatureName != nil && len(*s.RecordIdentifierFeatureName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("RecordIdentifierFeatureName", 1))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.FeatureDefinitions != nil {
		for i, v := range s.FeatureDefinitions {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FeatureDefinitions", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.OfflineStoreConfig != nil {
		if err := s.OfflineStoreConfig.Validate(); err != nil {
			invalidParams.AddNested("OfflineStoreConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.OnlineStoreConfig != nil {
		if err := s.OnlineStoreConfig.Validate(); err != nil {
			invalidParams.AddNested("OnlineStoreConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.ThroughputConfig != nil {
		if err := s.ThroughputConfig.Validate(); err != nil {
			invalidParams.AddNested("ThroughputConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDescription sets the Description field's value.
func (s *CreateFeatureGroupInput) SetDescription(v string) *CreateFeatureGroupInput {
	s.Description = &v
	return s
}

// SetEventTimeFeatureName sets the EventTimeFeatureName field's value.
func (s *CreateFeatureGroupInput) SetEventTimeFeatureName(v string) *CreateFeatureGroupInput {
	s.EventTimeFeatureName = &v
	return s
}

// SetFeatureDefinitions sets the FeatureDefinitions field's value.
func (s *CreateFeatureGroupInput) SetFeatureDefinitions(v []*FeatureDefinition) *CreateFeatureGroupInput {
	s.FeatureDefinitions = v
	return s
}

// SetFeatureGroupName sets the FeatureGroupName field's value.
func (s *CreateFeatureGroupInput) SetFeatureGroupName(v string) *CreateFeatureGroupInput {
	s.FeatureGroupName = &v
	return s
}

// SetOfflineStoreConfig sets the OfflineStoreConfig field's value.
func (s *CreateFeatureGroupInput) SetOfflineStoreConfig(v *OfflineStoreConfig) *CreateFeatureGroupInput {
	s.OfflineStoreConfig = v
	return s
}

// SetOnlineStoreConfig sets the OnlineStoreConfig field's value.
func (s *CreateFeatureGroupInput) SetOnlineStoreConfig(v *OnlineStoreConfig) *CreateFeatureGroupInput {
	s.OnlineStoreConfig = v
	return s
}

// SetRecordIdentifierFeatureName sets the RecordIdentifierFeatureName field's value.
func (s *CreateFeatureGroupInput) SetRecordIdentifierFeatureName(v string) *CreateFeatureGroupInput {
	s.RecordIdentifierFeatureName = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *CreateFeatureGroupInput) SetRoleArn(v string) *CreateFeatureGroupInput {
	s.RoleArn = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateFeatureGroupInput) SetTags(v []*Tag) *CreateFeatureGroupInput {
	s.Tags = v
	return s
}

// SetThroughputConfig sets the ThroughputConfig field's value.
func (s *CreateFeatureGroupInput) SetThroughputConfig(v *ThroughputConfig) *CreateFeatureGroupInput {
	s.ThroughputConfig = v
	return s
}

type CreateFeatureGroupOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the FeatureGroup. This is a unique identifier
	// for the feature group.
	//
	// FeatureGroupArn is a required field
	FeatureGroupArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateFeatureGroupOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateFeatureGroupOutput) GoString() string {
	return s.String()
}

// SetFeatureGroupArn sets the FeatureGroupArn field's value.
func (s *CreateFeatureGroupOutput) SetFeatureGroupArn(v string) *CreateFeatureGroupOutput {
	s.FeatureGroupArn = &v
	return s
}

type CreateFlowDefinitionInput struct {
	_ struct{} `type:"structure"`

	// The name of your flow definition.
	//
	// FlowDefinitionName is a required field
	FlowDefinitionName *string `min:"1" type:"string" required:"true"`

	// An object containing information about the events that trigger a human workflow.
	HumanLoopActivationConfig *HumanLoopActivationConfig `type:"structure"`

	// An object containing information about the tasks the human reviewers will
	// perform.
	HumanLoopConfig *HumanLoopConfig `type:"structure"`

	// Container for configuring the source of human task requests. Use to specify
	// if Amazon Rekognition or Amazon Textract is used as an integration source.
	HumanLoopRequestSource *HumanLoopRequestSource `type:"structure"`

	// An object containing information about where the human review results will
	// be uploaded.
	//
	// OutputConfig is a required field
	OutputConfig *FlowDefinitionOutputConfig `type:"structure" required:"true"`

	// The Amazon Resource Name (ARN) of the role needed to call other services
	// on your behalf. For example, arn:aws:iam::1234567890:role/service-role/AmazonSageMaker-ExecutionRole-20180111T151298.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// An array of key-value pairs that contain metadata to help you categorize
	// and organize a flow definition. Each tag consists of a key and a value, both
	// of which you define.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateFlowDefinitionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateFlowDefinitionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateFlowDefinitionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateFlowDefinitionInput"}
	if s.FlowDefinitionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FlowDefinitionName"))
	}
	if s.FlowDefinitionName != nil && len(*s.FlowDefinitionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FlowDefinitionName", 1))
	}
	if s.OutputConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("OutputConfig"))
	}
	if s.RoleArn == nil {
		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.HumanLoopActivationConfig != nil {
		if err := s.HumanLoopActivationConfig.Validate(); err != nil {
			invalidParams.AddNested("HumanLoopActivationConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.HumanLoopConfig != nil {
		if err := s.HumanLoopConfig.Validate(); err != nil {
			invalidParams.AddNested("HumanLoopConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.HumanLoopRequestSource != nil {
		if err := s.HumanLoopRequestSource.Validate(); err != nil {
			invalidParams.AddNested("HumanLoopRequestSource", err.(request.ErrInvalidParams))
		}
	}
	if s.OutputConfig != nil {
		if err := s.OutputConfig.Validate(); err != nil {
			invalidParams.AddNested("OutputConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFlowDefinitionName sets the FlowDefinitionName field's value.
func (s *CreateFlowDefinitionInput) SetFlowDefinitionName(v string) *CreateFlowDefinitionInput {
	s.FlowDefinitionName = &v
	return s
}

// SetHumanLoopActivationConfig sets the HumanLoopActivationConfig field's value.
func (s *CreateFlowDefinitionInput) SetHumanLoopActivationConfig(v *HumanLoopActivationConfig) *CreateFlowDefinitionInput {
	s.HumanLoopActivationConfig = v
	return s
}

// SetHumanLoopConfig sets the HumanLoopConfig field's value.
func (s *CreateFlowDefinitionInput) SetHumanLoopConfig(v *HumanLoopConfig) *CreateFlowDefinitionInput {
	s.HumanLoopConfig = v
	return s
}

// SetHumanLoopRequestSource sets the HumanLoopRequestSource field's value.
func (s *CreateFlowDefinitionInput) SetHumanLoopRequestSource(v *HumanLoopRequestSource) *CreateFlowDefinitionInput {
	s.HumanLoopRequestSource = v
	return s
}

// SetOutputConfig sets the OutputConfig field's value.
func (s *CreateFlowDefinitionInput) SetOutputConfig(v *FlowDefinitionOutputConfig) *CreateFlowDefinitionInput {
	s.OutputConfig = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *CreateFlowDefinitionInput) SetRoleArn(v string) *CreateFlowDefinitionInput {
	s.RoleArn = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateFlowDefinitionInput) SetTags(v []*Tag) *CreateFlowDefinitionInput {
	s.Tags = v
	return s
}

type CreateFlowDefinitionOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the flow definition you create.
	//
	// FlowDefinitionArn is a required field
	FlowDefinitionArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateFlowDefinitionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateFlowDefinitionOutput) GoString() string {
	return s.String()
}

// SetFlowDefinitionArn sets the FlowDefinitionArn field's value.
func (s *CreateFlowDefinitionOutput) SetFlowDefinitionArn(v string) *CreateFlowDefinitionOutput {
	s.FlowDefinitionArn = &v
	return s
}

type CreateHubInput struct {
	_ struct{} `type:"structure"`

	// A description of the hub.
	//
	// HubDescription is a required field
	HubDescription *string `type:"string" required:"true"`

	// The display name of the hub.
	HubDisplayName *string `type:"string"`

	// The name of the hub to create.
	//
	// HubName is a required field
	HubName *string `type:"string" required:"true"`

	// The searchable keywords for the hub.
	HubSearchKeywords []*string `type:"list"`

	// The Amazon S3 storage configuration for the hub.
	S3StorageConfig *HubS3StorageConfig `type:"structure"`

	// Any tags to associate with the hub.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateHubInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateHubInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateHubInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateHubInput"}
	if s.HubDescription == nil {
		invalidParams.Add(request.NewErrParamRequired("HubDescription"))
	}
	if s.HubName == nil {
		invalidParams.Add(request.NewErrParamRequired("HubName"))
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetHubDescription sets the HubDescription field's value.
func (s *CreateHubInput) SetHubDescription(v string) *CreateHubInput {
	s.HubDescription = &v
	return s
}

// SetHubDisplayName sets the HubDisplayName field's value.
func (s *CreateHubInput) SetHubDisplayName(v string) *CreateHubInput {
	s.HubDisplayName = &v
	return s
}

// SetHubName sets the HubName field's value.
func (s *CreateHubInput) SetHubName(v string) *CreateHubInput {
	s.HubName = &v
	return s
}

// SetHubSearchKeywords sets the HubSearchKeywords field's value.
func (s *CreateHubInput) SetHubSearchKeywords(v []*string) *CreateHubInput {
	s.HubSearchKeywords = v
	return s
}

// SetS3StorageConfig sets the S3StorageConfig field's value.
func (s *CreateHubInput) SetS3StorageConfig(v *HubS3StorageConfig) *CreateHubInput {
	s.S3StorageConfig = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateHubInput) SetTags(v []*Tag) *CreateHubInput {
	s.Tags = v
	return s
}

type CreateHubOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the hub.
	//
	// HubArn is a required field
	HubArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateHubOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateHubOutput) GoString() string {
	return s.String()
}

// SetHubArn sets the HubArn field's value.
func (s *CreateHubOutput) SetHubArn(v string) *CreateHubOutput {
	s.HubArn = &v
	return s
}

type CreateHumanTaskUiInput struct {
	_ struct{} `type:"structure"`

	// The name of the user interface you are creating.
	//
	// HumanTaskUiName is a required field
	HumanTaskUiName *string `min:"1" type:"string" required:"true"`

	// An array of key-value pairs that contain metadata to help you categorize
	// and organize a human review workflow user interface. Each tag consists of
	// a key and a value, both of which you define.
	Tags []*Tag `type:"list"`

	// The Liquid template for the worker user interface.
	//
	// UiTemplate is a required field
	UiTemplate *UiTemplate `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateHumanTaskUiInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateHumanTaskUiInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateHumanTaskUiInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateHumanTaskUiInput"}
	if s.HumanTaskUiName == nil {
		invalidParams.Add(request.NewErrParamRequired("HumanTaskUiName"))
	}
	if s.HumanTaskUiName != nil && len(*s.HumanTaskUiName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("HumanTaskUiName", 1))
	}
	if s.UiTemplate == nil {
		invalidParams.Add(request.NewErrParamRequired("UiTemplate"))
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.UiTemplate != nil {
		if err := s.UiTemplate.Validate(); err != nil {
			invalidParams.AddNested("UiTemplate", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetHumanTaskUiName sets the HumanTaskUiName field's value.
func (s *CreateHumanTaskUiInput) SetHumanTaskUiName(v string) *CreateHumanTaskUiInput {
	s.HumanTaskUiName = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateHumanTaskUiInput) SetTags(v []*Tag) *CreateHumanTaskUiInput {
	s.Tags = v
	return s
}

// SetUiTemplate sets the UiTemplate field's value.
func (s *CreateHumanTaskUiInput) SetUiTemplate(v *UiTemplate) *CreateHumanTaskUiInput {
	s.UiTemplate = v
	return s
}

type CreateHumanTaskUiOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the human review workflow user interface
	// you create.
	//
	// HumanTaskUiArn is a required field
	HumanTaskUiArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateHumanTaskUiOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateHumanTaskUiOutput) GoString() string {
	return s.String()
}

// SetHumanTaskUiArn sets the HumanTaskUiArn field's value.
func (s *CreateHumanTaskUiOutput) SetHumanTaskUiArn(v string) *CreateHumanTaskUiOutput {
	s.HumanTaskUiArn = &v
	return s
}

type CreateHyperParameterTuningJobInput struct {
	_ struct{} `type:"structure"`

	// Configures SageMaker Automatic model tuning (AMT) to automatically find optimal
	// parameters for the following fields:
	//
	//    * ParameterRanges (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html#sagemaker-Type-HyperParameterTuningJobConfig-ParameterRanges):
	//    The names and ranges of parameters that a hyperparameter tuning job can
	//    optimize.
	//
	//    * ResourceLimits (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html):
	//    The maximum resources that can be used for a training job. These resources
	//    include the maximum number of training jobs, the maximum runtime of a
	//    tuning job, and the maximum number of training jobs to run at the same
	//    time.
	//
	//    * TrainingJobEarlyStoppingType (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html#sagemaker-Type-HyperParameterTuningJobConfig-TrainingJobEarlyStoppingType):
	//    A flag that specifies whether or not to use early stopping for training
	//    jobs launched by a hyperparameter tuning job.
	//
	//    * RetryStrategy (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html#sagemaker-Type-HyperParameterTrainingJobDefinition-RetryStrategy):
	//    The number of times to retry a training job.
	//
	//    * Strategy (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html):
	//    Specifies how hyperparameter tuning chooses the combinations of hyperparameter
	//    values to use for the training jobs that it launches.
	//
	//    * ConvergenceDetected (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ConvergenceDetected.html):
	//    A flag to indicate that Automatic model tuning (AMT) has detected model
	//    convergence.
	Autotune *Autotune `type:"structure"`

	// The HyperParameterTuningJobConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html)
	// object that describes the tuning job, including the search strategy, the
	// objective metric used to evaluate training jobs, ranges of parameters to
	// search, and resource limits for the tuning job. For more information, see
	// How Hyperparameter Tuning Works (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-how-it-works.html).
	//
	// HyperParameterTuningJobConfig is a required field
	HyperParameterTuningJobConfig *HyperParameterTuningJobConfig `type:"structure" required:"true"`

	// The name of the tuning job. This name is the prefix for the names of all
	// training jobs that this tuning job launches. The name must be unique within
	// the same Amazon Web Services account and Amazon Web Services Region. The
	// name must have 1 to 32 characters. Valid characters are a-z, A-Z, 0-9, and
	// : + = @ _ % - (hyphen). The name is not case sensitive.
	//
	// HyperParameterTuningJobName is a required field
	HyperParameterTuningJobName *string `min:"1" type:"string" required:"true"`

	// An array of key-value pairs. You can use tags to categorize your Amazon Web
	// Services resources in different ways, for example, by purpose, owner, or
	// environment. For more information, see Tagging Amazon Web Services Resources
	// (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
	//
	// Tags that you specify for the tuning job are also added to all training jobs
	// that the tuning job launches.
	Tags []*Tag `type:"list"`

	// The HyperParameterTrainingJobDefinition (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html)
	// object that describes the training jobs that this tuning job launches, including
	// static hyperparameters, input data configuration, output data configuration,
	// resource configuration, and stopping condition.
	TrainingJobDefinition *HyperParameterTrainingJobDefinition `type:"structure"`

	// A list of the HyperParameterTrainingJobDefinition (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html)
	// objects launched for this tuning job.
	TrainingJobDefinitions []*HyperParameterTrainingJobDefinition `min:"1" type:"list"`

	// Specifies the configuration for starting the hyperparameter tuning job using
	// one or more previous tuning jobs as a starting point. The results of previous
	// tuning jobs are used to inform which combinations of hyperparameters to search
	// over in the new tuning job.
	//
	// All training jobs launched by the new hyperparameter tuning job are evaluated
	// by using the objective metric. If you specify IDENTICAL_DATA_AND_ALGORITHM
	// as the WarmStartType value for the warm start configuration, the training
	// job that performs the best in the new tuning job is compared to the best
	// training jobs from the parent tuning jobs. From these, the training job that
	// performs the best as measured by the objective metric is returned as the
	// overall best training job.
	//
	// All training jobs launched by parent hyperparameter tuning jobs and the new
	// hyperparameter tuning jobs count against the limit of training jobs for the
	// tuning job.
	WarmStartConfig *HyperParameterTuningJobWarmStartConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateHyperParameterTuningJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateHyperParameterTuningJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateHyperParameterTuningJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateHyperParameterTuningJobInput"}
	if s.HyperParameterTuningJobConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("HyperParameterTuningJobConfig"))
	}
	if s.HyperParameterTuningJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("HyperParameterTuningJobName"))
	}
	if s.HyperParameterTuningJobName != nil && len(*s.HyperParameterTuningJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("HyperParameterTuningJobName", 1))
	}
	if s.TrainingJobDefinitions != nil && len(s.TrainingJobDefinitions) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TrainingJobDefinitions", 1))
	}
	if s.Autotune != nil {
		if err := s.Autotune.Validate(); err != nil {
			invalidParams.AddNested("Autotune", err.(request.ErrInvalidParams))
		}
	}
	if s.HyperParameterTuningJobConfig != nil {
		if err := s.HyperParameterTuningJobConfig.Validate(); err != nil {
			invalidParams.AddNested("HyperParameterTuningJobConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.TrainingJobDefinition != nil {
		if err := s.TrainingJobDefinition.Validate(); err != nil {
			invalidParams.AddNested("TrainingJobDefinition", err.(request.ErrInvalidParams))
		}
	}
	if s.TrainingJobDefinitions != nil {
		for i, v := range s.TrainingJobDefinitions {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TrainingJobDefinitions", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.WarmStartConfig != nil {
		if err := s.WarmStartConfig.Validate(); err != nil {
			invalidParams.AddNested("WarmStartConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAutotune sets the Autotune field's value.
func (s *CreateHyperParameterTuningJobInput) SetAutotune(v *Autotune) *CreateHyperParameterTuningJobInput {
	s.Autotune = v
	return s
}

// SetHyperParameterTuningJobConfig sets the HyperParameterTuningJobConfig field's value.
func (s *CreateHyperParameterTuningJobInput) SetHyperParameterTuningJobConfig(v *HyperParameterTuningJobConfig) *CreateHyperParameterTuningJobInput {
	s.HyperParameterTuningJobConfig = v
	return s
}

// SetHyperParameterTuningJobName sets the HyperParameterTuningJobName field's value.
func (s *CreateHyperParameterTuningJobInput) SetHyperParameterTuningJobName(v string) *CreateHyperParameterTuningJobInput {
	s.HyperParameterTuningJobName = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateHyperParameterTuningJobInput) SetTags(v []*Tag) *CreateHyperParameterTuningJobInput {
	s.Tags = v
	return s
}

// SetTrainingJobDefinition sets the TrainingJobDefinition field's value.
func (s *CreateHyperParameterTuningJobInput) SetTrainingJobDefinition(v *HyperParameterTrainingJobDefinition) *CreateHyperParameterTuningJobInput {
	s.TrainingJobDefinition = v
	return s
}

// SetTrainingJobDefinitions sets the TrainingJobDefinitions field's value.
func (s *CreateHyperParameterTuningJobInput) SetTrainingJobDefinitions(v []*HyperParameterTrainingJobDefinition) *CreateHyperParameterTuningJobInput {
	s.TrainingJobDefinitions = v
	return s
}

// SetWarmStartConfig sets the WarmStartConfig field's value.
func (s *CreateHyperParameterTuningJobInput) SetWarmStartConfig(v *HyperParameterTuningJobWarmStartConfig) *CreateHyperParameterTuningJobInput {
	s.WarmStartConfig = v
	return s
}

type CreateHyperParameterTuningJobOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the tuning job. SageMaker assigns an ARN
	// to a hyperparameter tuning job when you create it.
	//
	// HyperParameterTuningJobArn is a required field
	HyperParameterTuningJobArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateHyperParameterTuningJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateHyperParameterTuningJobOutput) GoString() string {
	return s.String()
}

// SetHyperParameterTuningJobArn sets the HyperParameterTuningJobArn field's value.
func (s *CreateHyperParameterTuningJobOutput) SetHyperParameterTuningJobArn(v string) *CreateHyperParameterTuningJobOutput {
	s.HyperParameterTuningJobArn = &v
	return s
}

type CreateImageInput struct {
	_ struct{} `type:"structure"`

	// The description of the image.
	Description *string `min:"1" type:"string"`

	// The display name of the image. If not provided, ImageName is displayed.
	DisplayName *string `min:"1" type:"string"`

	// The name of the image. Must be unique to your account.
	//
	// ImageName is a required field
	ImageName *string `min:"1" type:"string" required:"true"`

	// The ARN of an IAM role that enables Amazon SageMaker to perform tasks on
	// your behalf.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// A list of tags to apply to the image.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateImageInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateImageInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateImageInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateImageInput"}
	if s.Description != nil && len(*s.Description) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
	}
	if s.DisplayName != nil && len(*s.DisplayName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1))
	}
	if s.ImageName == nil {
		invalidParams.Add(request.NewErrParamRequired("ImageName"))
	}
	if s.ImageName != nil && len(*s.ImageName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ImageName", 1))
	}
	if s.RoleArn == nil {
		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDescription sets the Description field's value.
func (s *CreateImageInput) SetDescription(v string) *CreateImageInput {
	s.Description = &v
	return s
}

// SetDisplayName sets the DisplayName field's value.
func (s *CreateImageInput) SetDisplayName(v string) *CreateImageInput {
	s.DisplayName = &v
	return s
}

// SetImageName sets the ImageName field's value.
func (s *CreateImageInput) SetImageName(v string) *CreateImageInput {
	s.ImageName = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *CreateImageInput) SetRoleArn(v string) *CreateImageInput {
	s.RoleArn = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateImageInput) SetTags(v []*Tag) *CreateImageInput {
	s.Tags = v
	return s
}

type CreateImageOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the image.
	ImageArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateImageOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateImageOutput) GoString() string {
	return s.String()
}

// SetImageArn sets the ImageArn field's value.
func (s *CreateImageOutput) SetImageArn(v string) *CreateImageOutput {
	s.ImageArn = &v
	return s
}

type CreateImageVersionInput struct {
	_ struct{} `type:"structure"`

	// A list of aliases created with the image version.
	Aliases []*string `type:"list"`

	// The registry path of the container image to use as the starting point for
	// this version. The path is an Amazon Elastic Container Registry (ECR) URI
	// in the following format:
	//
	// <acct-id>.dkr.ecr.<region>.amazonaws.com/<repo-name[:tag] or [@digest]>
	//
	// BaseImage is a required field
	BaseImage *string `min:"1" type:"string" required:"true"`

	// A unique ID. If not specified, the Amazon Web Services CLI and Amazon Web
	// Services SDKs, such as the SDK for Python (Boto3), add a unique value to
	// the call.
	ClientToken *string `min:"1" type:"string" idempotencyToken:"true"`

	// Indicates Horovod compatibility.
	Horovod *bool `type:"boolean"`

	// The ImageName of the Image to create a version of.
	//
	// ImageName is a required field
	ImageName *string `min:"1" type:"string" required:"true"`

	// Indicates SageMaker job type compatibility.
	//
	//    * TRAINING: The image version is compatible with SageMaker training jobs.
	//
	//    * INFERENCE: The image version is compatible with SageMaker inference
	//    jobs.
	//
	//    * NOTEBOOK_KERNEL: The image version is compatible with SageMaker notebook
	//    kernels.
	JobType *string `type:"string" enum:"JobType"`

	// The machine learning framework vended in the image version.
	MLFramework *string `min:"1" type:"string"`

	// Indicates CPU or GPU compatibility.
	//
	//    * CPU: The image version is compatible with CPU.
	//
	//    * GPU: The image version is compatible with GPU.
	Processor *string `type:"string" enum:"Processor"`

	// The supported programming language and its version.
	ProgrammingLang *string `min:"1" type:"string"`

	// The maintainer description of the image version.
	ReleaseNotes *string `min:"1" type:"string"`

	// The stability of the image version, specified by the maintainer.
	//
	//    * NOT_PROVIDED: The maintainers did not provide a status for image version
	//    stability.
	//
	//    * STABLE: The image version is stable.
	//
	//    * TO_BE_ARCHIVED: The image version is set to be archived. Custom image
	//    versions that are set to be archived are automatically archived after
	//    three months.
	//
	//    * ARCHIVED: The image version is archived. Archived image versions are
	//    not searchable and are no longer actively supported.
	VendorGuidance *string `type:"string" enum:"VendorGuidance"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateImageVersionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateImageVersionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateImageVersionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateImageVersionInput"}
	if s.BaseImage == nil {
		invalidParams.Add(request.NewErrParamRequired("BaseImage"))
	}
	if s.BaseImage != nil && len(*s.BaseImage) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("BaseImage", 1))
	}
	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
	}
	if s.ImageName == nil {
		invalidParams.Add(request.NewErrParamRequired("ImageName"))
	}
	if s.ImageName != nil && len(*s.ImageName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ImageName", 1))
	}
	if s.MLFramework != nil && len(*s.MLFramework) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MLFramework", 1))
	}
	if s.ProgrammingLang != nil && len(*s.ProgrammingLang) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ProgrammingLang", 1))
	}
	if s.ReleaseNotes != nil && len(*s.ReleaseNotes) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ReleaseNotes", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAliases sets the Aliases field's value.
func (s *CreateImageVersionInput) SetAliases(v []*string) *CreateImageVersionInput {
	s.Aliases = v
	return s
}

// SetBaseImage sets the BaseImage field's value.
func (s *CreateImageVersionInput) SetBaseImage(v string) *CreateImageVersionInput {
	s.BaseImage = &v
	return s
}

// SetClientToken sets the ClientToken field's value.
func (s *CreateImageVersionInput) SetClientToken(v string) *CreateImageVersionInput {
	s.ClientToken = &v
	return s
}

// SetHorovod sets the Horovod field's value.
func (s *CreateImageVersionInput) SetHorovod(v bool) *CreateImageVersionInput {
	s.Horovod = &v
	return s
}

// SetImageName sets the ImageName field's value.
func (s *CreateImageVersionInput) SetImageName(v string) *CreateImageVersionInput {
	s.ImageName = &v
	return s
}

// SetJobType sets the JobType field's value.
func (s *CreateImageVersionInput) SetJobType(v string) *CreateImageVersionInput {
	s.JobType = &v
	return s
}

// SetMLFramework sets the MLFramework field's value.
func (s *CreateImageVersionInput) SetMLFramework(v string) *CreateImageVersionInput {
	s.MLFramework = &v
	return s
}

// SetProcessor sets the Processor field's value.
func (s *CreateImageVersionInput) SetProcessor(v string) *CreateImageVersionInput {
	s.Processor = &v
	return s
}

// SetProgrammingLang sets the ProgrammingLang field's value.
func (s *CreateImageVersionInput) SetProgrammingLang(v string) *CreateImageVersionInput {
	s.ProgrammingLang = &v
	return s
}

// SetReleaseNotes sets the ReleaseNotes field's value.
func (s *CreateImageVersionInput) SetReleaseNotes(v string) *CreateImageVersionInput {
	s.ReleaseNotes = &v
	return s
}

// SetVendorGuidance sets the VendorGuidance field's value.
func (s *CreateImageVersionInput) SetVendorGuidance(v string) *CreateImageVersionInput {
	s.VendorGuidance = &v
	return s
}

type CreateImageVersionOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the image version.
	ImageVersionArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateImageVersionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateImageVersionOutput) GoString() string {
	return s.String()
}

// SetImageVersionArn sets the ImageVersionArn field's value.
func (s *CreateImageVersionOutput) SetImageVersionArn(v string) *CreateImageVersionOutput {
	s.ImageVersionArn = &v
	return s
}

type CreateInferenceComponentInput struct {
	_ struct{} `type:"structure"`

	// The name of an existing endpoint where you host the inference component.
	//
	// EndpointName is a required field
	EndpointName *string `type:"string" required:"true"`

	// A unique name to assign to the inference component.
	//
	// InferenceComponentName is a required field
	InferenceComponentName *string `type:"string" required:"true"`

	// Runtime settings for a model that is deployed with an inference component.
	//
	// RuntimeConfig is a required field
	RuntimeConfig *InferenceComponentRuntimeConfig `type:"structure" required:"true"`

	// Details about the resources to deploy with this inference component, including
	// the model, container, and compute resources.
	//
	// Specification is a required field
	Specification *InferenceComponentSpecification `type:"structure" required:"true"`

	// A list of key-value pairs associated with the model. For more information,
	// see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)
	// in the Amazon Web Services General Reference.
	Tags []*Tag `type:"list"`

	// The name of an existing production variant where you host the inference component.
	//
	// VariantName is a required field
	VariantName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateInferenceComponentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateInferenceComponentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateInferenceComponentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateInferenceComponentInput"}
	if s.EndpointName == nil {
		invalidParams.Add(request.NewErrParamRequired("EndpointName"))
	}
	if s.InferenceComponentName == nil {
		invalidParams.Add(request.NewErrParamRequired("InferenceComponentName"))
	}
	if s.RuntimeConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("RuntimeConfig"))
	}
	if s.Specification == nil {
		invalidParams.Add(request.NewErrParamRequired("Specification"))
	}
	if s.VariantName == nil {
		invalidParams.Add(request.NewErrParamRequired("VariantName"))
	}
	if s.RuntimeConfig != nil {
		if err := s.RuntimeConfig.Validate(); err != nil {
			invalidParams.AddNested("RuntimeConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.Specification != nil {
		if err := s.Specification.Validate(); err != nil {
			invalidParams.AddNested("Specification", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEndpointName sets the EndpointName field's value.
func (s *CreateInferenceComponentInput) SetEndpointName(v string) *CreateInferenceComponentInput {
	s.EndpointName = &v
	return s
}

// SetInferenceComponentName sets the InferenceComponentName field's value.
func (s *CreateInferenceComponentInput) SetInferenceComponentName(v string) *CreateInferenceComponentInput {
	s.InferenceComponentName = &v
	return s
}

// SetRuntimeConfig sets the RuntimeConfig field's value.
func (s *CreateInferenceComponentInput) SetRuntimeConfig(v *InferenceComponentRuntimeConfig) *CreateInferenceComponentInput {
	s.RuntimeConfig = v
	return s
}

// SetSpecification sets the Specification field's value.
func (s *CreateInferenceComponentInput) SetSpecification(v *InferenceComponentSpecification) *CreateInferenceComponentInput {
	s.Specification = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateInferenceComponentInput) SetTags(v []*Tag) *CreateInferenceComponentInput {
	s.Tags = v
	return s
}

// SetVariantName sets the VariantName field's value.
func (s *CreateInferenceComponentInput) SetVariantName(v string) *CreateInferenceComponentInput {
	s.VariantName = &v
	return s
}

type CreateInferenceComponentOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the inference component.
	//
	// InferenceComponentArn is a required field
	InferenceComponentArn *string `min:"20" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateInferenceComponentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateInferenceComponentOutput) GoString() string {
	return s.String()
}

// SetInferenceComponentArn sets the InferenceComponentArn field's value.
func (s *CreateInferenceComponentOutput) SetInferenceComponentArn(v string) *CreateInferenceComponentOutput {
	s.InferenceComponentArn = &v
	return s
}

type CreateInferenceExperimentInput struct {
	_ struct{} `type:"structure"`

	// The Amazon S3 location and configuration for storing inference request and
	// response data.
	//
	// This is an optional parameter that you can use for data capture. For more
	// information, see Capture data (https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-data-capture.html).
	DataStorageConfig *InferenceExperimentDataStorageConfig `type:"structure"`

	// A description for the inference experiment.
	Description *string `type:"string"`

	// The name of the Amazon SageMaker endpoint on which you want to run the inference
	// experiment.
	//
	// EndpointName is a required field
	EndpointName *string `type:"string" required:"true"`

	// The Amazon Web Services Key Management Service (Amazon Web Services KMS)
	// key that Amazon SageMaker uses to encrypt data on the storage volume attached
	// to the ML compute instance that hosts the endpoint. The KmsKey can be any
	// of the following formats:
	//
	//    * KMS key ID "1234abcd-12ab-34cd-56ef-1234567890ab"
	//
	//    * Amazon Resource Name (ARN) of a KMS key "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
	//
	//    * KMS key Alias "alias/ExampleAlias"
	//
	//    * Amazon Resource Name (ARN) of a KMS key Alias "arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"
	//
	// If you use a KMS key ID or an alias of your KMS key, the Amazon SageMaker
	// execution role must include permissions to call kms:Encrypt. If you don't
	// provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon
	// S3 for your role's account. Amazon SageMaker uses server-side encryption
	// with KMS managed keys for OutputDataConfig. If you use a bucket policy with
	// an s3:PutObject permission that only allows objects with server-side encryption,
	// set the condition key of s3:x-amz-server-side-encryption to "aws:kms". For
	// more information, see KMS managed Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html)
	// in the Amazon Simple Storage Service Developer Guide.
	//
	// The KMS key policy must grant permission to the IAM role that you specify
	// in your CreateEndpoint and UpdateEndpoint requests. For more information,
	// see Using Key Policies in Amazon Web Services KMS (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)
	// in the Amazon Web Services Key Management Service Developer Guide.
	KmsKey *string `type:"string"`

	// An array of ModelVariantConfig objects. There is one for each variant in
	// the inference experiment. Each ModelVariantConfig object in the array describes
	// the infrastructure configuration for the corresponding variant.
	//
	// ModelVariants is a required field
	ModelVariants []*ModelVariantConfig `min:"1" type:"list" required:"true"`

	// The name for the inference experiment.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// The ARN of the IAM role that Amazon SageMaker can assume to access model
	// artifacts and container images, and manage Amazon SageMaker Inference endpoints
	// for model deployment.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// The duration for which you want the inference experiment to run. If you don't
	// specify this field, the experiment automatically starts immediately upon
	// creation and concludes after 7 days.
	Schedule *InferenceExperimentSchedule `type:"structure"`

	// The configuration of ShadowMode inference experiment type. Use this field
	// to specify a production variant which takes all the inference requests, and
	// a shadow variant to which Amazon SageMaker replicates a percentage of the
	// inference requests. For the shadow variant also specify the percentage of
	// requests that Amazon SageMaker replicates.
	//
	// ShadowModeConfig is a required field
	ShadowModeConfig *ShadowModeConfig `type:"structure" required:"true"`

	// Array of key-value pairs. You can use tags to categorize your Amazon Web
	// Services resources in different ways, for example, by purpose, owner, or
	// environment. For more information, see Tagging your Amazon Web Services Resources
	// (https://docs.aws.amazon.com/ARG/latest/userguide/tagging.html).
	Tags []*Tag `type:"list"`

	// The type of the inference experiment that you want to run. The following
	// types of experiments are possible:
	//
	//    * ShadowMode: You can use this type to validate a shadow variant. For
	//    more information, see Shadow tests (https://docs.aws.amazon.com/sagemaker/latest/dg/shadow-tests.html).
	//
	// Type is a required field
	Type *string `type:"string" required:"true" enum:"InferenceExperimentType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateInferenceExperimentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateInferenceExperimentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateInferenceExperimentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateInferenceExperimentInput"}
	if s.EndpointName == nil {
		invalidParams.Add(request.NewErrParamRequired("EndpointName"))
	}
	if s.ModelVariants == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelVariants"))
	}
	if s.ModelVariants != nil && len(s.ModelVariants) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelVariants", 1))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.RoleArn == nil {
		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.ShadowModeConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("ShadowModeConfig"))
	}
	if s.Type == nil {
		invalidParams.Add(request.NewErrParamRequired("Type"))
	}
	if s.DataStorageConfig != nil {
		if err := s.DataStorageConfig.Validate(); err != nil {
			invalidParams.AddNested("DataStorageConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.ModelVariants != nil {
		for i, v := range s.ModelVariants {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ModelVariants", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.ShadowModeConfig != nil {
		if err := s.ShadowModeConfig.Validate(); err != nil {
			invalidParams.AddNested("ShadowModeConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDataStorageConfig sets the DataStorageConfig field's value.
func (s *CreateInferenceExperimentInput) SetDataStorageConfig(v *InferenceExperimentDataStorageConfig) *CreateInferenceExperimentInput {
	s.DataStorageConfig = v
	return s
}

// SetDescription sets the Description field's value.
func (s *CreateInferenceExperimentInput) SetDescription(v string) *CreateInferenceExperimentInput {
	s.Description = &v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *CreateInferenceExperimentInput) SetEndpointName(v string) *CreateInferenceExperimentInput {
	s.EndpointName = &v
	return s
}

// SetKmsKey sets the KmsKey field's value.
func (s *CreateInferenceExperimentInput) SetKmsKey(v string) *CreateInferenceExperimentInput {
	s.KmsKey = &v
	return s
}

// SetModelVariants sets the ModelVariants field's value.
func (s *CreateInferenceExperimentInput) SetModelVariants(v []*ModelVariantConfig) *CreateInferenceExperimentInput {
	s.ModelVariants = v
	return s
}

// SetName sets the Name field's value.
func (s *CreateInferenceExperimentInput) SetName(v string) *CreateInferenceExperimentInput {
	s.Name = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *CreateInferenceExperimentInput) SetRoleArn(v string) *CreateInferenceExperimentInput {
	s.RoleArn = &v
	return s
}

// SetSchedule sets the Schedule field's value.
func (s *CreateInferenceExperimentInput) SetSchedule(v *InferenceExperimentSchedule) *CreateInferenceExperimentInput {
	s.Schedule = v
	return s
}

// SetShadowModeConfig sets the ShadowModeConfig field's value.
func (s *CreateInferenceExperimentInput) SetShadowModeConfig(v *ShadowModeConfig) *CreateInferenceExperimentInput {
	s.ShadowModeConfig = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateInferenceExperimentInput) SetTags(v []*Tag) *CreateInferenceExperimentInput {
	s.Tags = v
	return s
}

// SetType sets the Type field's value.
func (s *CreateInferenceExperimentInput) SetType(v string) *CreateInferenceExperimentInput {
	s.Type = &v
	return s
}

type CreateInferenceExperimentOutput struct {
	_ struct{} `type:"structure"`

	// The ARN for your inference experiment.
	//
	// InferenceExperimentArn is a required field
	InferenceExperimentArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateInferenceExperimentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateInferenceExperimentOutput) GoString() string {
	return s.String()
}

// SetInferenceExperimentArn sets the InferenceExperimentArn field's value.
func (s *CreateInferenceExperimentOutput) SetInferenceExperimentArn(v string) *CreateInferenceExperimentOutput {
	s.InferenceExperimentArn = &v
	return s
}

type CreateInferenceRecommendationsJobInput struct {
	_ struct{} `type:"structure"`

	// Provides information about the versioned model package Amazon Resource Name
	// (ARN), the traffic pattern, and endpoint configurations.
	//
	// InputConfig is a required field
	InputConfig *RecommendationJobInputConfig `type:"structure" required:"true"`

	// Description of the recommendation job.
	JobDescription *string `type:"string"`

	// A name for the recommendation job. The name must be unique within the Amazon
	// Web Services Region and within your Amazon Web Services account. The job
	// name is passed down to the resources created by the recommendation job. The
	// names of resources (such as the model, endpoint configuration, endpoint,
	// and compilation) that are prefixed with the job name are truncated at 40
	// characters.
	//
	// JobName is a required field
	JobName *string `min:"1" type:"string" required:"true"`

	// Defines the type of recommendation job. Specify Default to initiate an instance
	// recommendation and Advanced to initiate a load test. If left unspecified,
	// Amazon SageMaker Inference Recommender will run an instance recommendation
	// (DEFAULT) job.
	//
	// JobType is a required field
	JobType *string `type:"string" required:"true" enum:"RecommendationJobType"`

	// Provides information about the output artifacts and the KMS key to use for
	// Amazon S3 server-side encryption.
	OutputConfig *RecommendationJobOutputConfig `type:"structure"`

	// The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker
	// to perform tasks on your behalf.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// A set of conditions for stopping a recommendation job. If any of the conditions
	// are met, the job is automatically stopped.
	StoppingConditions *RecommendationJobStoppingConditions `type:"structure"`

	// The metadata that you apply to Amazon Web Services resources to help you
	// categorize and organize them. Each tag consists of a key and a value, both
	// of which you define. For more information, see Tagging Amazon Web Services
	// Resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)
	// in the Amazon Web Services General Reference.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateInferenceRecommendationsJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateInferenceRecommendationsJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateInferenceRecommendationsJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateInferenceRecommendationsJobInput"}
	if s.InputConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("InputConfig"))
	}
	if s.JobName == nil {
		invalidParams.Add(request.NewErrParamRequired("JobName"))
	}
	if s.JobName != nil && len(*s.JobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("JobName", 1))
	}
	if s.JobType == nil {
		invalidParams.Add(request.NewErrParamRequired("JobType"))
	}
	if s.RoleArn == nil {
		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.InputConfig != nil {
		if err := s.InputConfig.Validate(); err != nil {
			invalidParams.AddNested("InputConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.StoppingConditions != nil {
		if err := s.StoppingConditions.Validate(); err != nil {
			invalidParams.AddNested("StoppingConditions", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetInputConfig sets the InputConfig field's value.
func (s *CreateInferenceRecommendationsJobInput) SetInputConfig(v *RecommendationJobInputConfig) *CreateInferenceRecommendationsJobInput {
	s.InputConfig = v
	return s
}

// SetJobDescription sets the JobDescription field's value.
func (s *CreateInferenceRecommendationsJobInput) SetJobDescription(v string) *CreateInferenceRecommendationsJobInput {
	s.JobDescription = &v
	return s
}

// SetJobName sets the JobName field's value.
func (s *CreateInferenceRecommendationsJobInput) SetJobName(v string) *CreateInferenceRecommendationsJobInput {
	s.JobName = &v
	return s
}

// SetJobType sets the JobType field's value.
func (s *CreateInferenceRecommendationsJobInput) SetJobType(v string) *CreateInferenceRecommendationsJobInput {
	s.JobType = &v
	return s
}

// SetOutputConfig sets the OutputConfig field's value.
func (s *CreateInferenceRecommendationsJobInput) SetOutputConfig(v *RecommendationJobOutputConfig) *CreateInferenceRecommendationsJobInput {
	s.OutputConfig = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *CreateInferenceRecommendationsJobInput) SetRoleArn(v string) *CreateInferenceRecommendationsJobInput {
	s.RoleArn = &v
	return s
}

// SetStoppingConditions sets the StoppingConditions field's value.
func (s *CreateInferenceRecommendationsJobInput) SetStoppingConditions(v *RecommendationJobStoppingConditions) *CreateInferenceRecommendationsJobInput {
	s.StoppingConditions = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateInferenceRecommendationsJobInput) SetTags(v []*Tag) *CreateInferenceRecommendationsJobInput {
	s.Tags = v
	return s
}

type CreateInferenceRecommendationsJobOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the recommendation job.
	//
	// JobArn is a required field
	JobArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateInferenceRecommendationsJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateInferenceRecommendationsJobOutput) GoString() string {
	return s.String()
}

// SetJobArn sets the JobArn field's value.
func (s *CreateInferenceRecommendationsJobOutput) SetJobArn(v string) *CreateInferenceRecommendationsJobOutput {
	s.JobArn = &v
	return s
}

type CreateLabelingJobInput struct {
	_ struct{} `type:"structure"`

	// Configures the labeling task and how it is presented to workers; including,
	// but not limited to price, keywords, and batch size (task count).
	//
	// HumanTaskConfig is a required field
	HumanTaskConfig *HumanTaskConfig `type:"structure" required:"true"`

	// Input data for the labeling job, such as the Amazon S3 location of the data
	// objects and the location of the manifest file that describes the data objects.
	//
	// You must specify at least one of the following: S3DataSource or SnsDataSource.
	//
	//    * Use SnsDataSource to specify an SNS input topic for a streaming labeling
	//    job. If you do not specify and SNS input topic ARN, Ground Truth will
	//    create a one-time labeling job that stops after all data objects in the
	//    input manifest file have been labeled.
	//
	//    * Use S3DataSource to specify an input manifest file for both streaming
	//    and one-time labeling jobs. Adding an S3DataSource is optional if you
	//    use SnsDataSource to create a streaming labeling job.
	//
	// If you use the Amazon Mechanical Turk workforce, your input data should not
	// include confidential information, personal information or protected health
	// information. Use ContentClassifiers to specify that your data is free of
	// personally identifiable information and adult content.
	//
	// InputConfig is a required field
	InputConfig *LabelingJobInputConfig `type:"structure" required:"true"`

	// The attribute name to use for the label in the output manifest file. This
	// is the key for the key/value pair formed with the label that a worker assigns
	// to the object. The LabelAttributeName must meet the following requirements.
	//
	//    * The name can't end with "-metadata".
	//
	//    * If you are using one of the following built-in task types (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html),
	//    the attribute name must end with "-ref". If the task type you are using
	//    is not listed below, the attribute name must not end with "-ref". Image
	//    semantic segmentation (SemanticSegmentation), and adjustment (AdjustmentSemanticSegmentation)
	//    and verification (VerificationSemanticSegmentation) labeling jobs for
	//    this task type. Video frame object detection (VideoObjectDetection), and
	//    adjustment and verification (AdjustmentVideoObjectDetection) labeling
	//    jobs for this task type. Video frame object tracking (VideoObjectTracking),
	//    and adjustment and verification (AdjustmentVideoObjectTracking) labeling
	//    jobs for this task type. 3D point cloud semantic segmentation (3DPointCloudSemanticSegmentation),
	//    and adjustment and verification (Adjustment3DPointCloudSemanticSegmentation)
	//    labeling jobs for this task type. 3D point cloud object tracking (3DPointCloudObjectTracking),
	//    and adjustment and verification (Adjustment3DPointCloudObjectTracking)
	//    labeling jobs for this task type.
	//
	// If you are creating an adjustment or verification labeling job, you must
	// use a different LabelAttributeName than the one used in the original labeling
	// job. The original labeling job is the Ground Truth labeling job that produced
	// the labels that you want verified or adjusted. To learn more about adjustment
	// and verification labeling jobs, see Verify and Adjust Labels (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-verification-data.html).
	//
	// LabelAttributeName is a required field
	LabelAttributeName *string `min:"1" type:"string" required:"true"`

	// The S3 URI of the file, referred to as a label category configuration file,
	// that defines the categories used to label the data objects.
	//
	// For 3D point cloud and video frame task types, you can add label category
	// attributes and frame attributes to your label category configuration file.
	// To learn how, see Create a Labeling Category Configuration File for 3D Point
	// Cloud Labeling Jobs (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-point-cloud-label-category-config.html).
	//
	// For named entity recognition jobs, in addition to "labels", you must provide
	// worker instructions in the label category configuration file using the "instructions"
	// parameter: "instructions": {"shortInstruction":"<h1>Add header</h1><p>Add
	// Instructions</p>", "fullInstruction":"<p>Add additional instructions.</p>"}.
	// For details and an example, see Create a Named Entity Recognition Labeling
	// Job (API) (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-named-entity-recg.html#sms-creating-ner-api).
	//
	// For all other built-in task types (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html)
	// and custom tasks (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-custom-templates.html),
	// your label category configuration file must be a JSON file in the following
	// format. Identify the labels you want to use by replacing label_1, label_2,...,label_n
	// with your label categories.
	//
	// {
	//
	// "document-version": "2018-11-28",
	//
	// "labels": [{"label": "label_1"},{"label": "label_2"},...{"label": "label_n"}]
	//
	// }
	//
	// Note the following about the label category configuration file:
	//
	//    * For image classification and text classification (single and multi-label)
	//    you must specify at least two label categories. For all other task types,
	//    the minimum number of label categories required is one.
	//
	//    * Each label category must be unique, you cannot specify duplicate label
	//    categories.
	//
	//    * If you create a 3D point cloud or video frame adjustment or verification
	//    labeling job, you must include auditLabelAttributeName in the label category
	//    configuration. Use this parameter to enter the LabelAttributeName (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html#sagemaker-CreateLabelingJob-request-LabelAttributeName)
	//    of the labeling job you want to adjust or verify annotations of.
	LabelCategoryConfigS3Uri *string `type:"string"`

	// Configures the information required to perform automated data labeling.
	LabelingJobAlgorithmsConfig *LabelingJobAlgorithmsConfig `type:"structure"`

	// The name of the labeling job. This name is used to identify the job in a
	// list of labeling jobs. Labeling job names must be unique within an Amazon
	// Web Services account and region. LabelingJobName is not case sensitive. For
	// example, Example-job and example-job are considered the same labeling job
	// name by Ground Truth.
	//
	// LabelingJobName is a required field
	LabelingJobName *string `min:"1" type:"string" required:"true"`

	// The location of the output data and the Amazon Web Services Key Management
	// Service key ID for the key used to encrypt the output data, if any.
	//
	// OutputConfig is a required field
	OutputConfig *LabelingJobOutputConfig `type:"structure" required:"true"`

	// The Amazon Resource Number (ARN) that Amazon SageMaker assumes to perform
	// tasks on your behalf during data labeling. You must grant this role the necessary
	// permissions so that Amazon SageMaker can successfully complete data labeling.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// A set of conditions for stopping the labeling job. If any of the conditions
	// are met, the job is automatically stopped. You can use these conditions to
	// control the cost of data labeling.
	StoppingConditions *LabelingJobStoppingConditions `type:"structure"`

	// An array of key/value pairs. For more information, see Using Cost Allocation
	// Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-what)
	// in the Amazon Web Services Billing and Cost Management User Guide.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateLabelingJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateLabelingJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateLabelingJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateLabelingJobInput"}
	if s.HumanTaskConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("HumanTaskConfig"))
	}
	if s.InputConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("InputConfig"))
	}
	if s.LabelAttributeName == nil {
		invalidParams.Add(request.NewErrParamRequired("LabelAttributeName"))
	}
	if s.LabelAttributeName != nil && len(*s.LabelAttributeName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("LabelAttributeName", 1))
	}
	if s.LabelingJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("LabelingJobName"))
	}
	if s.LabelingJobName != nil && len(*s.LabelingJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("LabelingJobName", 1))
	}
	if s.OutputConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("OutputConfig"))
	}
	if s.RoleArn == nil {
		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.HumanTaskConfig != nil {
		if err := s.HumanTaskConfig.Validate(); err != nil {
			invalidParams.AddNested("HumanTaskConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.InputConfig != nil {
		if err := s.InputConfig.Validate(); err != nil {
			invalidParams.AddNested("InputConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.LabelingJobAlgorithmsConfig != nil {
		if err := s.LabelingJobAlgorithmsConfig.Validate(); err != nil {
			invalidParams.AddNested("LabelingJobAlgorithmsConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.OutputConfig != nil {
		if err := s.OutputConfig.Validate(); err != nil {
			invalidParams.AddNested("OutputConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.StoppingConditions != nil {
		if err := s.StoppingConditions.Validate(); err != nil {
			invalidParams.AddNested("StoppingConditions", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetHumanTaskConfig sets the HumanTaskConfig field's value.
func (s *CreateLabelingJobInput) SetHumanTaskConfig(v *HumanTaskConfig) *CreateLabelingJobInput {
	s.HumanTaskConfig = v
	return s
}

// SetInputConfig sets the InputConfig field's value.
func (s *CreateLabelingJobInput) SetInputConfig(v *LabelingJobInputConfig) *CreateLabelingJobInput {
	s.InputConfig = v
	return s
}

// SetLabelAttributeName sets the LabelAttributeName field's value.
func (s *CreateLabelingJobInput) SetLabelAttributeName(v string) *CreateLabelingJobInput {
	s.LabelAttributeName = &v
	return s
}

// SetLabelCategoryConfigS3Uri sets the LabelCategoryConfigS3Uri field's value.
func (s *CreateLabelingJobInput) SetLabelCategoryConfigS3Uri(v string) *CreateLabelingJobInput {
	s.LabelCategoryConfigS3Uri = &v
	return s
}

// SetLabelingJobAlgorithmsConfig sets the LabelingJobAlgorithmsConfig field's value.
func (s *CreateLabelingJobInput) SetLabelingJobAlgorithmsConfig(v *LabelingJobAlgorithmsConfig) *CreateLabelingJobInput {
	s.LabelingJobAlgorithmsConfig = v
	return s
}

// SetLabelingJobName sets the LabelingJobName field's value.
func (s *CreateLabelingJobInput) SetLabelingJobName(v string) *CreateLabelingJobInput {
	s.LabelingJobName = &v
	return s
}

// SetOutputConfig sets the OutputConfig field's value.
func (s *CreateLabelingJobInput) SetOutputConfig(v *LabelingJobOutputConfig) *CreateLabelingJobInput {
	s.OutputConfig = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *CreateLabelingJobInput) SetRoleArn(v string) *CreateLabelingJobInput {
	s.RoleArn = &v
	return s
}

// SetStoppingConditions sets the StoppingConditions field's value.
func (s *CreateLabelingJobInput) SetStoppingConditions(v *LabelingJobStoppingConditions) *CreateLabelingJobInput {
	s.StoppingConditions = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateLabelingJobInput) SetTags(v []*Tag) *CreateLabelingJobInput {
	s.Tags = v
	return s
}

type CreateLabelingJobOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the labeling job. You use this ARN to identify
	// the labeling job.
	//
	// LabelingJobArn is a required field
	LabelingJobArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateLabelingJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateLabelingJobOutput) GoString() string {
	return s.String()
}

// SetLabelingJobArn sets the LabelingJobArn field's value.
func (s *CreateLabelingJobOutput) SetLabelingJobArn(v string) *CreateLabelingJobOutput {
	s.LabelingJobArn = &v
	return s
}

type CreateModelBiasJobDefinitionInput struct {
	_ struct{} `type:"structure"`

	// The name of the bias job definition. The name must be unique within an Amazon
	// Web Services Region in the Amazon Web Services account.
	//
	// JobDefinitionName is a required field
	JobDefinitionName *string `min:"1" type:"string" required:"true"`

	// Identifies the resources to deploy for a monitoring job.
	//
	// JobResources is a required field
	JobResources *MonitoringResources `type:"structure" required:"true"`

	// Configures the model bias job to run a specified Docker container image.
	//
	// ModelBiasAppSpecification is a required field
	ModelBiasAppSpecification *ModelBiasAppSpecification `type:"structure" required:"true"`

	// The baseline configuration for a model bias job.
	ModelBiasBaselineConfig *ModelBiasBaselineConfig `type:"structure"`

	// Inputs for the model bias job.
	//
	// ModelBiasJobInput is a required field
	ModelBiasJobInput *ModelBiasJobInput `type:"structure" required:"true"`

	// The output configuration for monitoring jobs.
	//
	// ModelBiasJobOutputConfig is a required field
	ModelBiasJobOutputConfig *MonitoringOutputConfig `type:"structure" required:"true"`

	// Networking options for a model bias job.
	NetworkConfig *MonitoringNetworkConfig `type:"structure"`

	// The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume
	// to perform tasks on your behalf.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// A time limit for how long the monitoring job is allowed to run before stopping.
	StoppingCondition *MonitoringStoppingCondition `type:"structure"`

	// (Optional) An array of key-value pairs. For more information, see Using Cost
	// Allocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL)
	// in the Amazon Web Services Billing and Cost Management User Guide.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelBiasJobDefinitionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelBiasJobDefinitionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateModelBiasJobDefinitionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateModelBiasJobDefinitionInput"}
	if s.JobDefinitionName == nil {
		invalidParams.Add(request.NewErrParamRequired("JobDefinitionName"))
	}
	if s.JobDefinitionName != nil && len(*s.JobDefinitionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("JobDefinitionName", 1))
	}
	if s.JobResources == nil {
		invalidParams.Add(request.NewErrParamRequired("JobResources"))
	}
	if s.ModelBiasAppSpecification == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelBiasAppSpecification"))
	}
	if s.ModelBiasJobInput == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelBiasJobInput"))
	}
	if s.ModelBiasJobOutputConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelBiasJobOutputConfig"))
	}
	if s.RoleArn == nil {
		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.JobResources != nil {
		if err := s.JobResources.Validate(); err != nil {
			invalidParams.AddNested("JobResources", err.(request.ErrInvalidParams))
		}
	}
	if s.ModelBiasAppSpecification != nil {
		if err := s.ModelBiasAppSpecification.Validate(); err != nil {
			invalidParams.AddNested("ModelBiasAppSpecification", err.(request.ErrInvalidParams))
		}
	}
	if s.ModelBiasBaselineConfig != nil {
		if err := s.ModelBiasBaselineConfig.Validate(); err != nil {
			invalidParams.AddNested("ModelBiasBaselineConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.ModelBiasJobInput != nil {
		if err := s.ModelBiasJobInput.Validate(); err != nil {
			invalidParams.AddNested("ModelBiasJobInput", err.(request.ErrInvalidParams))
		}
	}
	if s.ModelBiasJobOutputConfig != nil {
		if err := s.ModelBiasJobOutputConfig.Validate(); err != nil {
			invalidParams.AddNested("ModelBiasJobOutputConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.NetworkConfig != nil {
		if err := s.NetworkConfig.Validate(); err != nil {
			invalidParams.AddNested("NetworkConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.StoppingCondition != nil {
		if err := s.StoppingCondition.Validate(); err != nil {
			invalidParams.AddNested("StoppingCondition", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetJobDefinitionName sets the JobDefinitionName field's value.
func (s *CreateModelBiasJobDefinitionInput) SetJobDefinitionName(v string) *CreateModelBiasJobDefinitionInput {
	s.JobDefinitionName = &v
	return s
}

// SetJobResources sets the JobResources field's value.
func (s *CreateModelBiasJobDefinitionInput) SetJobResources(v *MonitoringResources) *CreateModelBiasJobDefinitionInput {
	s.JobResources = v
	return s
}

// SetModelBiasAppSpecification sets the ModelBiasAppSpecification field's value.
func (s *CreateModelBiasJobDefinitionInput) SetModelBiasAppSpecification(v *ModelBiasAppSpecification) *CreateModelBiasJobDefinitionInput {
	s.ModelBiasAppSpecification = v
	return s
}

// SetModelBiasBaselineConfig sets the ModelBiasBaselineConfig field's value.
func (s *CreateModelBiasJobDefinitionInput) SetModelBiasBaselineConfig(v *ModelBiasBaselineConfig) *CreateModelBiasJobDefinitionInput {
	s.ModelBiasBaselineConfig = v
	return s
}

// SetModelBiasJobInput sets the ModelBiasJobInput field's value.
func (s *CreateModelBiasJobDefinitionInput) SetModelBiasJobInput(v *ModelBiasJobInput) *CreateModelBiasJobDefinitionInput {
	s.ModelBiasJobInput = v
	return s
}

// SetModelBiasJobOutputConfig sets the ModelBiasJobOutputConfig field's value.
func (s *CreateModelBiasJobDefinitionInput) SetModelBiasJobOutputConfig(v *MonitoringOutputConfig) *CreateModelBiasJobDefinitionInput {
	s.ModelBiasJobOutputConfig = v
	return s
}

// SetNetworkConfig sets the NetworkConfig field's value.
func (s *CreateModelBiasJobDefinitionInput) SetNetworkConfig(v *MonitoringNetworkConfig) *CreateModelBiasJobDefinitionInput {
	s.NetworkConfig = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *CreateModelBiasJobDefinitionInput) SetRoleArn(v string) *CreateModelBiasJobDefinitionInput {
	s.RoleArn = &v
	return s
}

// SetStoppingCondition sets the StoppingCondition field's value.
func (s *CreateModelBiasJobDefinitionInput) SetStoppingCondition(v *MonitoringStoppingCondition) *CreateModelBiasJobDefinitionInput {
	s.StoppingCondition = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateModelBiasJobDefinitionInput) SetTags(v []*Tag) *CreateModelBiasJobDefinitionInput {
	s.Tags = v
	return s
}

type CreateModelBiasJobDefinitionOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the model bias job.
	//
	// JobDefinitionArn is a required field
	JobDefinitionArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelBiasJobDefinitionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelBiasJobDefinitionOutput) GoString() string {
	return s.String()
}

// SetJobDefinitionArn sets the JobDefinitionArn field's value.
func (s *CreateModelBiasJobDefinitionOutput) SetJobDefinitionArn(v string) *CreateModelBiasJobDefinitionOutput {
	s.JobDefinitionArn = &v
	return s
}

type CreateModelCardExportJobInput struct {
	_ struct{} `type:"structure"`

	// The name of the model card export job.
	//
	// ModelCardExportJobName is a required field
	ModelCardExportJobName *string `min:"1" type:"string" required:"true"`

	// The name or Amazon Resource Name (ARN) of the model card to export.
	//
	// ModelCardName is a required field
	ModelCardName *string `min:"1" type:"string" required:"true"`

	// The version of the model card to export. If a version is not provided, then
	// the latest version of the model card is exported.
	ModelCardVersion *int64 `type:"integer"`

	// The model card output configuration that specifies the Amazon S3 path for
	// exporting.
	//
	// OutputConfig is a required field
	OutputConfig *ModelCardExportOutputConfig `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelCardExportJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelCardExportJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateModelCardExportJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateModelCardExportJobInput"}
	if s.ModelCardExportJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelCardExportJobName"))
	}
	if s.ModelCardExportJobName != nil && len(*s.ModelCardExportJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelCardExportJobName", 1))
	}
	if s.ModelCardName == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelCardName"))
	}
	if s.ModelCardName != nil && len(*s.ModelCardName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelCardName", 1))
	}
	if s.OutputConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("OutputConfig"))
	}
	if s.OutputConfig != nil {
		if err := s.OutputConfig.Validate(); err != nil {
			invalidParams.AddNested("OutputConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetModelCardExportJobName sets the ModelCardExportJobName field's value.
func (s *CreateModelCardExportJobInput) SetModelCardExportJobName(v string) *CreateModelCardExportJobInput {
	s.ModelCardExportJobName = &v
	return s
}

// SetModelCardName sets the ModelCardName field's value.
func (s *CreateModelCardExportJobInput) SetModelCardName(v string) *CreateModelCardExportJobInput {
	s.ModelCardName = &v
	return s
}

// SetModelCardVersion sets the ModelCardVersion field's value.
func (s *CreateModelCardExportJobInput) SetModelCardVersion(v int64) *CreateModelCardExportJobInput {
	s.ModelCardVersion = &v
	return s
}

// SetOutputConfig sets the OutputConfig field's value.
func (s *CreateModelCardExportJobInput) SetOutputConfig(v *ModelCardExportOutputConfig) *CreateModelCardExportJobInput {
	s.OutputConfig = v
	return s
}

type CreateModelCardExportJobOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the model card export job.
	//
	// ModelCardExportJobArn is a required field
	ModelCardExportJobArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelCardExportJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelCardExportJobOutput) GoString() string {
	return s.String()
}

// SetModelCardExportJobArn sets the ModelCardExportJobArn field's value.
func (s *CreateModelCardExportJobOutput) SetModelCardExportJobArn(v string) *CreateModelCardExportJobOutput {
	s.ModelCardExportJobArn = &v
	return s
}

type CreateModelCardInput struct {
	_ struct{} `type:"structure"`

	// The content of the model card. Content must be in model card JSON schema
	// (https://docs.aws.amazon.com/sagemaker/latest/dg/model-cards.html#model-cards-json-schema)
	// and provided as a string.
	//
	// Content is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateModelCardInput's
	// String and GoString methods.
	//
	// Content is a required field
	Content *string `type:"string" required:"true" sensitive:"true"`

	// The unique name of the model card.
	//
	// ModelCardName is a required field
	ModelCardName *string `min:"1" type:"string" required:"true"`

	// The approval status of the model card within your organization. Different
	// organizations might have different criteria for model card review and approval.
	//
	//    * Draft: The model card is a work in progress.
	//
	//    * PendingReview: The model card is pending review.
	//
	//    * Approved: The model card is approved.
	//
	//    * Archived: The model card is archived. No more updates should be made
	//    to the model card, but it can still be exported.
	//
	// ModelCardStatus is a required field
	ModelCardStatus *string `type:"string" required:"true" enum:"ModelCardStatus"`

	// An optional Key Management Service key to encrypt, decrypt, and re-encrypt
	// model card content for regulated workloads with highly sensitive data.
	SecurityConfig *ModelCardSecurityConfig `type:"structure"`

	// Key-value pairs used to manage metadata for model cards.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelCardInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelCardInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateModelCardInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateModelCardInput"}
	if s.Content == nil {
		invalidParams.Add(request.NewErrParamRequired("Content"))
	}
	if s.ModelCardName == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelCardName"))
	}
	if s.ModelCardName != nil && len(*s.ModelCardName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelCardName", 1))
	}
	if s.ModelCardStatus == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelCardStatus"))
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContent sets the Content field's value.
func (s *CreateModelCardInput) SetContent(v string) *CreateModelCardInput {
	s.Content = &v
	return s
}

// SetModelCardName sets the ModelCardName field's value.
func (s *CreateModelCardInput) SetModelCardName(v string) *CreateModelCardInput {
	s.ModelCardName = &v
	return s
}

// SetModelCardStatus sets the ModelCardStatus field's value.
func (s *CreateModelCardInput) SetModelCardStatus(v string) *CreateModelCardInput {
	s.ModelCardStatus = &v
	return s
}

// SetSecurityConfig sets the SecurityConfig field's value.
func (s *CreateModelCardInput) SetSecurityConfig(v *ModelCardSecurityConfig) *CreateModelCardInput {
	s.SecurityConfig = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateModelCardInput) SetTags(v []*Tag) *CreateModelCardInput {
	s.Tags = v
	return s
}

type CreateModelCardOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the successfully created model card.
	//
	// ModelCardArn is a required field
	ModelCardArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelCardOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelCardOutput) GoString() string {
	return s.String()
}

// SetModelCardArn sets the ModelCardArn field's value.
func (s *CreateModelCardOutput) SetModelCardArn(v string) *CreateModelCardOutput {
	s.ModelCardArn = &v
	return s
}

type CreateModelExplainabilityJobDefinitionInput struct {
	_ struct{} `type:"structure"`

	// The name of the model explainability job definition. The name must be unique
	// within an Amazon Web Services Region in the Amazon Web Services account.
	//
	// JobDefinitionName is a required field
	JobDefinitionName *string `min:"1" type:"string" required:"true"`

	// Identifies the resources to deploy for a monitoring job.
	//
	// JobResources is a required field
	JobResources *MonitoringResources `type:"structure" required:"true"`

	// Configures the model explainability job to run a specified Docker container
	// image.
	//
	// ModelExplainabilityAppSpecification is a required field
	ModelExplainabilityAppSpecification *ModelExplainabilityAppSpecification `type:"structure" required:"true"`

	// The baseline configuration for a model explainability job.
	ModelExplainabilityBaselineConfig *ModelExplainabilityBaselineConfig `type:"structure"`

	// Inputs for the model explainability job.
	//
	// ModelExplainabilityJobInput is a required field
	ModelExplainabilityJobInput *ModelExplainabilityJobInput `type:"structure" required:"true"`

	// The output configuration for monitoring jobs.
	//
	// ModelExplainabilityJobOutputConfig is a required field
	ModelExplainabilityJobOutputConfig *MonitoringOutputConfig `type:"structure" required:"true"`

	// Networking options for a model explainability job.
	NetworkConfig *MonitoringNetworkConfig `type:"structure"`

	// The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume
	// to perform tasks on your behalf.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// A time limit for how long the monitoring job is allowed to run before stopping.
	StoppingCondition *MonitoringStoppingCondition `type:"structure"`

	// (Optional) An array of key-value pairs. For more information, see Using Cost
	// Allocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL)
	// in the Amazon Web Services Billing and Cost Management User Guide.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelExplainabilityJobDefinitionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelExplainabilityJobDefinitionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateModelExplainabilityJobDefinitionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateModelExplainabilityJobDefinitionInput"}
	if s.JobDefinitionName == nil {
		invalidParams.Add(request.NewErrParamRequired("JobDefinitionName"))
	}
	if s.JobDefinitionName != nil && len(*s.JobDefinitionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("JobDefinitionName", 1))
	}
	if s.JobResources == nil {
		invalidParams.Add(request.NewErrParamRequired("JobResources"))
	}
	if s.ModelExplainabilityAppSpecification == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelExplainabilityAppSpecification"))
	}
	if s.ModelExplainabilityJobInput == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelExplainabilityJobInput"))
	}
	if s.ModelExplainabilityJobOutputConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelExplainabilityJobOutputConfig"))
	}
	if s.RoleArn == nil {
		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.JobResources != nil {
		if err := s.JobResources.Validate(); err != nil {
			invalidParams.AddNested("JobResources", err.(request.ErrInvalidParams))
		}
	}
	if s.ModelExplainabilityAppSpecification != nil {
		if err := s.ModelExplainabilityAppSpecification.Validate(); err != nil {
			invalidParams.AddNested("ModelExplainabilityAppSpecification", err.(request.ErrInvalidParams))
		}
	}
	if s.ModelExplainabilityBaselineConfig != nil {
		if err := s.ModelExplainabilityBaselineConfig.Validate(); err != nil {
			invalidParams.AddNested("ModelExplainabilityBaselineConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.ModelExplainabilityJobInput != nil {
		if err := s.ModelExplainabilityJobInput.Validate(); err != nil {
			invalidParams.AddNested("ModelExplainabilityJobInput", err.(request.ErrInvalidParams))
		}
	}
	if s.ModelExplainabilityJobOutputConfig != nil {
		if err := s.ModelExplainabilityJobOutputConfig.Validate(); err != nil {
			invalidParams.AddNested("ModelExplainabilityJobOutputConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.NetworkConfig != nil {
		if err := s.NetworkConfig.Validate(); err != nil {
			invalidParams.AddNested("NetworkConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.StoppingCondition != nil {
		if err := s.StoppingCondition.Validate(); err != nil {
			invalidParams.AddNested("StoppingCondition", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetJobDefinitionName sets the JobDefinitionName field's value.
func (s *CreateModelExplainabilityJobDefinitionInput) SetJobDefinitionName(v string) *CreateModelExplainabilityJobDefinitionInput {
	s.JobDefinitionName = &v
	return s
}

// SetJobResources sets the JobResources field's value.
func (s *CreateModelExplainabilityJobDefinitionInput) SetJobResources(v *MonitoringResources) *CreateModelExplainabilityJobDefinitionInput {
	s.JobResources = v
	return s
}

// SetModelExplainabilityAppSpecification sets the ModelExplainabilityAppSpecification field's value.
func (s *CreateModelExplainabilityJobDefinitionInput) SetModelExplainabilityAppSpecification(v *ModelExplainabilityAppSpecification) *CreateModelExplainabilityJobDefinitionInput {
	s.ModelExplainabilityAppSpecification = v
	return s
}

// SetModelExplainabilityBaselineConfig sets the ModelExplainabilityBaselineConfig field's value.
func (s *CreateModelExplainabilityJobDefinitionInput) SetModelExplainabilityBaselineConfig(v *ModelExplainabilityBaselineConfig) *CreateModelExplainabilityJobDefinitionInput {
	s.ModelExplainabilityBaselineConfig = v
	return s
}

// SetModelExplainabilityJobInput sets the ModelExplainabilityJobInput field's value.
func (s *CreateModelExplainabilityJobDefinitionInput) SetModelExplainabilityJobInput(v *ModelExplainabilityJobInput) *CreateModelExplainabilityJobDefinitionInput {
	s.ModelExplainabilityJobInput = v
	return s
}

// SetModelExplainabilityJobOutputConfig sets the ModelExplainabilityJobOutputConfig field's value.
func (s *CreateModelExplainabilityJobDefinitionInput) SetModelExplainabilityJobOutputConfig(v *MonitoringOutputConfig) *CreateModelExplainabilityJobDefinitionInput {
	s.ModelExplainabilityJobOutputConfig = v
	return s
}

// SetNetworkConfig sets the NetworkConfig field's value.
func (s *CreateModelExplainabilityJobDefinitionInput) SetNetworkConfig(v *MonitoringNetworkConfig) *CreateModelExplainabilityJobDefinitionInput {
	s.NetworkConfig = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *CreateModelExplainabilityJobDefinitionInput) SetRoleArn(v string) *CreateModelExplainabilityJobDefinitionInput {
	s.RoleArn = &v
	return s
}

// SetStoppingCondition sets the StoppingCondition field's value.
func (s *CreateModelExplainabilityJobDefinitionInput) SetStoppingCondition(v *MonitoringStoppingCondition) *CreateModelExplainabilityJobDefinitionInput {
	s.StoppingCondition = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateModelExplainabilityJobDefinitionInput) SetTags(v []*Tag) *CreateModelExplainabilityJobDefinitionInput {
	s.Tags = v
	return s
}

type CreateModelExplainabilityJobDefinitionOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the model explainability job.
	//
	// JobDefinitionArn is a required field
	JobDefinitionArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelExplainabilityJobDefinitionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelExplainabilityJobDefinitionOutput) GoString() string {
	return s.String()
}

// SetJobDefinitionArn sets the JobDefinitionArn field's value.
func (s *CreateModelExplainabilityJobDefinitionOutput) SetJobDefinitionArn(v string) *CreateModelExplainabilityJobDefinitionOutput {
	s.JobDefinitionArn = &v
	return s
}

type CreateModelInput struct {
	_ struct{} `type:"structure"`

	// Specifies the containers in the inference pipeline.
	Containers []*ContainerDefinition `type:"list"`

	// Isolates the model container. No inbound or outbound network calls can be
	// made to or from the model container.
	EnableNetworkIsolation *bool `type:"boolean"`

	// The Amazon Resource Name (ARN) of the IAM role that SageMaker can assume
	// to access model artifacts and docker image for deployment on ML compute instances
	// or for batch transform jobs. Deploying on ML compute instances is part of
	// model hosting. For more information, see SageMaker Roles (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html).
	//
	// To be able to pass this role to SageMaker, the caller of this API must have
	// the iam:PassRole permission.
	ExecutionRoleArn *string `min:"20" type:"string"`

	// Specifies details of how containers in a multi-container endpoint are called.
	InferenceExecutionConfig *InferenceExecutionConfig `type:"structure"`

	// The name of the new model.
	//
	// ModelName is a required field
	ModelName *string `type:"string" required:"true"`

	// The location of the primary docker image containing inference code, associated
	// artifacts, and custom environment map that the inference code uses when the
	// model is deployed for predictions.
	PrimaryContainer *ContainerDefinition `type:"structure"`

	// An array of key-value pairs. You can use tags to categorize your Amazon Web
	// Services resources in different ways, for example, by purpose, owner, or
	// environment. For more information, see Tagging Amazon Web Services Resources
	// (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
	Tags []*Tag `type:"list"`

	// A VpcConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html)
	// object that specifies the VPC that you want your model to connect to. Control
	// access to and from your model container by configuring the VPC. VpcConfig
	// is used in hosting services and in batch transform. For more information,
	// see Protect Endpoints by Using an Amazon Virtual Private Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html)
	// and Protect Data in Batch Transform Jobs by Using an Amazon Virtual Private
	// Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-vpc.html).
	VpcConfig *VpcConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateModelInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateModelInput"}
	if s.ExecutionRoleArn != nil && len(*s.ExecutionRoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleArn", 20))
	}
	if s.ModelName == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelName"))
	}
	if s.Containers != nil {
		for i, v := range s.Containers {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Containers", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.InferenceExecutionConfig != nil {
		if err := s.InferenceExecutionConfig.Validate(); err != nil {
			invalidParams.AddNested("InferenceExecutionConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.PrimaryContainer != nil {
		if err := s.PrimaryContainer.Validate(); err != nil {
			invalidParams.AddNested("PrimaryContainer", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.VpcConfig != nil {
		if err := s.VpcConfig.Validate(); err != nil {
			invalidParams.AddNested("VpcConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContainers sets the Containers field's value.
func (s *CreateModelInput) SetContainers(v []*ContainerDefinition) *CreateModelInput {
	s.Containers = v
	return s
}

// SetEnableNetworkIsolation sets the EnableNetworkIsolation field's value.
func (s *CreateModelInput) SetEnableNetworkIsolation(v bool) *CreateModelInput {
	s.EnableNetworkIsolation = &v
	return s
}

// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
func (s *CreateModelInput) SetExecutionRoleArn(v string) *CreateModelInput {
	s.ExecutionRoleArn = &v
	return s
}

// SetInferenceExecutionConfig sets the InferenceExecutionConfig field's value.
func (s *CreateModelInput) SetInferenceExecutionConfig(v *InferenceExecutionConfig) *CreateModelInput {
	s.InferenceExecutionConfig = v
	return s
}

// SetModelName sets the ModelName field's value.
func (s *CreateModelInput) SetModelName(v string) *CreateModelInput {
	s.ModelName = &v
	return s
}

// SetPrimaryContainer sets the PrimaryContainer field's value.
func (s *CreateModelInput) SetPrimaryContainer(v *ContainerDefinition) *CreateModelInput {
	s.PrimaryContainer = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateModelInput) SetTags(v []*Tag) *CreateModelInput {
	s.Tags = v
	return s
}

// SetVpcConfig sets the VpcConfig field's value.
func (s *CreateModelInput) SetVpcConfig(v *VpcConfig) *CreateModelInput {
	s.VpcConfig = v
	return s
}

type CreateModelOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the model created in SageMaker.
	//
	// ModelArn is a required field
	ModelArn *string `min:"20" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelOutput) GoString() string {
	return s.String()
}

// SetModelArn sets the ModelArn field's value.
func (s *CreateModelOutput) SetModelArn(v string) *CreateModelOutput {
	s.ModelArn = &v
	return s
}

type CreateModelPackageGroupInput struct {
	_ struct{} `type:"structure"`

	// A description for the model group.
	ModelPackageGroupDescription *string `type:"string"`

	// The name of the model group.
	//
	// ModelPackageGroupName is a required field
	ModelPackageGroupName *string `min:"1" type:"string" required:"true"`

	// A list of key value pairs associated with the model group. For more information,
	// see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)
	// in the Amazon Web Services General Reference Guide.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelPackageGroupInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelPackageGroupInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateModelPackageGroupInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateModelPackageGroupInput"}
	if s.ModelPackageGroupName == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelPackageGroupName"))
	}
	if s.ModelPackageGroupName != nil && len(*s.ModelPackageGroupName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelPackageGroupName", 1))
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetModelPackageGroupDescription sets the ModelPackageGroupDescription field's value.
func (s *CreateModelPackageGroupInput) SetModelPackageGroupDescription(v string) *CreateModelPackageGroupInput {
	s.ModelPackageGroupDescription = &v
	return s
}

// SetModelPackageGroupName sets the ModelPackageGroupName field's value.
func (s *CreateModelPackageGroupInput) SetModelPackageGroupName(v string) *CreateModelPackageGroupInput {
	s.ModelPackageGroupName = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateModelPackageGroupInput) SetTags(v []*Tag) *CreateModelPackageGroupInput {
	s.Tags = v
	return s
}

type CreateModelPackageGroupOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the model group.
	//
	// ModelPackageGroupArn is a required field
	ModelPackageGroupArn *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelPackageGroupOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelPackageGroupOutput) GoString() string {
	return s.String()
}

// SetModelPackageGroupArn sets the ModelPackageGroupArn field's value.
func (s *CreateModelPackageGroupOutput) SetModelPackageGroupArn(v string) *CreateModelPackageGroupOutput {
	s.ModelPackageGroupArn = &v
	return s
}

type CreateModelPackageInput struct {
	_ struct{} `type:"structure"`

	// An array of additional Inference Specification objects. Each additional Inference
	// Specification specifies artifacts based on this model package that can be
	// used on inference endpoints. Generally used with SageMaker Neo to store the
	// compiled artifacts.
	AdditionalInferenceSpecifications []*AdditionalInferenceSpecificationDefinition `min:"1" type:"list"`

	// Whether to certify the model package for listing on Amazon Web Services Marketplace.
	//
	// This parameter is optional for unversioned models, and does not apply to
	// versioned models.
	CertifyForMarketplace *bool `type:"boolean"`

	// A unique token that guarantees that the call to this API is idempotent.
	ClientToken *string `min:"1" type:"string" idempotencyToken:"true"`

	// The metadata properties associated with the model package versions.
	CustomerMetadataProperties map[string]*string `min:"1" type:"map"`

	// The machine learning domain of your model package and its components. Common
	// machine learning domains include computer vision and natural language processing.
	Domain *string `type:"string"`

	// Represents the drift check baselines that can be used when the model monitor
	// is set using the model package. For more information, see the topic on Drift
	// Detection against Previous Baselines in SageMaker Pipelines (https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-quality-clarify-baseline-lifecycle.html#pipelines-quality-clarify-baseline-drift-detection)
	// in the Amazon SageMaker Developer Guide.
	DriftCheckBaselines *DriftCheckBaselines `type:"structure"`

	// Specifies details about inference jobs that can be run with models based
	// on this model package, including the following:
	//
	//    * The Amazon ECR paths of containers that contain the inference code and
	//    model artifacts.
	//
	//    * The instance types that the model package supports for transform jobs
	//    and real-time endpoints used for inference.
	//
	//    * The input and output content formats that the model package supports
	//    for inference.
	InferenceSpecification *InferenceSpecification `type:"structure"`

	// Metadata properties of the tracking entity, trial, or trial component.
	MetadataProperties *MetadataProperties `type:"structure"`

	// Whether the model is approved for deployment.
	//
	// This parameter is optional for versioned models, and does not apply to unversioned
	// models.
	//
	// For versioned models, the value of this parameter must be set to Approved
	// to deploy the model.
	ModelApprovalStatus *string `type:"string" enum:"ModelApprovalStatus"`

	// A structure that contains model metrics reports.
	ModelMetrics *ModelMetrics `type:"structure"`

	// A description of the model package.
	ModelPackageDescription *string `type:"string"`

	// The name or Amazon Resource Name (ARN) of the model package group that this
	// model version belongs to.
	//
	// This parameter is required for versioned models, and does not apply to unversioned
	// models.
	ModelPackageGroupName *string `min:"1" type:"string"`

	// The name of the model package. The name must have 1 to 63 characters. Valid
	// characters are a-z, A-Z, 0-9, and - (hyphen).
	//
	// This parameter is required for unversioned models. It is not applicable to
	// versioned models.
	ModelPackageName *string `min:"1" type:"string"`

	// The Amazon Simple Storage Service (Amazon S3) path where the sample payload
	// is stored. This path must point to a single gzip compressed tar archive (.tar.gz
	// suffix). This archive can hold multiple files that are all equally used in
	// the load test. Each file in the archive must satisfy the size constraints
	// of the InvokeEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html#API_runtime_InvokeEndpoint_RequestSyntax)
	// call.
	SamplePayloadUrl *string `type:"string"`

	// Indicates if you want to skip model validation.
	SkipModelValidation *string `type:"string" enum:"SkipModelValidation"`

	// Details about the algorithm that was used to create the model package.
	SourceAlgorithmSpecification *SourceAlgorithmSpecification `type:"structure"`

	// A list of key value pairs associated with the model. For more information,
	// see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)
	// in the Amazon Web Services General Reference Guide.
	//
	// If you supply ModelPackageGroupName, your model package belongs to the model
	// group you specify and uses the tags associated with the model group. In this
	// case, you cannot supply a tag argument.
	Tags []*Tag `type:"list"`

	// The machine learning task your model package accomplishes. Common machine
	// learning tasks include object detection and image classification. The following
	// tasks are supported by Inference Recommender: "IMAGE_CLASSIFICATION" | "OBJECT_DETECTION"
	// | "TEXT_GENERATION" |"IMAGE_SEGMENTATION" | "FILL_MASK" | "CLASSIFICATION"
	// | "REGRESSION" | "OTHER".
	//
	// Specify "OTHER" if none of the tasks listed fit your use case.
	Task *string `type:"string"`

	// Specifies configurations for one or more transform jobs that SageMaker runs
	// to test the model package.
	ValidationSpecification *ModelPackageValidationSpecification `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelPackageInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelPackageInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateModelPackageInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateModelPackageInput"}
	if s.AdditionalInferenceSpecifications != nil && len(s.AdditionalInferenceSpecifications) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AdditionalInferenceSpecifications", 1))
	}
	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
	}
	if s.CustomerMetadataProperties != nil && len(s.CustomerMetadataProperties) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("CustomerMetadataProperties", 1))
	}
	if s.ModelPackageGroupName != nil && len(*s.ModelPackageGroupName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelPackageGroupName", 1))
	}
	if s.ModelPackageName != nil && len(*s.ModelPackageName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelPackageName", 1))
	}
	if s.AdditionalInferenceSpecifications != nil {
		for i, v := range s.AdditionalInferenceSpecifications {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AdditionalInferenceSpecifications", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.DriftCheckBaselines != nil {
		if err := s.DriftCheckBaselines.Validate(); err != nil {
			invalidParams.AddNested("DriftCheckBaselines", err.(request.ErrInvalidParams))
		}
	}
	if s.InferenceSpecification != nil {
		if err := s.InferenceSpecification.Validate(); err != nil {
			invalidParams.AddNested("InferenceSpecification", err.(request.ErrInvalidParams))
		}
	}
	if s.ModelMetrics != nil {
		if err := s.ModelMetrics.Validate(); err != nil {
			invalidParams.AddNested("ModelMetrics", err.(request.ErrInvalidParams))
		}
	}
	if s.SourceAlgorithmSpecification != nil {
		if err := s.SourceAlgorithmSpecification.Validate(); err != nil {
			invalidParams.AddNested("SourceAlgorithmSpecification", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.ValidationSpecification != nil {
		if err := s.ValidationSpecification.Validate(); err != nil {
			invalidParams.AddNested("ValidationSpecification", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAdditionalInferenceSpecifications sets the AdditionalInferenceSpecifications field's value.
func (s *CreateModelPackageInput) SetAdditionalInferenceSpecifications(v []*AdditionalInferenceSpecificationDefinition) *CreateModelPackageInput {
	s.AdditionalInferenceSpecifications = v
	return s
}

// SetCertifyForMarketplace sets the CertifyForMarketplace field's value.
func (s *CreateModelPackageInput) SetCertifyForMarketplace(v bool) *CreateModelPackageInput {
	s.CertifyForMarketplace = &v
	return s
}

// SetClientToken sets the ClientToken field's value.
func (s *CreateModelPackageInput) SetClientToken(v string) *CreateModelPackageInput {
	s.ClientToken = &v
	return s
}

// SetCustomerMetadataProperties sets the CustomerMetadataProperties field's value.
func (s *CreateModelPackageInput) SetCustomerMetadataProperties(v map[string]*string) *CreateModelPackageInput {
	s.CustomerMetadataProperties = v
	return s
}

// SetDomain sets the Domain field's value.
func (s *CreateModelPackageInput) SetDomain(v string) *CreateModelPackageInput {
	s.Domain = &v
	return s
}

// SetDriftCheckBaselines sets the DriftCheckBaselines field's value.
func (s *CreateModelPackageInput) SetDriftCheckBaselines(v *DriftCheckBaselines) *CreateModelPackageInput {
	s.DriftCheckBaselines = v
	return s
}

// SetInferenceSpecification sets the InferenceSpecification field's value.
func (s *CreateModelPackageInput) SetInferenceSpecification(v *InferenceSpecification) *CreateModelPackageInput {
	s.InferenceSpecification = v
	return s
}

// SetMetadataProperties sets the MetadataProperties field's value.
func (s *CreateModelPackageInput) SetMetadataProperties(v *MetadataProperties) *CreateModelPackageInput {
	s.MetadataProperties = v
	return s
}

// SetModelApprovalStatus sets the ModelApprovalStatus field's value.
func (s *CreateModelPackageInput) SetModelApprovalStatus(v string) *CreateModelPackageInput {
	s.ModelApprovalStatus = &v
	return s
}

// SetModelMetrics sets the ModelMetrics field's value.
func (s *CreateModelPackageInput) SetModelMetrics(v *ModelMetrics) *CreateModelPackageInput {
	s.ModelMetrics = v
	return s
}

// SetModelPackageDescription sets the ModelPackageDescription field's value.
func (s *CreateModelPackageInput) SetModelPackageDescription(v string) *CreateModelPackageInput {
	s.ModelPackageDescription = &v
	return s
}

// SetModelPackageGroupName sets the ModelPackageGroupName field's value.
func (s *CreateModelPackageInput) SetModelPackageGroupName(v string) *CreateModelPackageInput {
	s.ModelPackageGroupName = &v
	return s
}

// SetModelPackageName sets the ModelPackageName field's value.
func (s *CreateModelPackageInput) SetModelPackageName(v string) *CreateModelPackageInput {
	s.ModelPackageName = &v
	return s
}

// SetSamplePayloadUrl sets the SamplePayloadUrl field's value.
func (s *CreateModelPackageInput) SetSamplePayloadUrl(v string) *CreateModelPackageInput {
	s.SamplePayloadUrl = &v
	return s
}

// SetSkipModelValidation sets the SkipModelValidation field's value.
func (s *CreateModelPackageInput) SetSkipModelValidation(v string) *CreateModelPackageInput {
	s.SkipModelValidation = &v
	return s
}

// SetSourceAlgorithmSpecification sets the SourceAlgorithmSpecification field's value.
func (s *CreateModelPackageInput) SetSourceAlgorithmSpecification(v *SourceAlgorithmSpecification) *CreateModelPackageInput {
	s.SourceAlgorithmSpecification = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateModelPackageInput) SetTags(v []*Tag) *CreateModelPackageInput {
	s.Tags = v
	return s
}

// SetTask sets the Task field's value.
func (s *CreateModelPackageInput) SetTask(v string) *CreateModelPackageInput {
	s.Task = &v
	return s
}

// SetValidationSpecification sets the ValidationSpecification field's value.
func (s *CreateModelPackageInput) SetValidationSpecification(v *ModelPackageValidationSpecification) *CreateModelPackageInput {
	s.ValidationSpecification = v
	return s
}

type CreateModelPackageOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the new model package.
	//
	// ModelPackageArn is a required field
	ModelPackageArn *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelPackageOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelPackageOutput) GoString() string {
	return s.String()
}

// SetModelPackageArn sets the ModelPackageArn field's value.
func (s *CreateModelPackageOutput) SetModelPackageArn(v string) *CreateModelPackageOutput {
	s.ModelPackageArn = &v
	return s
}

type CreateModelQualityJobDefinitionInput struct {
	_ struct{} `type:"structure"`

	// The name of the monitoring job definition.
	//
	// JobDefinitionName is a required field
	JobDefinitionName *string `min:"1" type:"string" required:"true"`

	// Identifies the resources to deploy for a monitoring job.
	//
	// JobResources is a required field
	JobResources *MonitoringResources `type:"structure" required:"true"`

	// The container that runs the monitoring job.
	//
	// ModelQualityAppSpecification is a required field
	ModelQualityAppSpecification *ModelQualityAppSpecification `type:"structure" required:"true"`

	// Specifies the constraints and baselines for the monitoring job.
	ModelQualityBaselineConfig *ModelQualityBaselineConfig `type:"structure"`

	// A list of the inputs that are monitored. Currently endpoints are supported.
	//
	// ModelQualityJobInput is a required field
	ModelQualityJobInput *ModelQualityJobInput `type:"structure" required:"true"`

	// The output configuration for monitoring jobs.
	//
	// ModelQualityJobOutputConfig is a required field
	ModelQualityJobOutputConfig *MonitoringOutputConfig `type:"structure" required:"true"`

	// Specifies the network configuration for the monitoring job.
	NetworkConfig *MonitoringNetworkConfig `type:"structure"`

	// The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume
	// to perform tasks on your behalf.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// A time limit for how long the monitoring job is allowed to run before stopping.
	StoppingCondition *MonitoringStoppingCondition `type:"structure"`

	// (Optional) An array of key-value pairs. For more information, see Using Cost
	// Allocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL)
	// in the Amazon Web Services Billing and Cost Management User Guide.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelQualityJobDefinitionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelQualityJobDefinitionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateModelQualityJobDefinitionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateModelQualityJobDefinitionInput"}
	if s.JobDefinitionName == nil {
		invalidParams.Add(request.NewErrParamRequired("JobDefinitionName"))
	}
	if s.JobDefinitionName != nil && len(*s.JobDefinitionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("JobDefinitionName", 1))
	}
	if s.JobResources == nil {
		invalidParams.Add(request.NewErrParamRequired("JobResources"))
	}
	if s.ModelQualityAppSpecification == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelQualityAppSpecification"))
	}
	if s.ModelQualityJobInput == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelQualityJobInput"))
	}
	if s.ModelQualityJobOutputConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelQualityJobOutputConfig"))
	}
	if s.RoleArn == nil {
		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.JobResources != nil {
		if err := s.JobResources.Validate(); err != nil {
			invalidParams.AddNested("JobResources", err.(request.ErrInvalidParams))
		}
	}
	if s.ModelQualityAppSpecification != nil {
		if err := s.ModelQualityAppSpecification.Validate(); err != nil {
			invalidParams.AddNested("ModelQualityAppSpecification", err.(request.ErrInvalidParams))
		}
	}
	if s.ModelQualityBaselineConfig != nil {
		if err := s.ModelQualityBaselineConfig.Validate(); err != nil {
			invalidParams.AddNested("ModelQualityBaselineConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.ModelQualityJobInput != nil {
		if err := s.ModelQualityJobInput.Validate(); err != nil {
			invalidParams.AddNested("ModelQualityJobInput", err.(request.ErrInvalidParams))
		}
	}
	if s.ModelQualityJobOutputConfig != nil {
		if err := s.ModelQualityJobOutputConfig.Validate(); err != nil {
			invalidParams.AddNested("ModelQualityJobOutputConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.NetworkConfig != nil {
		if err := s.NetworkConfig.Validate(); err != nil {
			invalidParams.AddNested("NetworkConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.StoppingCondition != nil {
		if err := s.StoppingCondition.Validate(); err != nil {
			invalidParams.AddNested("StoppingCondition", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetJobDefinitionName sets the JobDefinitionName field's value.
func (s *CreateModelQualityJobDefinitionInput) SetJobDefinitionName(v string) *CreateModelQualityJobDefinitionInput {
	s.JobDefinitionName = &v
	return s
}

// SetJobResources sets the JobResources field's value.
func (s *CreateModelQualityJobDefinitionInput) SetJobResources(v *MonitoringResources) *CreateModelQualityJobDefinitionInput {
	s.JobResources = v
	return s
}

// SetModelQualityAppSpecification sets the ModelQualityAppSpecification field's value.
func (s *CreateModelQualityJobDefinitionInput) SetModelQualityAppSpecification(v *ModelQualityAppSpecification) *CreateModelQualityJobDefinitionInput {
	s.ModelQualityAppSpecification = v
	return s
}

// SetModelQualityBaselineConfig sets the ModelQualityBaselineConfig field's value.
func (s *CreateModelQualityJobDefinitionInput) SetModelQualityBaselineConfig(v *ModelQualityBaselineConfig) *CreateModelQualityJobDefinitionInput {
	s.ModelQualityBaselineConfig = v
	return s
}

// SetModelQualityJobInput sets the ModelQualityJobInput field's value.
func (s *CreateModelQualityJobDefinitionInput) SetModelQualityJobInput(v *ModelQualityJobInput) *CreateModelQualityJobDefinitionInput {
	s.ModelQualityJobInput = v
	return s
}

// SetModelQualityJobOutputConfig sets the ModelQualityJobOutputConfig field's value.
func (s *CreateModelQualityJobDefinitionInput) SetModelQualityJobOutputConfig(v *MonitoringOutputConfig) *CreateModelQualityJobDefinitionInput {
	s.ModelQualityJobOutputConfig = v
	return s
}

// SetNetworkConfig sets the NetworkConfig field's value.
func (s *CreateModelQualityJobDefinitionInput) SetNetworkConfig(v *MonitoringNetworkConfig) *CreateModelQualityJobDefinitionInput {
	s.NetworkConfig = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *CreateModelQualityJobDefinitionInput) SetRoleArn(v string) *CreateModelQualityJobDefinitionInput {
	s.RoleArn = &v
	return s
}

// SetStoppingCondition sets the StoppingCondition field's value.
func (s *CreateModelQualityJobDefinitionInput) SetStoppingCondition(v *MonitoringStoppingCondition) *CreateModelQualityJobDefinitionInput {
	s.StoppingCondition = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateModelQualityJobDefinitionInput) SetTags(v []*Tag) *CreateModelQualityJobDefinitionInput {
	s.Tags = v
	return s
}

type CreateModelQualityJobDefinitionOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the model quality monitoring job.
	//
	// JobDefinitionArn is a required field
	JobDefinitionArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelQualityJobDefinitionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateModelQualityJobDefinitionOutput) GoString() string {
	return s.String()
}

// SetJobDefinitionArn sets the JobDefinitionArn field's value.
func (s *CreateModelQualityJobDefinitionOutput) SetJobDefinitionArn(v string) *CreateModelQualityJobDefinitionOutput {
	s.JobDefinitionArn = &v
	return s
}

type CreateMonitoringScheduleInput struct {
	_ struct{} `type:"structure"`

	// The configuration object that specifies the monitoring schedule and defines
	// the monitoring job.
	//
	// MonitoringScheduleConfig is a required field
	MonitoringScheduleConfig *MonitoringScheduleConfig `type:"structure" required:"true"`

	// The name of the monitoring schedule. The name must be unique within an Amazon
	// Web Services Region within an Amazon Web Services account.
	//
	// MonitoringScheduleName is a required field
	MonitoringScheduleName *string `min:"1" type:"string" required:"true"`

	// (Optional) An array of key-value pairs. For more information, see Using Cost
	// Allocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL)
	// in the Amazon Web Services Billing and Cost Management User Guide.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateMonitoringScheduleInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateMonitoringScheduleInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateMonitoringScheduleInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateMonitoringScheduleInput"}
	if s.MonitoringScheduleConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("MonitoringScheduleConfig"))
	}
	if s.MonitoringScheduleName == nil {
		invalidParams.Add(request.NewErrParamRequired("MonitoringScheduleName"))
	}
	if s.MonitoringScheduleName != nil && len(*s.MonitoringScheduleName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MonitoringScheduleName", 1))
	}
	if s.MonitoringScheduleConfig != nil {
		if err := s.MonitoringScheduleConfig.Validate(); err != nil {
			invalidParams.AddNested("MonitoringScheduleConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMonitoringScheduleConfig sets the MonitoringScheduleConfig field's value.
func (s *CreateMonitoringScheduleInput) SetMonitoringScheduleConfig(v *MonitoringScheduleConfig) *CreateMonitoringScheduleInput {
	s.MonitoringScheduleConfig = v
	return s
}

// SetMonitoringScheduleName sets the MonitoringScheduleName field's value.
func (s *CreateMonitoringScheduleInput) SetMonitoringScheduleName(v string) *CreateMonitoringScheduleInput {
	s.MonitoringScheduleName = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateMonitoringScheduleInput) SetTags(v []*Tag) *CreateMonitoringScheduleInput {
	s.Tags = v
	return s
}

type CreateMonitoringScheduleOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the monitoring schedule.
	//
	// MonitoringScheduleArn is a required field
	MonitoringScheduleArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateMonitoringScheduleOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateMonitoringScheduleOutput) GoString() string {
	return s.String()
}

// SetMonitoringScheduleArn sets the MonitoringScheduleArn field's value.
func (s *CreateMonitoringScheduleOutput) SetMonitoringScheduleArn(v string) *CreateMonitoringScheduleOutput {
	s.MonitoringScheduleArn = &v
	return s
}

type CreateNotebookInstanceInput struct {
	_ struct{} `type:"structure"`

	// A list of Elastic Inference (EI) instance types to associate with this notebook
	// instance. Currently, only one instance type can be associated with a notebook
	// instance. For more information, see Using Elastic Inference in Amazon SageMaker
	// (https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html).
	AcceleratorTypes []*string `type:"list" enum:"NotebookInstanceAcceleratorType"`

	// An array of up to three Git repositories to associate with the notebook instance.
	// These can be either the names of Git repositories stored as resources in
	// your account, or the URL of Git repositories in Amazon Web Services CodeCommit
	// (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) or
	// in any other Git repository. These repositories are cloned at the same level
	// as the default repository of your notebook instance. For more information,
	// see Associating Git Repositories with SageMaker Notebook Instances (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html).
	AdditionalCodeRepositories []*string `type:"list"`

	// A Git repository to associate with the notebook instance as its default code
	// repository. This can be either the name of a Git repository stored as a resource
	// in your account, or the URL of a Git repository in Amazon Web Services CodeCommit
	// (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) or
	// in any other Git repository. When you open a notebook instance, it opens
	// in the directory that contains this repository. For more information, see
	// Associating Git Repositories with SageMaker Notebook Instances (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html).
	DefaultCodeRepository *string `min:"1" type:"string"`

	// Sets whether SageMaker provides internet access to the notebook instance.
	// If you set this to Disabled this notebook instance is able to access resources
	// only in your VPC, and is not be able to connect to SageMaker training and
	// endpoint services unless you configure a NAT Gateway in your VPC.
	//
	// For more information, see Notebook Instances Are Internet-Enabled by Default
	// (https://docs.aws.amazon.com/sagemaker/latest/dg/appendix-additional-considerations.html#appendix-notebook-and-internet-access).
	// You can set the value of this parameter to Disabled only if you set a value
	// for the SubnetId parameter.
	DirectInternetAccess *string `type:"string" enum:"DirectInternetAccess"`

	// Information on the IMDS configuration of the notebook instance
	InstanceMetadataServiceConfiguration *InstanceMetadataServiceConfiguration `type:"structure"`

	// The type of ML compute instance to launch for the notebook instance.
	//
	// InstanceType is a required field
	InstanceType *string `type:"string" required:"true" enum:"InstanceType"`

	// The Amazon Resource Name (ARN) of a Amazon Web Services Key Management Service
	// key that SageMaker uses to encrypt data on the storage volume attached to
	// your notebook instance. The KMS key you provide must be enabled. For information,
	// see Enabling and Disabling Keys (https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys.html)
	// in the Amazon Web Services Key Management Service Developer Guide.
	KmsKeyId *string `type:"string"`

	// The name of a lifecycle configuration to associate with the notebook instance.
	// For information about lifestyle configurations, see Step 2.1: (Optional)
	// Customize a Notebook Instance (https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html).
	LifecycleConfigName *string `type:"string"`

	// The name of the new notebook instance.
	//
	// NotebookInstanceName is a required field
	NotebookInstanceName *string `type:"string" required:"true"`

	// The platform identifier of the notebook instance runtime environment.
	PlatformIdentifier *string `type:"string"`

	// When you send any requests to Amazon Web Services resources from the notebook
	// instance, SageMaker assumes this role to perform tasks on your behalf. You
	// must grant this role necessary permissions so SageMaker can perform these
	// tasks. The policy must allow the SageMaker service principal (sagemaker.amazonaws.com)
	// permissions to assume this role. For more information, see SageMaker Roles
	// (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html).
	//
	// To be able to pass this role to SageMaker, the caller of this API must have
	// the iam:PassRole permission.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// Whether root access is enabled or disabled for users of the notebook instance.
	// The default value is Enabled.
	//
	// Lifecycle configurations need root access to be able to set up a notebook
	// instance. Because of this, lifecycle configurations associated with a notebook
	// instance always run with root access even if you disable root access for
	// users.
	RootAccess *string `type:"string" enum:"RootAccess"`

	// The VPC security group IDs, in the form sg-xxxxxxxx. The security groups
	// must be for the same VPC as specified in the subnet.
	SecurityGroupIds []*string `type:"list"`

	// The ID of the subnet in a VPC to which you would like to have a connectivity
	// from your ML compute instance.
	SubnetId *string `type:"string"`

	// An array of key-value pairs. You can use tags to categorize your Amazon Web
	// Services resources in different ways, for example, by purpose, owner, or
	// environment. For more information, see Tagging Amazon Web Services Resources
	// (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
	Tags []*Tag `type:"list"`

	// The size, in GB, of the ML storage volume to attach to the notebook instance.
	// The default value is 5 GB.
	VolumeSizeInGB *int64 `min:"5" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateNotebookInstanceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateNotebookInstanceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateNotebookInstanceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateNotebookInstanceInput"}
	if s.DefaultCodeRepository != nil && len(*s.DefaultCodeRepository) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DefaultCodeRepository", 1))
	}
	if s.InstanceType == nil {
		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
	}
	if s.NotebookInstanceName == nil {
		invalidParams.Add(request.NewErrParamRequired("NotebookInstanceName"))
	}
	if s.RoleArn == nil {
		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.VolumeSizeInGB != nil && *s.VolumeSizeInGB < 5 {
		invalidParams.Add(request.NewErrParamMinValue("VolumeSizeInGB", 5))
	}
	if s.InstanceMetadataServiceConfiguration != nil {
		if err := s.InstanceMetadataServiceConfiguration.Validate(); err != nil {
			invalidParams.AddNested("InstanceMetadataServiceConfiguration", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAcceleratorTypes sets the AcceleratorTypes field's value.
func (s *CreateNotebookInstanceInput) SetAcceleratorTypes(v []*string) *CreateNotebookInstanceInput {
	s.AcceleratorTypes = v
	return s
}

// SetAdditionalCodeRepositories sets the AdditionalCodeRepositories field's value.
func (s *CreateNotebookInstanceInput) SetAdditionalCodeRepositories(v []*string) *CreateNotebookInstanceInput {
	s.AdditionalCodeRepositories = v
	return s
}

// SetDefaultCodeRepository sets the DefaultCodeRepository field's value.
func (s *CreateNotebookInstanceInput) SetDefaultCodeRepository(v string) *CreateNotebookInstanceInput {
	s.DefaultCodeRepository = &v
	return s
}

// SetDirectInternetAccess sets the DirectInternetAccess field's value.
func (s *CreateNotebookInstanceInput) SetDirectInternetAccess(v string) *CreateNotebookInstanceInput {
	s.DirectInternetAccess = &v
	return s
}

// SetInstanceMetadataServiceConfiguration sets the InstanceMetadataServiceConfiguration field's value.
func (s *CreateNotebookInstanceInput) SetInstanceMetadataServiceConfiguration(v *InstanceMetadataServiceConfiguration) *CreateNotebookInstanceInput {
	s.InstanceMetadataServiceConfiguration = v
	return s
}

// SetInstanceType sets the InstanceType field's value.
func (s *CreateNotebookInstanceInput) SetInstanceType(v string) *CreateNotebookInstanceInput {
	s.InstanceType = &v
	return s
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *CreateNotebookInstanceInput) SetKmsKeyId(v string) *CreateNotebookInstanceInput {
	s.KmsKeyId = &v
	return s
}

// SetLifecycleConfigName sets the LifecycleConfigName field's value.
func (s *CreateNotebookInstanceInput) SetLifecycleConfigName(v string) *CreateNotebookInstanceInput {
	s.LifecycleConfigName = &v
	return s
}

// SetNotebookInstanceName sets the NotebookInstanceName field's value.
func (s *CreateNotebookInstanceInput) SetNotebookInstanceName(v string) *CreateNotebookInstanceInput {
	s.NotebookInstanceName = &v
	return s
}

// SetPlatformIdentifier sets the PlatformIdentifier field's value.
func (s *CreateNotebookInstanceInput) SetPlatformIdentifier(v string) *CreateNotebookInstanceInput {
	s.PlatformIdentifier = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *CreateNotebookInstanceInput) SetRoleArn(v string) *CreateNotebookInstanceInput {
	s.RoleArn = &v
	return s
}

// SetRootAccess sets the RootAccess field's value.
func (s *CreateNotebookInstanceInput) SetRootAccess(v string) *CreateNotebookInstanceInput {
	s.RootAccess = &v
	return s
}

// SetSecurityGroupIds sets the SecurityGroupIds field's value.
func (s *CreateNotebookInstanceInput) SetSecurityGroupIds(v []*string) *CreateNotebookInstanceInput {
	s.SecurityGroupIds = v
	return s
}

// SetSubnetId sets the SubnetId field's value.
func (s *CreateNotebookInstanceInput) SetSubnetId(v string) *CreateNotebookInstanceInput {
	s.SubnetId = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateNotebookInstanceInput) SetTags(v []*Tag) *CreateNotebookInstanceInput {
	s.Tags = v
	return s
}

// SetVolumeSizeInGB sets the VolumeSizeInGB field's value.
func (s *CreateNotebookInstanceInput) SetVolumeSizeInGB(v int64) *CreateNotebookInstanceInput {
	s.VolumeSizeInGB = &v
	return s
}

type CreateNotebookInstanceLifecycleConfigInput struct {
	_ struct{} `type:"structure"`

	// The name of the lifecycle configuration.
	//
	// NotebookInstanceLifecycleConfigName is a required field
	NotebookInstanceLifecycleConfigName *string `type:"string" required:"true"`

	// A shell script that runs only once, when you create a notebook instance.
	// The shell script must be a base64-encoded string.
	OnCreate []*NotebookInstanceLifecycleHook `type:"list"`

	// A shell script that runs every time you start a notebook instance, including
	// when you create the notebook instance. The shell script must be a base64-encoded
	// string.
	OnStart []*NotebookInstanceLifecycleHook `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateNotebookInstanceLifecycleConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateNotebookInstanceLifecycleConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateNotebookInstanceLifecycleConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateNotebookInstanceLifecycleConfigInput"}
	if s.NotebookInstanceLifecycleConfigName == nil {
		invalidParams.Add(request.NewErrParamRequired("NotebookInstanceLifecycleConfigName"))
	}
	if s.OnCreate != nil {
		for i, v := range s.OnCreate {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OnCreate", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.OnStart != nil {
		for i, v := range s.OnStart {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OnStart", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetNotebookInstanceLifecycleConfigName sets the NotebookInstanceLifecycleConfigName field's value.
func (s *CreateNotebookInstanceLifecycleConfigInput) SetNotebookInstanceLifecycleConfigName(v string) *CreateNotebookInstanceLifecycleConfigInput {
	s.NotebookInstanceLifecycleConfigName = &v
	return s
}

// SetOnCreate sets the OnCreate field's value.
func (s *CreateNotebookInstanceLifecycleConfigInput) SetOnCreate(v []*NotebookInstanceLifecycleHook) *CreateNotebookInstanceLifecycleConfigInput {
	s.OnCreate = v
	return s
}

// SetOnStart sets the OnStart field's value.
func (s *CreateNotebookInstanceLifecycleConfigInput) SetOnStart(v []*NotebookInstanceLifecycleHook) *CreateNotebookInstanceLifecycleConfigInput {
	s.OnStart = v
	return s
}

type CreateNotebookInstanceLifecycleConfigOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the lifecycle configuration.
	NotebookInstanceLifecycleConfigArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateNotebookInstanceLifecycleConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateNotebookInstanceLifecycleConfigOutput) GoString() string {
	return s.String()
}

// SetNotebookInstanceLifecycleConfigArn sets the NotebookInstanceLifecycleConfigArn field's value.
func (s *CreateNotebookInstanceLifecycleConfigOutput) SetNotebookInstanceLifecycleConfigArn(v string) *CreateNotebookInstanceLifecycleConfigOutput {
	s.NotebookInstanceLifecycleConfigArn = &v
	return s
}

type CreateNotebookInstanceOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the notebook instance.
	NotebookInstanceArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateNotebookInstanceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateNotebookInstanceOutput) GoString() string {
	return s.String()
}

// SetNotebookInstanceArn sets the NotebookInstanceArn field's value.
func (s *CreateNotebookInstanceOutput) SetNotebookInstanceArn(v string) *CreateNotebookInstanceOutput {
	s.NotebookInstanceArn = &v
	return s
}

type CreatePipelineInput struct {
	_ struct{} `type:"structure"`

	// A unique, case-sensitive identifier that you provide to ensure the idempotency
	// of the operation. An idempotent operation completes no more than one time.
	ClientRequestToken *string `min:"32" type:"string" idempotencyToken:"true"`

	// This is the configuration that controls the parallelism of the pipeline.
	// If specified, it applies to all runs of this pipeline by default.
	ParallelismConfiguration *ParallelismConfiguration `type:"structure"`

	// The JSON pipeline definition (https://aws-sagemaker-mlops.github.io/sagemaker-model-building-pipeline-definition-JSON-schema/)
	// of the pipeline.
	PipelineDefinition *string `min:"1" type:"string"`

	// The location of the pipeline definition stored in Amazon S3. If specified,
	// SageMaker will retrieve the pipeline definition from this location.
	PipelineDefinitionS3Location *PipelineDefinitionS3Location `type:"structure"`

	// A description of the pipeline.
	PipelineDescription *string `type:"string"`

	// The display name of the pipeline.
	PipelineDisplayName *string `min:"1" type:"string"`

	// The name of the pipeline.
	//
	// PipelineName is a required field
	PipelineName *string `min:"1" type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of the role used by the pipeline to access
	// and create resources.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// A list of tags to apply to the created pipeline.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreatePipelineInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreatePipelineInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreatePipelineInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreatePipelineInput"}
	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 32 {
		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 32))
	}
	if s.PipelineDefinition != nil && len(*s.PipelineDefinition) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("PipelineDefinition", 1))
	}
	if s.PipelineDisplayName != nil && len(*s.PipelineDisplayName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("PipelineDisplayName", 1))
	}
	if s.PipelineName == nil {
		invalidParams.Add(request.NewErrParamRequired("PipelineName"))
	}
	if s.PipelineName != nil && len(*s.PipelineName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("PipelineName", 1))
	}
	if s.RoleArn == nil {
		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.ParallelismConfiguration != nil {
		if err := s.ParallelismConfiguration.Validate(); err != nil {
			invalidParams.AddNested("ParallelismConfiguration", err.(request.ErrInvalidParams))
		}
	}
	if s.PipelineDefinitionS3Location != nil {
		if err := s.PipelineDefinitionS3Location.Validate(); err != nil {
			invalidParams.AddNested("PipelineDefinitionS3Location", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClientRequestToken sets the ClientRequestToken field's value.
func (s *CreatePipelineInput) SetClientRequestToken(v string) *CreatePipelineInput {
	s.ClientRequestToken = &v
	return s
}

// SetParallelismConfiguration sets the ParallelismConfiguration field's value.
func (s *CreatePipelineInput) SetParallelismConfiguration(v *ParallelismConfiguration) *CreatePipelineInput {
	s.ParallelismConfiguration = v
	return s
}

// SetPipelineDefinition sets the PipelineDefinition field's value.
func (s *CreatePipelineInput) SetPipelineDefinition(v string) *CreatePipelineInput {
	s.PipelineDefinition = &v
	return s
}

// SetPipelineDefinitionS3Location sets the PipelineDefinitionS3Location field's value.
func (s *CreatePipelineInput) SetPipelineDefinitionS3Location(v *PipelineDefinitionS3Location) *CreatePipelineInput {
	s.PipelineDefinitionS3Location = v
	return s
}

// SetPipelineDescription sets the PipelineDescription field's value.
func (s *CreatePipelineInput) SetPipelineDescription(v string) *CreatePipelineInput {
	s.PipelineDescription = &v
	return s
}

// SetPipelineDisplayName sets the PipelineDisplayName field's value.
func (s *CreatePipelineInput) SetPipelineDisplayName(v string) *CreatePipelineInput {
	s.PipelineDisplayName = &v
	return s
}

// SetPipelineName sets the PipelineName field's value.
func (s *CreatePipelineInput) SetPipelineName(v string) *CreatePipelineInput {
	s.PipelineName = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *CreatePipelineInput) SetRoleArn(v string) *CreatePipelineInput {
	s.RoleArn = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreatePipelineInput) SetTags(v []*Tag) *CreatePipelineInput {
	s.Tags = v
	return s
}

type CreatePipelineOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the created pipeline.
	PipelineArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreatePipelineOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreatePipelineOutput) GoString() string {
	return s.String()
}

// SetPipelineArn sets the PipelineArn field's value.
func (s *CreatePipelineOutput) SetPipelineArn(v string) *CreatePipelineOutput {
	s.PipelineArn = &v
	return s
}

type CreatePresignedDomainUrlInput struct {
	_ struct{} `type:"structure"`

	// The domain ID.
	//
	// DomainId is a required field
	DomainId *string `type:"string" required:"true"`

	// The number of seconds until the pre-signed URL expires. This value defaults
	// to 300.
	ExpiresInSeconds *int64 `min:"5" type:"integer"`

	// The landing page that the user is directed to when accessing the presigned
	// URL. Using this value, users can access Studio or Studio Classic, even if
	// it is not the default experience for the domain. The supported values are:
	//
	//    * studio::relative/path: Directs users to the relative path in Studio.
	//
	//    * app:JupyterServer:relative/path: Directs users to the relative path
	//    in the Studio Classic application.
	//
	//    * app:JupyterLab:relative/path: Directs users to the relative path in
	//    the JupyterLab application.
	//
	//    * app:RStudioServerPro:relative/path: Directs users to the relative path
	//    in the RStudio application.
	//
	//    * app:CodeEditor:relative/path: Directs users to the relative path in
	//    the Code Editor, based on Code-OSS, Visual Studio Code - Open Source application.
	//
	//    * app:Canvas:relative/path: Directs users to the relative path in the
	//    Canvas application.
	LandingUri *string `type:"string"`

	// The session expiration duration in seconds. This value defaults to 43200.
	SessionExpirationDurationInSeconds *int64 `min:"1800" type:"integer"`

	// The name of the space.
	SpaceName *string `type:"string"`

	// The name of the UserProfile to sign-in as.
	//
	// UserProfileName is a required field
	UserProfileName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreatePresignedDomainUrlInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreatePresignedDomainUrlInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreatePresignedDomainUrlInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreatePresignedDomainUrlInput"}
	if s.DomainId == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainId"))
	}
	if s.ExpiresInSeconds != nil && *s.ExpiresInSeconds < 5 {
		invalidParams.Add(request.NewErrParamMinValue("ExpiresInSeconds", 5))
	}
	if s.SessionExpirationDurationInSeconds != nil && *s.SessionExpirationDurationInSeconds < 1800 {
		invalidParams.Add(request.NewErrParamMinValue("SessionExpirationDurationInSeconds", 1800))
	}
	if s.UserProfileName == nil {
		invalidParams.Add(request.NewErrParamRequired("UserProfileName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainId sets the DomainId field's value.
func (s *CreatePresignedDomainUrlInput) SetDomainId(v string) *CreatePresignedDomainUrlInput {
	s.DomainId = &v
	return s
}

// SetExpiresInSeconds sets the ExpiresInSeconds field's value.
func (s *CreatePresignedDomainUrlInput) SetExpiresInSeconds(v int64) *CreatePresignedDomainUrlInput {
	s.ExpiresInSeconds = &v
	return s
}

// SetLandingUri sets the LandingUri field's value.
func (s *CreatePresignedDomainUrlInput) SetLandingUri(v string) *CreatePresignedDomainUrlInput {
	s.LandingUri = &v
	return s
}

// SetSessionExpirationDurationInSeconds sets the SessionExpirationDurationInSeconds field's value.
func (s *CreatePresignedDomainUrlInput) SetSessionExpirationDurationInSeconds(v int64) *CreatePresignedDomainUrlInput {
	s.SessionExpirationDurationInSeconds = &v
	return s
}

// SetSpaceName sets the SpaceName field's value.
func (s *CreatePresignedDomainUrlInput) SetSpaceName(v string) *CreatePresignedDomainUrlInput {
	s.SpaceName = &v
	return s
}

// SetUserProfileName sets the UserProfileName field's value.
func (s *CreatePresignedDomainUrlInput) SetUserProfileName(v string) *CreatePresignedDomainUrlInput {
	s.UserProfileName = &v
	return s
}

type CreatePresignedDomainUrlOutput struct {
	_ struct{} `type:"structure"`

	// The presigned URL.
	AuthorizedUrl *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreatePresignedDomainUrlOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreatePresignedDomainUrlOutput) GoString() string {
	return s.String()
}

// SetAuthorizedUrl sets the AuthorizedUrl field's value.
func (s *CreatePresignedDomainUrlOutput) SetAuthorizedUrl(v string) *CreatePresignedDomainUrlOutput {
	s.AuthorizedUrl = &v
	return s
}

type CreatePresignedNotebookInstanceUrlInput struct {
	_ struct{} `type:"structure"`

	// The name of the notebook instance.
	//
	// NotebookInstanceName is a required field
	NotebookInstanceName *string `type:"string" required:"true"`

	// The duration of the session, in seconds. The default is 12 hours.
	SessionExpirationDurationInSeconds *int64 `min:"1800" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreatePresignedNotebookInstanceUrlInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreatePresignedNotebookInstanceUrlInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreatePresignedNotebookInstanceUrlInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreatePresignedNotebookInstanceUrlInput"}
	if s.NotebookInstanceName == nil {
		invalidParams.Add(request.NewErrParamRequired("NotebookInstanceName"))
	}
	if s.SessionExpirationDurationInSeconds != nil && *s.SessionExpirationDurationInSeconds < 1800 {
		invalidParams.Add(request.NewErrParamMinValue("SessionExpirationDurationInSeconds", 1800))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetNotebookInstanceName sets the NotebookInstanceName field's value.
func (s *CreatePresignedNotebookInstanceUrlInput) SetNotebookInstanceName(v string) *CreatePresignedNotebookInstanceUrlInput {
	s.NotebookInstanceName = &v
	return s
}

// SetSessionExpirationDurationInSeconds sets the SessionExpirationDurationInSeconds field's value.
func (s *CreatePresignedNotebookInstanceUrlInput) SetSessionExpirationDurationInSeconds(v int64) *CreatePresignedNotebookInstanceUrlInput {
	s.SessionExpirationDurationInSeconds = &v
	return s
}

type CreatePresignedNotebookInstanceUrlOutput struct {
	_ struct{} `type:"structure"`

	// A JSON object that contains the URL string.
	AuthorizedUrl *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreatePresignedNotebookInstanceUrlOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreatePresignedNotebookInstanceUrlOutput) GoString() string {
	return s.String()
}

// SetAuthorizedUrl sets the AuthorizedUrl field's value.
func (s *CreatePresignedNotebookInstanceUrlOutput) SetAuthorizedUrl(v string) *CreatePresignedNotebookInstanceUrlOutput {
	s.AuthorizedUrl = &v
	return s
}

type CreateProcessingJobInput struct {
	_ struct{} `type:"structure"`

	// Configures the processing job to run a specified Docker container image.
	//
	// AppSpecification is a required field
	AppSpecification *AppSpecification `type:"structure" required:"true"`

	// The environment variables to set in the Docker container. Up to 100 key and
	// values entries in the map are supported.
	Environment map[string]*string `type:"map"`

	// Associates a SageMaker job as a trial component with an experiment and trial.
	// Specified when you call the following APIs:
	//
	//    * CreateProcessingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html)
	//
	//    * CreateTrainingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)
	//
	//    * CreateTransformJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html)
	ExperimentConfig *ExperimentConfig `type:"structure"`

	// Networking options for a processing job, such as whether to allow inbound
	// and outbound network calls to and from processing containers, and the VPC
	// subnets and security groups to use for VPC-enabled processing jobs.
	NetworkConfig *NetworkConfig `type:"structure"`

	// An array of inputs configuring the data to download into the processing container.
	ProcessingInputs []*ProcessingInput `type:"list"`

	// The name of the processing job. The name must be unique within an Amazon
	// Web Services Region in the Amazon Web Services account.
	//
	// ProcessingJobName is a required field
	ProcessingJobName *string `min:"1" type:"string" required:"true"`

	// Output configuration for the processing job.
	ProcessingOutputConfig *ProcessingOutputConfig `type:"structure"`

	// Identifies the resources, ML compute instances, and ML storage volumes to
	// deploy for a processing job. In distributed training, you specify more than
	// one instance.
	//
	// ProcessingResources is a required field
	ProcessingResources *ProcessingResources `type:"structure" required:"true"`

	// The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume
	// to perform tasks on your behalf.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// The time limit for how long the processing job is allowed to run.
	StoppingCondition *ProcessingStoppingCondition `type:"structure"`

	// (Optional) An array of key-value pairs. For more information, see Using Cost
	// Allocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL)
	// in the Amazon Web Services Billing and Cost Management User Guide.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateProcessingJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateProcessingJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateProcessingJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateProcessingJobInput"}
	if s.AppSpecification == nil {
		invalidParams.Add(request.NewErrParamRequired("AppSpecification"))
	}
	if s.ProcessingJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("ProcessingJobName"))
	}
	if s.ProcessingJobName != nil && len(*s.ProcessingJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ProcessingJobName", 1))
	}
	if s.ProcessingResources == nil {
		invalidParams.Add(request.NewErrParamRequired("ProcessingResources"))
	}
	if s.RoleArn == nil {
		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.AppSpecification != nil {
		if err := s.AppSpecification.Validate(); err != nil {
			invalidParams.AddNested("AppSpecification", err.(request.ErrInvalidParams))
		}
	}
	if s.ExperimentConfig != nil {
		if err := s.ExperimentConfig.Validate(); err != nil {
			invalidParams.AddNested("ExperimentConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.NetworkConfig != nil {
		if err := s.NetworkConfig.Validate(); err != nil {
			invalidParams.AddNested("NetworkConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.ProcessingInputs != nil {
		for i, v := range s.ProcessingInputs {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ProcessingInputs", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.ProcessingOutputConfig != nil {
		if err := s.ProcessingOutputConfig.Validate(); err != nil {
			invalidParams.AddNested("ProcessingOutputConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.ProcessingResources != nil {
		if err := s.ProcessingResources.Validate(); err != nil {
			invalidParams.AddNested("ProcessingResources", err.(request.ErrInvalidParams))
		}
	}
	if s.StoppingCondition != nil {
		if err := s.StoppingCondition.Validate(); err != nil {
			invalidParams.AddNested("StoppingCondition", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppSpecification sets the AppSpecification field's value.
func (s *CreateProcessingJobInput) SetAppSpecification(v *AppSpecification) *CreateProcessingJobInput {
	s.AppSpecification = v
	return s
}

// SetEnvironment sets the Environment field's value.
func (s *CreateProcessingJobInput) SetEnvironment(v map[string]*string) *CreateProcessingJobInput {
	s.Environment = v
	return s
}

// SetExperimentConfig sets the ExperimentConfig field's value.
func (s *CreateProcessingJobInput) SetExperimentConfig(v *ExperimentConfig) *CreateProcessingJobInput {
	s.ExperimentConfig = v
	return s
}

// SetNetworkConfig sets the NetworkConfig field's value.
func (s *CreateProcessingJobInput) SetNetworkConfig(v *NetworkConfig) *CreateProcessingJobInput {
	s.NetworkConfig = v
	return s
}

// SetProcessingInputs sets the ProcessingInputs field's value.
func (s *CreateProcessingJobInput) SetProcessingInputs(v []*ProcessingInput) *CreateProcessingJobInput {
	s.ProcessingInputs = v
	return s
}

// SetProcessingJobName sets the ProcessingJobName field's value.
func (s *CreateProcessingJobInput) SetProcessingJobName(v string) *CreateProcessingJobInput {
	s.ProcessingJobName = &v
	return s
}

// SetProcessingOutputConfig sets the ProcessingOutputConfig field's value.
func (s *CreateProcessingJobInput) SetProcessingOutputConfig(v *ProcessingOutputConfig) *CreateProcessingJobInput {
	s.ProcessingOutputConfig = v
	return s
}

// SetProcessingResources sets the ProcessingResources field's value.
func (s *CreateProcessingJobInput) SetProcessingResources(v *ProcessingResources) *CreateProcessingJobInput {
	s.ProcessingResources = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *CreateProcessingJobInput) SetRoleArn(v string) *CreateProcessingJobInput {
	s.RoleArn = &v
	return s
}

// SetStoppingCondition sets the StoppingCondition field's value.
func (s *CreateProcessingJobInput) SetStoppingCondition(v *ProcessingStoppingCondition) *CreateProcessingJobInput {
	s.StoppingCondition = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateProcessingJobInput) SetTags(v []*Tag) *CreateProcessingJobInput {
	s.Tags = v
	return s
}

type CreateProcessingJobOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the processing job.
	//
	// ProcessingJobArn is a required field
	ProcessingJobArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateProcessingJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateProcessingJobOutput) GoString() string {
	return s.String()
}

// SetProcessingJobArn sets the ProcessingJobArn field's value.
func (s *CreateProcessingJobOutput) SetProcessingJobArn(v string) *CreateProcessingJobOutput {
	s.ProcessingJobArn = &v
	return s
}

type CreateProjectInput struct {
	_ struct{} `type:"structure"`

	// A description for the project.
	ProjectDescription *string `type:"string"`

	// The name of the project.
	//
	// ProjectName is a required field
	ProjectName *string `min:"1" type:"string" required:"true"`

	// The product ID and provisioning artifact ID to provision a service catalog.
	// The provisioning artifact ID will default to the latest provisioning artifact
	// ID of the product, if you don't provide the provisioning artifact ID. For
	// more information, see What is Amazon Web Services Service Catalog (https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html).
	//
	// ServiceCatalogProvisioningDetails is a required field
	ServiceCatalogProvisioningDetails *ServiceCatalogProvisioningDetails `type:"structure" required:"true"`

	// An array of key-value pairs that you want to use to organize and track your
	// Amazon Web Services resource costs. For more information, see Tagging Amazon
	// Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)
	// in the Amazon Web Services General Reference Guide.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateProjectInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateProjectInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateProjectInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateProjectInput"}
	if s.ProjectName == nil {
		invalidParams.Add(request.NewErrParamRequired("ProjectName"))
	}
	if s.ProjectName != nil && len(*s.ProjectName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ProjectName", 1))
	}
	if s.ServiceCatalogProvisioningDetails == nil {
		invalidParams.Add(request.NewErrParamRequired("ServiceCatalogProvisioningDetails"))
	}
	if s.ServiceCatalogProvisioningDetails != nil {
		if err := s.ServiceCatalogProvisioningDetails.Validate(); err != nil {
			invalidParams.AddNested("ServiceCatalogProvisioningDetails", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetProjectDescription sets the ProjectDescription field's value.
func (s *CreateProjectInput) SetProjectDescription(v string) *CreateProjectInput {
	s.ProjectDescription = &v
	return s
}

// SetProjectName sets the ProjectName field's value.
func (s *CreateProjectInput) SetProjectName(v string) *CreateProjectInput {
	s.ProjectName = &v
	return s
}

// SetServiceCatalogProvisioningDetails sets the ServiceCatalogProvisioningDetails field's value.
func (s *CreateProjectInput) SetServiceCatalogProvisioningDetails(v *ServiceCatalogProvisioningDetails) *CreateProjectInput {
	s.ServiceCatalogProvisioningDetails = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateProjectInput) SetTags(v []*Tag) *CreateProjectInput {
	s.Tags = v
	return s
}

type CreateProjectOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the project.
	//
	// ProjectArn is a required field
	ProjectArn *string `min:"1" type:"string" required:"true"`

	// The ID of the new project.
	//
	// ProjectId is a required field
	ProjectId *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateProjectOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateProjectOutput) GoString() string {
	return s.String()
}

// SetProjectArn sets the ProjectArn field's value.
func (s *CreateProjectOutput) SetProjectArn(v string) *CreateProjectOutput {
	s.ProjectArn = &v
	return s
}

// SetProjectId sets the ProjectId field's value.
func (s *CreateProjectOutput) SetProjectId(v string) *CreateProjectOutput {
	s.ProjectId = &v
	return s
}

type CreateSpaceInput struct {
	_ struct{} `type:"structure"`

	// The ID of the associated Domain.
	//
	// DomainId is a required field
	DomainId *string `type:"string" required:"true"`

	// A collection of ownership settings.
	OwnershipSettings *OwnershipSettings `type:"structure"`

	// The name of the space that appears in the SageMaker Studio UI.
	SpaceDisplayName *string `type:"string"`

	// The name of the space.
	//
	// SpaceName is a required field
	SpaceName *string `type:"string" required:"true"`

	// A collection of space settings.
	SpaceSettings *SpaceSettings `type:"structure"`

	// A collection of space sharing settings.
	SpaceSharingSettings *SpaceSharingSettings `type:"structure"`

	// Tags to associated with the space. Each tag consists of a key and an optional
	// value. Tag keys must be unique for each resource. Tags are searchable using
	// the Search API.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateSpaceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateSpaceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateSpaceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateSpaceInput"}
	if s.DomainId == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainId"))
	}
	if s.SpaceName == nil {
		invalidParams.Add(request.NewErrParamRequired("SpaceName"))
	}
	if s.OwnershipSettings != nil {
		if err := s.OwnershipSettings.Validate(); err != nil {
			invalidParams.AddNested("OwnershipSettings", err.(request.ErrInvalidParams))
		}
	}
	if s.SpaceSettings != nil {
		if err := s.SpaceSettings.Validate(); err != nil {
			invalidParams.AddNested("SpaceSettings", err.(request.ErrInvalidParams))
		}
	}
	if s.SpaceSharingSettings != nil {
		if err := s.SpaceSharingSettings.Validate(); err != nil {
			invalidParams.AddNested("SpaceSharingSettings", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainId sets the DomainId field's value.
func (s *CreateSpaceInput) SetDomainId(v string) *CreateSpaceInput {
	s.DomainId = &v
	return s
}

// SetOwnershipSettings sets the OwnershipSettings field's value.
func (s *CreateSpaceInput) SetOwnershipSettings(v *OwnershipSettings) *CreateSpaceInput {
	s.OwnershipSettings = v
	return s
}

// SetSpaceDisplayName sets the SpaceDisplayName field's value.
func (s *CreateSpaceInput) SetSpaceDisplayName(v string) *CreateSpaceInput {
	s.SpaceDisplayName = &v
	return s
}

// SetSpaceName sets the SpaceName field's value.
func (s *CreateSpaceInput) SetSpaceName(v string) *CreateSpaceInput {
	s.SpaceName = &v
	return s
}

// SetSpaceSettings sets the SpaceSettings field's value.
func (s *CreateSpaceInput) SetSpaceSettings(v *SpaceSettings) *CreateSpaceInput {
	s.SpaceSettings = v
	return s
}

// SetSpaceSharingSettings sets the SpaceSharingSettings field's value.
func (s *CreateSpaceInput) SetSpaceSharingSettings(v *SpaceSharingSettings) *CreateSpaceInput {
	s.SpaceSharingSettings = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateSpaceInput) SetTags(v []*Tag) *CreateSpaceInput {
	s.Tags = v
	return s
}

type CreateSpaceOutput struct {
	_ struct{} `type:"structure"`

	// The space's Amazon Resource Name (ARN).
	SpaceArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateSpaceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateSpaceOutput) GoString() string {
	return s.String()
}

// SetSpaceArn sets the SpaceArn field's value.
func (s *CreateSpaceOutput) SetSpaceArn(v string) *CreateSpaceOutput {
	s.SpaceArn = &v
	return s
}

type CreateStudioLifecycleConfigInput struct {
	_ struct{} `type:"structure"`

	// The App type that the Lifecycle Configuration is attached to.
	//
	// StudioLifecycleConfigAppType is a required field
	StudioLifecycleConfigAppType *string `type:"string" required:"true" enum:"StudioLifecycleConfigAppType"`

	// The content of your Amazon SageMaker Studio Lifecycle Configuration script.
	// This content must be base64 encoded.
	//
	// StudioLifecycleConfigContent is a required field
	StudioLifecycleConfigContent *string `min:"1" type:"string" required:"true"`

	// The name of the Amazon SageMaker Studio Lifecycle Configuration to create.
	//
	// StudioLifecycleConfigName is a required field
	StudioLifecycleConfigName *string `type:"string" required:"true"`

	// Tags to be associated with the Lifecycle Configuration. Each tag consists
	// of a key and an optional value. Tag keys must be unique per resource. Tags
	// are searchable using the Search API.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateStudioLifecycleConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateStudioLifecycleConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateStudioLifecycleConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateStudioLifecycleConfigInput"}
	if s.StudioLifecycleConfigAppType == nil {
		invalidParams.Add(request.NewErrParamRequired("StudioLifecycleConfigAppType"))
	}
	if s.StudioLifecycleConfigContent == nil {
		invalidParams.Add(request.NewErrParamRequired("StudioLifecycleConfigContent"))
	}
	if s.StudioLifecycleConfigContent != nil && len(*s.StudioLifecycleConfigContent) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("StudioLifecycleConfigContent", 1))
	}
	if s.StudioLifecycleConfigName == nil {
		invalidParams.Add(request.NewErrParamRequired("StudioLifecycleConfigName"))
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetStudioLifecycleConfigAppType sets the StudioLifecycleConfigAppType field's value.
func (s *CreateStudioLifecycleConfigInput) SetStudioLifecycleConfigAppType(v string) *CreateStudioLifecycleConfigInput {
	s.StudioLifecycleConfigAppType = &v
	return s
}

// SetStudioLifecycleConfigContent sets the StudioLifecycleConfigContent field's value.
func (s *CreateStudioLifecycleConfigInput) SetStudioLifecycleConfigContent(v string) *CreateStudioLifecycleConfigInput {
	s.StudioLifecycleConfigContent = &v
	return s
}

// SetStudioLifecycleConfigName sets the StudioLifecycleConfigName field's value.
func (s *CreateStudioLifecycleConfigInput) SetStudioLifecycleConfigName(v string) *CreateStudioLifecycleConfigInput {
	s.StudioLifecycleConfigName = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateStudioLifecycleConfigInput) SetTags(v []*Tag) *CreateStudioLifecycleConfigInput {
	s.Tags = v
	return s
}

type CreateStudioLifecycleConfigOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of your created Lifecycle Configuration.
	StudioLifecycleConfigArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateStudioLifecycleConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateStudioLifecycleConfigOutput) GoString() string {
	return s.String()
}

// SetStudioLifecycleConfigArn sets the StudioLifecycleConfigArn field's value.
func (s *CreateStudioLifecycleConfigOutput) SetStudioLifecycleConfigArn(v string) *CreateStudioLifecycleConfigOutput {
	s.StudioLifecycleConfigArn = &v
	return s
}

type CreateTrainingJobInput struct {
	_ struct{} `type:"structure"`

	// The registry path of the Docker image that contains the training algorithm
	// and algorithm-specific metadata, including the input mode. For more information
	// about algorithms provided by SageMaker, see Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html).
	// For information about providing your own algorithms, see Using Your Own Algorithms
	// with Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html).
	//
	// AlgorithmSpecification is a required field
	AlgorithmSpecification *AlgorithmSpecification `type:"structure" required:"true"`

	// Contains information about the output location for managed spot training
	// checkpoint data.
	CheckpointConfig *CheckpointConfig `type:"structure"`

	// Configuration information for the Amazon SageMaker Debugger hook parameters,
	// metric and tensor collections, and storage paths. To learn more about how
	// to configure the DebugHookConfig parameter, see Use the SageMaker and Debugger
	// Configuration API Operations to Create, Update, and Debug Your Training Job
	// (https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html).
	DebugHookConfig *DebugHookConfig `type:"structure"`

	// Configuration information for Amazon SageMaker Debugger rules for debugging
	// output tensors.
	DebugRuleConfigurations []*DebugRuleConfiguration `type:"list"`

	// To encrypt all communications between ML compute instances in distributed
	// training, choose True. Encryption provides greater security for distributed
	// training, but training might take longer. How long it takes depends on the
	// amount of communication between compute instances, especially if you use
	// a deep learning algorithm in distributed training. For more information,
	// see Protect Communications Between ML Compute Instances in a Distributed
	// Training Job (https://docs.aws.amazon.com/sagemaker/latest/dg/train-encrypt.html).
	EnableInterContainerTrafficEncryption *bool `type:"boolean"`

	// To train models using managed spot training, choose True. Managed spot training
	// provides a fully managed and scalable infrastructure for training machine
	// learning models. this option is useful when training jobs can be interrupted
	// and when there is flexibility when the training job is run.
	//
	// The complete and intermediate results of jobs are stored in an Amazon S3
	// bucket, and can be used as a starting point to train models incrementally.
	// Amazon SageMaker provides metrics and logs in CloudWatch. They can be used
	// to see when managed spot training jobs are running, interrupted, resumed,
	// or completed.
	EnableManagedSpotTraining *bool `type:"boolean"`

	// Isolates the training container. No inbound or outbound network calls can
	// be made, except for calls between peers within a training cluster for distributed
	// training. If you enable network isolation for training jobs that are configured
	// to use a VPC, SageMaker downloads and uploads customer data and model artifacts
	// through the specified VPC, but the training container does not have network
	// access.
	EnableNetworkIsolation *bool `type:"boolean"`

	// The environment variables to set in the Docker container.
	Environment map[string]*string `type:"map"`

	// Associates a SageMaker job as a trial component with an experiment and trial.
	// Specified when you call the following APIs:
	//
	//    * CreateProcessingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html)
	//
	//    * CreateTrainingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)
	//
	//    * CreateTransformJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html)
	ExperimentConfig *ExperimentConfig `type:"structure"`

	// Algorithm-specific parameters that influence the quality of the model. You
	// set hyperparameters before you start the learning process. For a list of
	// hyperparameters for each training algorithm provided by SageMaker, see Algorithms
	// (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html).
	//
	// You can specify a maximum of 100 hyperparameters. Each hyperparameter is
	// a key-value pair. Each key and value is limited to 256 characters, as specified
	// by the Length Constraint.
	//
	// Do not include any security-sensitive information including account access
	// IDs, secrets or tokens in any hyperparameter field. If the use of security-sensitive
	// credentials are detected, SageMaker will reject your training job request
	// and return an exception error.
	HyperParameters map[string]*string `type:"map"`

	// Contains information about the infrastructure health check configuration
	// for the training job.
	InfraCheckConfig *InfraCheckConfig `type:"structure"`

	// An array of Channel objects. Each channel is a named input source. InputDataConfig
	// describes the input data and its location.
	//
	// Algorithms can accept input data from one or more channels. For example,
	// an algorithm might have two channels of input data, training_data and validation_data.
	// The configuration for each channel provides the S3, EFS, or FSx location
	// where the input data is stored. It also provides information about the stored
	// data: the MIME type, compression method, and whether the data is wrapped
	// in RecordIO format.
	//
	// Depending on the input mode that the algorithm supports, SageMaker either
	// copies input data files from an S3 bucket to a local directory in the Docker
	// container, or makes it available as input streams. For example, if you specify
	// an EFS location, input data files are available as input streams. They do
	// not need to be downloaded.
	//
	// Your input must be in the same Amazon Web Services region as your training
	// job.
	InputDataConfig []*Channel `min:"1" type:"list"`

	// Specifies the path to the S3 location where you want to store model artifacts.
	// SageMaker creates subfolders for the artifacts.
	//
	// OutputDataConfig is a required field
	OutputDataConfig *OutputDataConfig `type:"structure" required:"true"`

	// Configuration information for Amazon SageMaker Debugger system monitoring,
	// framework profiling, and storage paths.
	ProfilerConfig *ProfilerConfig `type:"structure"`

	// Configuration information for Amazon SageMaker Debugger rules for profiling
	// system and framework metrics.
	ProfilerRuleConfigurations []*ProfilerRuleConfiguration `type:"list"`

	// Configuration for remote debugging. To learn more about the remote debugging
	// functionality of SageMaker, see Access a training container through Amazon
	// Web Services Systems Manager (SSM) for remote debugging (https://docs.aws.amazon.com/sagemaker/latest/dg/train-remote-debugging.html).
	RemoteDebugConfig *RemoteDebugConfig `type:"structure"`

	// The resources, including the ML compute instances and ML storage volumes,
	// to use for model training.
	//
	// ML storage volumes store model artifacts and incremental states. Training
	// algorithms might also use ML storage volumes for scratch space. If you want
	// SageMaker to use the ML storage volume to store the training data, choose
	// File as the TrainingInputMode in the algorithm specification. For distributed
	// training algorithms, specify an instance count greater than 1.
	//
	// ResourceConfig is a required field
	ResourceConfig *ResourceConfig `type:"structure" required:"true"`

	// The number of times to retry the job when the job fails due to an InternalServerError.
	RetryStrategy *RetryStrategy `type:"structure"`

	// The Amazon Resource Name (ARN) of an IAM role that SageMaker can assume to
	// perform tasks on your behalf.
	//
	// During model training, SageMaker needs your permission to read input data
	// from an S3 bucket, download a Docker image that contains training code, write
	// model artifacts to an S3 bucket, write logs to Amazon CloudWatch Logs, and
	// publish metrics to Amazon CloudWatch. You grant permissions for all of these
	// tasks to an IAM role. For more information, see SageMaker Roles (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html).
	//
	// To be able to pass this role to SageMaker, the caller of this API must have
	// the iam:PassRole permission.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// Specifies a limit to how long a model training job can run. It also specifies
	// how long a managed Spot training job has to complete. When the job reaches
	// the time limit, SageMaker ends the training job. Use this API to cap model
	// training costs.
	//
	// To stop a job, SageMaker sends the algorithm the SIGTERM signal, which delays
	// job termination for 120 seconds. Algorithms can use this 120-second window
	// to save the model artifacts, so the results of training are not lost.
	//
	// StoppingCondition is a required field
	StoppingCondition *StoppingCondition `type:"structure" required:"true"`

	// An array of key-value pairs. You can use tags to categorize your Amazon Web
	// Services resources in different ways, for example, by purpose, owner, or
	// environment. For more information, see Tagging Amazon Web Services Resources
	// (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
	Tags []*Tag `type:"list"`

	// Configuration of storage locations for the Amazon SageMaker Debugger TensorBoard
	// output data.
	TensorBoardOutputConfig *TensorBoardOutputConfig `type:"structure"`

	// The name of the training job. The name must be unique within an Amazon Web
	// Services Region in an Amazon Web Services account.
	//
	// TrainingJobName is a required field
	TrainingJobName *string `min:"1" type:"string" required:"true"`

	// A VpcConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html)
	// object that specifies the VPC that you want your training job to connect
	// to. Control access to and from your training container by configuring the
	// VPC. For more information, see Protect Training Jobs by Using an Amazon Virtual
	// Private Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html).
	VpcConfig *VpcConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateTrainingJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateTrainingJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateTrainingJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateTrainingJobInput"}
	if s.AlgorithmSpecification == nil {
		invalidParams.Add(request.NewErrParamRequired("AlgorithmSpecification"))
	}
	if s.InputDataConfig != nil && len(s.InputDataConfig) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("InputDataConfig", 1))
	}
	if s.OutputDataConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("OutputDataConfig"))
	}
	if s.ResourceConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("ResourceConfig"))
	}
	if s.RoleArn == nil {
		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.StoppingCondition == nil {
		invalidParams.Add(request.NewErrParamRequired("StoppingCondition"))
	}
	if s.TrainingJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("TrainingJobName"))
	}
	if s.TrainingJobName != nil && len(*s.TrainingJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TrainingJobName", 1))
	}
	if s.AlgorithmSpecification != nil {
		if err := s.AlgorithmSpecification.Validate(); err != nil {
			invalidParams.AddNested("AlgorithmSpecification", err.(request.ErrInvalidParams))
		}
	}
	if s.CheckpointConfig != nil {
		if err := s.CheckpointConfig.Validate(); err != nil {
			invalidParams.AddNested("CheckpointConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.DebugHookConfig != nil {
		if err := s.DebugHookConfig.Validate(); err != nil {
			invalidParams.AddNested("DebugHookConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.DebugRuleConfigurations != nil {
		for i, v := range s.DebugRuleConfigurations {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DebugRuleConfigurations", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.ExperimentConfig != nil {
		if err := s.ExperimentConfig.Validate(); err != nil {
			invalidParams.AddNested("ExperimentConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.InputDataConfig != nil {
		for i, v := range s.InputDataConfig {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InputDataConfig", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.OutputDataConfig != nil {
		if err := s.OutputDataConfig.Validate(); err != nil {
			invalidParams.AddNested("OutputDataConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.ProfilerRuleConfigurations != nil {
		for i, v := range s.ProfilerRuleConfigurations {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ProfilerRuleConfigurations", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.ResourceConfig != nil {
		if err := s.ResourceConfig.Validate(); err != nil {
			invalidParams.AddNested("ResourceConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.RetryStrategy != nil {
		if err := s.RetryStrategy.Validate(); err != nil {
			invalidParams.AddNested("RetryStrategy", err.(request.ErrInvalidParams))
		}
	}
	if s.StoppingCondition != nil {
		if err := s.StoppingCondition.Validate(); err != nil {
			invalidParams.AddNested("StoppingCondition", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.TensorBoardOutputConfig != nil {
		if err := s.TensorBoardOutputConfig.Validate(); err != nil {
			invalidParams.AddNested("TensorBoardOutputConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.VpcConfig != nil {
		if err := s.VpcConfig.Validate(); err != nil {
			invalidParams.AddNested("VpcConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAlgorithmSpecification sets the AlgorithmSpecification field's value.
func (s *CreateTrainingJobInput) SetAlgorithmSpecification(v *AlgorithmSpecification) *CreateTrainingJobInput {
	s.AlgorithmSpecification = v
	return s
}

// SetCheckpointConfig sets the CheckpointConfig field's value.
func (s *CreateTrainingJobInput) SetCheckpointConfig(v *CheckpointConfig) *CreateTrainingJobInput {
	s.CheckpointConfig = v
	return s
}

// SetDebugHookConfig sets the DebugHookConfig field's value.
func (s *CreateTrainingJobInput) SetDebugHookConfig(v *DebugHookConfig) *CreateTrainingJobInput {
	s.DebugHookConfig = v
	return s
}

// SetDebugRuleConfigurations sets the DebugRuleConfigurations field's value.
func (s *CreateTrainingJobInput) SetDebugRuleConfigurations(v []*DebugRuleConfiguration) *CreateTrainingJobInput {
	s.DebugRuleConfigurations = v
	return s
}

// SetEnableInterContainerTrafficEncryption sets the EnableInterContainerTrafficEncryption field's value.
func (s *CreateTrainingJobInput) SetEnableInterContainerTrafficEncryption(v bool) *CreateTrainingJobInput {
	s.EnableInterContainerTrafficEncryption = &v
	return s
}

// SetEnableManagedSpotTraining sets the EnableManagedSpotTraining field's value.
func (s *CreateTrainingJobInput) SetEnableManagedSpotTraining(v bool) *CreateTrainingJobInput {
	s.EnableManagedSpotTraining = &v
	return s
}

// SetEnableNetworkIsolation sets the EnableNetworkIsolation field's value.
func (s *CreateTrainingJobInput) SetEnableNetworkIsolation(v bool) *CreateTrainingJobInput {
	s.EnableNetworkIsolation = &v
	return s
}

// SetEnvironment sets the Environment field's value.
func (s *CreateTrainingJobInput) SetEnvironment(v map[string]*string) *CreateTrainingJobInput {
	s.Environment = v
	return s
}

// SetExperimentConfig sets the ExperimentConfig field's value.
func (s *CreateTrainingJobInput) SetExperimentConfig(v *ExperimentConfig) *CreateTrainingJobInput {
	s.ExperimentConfig = v
	return s
}

// SetHyperParameters sets the HyperParameters field's value.
func (s *CreateTrainingJobInput) SetHyperParameters(v map[string]*string) *CreateTrainingJobInput {
	s.HyperParameters = v
	return s
}

// SetInfraCheckConfig sets the InfraCheckConfig field's value.
func (s *CreateTrainingJobInput) SetInfraCheckConfig(v *InfraCheckConfig) *CreateTrainingJobInput {
	s.InfraCheckConfig = v
	return s
}

// SetInputDataConfig sets the InputDataConfig field's value.
func (s *CreateTrainingJobInput) SetInputDataConfig(v []*Channel) *CreateTrainingJobInput {
	s.InputDataConfig = v
	return s
}

// SetOutputDataConfig sets the OutputDataConfig field's value.
func (s *CreateTrainingJobInput) SetOutputDataConfig(v *OutputDataConfig) *CreateTrainingJobInput {
	s.OutputDataConfig = v
	return s
}

// SetProfilerConfig sets the ProfilerConfig field's value.
func (s *CreateTrainingJobInput) SetProfilerConfig(v *ProfilerConfig) *CreateTrainingJobInput {
	s.ProfilerConfig = v
	return s
}

// SetProfilerRuleConfigurations sets the ProfilerRuleConfigurations field's value.
func (s *CreateTrainingJobInput) SetProfilerRuleConfigurations(v []*ProfilerRuleConfiguration) *CreateTrainingJobInput {
	s.ProfilerRuleConfigurations = v
	return s
}

// SetRemoteDebugConfig sets the RemoteDebugConfig field's value.
func (s *CreateTrainingJobInput) SetRemoteDebugConfig(v *RemoteDebugConfig) *CreateTrainingJobInput {
	s.RemoteDebugConfig = v
	return s
}

// SetResourceConfig sets the ResourceConfig field's value.
func (s *CreateTrainingJobInput) SetResourceConfig(v *ResourceConfig) *CreateTrainingJobInput {
	s.ResourceConfig = v
	return s
}

// SetRetryStrategy sets the RetryStrategy field's value.
func (s *CreateTrainingJobInput) SetRetryStrategy(v *RetryStrategy) *CreateTrainingJobInput {
	s.RetryStrategy = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *CreateTrainingJobInput) SetRoleArn(v string) *CreateTrainingJobInput {
	s.RoleArn = &v
	return s
}

// SetStoppingCondition sets the StoppingCondition field's value.
func (s *CreateTrainingJobInput) SetStoppingCondition(v *StoppingCondition) *CreateTrainingJobInput {
	s.StoppingCondition = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateTrainingJobInput) SetTags(v []*Tag) *CreateTrainingJobInput {
	s.Tags = v
	return s
}

// SetTensorBoardOutputConfig sets the TensorBoardOutputConfig field's value.
func (s *CreateTrainingJobInput) SetTensorBoardOutputConfig(v *TensorBoardOutputConfig) *CreateTrainingJobInput {
	s.TensorBoardOutputConfig = v
	return s
}

// SetTrainingJobName sets the TrainingJobName field's value.
func (s *CreateTrainingJobInput) SetTrainingJobName(v string) *CreateTrainingJobInput {
	s.TrainingJobName = &v
	return s
}

// SetVpcConfig sets the VpcConfig field's value.
func (s *CreateTrainingJobInput) SetVpcConfig(v *VpcConfig) *CreateTrainingJobInput {
	s.VpcConfig = v
	return s
}

type CreateTrainingJobOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the training job.
	//
	// TrainingJobArn is a required field
	TrainingJobArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateTrainingJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateTrainingJobOutput) GoString() string {
	return s.String()
}

// SetTrainingJobArn sets the TrainingJobArn field's value.
func (s *CreateTrainingJobOutput) SetTrainingJobArn(v string) *CreateTrainingJobOutput {
	s.TrainingJobArn = &v
	return s
}

type CreateTransformJobInput struct {
	_ struct{} `type:"structure"`

	// Specifies the number of records to include in a mini-batch for an HTTP inference
	// request. A record is a single unit of input data that inference can be made
	// on. For example, a single line in a CSV file is a record.
	//
	// To enable the batch strategy, you must set the SplitType property to Line,
	// RecordIO, or TFRecord.
	//
	// To use only one record when making an HTTP invocation request to a container,
	// set BatchStrategy to SingleRecord and SplitType to Line.
	//
	// To fit as many records in a mini-batch as can fit within the MaxPayloadInMB
	// limit, set BatchStrategy to MultiRecord and SplitType to Line.
	BatchStrategy *string `type:"string" enum:"BatchStrategy"`

	// Configuration to control how SageMaker captures inference data.
	DataCaptureConfig *BatchDataCaptureConfig `type:"structure"`

	// The data structure used to specify the data to be used for inference in a
	// batch transform job and to associate the data that is relevant to the prediction
	// results in the output. The input filter provided allows you to exclude input
	// data that is not needed for inference in a batch transform job. The output
	// filter provided allows you to include input data relevant to interpreting
	// the predictions in the output from the job. For more information, see Associate
	// Prediction Results with their Corresponding Input Records (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html).
	DataProcessing *DataProcessing `type:"structure"`

	// The environment variables to set in the Docker container. We support up to
	// 16 key and values entries in the map.
	Environment map[string]*string `type:"map"`

	// Associates a SageMaker job as a trial component with an experiment and trial.
	// Specified when you call the following APIs:
	//
	//    * CreateProcessingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html)
	//
	//    * CreateTrainingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)
	//
	//    * CreateTransformJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html)
	ExperimentConfig *ExperimentConfig `type:"structure"`

	// The maximum number of parallel requests that can be sent to each instance
	// in a transform job. If MaxConcurrentTransforms is set to 0 or left unset,
	// Amazon SageMaker checks the optional execution-parameters to determine the
	// settings for your chosen algorithm. If the execution-parameters endpoint
	// is not enabled, the default value is 1. For more information on execution-parameters,
	// see How Containers Serve Requests (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-batch-code.html#your-algorithms-batch-code-how-containe-serves-requests).
	// For built-in algorithms, you don't need to set a value for MaxConcurrentTransforms.
	MaxConcurrentTransforms *int64 `type:"integer"`

	// The maximum allowed size of the payload, in MB. A payload is the data portion
	// of a record (without metadata). The value in MaxPayloadInMB must be greater
	// than, or equal to, the size of a single record. To estimate the size of a
	// record in MB, divide the size of your dataset by the number of records. To
	// ensure that the records fit within the maximum payload size, we recommend
	// using a slightly larger value. The default value is 6 MB.
	//
	// The value of MaxPayloadInMB cannot be greater than 100 MB. If you specify
	// the MaxConcurrentTransforms parameter, the value of (MaxConcurrentTransforms
	// * MaxPayloadInMB) also cannot exceed 100 MB.
	//
	// For cases where the payload might be arbitrarily large and is transmitted
	// using HTTP chunked encoding, set the value to 0. This feature works only
	// in supported algorithms. Currently, Amazon SageMaker built-in algorithms
	// do not support HTTP chunked encoding.
	MaxPayloadInMB *int64 `type:"integer"`

	// Configures the timeout and maximum number of retries for processing a transform
	// job invocation.
	ModelClientConfig *ModelClientConfig `type:"structure"`

	// The name of the model that you want to use for the transform job. ModelName
	// must be the name of an existing Amazon SageMaker model within an Amazon Web
	// Services Region in an Amazon Web Services account.
	//
	// ModelName is a required field
	ModelName *string `type:"string" required:"true"`

	// (Optional) An array of key-value pairs. For more information, see Using Cost
	// Allocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-what)
	// in the Amazon Web Services Billing and Cost Management User Guide.
	Tags []*Tag `type:"list"`

	// Describes the input source and the way the transform job consumes it.
	//
	// TransformInput is a required field
	TransformInput *TransformInput `type:"structure" required:"true"`

	// The name of the transform job. The name must be unique within an Amazon Web
	// Services Region in an Amazon Web Services account.
	//
	// TransformJobName is a required field
	TransformJobName *string `min:"1" type:"string" required:"true"`

	// Describes the results of the transform job.
	//
	// TransformOutput is a required field
	TransformOutput *TransformOutput `type:"structure" required:"true"`

	// Describes the resources, including ML instance types and ML instance count,
	// to use for the transform job.
	//
	// TransformResources is a required field
	TransformResources *TransformResources `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateTransformJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateTransformJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateTransformJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateTransformJobInput"}
	if s.ModelName == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelName"))
	}
	if s.TransformInput == nil {
		invalidParams.Add(request.NewErrParamRequired("TransformInput"))
	}
	if s.TransformJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("TransformJobName"))
	}
	if s.TransformJobName != nil && len(*s.TransformJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TransformJobName", 1))
	}
	if s.TransformOutput == nil {
		invalidParams.Add(request.NewErrParamRequired("TransformOutput"))
	}
	if s.TransformResources == nil {
		invalidParams.Add(request.NewErrParamRequired("TransformResources"))
	}
	if s.DataCaptureConfig != nil {
		if err := s.DataCaptureConfig.Validate(); err != nil {
			invalidParams.AddNested("DataCaptureConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.ExperimentConfig != nil {
		if err := s.ExperimentConfig.Validate(); err != nil {
			invalidParams.AddNested("ExperimentConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.ModelClientConfig != nil {
		if err := s.ModelClientConfig.Validate(); err != nil {
			invalidParams.AddNested("ModelClientConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.TransformInput != nil {
		if err := s.TransformInput.Validate(); err != nil {
			invalidParams.AddNested("TransformInput", err.(request.ErrInvalidParams))
		}
	}
	if s.TransformOutput != nil {
		if err := s.TransformOutput.Validate(); err != nil {
			invalidParams.AddNested("TransformOutput", err.(request.ErrInvalidParams))
		}
	}
	if s.TransformResources != nil {
		if err := s.TransformResources.Validate(); err != nil {
			invalidParams.AddNested("TransformResources", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetBatchStrategy sets the BatchStrategy field's value.
func (s *CreateTransformJobInput) SetBatchStrategy(v string) *CreateTransformJobInput {
	s.BatchStrategy = &v
	return s
}

// SetDataCaptureConfig sets the DataCaptureConfig field's value.
func (s *CreateTransformJobInput) SetDataCaptureConfig(v *BatchDataCaptureConfig) *CreateTransformJobInput {
	s.DataCaptureConfig = v
	return s
}

// SetDataProcessing sets the DataProcessing field's value.
func (s *CreateTransformJobInput) SetDataProcessing(v *DataProcessing) *CreateTransformJobInput {
	s.DataProcessing = v
	return s
}

// SetEnvironment sets the Environment field's value.
func (s *CreateTransformJobInput) SetEnvironment(v map[string]*string) *CreateTransformJobInput {
	s.Environment = v
	return s
}

// SetExperimentConfig sets the ExperimentConfig field's value.
func (s *CreateTransformJobInput) SetExperimentConfig(v *ExperimentConfig) *CreateTransformJobInput {
	s.ExperimentConfig = v
	return s
}

// SetMaxConcurrentTransforms sets the MaxConcurrentTransforms field's value.
func (s *CreateTransformJobInput) SetMaxConcurrentTransforms(v int64) *CreateTransformJobInput {
	s.MaxConcurrentTransforms = &v
	return s
}

// SetMaxPayloadInMB sets the MaxPayloadInMB field's value.
func (s *CreateTransformJobInput) SetMaxPayloadInMB(v int64) *CreateTransformJobInput {
	s.MaxPayloadInMB = &v
	return s
}

// SetModelClientConfig sets the ModelClientConfig field's value.
func (s *CreateTransformJobInput) SetModelClientConfig(v *ModelClientConfig) *CreateTransformJobInput {
	s.ModelClientConfig = v
	return s
}

// SetModelName sets the ModelName field's value.
func (s *CreateTransformJobInput) SetModelName(v string) *CreateTransformJobInput {
	s.ModelName = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateTransformJobInput) SetTags(v []*Tag) *CreateTransformJobInput {
	s.Tags = v
	return s
}

// SetTransformInput sets the TransformInput field's value.
func (s *CreateTransformJobInput) SetTransformInput(v *TransformInput) *CreateTransformJobInput {
	s.TransformInput = v
	return s
}

// SetTransformJobName sets the TransformJobName field's value.
func (s *CreateTransformJobInput) SetTransformJobName(v string) *CreateTransformJobInput {
	s.TransformJobName = &v
	return s
}

// SetTransformOutput sets the TransformOutput field's value.
func (s *CreateTransformJobInput) SetTransformOutput(v *TransformOutput) *CreateTransformJobInput {
	s.TransformOutput = v
	return s
}

// SetTransformResources sets the TransformResources field's value.
func (s *CreateTransformJobInput) SetTransformResources(v *TransformResources) *CreateTransformJobInput {
	s.TransformResources = v
	return s
}

type CreateTransformJobOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the transform job.
	//
	// TransformJobArn is a required field
	TransformJobArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateTransformJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateTransformJobOutput) GoString() string {
	return s.String()
}

// SetTransformJobArn sets the TransformJobArn field's value.
func (s *CreateTransformJobOutput) SetTransformJobArn(v string) *CreateTransformJobOutput {
	s.TransformJobArn = &v
	return s
}

type CreateTrialComponentInput struct {
	_ struct{} `type:"structure"`

	// The name of the component as displayed. The name doesn't need to be unique.
	// If DisplayName isn't specified, TrialComponentName is displayed.
	DisplayName *string `min:"1" type:"string"`

	// When the component ended.
	EndTime *time.Time `type:"timestamp"`

	// The input artifacts for the component. Examples of input artifacts are datasets,
	// algorithms, hyperparameters, source code, and instance types.
	InputArtifacts map[string]*TrialComponentArtifact `type:"map"`

	// Metadata properties of the tracking entity, trial, or trial component.
	MetadataProperties *MetadataProperties `type:"structure"`

	// The output artifacts for the component. Examples of output artifacts are
	// metrics, snapshots, logs, and images.
	OutputArtifacts map[string]*TrialComponentArtifact `type:"map"`

	// The hyperparameters for the component.
	Parameters map[string]*TrialComponentParameterValue `type:"map"`

	// When the component started.
	StartTime *time.Time `type:"timestamp"`

	// The status of the component. States include:
	//
	//    * InProgress
	//
	//    * Completed
	//
	//    * Failed
	Status *TrialComponentStatus `type:"structure"`

	// A list of tags to associate with the component. You can use Search (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html)
	// API to search on the tags.
	Tags []*Tag `type:"list"`

	// The name of the component. The name must be unique in your Amazon Web Services
	// account and is not case-sensitive.
	//
	// TrialComponentName is a required field
	TrialComponentName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateTrialComponentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateTrialComponentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateTrialComponentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateTrialComponentInput"}
	if s.DisplayName != nil && len(*s.DisplayName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1))
	}
	if s.TrialComponentName == nil {
		invalidParams.Add(request.NewErrParamRequired("TrialComponentName"))
	}
	if s.TrialComponentName != nil && len(*s.TrialComponentName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TrialComponentName", 1))
	}
	if s.InputArtifacts != nil {
		for i, v := range s.InputArtifacts {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InputArtifacts", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.OutputArtifacts != nil {
		for i, v := range s.OutputArtifacts {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OutputArtifacts", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDisplayName sets the DisplayName field's value.
func (s *CreateTrialComponentInput) SetDisplayName(v string) *CreateTrialComponentInput {
	s.DisplayName = &v
	return s
}

// SetEndTime sets the EndTime field's value.
func (s *CreateTrialComponentInput) SetEndTime(v time.Time) *CreateTrialComponentInput {
	s.EndTime = &v
	return s
}

// SetInputArtifacts sets the InputArtifacts field's value.
func (s *CreateTrialComponentInput) SetInputArtifacts(v map[string]*TrialComponentArtifact) *CreateTrialComponentInput {
	s.InputArtifacts = v
	return s
}

// SetMetadataProperties sets the MetadataProperties field's value.
func (s *CreateTrialComponentInput) SetMetadataProperties(v *MetadataProperties) *CreateTrialComponentInput {
	s.MetadataProperties = v
	return s
}

// SetOutputArtifacts sets the OutputArtifacts field's value.
func (s *CreateTrialComponentInput) SetOutputArtifacts(v map[string]*TrialComponentArtifact) *CreateTrialComponentInput {
	s.OutputArtifacts = v
	return s
}

// SetParameters sets the Parameters field's value.
func (s *CreateTrialComponentInput) SetParameters(v map[string]*TrialComponentParameterValue) *CreateTrialComponentInput {
	s.Parameters = v
	return s
}

// SetStartTime sets the StartTime field's value.
func (s *CreateTrialComponentInput) SetStartTime(v time.Time) *CreateTrialComponentInput {
	s.StartTime = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *CreateTrialComponentInput) SetStatus(v *TrialComponentStatus) *CreateTrialComponentInput {
	s.Status = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateTrialComponentInput) SetTags(v []*Tag) *CreateTrialComponentInput {
	s.Tags = v
	return s
}

// SetTrialComponentName sets the TrialComponentName field's value.
func (s *CreateTrialComponentInput) SetTrialComponentName(v string) *CreateTrialComponentInput {
	s.TrialComponentName = &v
	return s
}

type CreateTrialComponentOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the trial component.
	TrialComponentArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateTrialComponentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateTrialComponentOutput) GoString() string {
	return s.String()
}

// SetTrialComponentArn sets the TrialComponentArn field's value.
func (s *CreateTrialComponentOutput) SetTrialComponentArn(v string) *CreateTrialComponentOutput {
	s.TrialComponentArn = &v
	return s
}

type CreateTrialInput struct {
	_ struct{} `type:"structure"`

	// The name of the trial as displayed. The name doesn't need to be unique. If
	// DisplayName isn't specified, TrialName is displayed.
	DisplayName *string `min:"1" type:"string"`

	// The name of the experiment to associate the trial with.
	//
	// ExperimentName is a required field
	ExperimentName *string `min:"1" type:"string" required:"true"`

	// Metadata properties of the tracking entity, trial, or trial component.
	MetadataProperties *MetadataProperties `type:"structure"`

	// A list of tags to associate with the trial. You can use Search (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html)
	// API to search on the tags.
	Tags []*Tag `type:"list"`

	// The name of the trial. The name must be unique in your Amazon Web Services
	// account and is not case-sensitive.
	//
	// TrialName is a required field
	TrialName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateTrialInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateTrialInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateTrialInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateTrialInput"}
	if s.DisplayName != nil && len(*s.DisplayName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1))
	}
	if s.ExperimentName == nil {
		invalidParams.Add(request.NewErrParamRequired("ExperimentName"))
	}
	if s.ExperimentName != nil && len(*s.ExperimentName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ExperimentName", 1))
	}
	if s.TrialName == nil {
		invalidParams.Add(request.NewErrParamRequired("TrialName"))
	}
	if s.TrialName != nil && len(*s.TrialName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TrialName", 1))
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDisplayName sets the DisplayName field's value.
func (s *CreateTrialInput) SetDisplayName(v string) *CreateTrialInput {
	s.DisplayName = &v
	return s
}

// SetExperimentName sets the ExperimentName field's value.
func (s *CreateTrialInput) SetExperimentName(v string) *CreateTrialInput {
	s.ExperimentName = &v
	return s
}

// SetMetadataProperties sets the MetadataProperties field's value.
func (s *CreateTrialInput) SetMetadataProperties(v *MetadataProperties) *CreateTrialInput {
	s.MetadataProperties = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateTrialInput) SetTags(v []*Tag) *CreateTrialInput {
	s.Tags = v
	return s
}

// SetTrialName sets the TrialName field's value.
func (s *CreateTrialInput) SetTrialName(v string) *CreateTrialInput {
	s.TrialName = &v
	return s
}

type CreateTrialOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the trial.
	TrialArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateTrialOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateTrialOutput) GoString() string {
	return s.String()
}

// SetTrialArn sets the TrialArn field's value.
func (s *CreateTrialOutput) SetTrialArn(v string) *CreateTrialOutput {
	s.TrialArn = &v
	return s
}

type CreateUserProfileInput struct {
	_ struct{} `type:"structure"`

	// The ID of the associated Domain.
	//
	// DomainId is a required field
	DomainId *string `type:"string" required:"true"`

	// A specifier for the type of value specified in SingleSignOnUserValue. Currently,
	// the only supported value is "UserName". If the Domain's AuthMode is IAM Identity
	// Center, this field is required. If the Domain's AuthMode is not IAM Identity
	// Center, this field cannot be specified.
	SingleSignOnUserIdentifier *string `type:"string"`

	// The username of the associated Amazon Web Services Single Sign-On User for
	// this UserProfile. If the Domain's AuthMode is IAM Identity Center, this field
	// is required, and must match a valid username of a user in your directory.
	// If the Domain's AuthMode is not IAM Identity Center, this field cannot be
	// specified.
	SingleSignOnUserValue *string `type:"string"`

	// Each tag consists of a key and an optional value. Tag keys must be unique
	// per resource.
	//
	// Tags that you specify for the User Profile are also added to all Apps that
	// the User Profile launches.
	Tags []*Tag `type:"list"`

	// A name for the UserProfile. This value is not case sensitive.
	//
	// UserProfileName is a required field
	UserProfileName *string `type:"string" required:"true"`

	// A collection of settings.
	UserSettings *UserSettings `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateUserProfileInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateUserProfileInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateUserProfileInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateUserProfileInput"}
	if s.DomainId == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainId"))
	}
	if s.UserProfileName == nil {
		invalidParams.Add(request.NewErrParamRequired("UserProfileName"))
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.UserSettings != nil {
		if err := s.UserSettings.Validate(); err != nil {
			invalidParams.AddNested("UserSettings", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainId sets the DomainId field's value.
func (s *CreateUserProfileInput) SetDomainId(v string) *CreateUserProfileInput {
	s.DomainId = &v
	return s
}

// SetSingleSignOnUserIdentifier sets the SingleSignOnUserIdentifier field's value.
func (s *CreateUserProfileInput) SetSingleSignOnUserIdentifier(v string) *CreateUserProfileInput {
	s.SingleSignOnUserIdentifier = &v
	return s
}

// SetSingleSignOnUserValue sets the SingleSignOnUserValue field's value.
func (s *CreateUserProfileInput) SetSingleSignOnUserValue(v string) *CreateUserProfileInput {
	s.SingleSignOnUserValue = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateUserProfileInput) SetTags(v []*Tag) *CreateUserProfileInput {
	s.Tags = v
	return s
}

// SetUserProfileName sets the UserProfileName field's value.
func (s *CreateUserProfileInput) SetUserProfileName(v string) *CreateUserProfileInput {
	s.UserProfileName = &v
	return s
}

// SetUserSettings sets the UserSettings field's value.
func (s *CreateUserProfileInput) SetUserSettings(v *UserSettings) *CreateUserProfileInput {
	s.UserSettings = v
	return s
}

type CreateUserProfileOutput struct {
	_ struct{} `type:"structure"`

	// The user profile Amazon Resource Name (ARN).
	UserProfileArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateUserProfileOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateUserProfileOutput) GoString() string {
	return s.String()
}

// SetUserProfileArn sets the UserProfileArn field's value.
func (s *CreateUserProfileOutput) SetUserProfileArn(v string) *CreateUserProfileOutput {
	s.UserProfileArn = &v
	return s
}

type CreateWorkforceInput struct {
	_ struct{} `type:"structure"`

	// Use this parameter to configure an Amazon Cognito private workforce. A single
	// Cognito workforce is created using and corresponds to a single Amazon Cognito
	// user pool (https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html).
	//
	// Do not use OidcConfig if you specify values for CognitoConfig.
	CognitoConfig *CognitoConfig `type:"structure"`

	// Use this parameter to configure a private workforce using your own OIDC Identity
	// Provider.
	//
	// Do not use CognitoConfig if you specify values for OidcConfig.
	OidcConfig *OidcConfig `type:"structure"`

	// A list of IP address ranges (CIDRs (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)).
	// Used to create an allow list of IP addresses for a private workforce. Workers
	// will only be able to login to their worker portal from an IP address within
	// this range. By default, a workforce isn't restricted to specific IP addresses.
	SourceIpConfig *SourceIpConfig `type:"structure"`

	// An array of key-value pairs that contain metadata to help you categorize
	// and organize our workforce. Each tag consists of a key and a value, both
	// of which you define.
	Tags []*Tag `type:"list"`

	// The name of the private workforce.
	//
	// WorkforceName is a required field
	WorkforceName *string `min:"1" type:"string" required:"true"`

	// Use this parameter to configure a workforce using VPC.
	WorkforceVpcConfig *WorkforceVpcConfigRequest `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateWorkforceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateWorkforceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateWorkforceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateWorkforceInput"}
	if s.WorkforceName == nil {
		invalidParams.Add(request.NewErrParamRequired("WorkforceName"))
	}
	if s.WorkforceName != nil && len(*s.WorkforceName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("WorkforceName", 1))
	}
	if s.CognitoConfig != nil {
		if err := s.CognitoConfig.Validate(); err != nil {
			invalidParams.AddNested("CognitoConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.OidcConfig != nil {
		if err := s.OidcConfig.Validate(); err != nil {
			invalidParams.AddNested("OidcConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.SourceIpConfig != nil {
		if err := s.SourceIpConfig.Validate(); err != nil {
			invalidParams.AddNested("SourceIpConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.WorkforceVpcConfig != nil {
		if err := s.WorkforceVpcConfig.Validate(); err != nil {
			invalidParams.AddNested("WorkforceVpcConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCognitoConfig sets the CognitoConfig field's value.
func (s *CreateWorkforceInput) SetCognitoConfig(v *CognitoConfig) *CreateWorkforceInput {
	s.CognitoConfig = v
	return s
}

// SetOidcConfig sets the OidcConfig field's value.
func (s *CreateWorkforceInput) SetOidcConfig(v *OidcConfig) *CreateWorkforceInput {
	s.OidcConfig = v
	return s
}

// SetSourceIpConfig sets the SourceIpConfig field's value.
func (s *CreateWorkforceInput) SetSourceIpConfig(v *SourceIpConfig) *CreateWorkforceInput {
	s.SourceIpConfig = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateWorkforceInput) SetTags(v []*Tag) *CreateWorkforceInput {
	s.Tags = v
	return s
}

// SetWorkforceName sets the WorkforceName field's value.
func (s *CreateWorkforceInput) SetWorkforceName(v string) *CreateWorkforceInput {
	s.WorkforceName = &v
	return s
}

// SetWorkforceVpcConfig sets the WorkforceVpcConfig field's value.
func (s *CreateWorkforceInput) SetWorkforceVpcConfig(v *WorkforceVpcConfigRequest) *CreateWorkforceInput {
	s.WorkforceVpcConfig = v
	return s
}

type CreateWorkforceOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the workforce.
	//
	// WorkforceArn is a required field
	WorkforceArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateWorkforceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateWorkforceOutput) GoString() string {
	return s.String()
}

// SetWorkforceArn sets the WorkforceArn field's value.
func (s *CreateWorkforceOutput) SetWorkforceArn(v string) *CreateWorkforceOutput {
	s.WorkforceArn = &v
	return s
}

type CreateWorkteamInput struct {
	_ struct{} `type:"structure"`

	// A description of the work team.
	//
	// Description is a required field
	Description *string `min:"1" type:"string" required:"true"`

	// A list of MemberDefinition objects that contains objects that identify the
	// workers that make up the work team.
	//
	// Workforces can be created using Amazon Cognito or your own OIDC Identity
	// Provider (IdP). For private workforces created using Amazon Cognito use CognitoMemberDefinition.
	// For workforces created using your own OIDC identity provider (IdP) use OidcMemberDefinition.
	// Do not provide input for both of these parameters in a single request.
	//
	// For workforces created using Amazon Cognito, private work teams correspond
	// to Amazon Cognito user groups within the user pool used to create a workforce.
	// All of the CognitoMemberDefinition objects that make up the member definition
	// must have the same ClientId and UserPool values. To add a Amazon Cognito
	// user group to an existing worker pool, see Adding groups to a User Pool.
	// For more information about user pools, see Amazon Cognito User Pools (https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html).
	//
	// For workforces created using your own OIDC IdP, specify the user groups that
	// you want to include in your private work team in OidcMemberDefinition by
	// listing those groups in Groups.
	//
	// MemberDefinitions is a required field
	MemberDefinitions []*MemberDefinition `min:"1" type:"list" required:"true"`

	// Configures notification of workers regarding available or expiring work items.
	NotificationConfiguration *NotificationConfiguration `type:"structure"`

	// An array of key-value pairs.
	//
	// For more information, see Resource Tag (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)
	// and Using Cost Allocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-what)
	// in the Amazon Web Services Billing and Cost Management User Guide.
	Tags []*Tag `type:"list"`

	// The name of the workforce.
	WorkforceName *string `min:"1" type:"string"`

	// The name of the work team. Use this name to identify the work team.
	//
	// WorkteamName is a required field
	WorkteamName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateWorkteamInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateWorkteamInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateWorkteamInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateWorkteamInput"}
	if s.Description == nil {
		invalidParams.Add(request.NewErrParamRequired("Description"))
	}
	if s.Description != nil && len(*s.Description) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
	}
	if s.MemberDefinitions == nil {
		invalidParams.Add(request.NewErrParamRequired("MemberDefinitions"))
	}
	if s.MemberDefinitions != nil && len(s.MemberDefinitions) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MemberDefinitions", 1))
	}
	if s.WorkforceName != nil && len(*s.WorkforceName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("WorkforceName", 1))
	}
	if s.WorkteamName == nil {
		invalidParams.Add(request.NewErrParamRequired("WorkteamName"))
	}
	if s.WorkteamName != nil && len(*s.WorkteamName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("WorkteamName", 1))
	}
	if s.MemberDefinitions != nil {
		for i, v := range s.MemberDefinitions {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MemberDefinitions", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDescription sets the Description field's value.
func (s *CreateWorkteamInput) SetDescription(v string) *CreateWorkteamInput {
	s.Description = &v
	return s
}

// SetMemberDefinitions sets the MemberDefinitions field's value.
func (s *CreateWorkteamInput) SetMemberDefinitions(v []*MemberDefinition) *CreateWorkteamInput {
	s.MemberDefinitions = v
	return s
}

// SetNotificationConfiguration sets the NotificationConfiguration field's value.
func (s *CreateWorkteamInput) SetNotificationConfiguration(v *NotificationConfiguration) *CreateWorkteamInput {
	s.NotificationConfiguration = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateWorkteamInput) SetTags(v []*Tag) *CreateWorkteamInput {
	s.Tags = v
	return s
}

// SetWorkforceName sets the WorkforceName field's value.
func (s *CreateWorkteamInput) SetWorkforceName(v string) *CreateWorkteamInput {
	s.WorkforceName = &v
	return s
}

// SetWorkteamName sets the WorkteamName field's value.
func (s *CreateWorkteamInput) SetWorkteamName(v string) *CreateWorkteamInput {
	s.WorkteamName = &v
	return s
}

type CreateWorkteamOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the work team. You can use this ARN to
	// identify the work team.
	WorkteamArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateWorkteamOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateWorkteamOutput) GoString() string {
	return s.String()
}

// SetWorkteamArn sets the WorkteamArn field's value.
func (s *CreateWorkteamOutput) SetWorkteamArn(v string) *CreateWorkteamOutput {
	s.WorkteamArn = &v
	return s
}

// A file system, created by you, that you assign to a user profile or space
// for an Amazon SageMaker Domain. Permitted users can access this file system
// in Amazon SageMaker Studio.
type CustomFileSystem struct {
	_ struct{} `type:"structure"`

	// A custom file system in Amazon EFS.
	EFSFileSystem *EFSFileSystem `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CustomFileSystem) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CustomFileSystem) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CustomFileSystem) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CustomFileSystem"}
	if s.EFSFileSystem != nil {
		if err := s.EFSFileSystem.Validate(); err != nil {
			invalidParams.AddNested("EFSFileSystem", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEFSFileSystem sets the EFSFileSystem field's value.
func (s *CustomFileSystem) SetEFSFileSystem(v *EFSFileSystem) *CustomFileSystem {
	s.EFSFileSystem = v
	return s
}

// The settings for assigning a custom file system to a user profile or space
// for an Amazon SageMaker Domain. Permitted users can access this file system
// in Amazon SageMaker Studio.
type CustomFileSystemConfig struct {
	_ struct{} `type:"structure"`

	// The settings for a custom Amazon EFS file system.
	EFSFileSystemConfig *EFSFileSystemConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CustomFileSystemConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CustomFileSystemConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CustomFileSystemConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CustomFileSystemConfig"}
	if s.EFSFileSystemConfig != nil {
		if err := s.EFSFileSystemConfig.Validate(); err != nil {
			invalidParams.AddNested("EFSFileSystemConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEFSFileSystemConfig sets the EFSFileSystemConfig field's value.
func (s *CustomFileSystemConfig) SetEFSFileSystemConfig(v *EFSFileSystemConfig) *CustomFileSystemConfig {
	s.EFSFileSystemConfig = v
	return s
}

// A custom SageMaker image. For more information, see Bring your own SageMaker
// image (https://docs.aws.amazon.com/sagemaker/latest/dg/studio-byoi.html).
type CustomImage struct {
	_ struct{} `type:"structure"`

	// The name of the AppImageConfig.
	//
	// AppImageConfigName is a required field
	AppImageConfigName *string `type:"string" required:"true"`

	// The name of the CustomImage. Must be unique to your account.
	//
	// ImageName is a required field
	ImageName *string `min:"1" type:"string" required:"true"`

	// The version number of the CustomImage.
	ImageVersionNumber *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CustomImage) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CustomImage) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CustomImage) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CustomImage"}
	if s.AppImageConfigName == nil {
		invalidParams.Add(request.NewErrParamRequired("AppImageConfigName"))
	}
	if s.ImageName == nil {
		invalidParams.Add(request.NewErrParamRequired("ImageName"))
	}
	if s.ImageName != nil && len(*s.ImageName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ImageName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppImageConfigName sets the AppImageConfigName field's value.
func (s *CustomImage) SetAppImageConfigName(v string) *CustomImage {
	s.AppImageConfigName = &v
	return s
}

// SetImageName sets the ImageName field's value.
func (s *CustomImage) SetImageName(v string) *CustomImage {
	s.ImageName = &v
	return s
}

// SetImageVersionNumber sets the ImageVersionNumber field's value.
func (s *CustomImage) SetImageVersionNumber(v int64) *CustomImage {
	s.ImageVersionNumber = &v
	return s
}

// Details about the POSIX identity that is used for file system operations.
type CustomPosixUserConfig struct {
	_ struct{} `type:"structure"`

	// The POSIX group ID.
	//
	// Gid is a required field
	Gid *int64 `min:"1001" type:"long" required:"true"`

	// The POSIX user ID.
	//
	// Uid is a required field
	Uid *int64 `min:"10000" type:"long" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CustomPosixUserConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CustomPosixUserConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CustomPosixUserConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CustomPosixUserConfig"}
	if s.Gid == nil {
		invalidParams.Add(request.NewErrParamRequired("Gid"))
	}
	if s.Gid != nil && *s.Gid < 1001 {
		invalidParams.Add(request.NewErrParamMinValue("Gid", 1001))
	}
	if s.Uid == nil {
		invalidParams.Add(request.NewErrParamRequired("Uid"))
	}
	if s.Uid != nil && *s.Uid < 10000 {
		invalidParams.Add(request.NewErrParamMinValue("Uid", 10000))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetGid sets the Gid field's value.
func (s *CustomPosixUserConfig) SetGid(v int64) *CustomPosixUserConfig {
	s.Gid = &v
	return s
}

// SetUid sets the Uid field's value.
func (s *CustomPosixUserConfig) SetUid(v int64) *CustomPosixUserConfig {
	s.Uid = &v
	return s
}

// A customized metric.
type CustomizedMetricSpecification struct {
	_ struct{} `type:"structure"`

	// The name of the customized metric.
	MetricName *string `type:"string"`

	// The namespace of the customized metric.
	Namespace *string `type:"string"`

	// The statistic of the customized metric.
	Statistic *string `type:"string" enum:"Statistic"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CustomizedMetricSpecification) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CustomizedMetricSpecification) GoString() string {
	return s.String()
}

// SetMetricName sets the MetricName field's value.
func (s *CustomizedMetricSpecification) SetMetricName(v string) *CustomizedMetricSpecification {
	s.MetricName = &v
	return s
}

// SetNamespace sets the Namespace field's value.
func (s *CustomizedMetricSpecification) SetNamespace(v string) *CustomizedMetricSpecification {
	s.Namespace = &v
	return s
}

// SetStatistic sets the Statistic field's value.
func (s *CustomizedMetricSpecification) SetStatistic(v string) *CustomizedMetricSpecification {
	s.Statistic = &v
	return s
}

// Configuration to control how SageMaker captures inference data.
type DataCaptureConfig struct {
	_ struct{} `type:"structure"`

	// Configuration specifying how to treat different headers. If no headers are
	// specified SageMaker will by default base64 encode when capturing the data.
	CaptureContentTypeHeader *CaptureContentTypeHeader `type:"structure"`

	// Specifies data Model Monitor will capture. You can configure whether to collect
	// only input, only output, or both
	//
	// CaptureOptions is a required field
	CaptureOptions []*CaptureOption `min:"1" type:"list" required:"true"`

	// The Amazon S3 location used to capture the data.
	//
	// DestinationS3Uri is a required field
	DestinationS3Uri *string `type:"string" required:"true"`

	// Whether data capture should be enabled or disabled (defaults to enabled).
	EnableCapture *bool `type:"boolean"`

	// The percentage of requests SageMaker will capture. A lower value is recommended
	// for Endpoints with high traffic.
	//
	// InitialSamplingPercentage is a required field
	InitialSamplingPercentage *int64 `type:"integer" required:"true"`

	// The Amazon Resource Name (ARN) of an Key Management Service key that SageMaker
	// uses to encrypt the captured data at rest using Amazon S3 server-side encryption.
	//
	// The KmsKeyId can be any of the following formats:
	//
	//    * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
	//
	//    * Key ARN: arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
	//
	//    * Alias name: alias/ExampleAlias
	//
	//    * Alias name ARN: arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias
	KmsKeyId *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DataCaptureConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DataCaptureConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DataCaptureConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DataCaptureConfig"}
	if s.CaptureOptions == nil {
		invalidParams.Add(request.NewErrParamRequired("CaptureOptions"))
	}
	if s.CaptureOptions != nil && len(s.CaptureOptions) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("CaptureOptions", 1))
	}
	if s.DestinationS3Uri == nil {
		invalidParams.Add(request.NewErrParamRequired("DestinationS3Uri"))
	}
	if s.InitialSamplingPercentage == nil {
		invalidParams.Add(request.NewErrParamRequired("InitialSamplingPercentage"))
	}
	if s.CaptureContentTypeHeader != nil {
		if err := s.CaptureContentTypeHeader.Validate(); err != nil {
			invalidParams.AddNested("CaptureContentTypeHeader", err.(request.ErrInvalidParams))
		}
	}
	if s.CaptureOptions != nil {
		for i, v := range s.CaptureOptions {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CaptureOptions", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCaptureContentTypeHeader sets the CaptureContentTypeHeader field's value.
func (s *DataCaptureConfig) SetCaptureContentTypeHeader(v *CaptureContentTypeHeader) *DataCaptureConfig {
	s.CaptureContentTypeHeader = v
	return s
}

// SetCaptureOptions sets the CaptureOptions field's value.
func (s *DataCaptureConfig) SetCaptureOptions(v []*CaptureOption) *DataCaptureConfig {
	s.CaptureOptions = v
	return s
}

// SetDestinationS3Uri sets the DestinationS3Uri field's value.
func (s *DataCaptureConfig) SetDestinationS3Uri(v string) *DataCaptureConfig {
	s.DestinationS3Uri = &v
	return s
}

// SetEnableCapture sets the EnableCapture field's value.
func (s *DataCaptureConfig) SetEnableCapture(v bool) *DataCaptureConfig {
	s.EnableCapture = &v
	return s
}

// SetInitialSamplingPercentage sets the InitialSamplingPercentage field's value.
func (s *DataCaptureConfig) SetInitialSamplingPercentage(v int64) *DataCaptureConfig {
	s.InitialSamplingPercentage = &v
	return s
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *DataCaptureConfig) SetKmsKeyId(v string) *DataCaptureConfig {
	s.KmsKeyId = &v
	return s
}

// The currently active data capture configuration used by your Endpoint.
type DataCaptureConfigSummary struct {
	_ struct{} `type:"structure"`

	// Whether data capture is currently functional.
	//
	// CaptureStatus is a required field
	CaptureStatus *string `type:"string" required:"true" enum:"CaptureStatus"`

	// The percentage of requests being captured by your Endpoint.
	//
	// CurrentSamplingPercentage is a required field
	CurrentSamplingPercentage *int64 `type:"integer" required:"true"`

	// The Amazon S3 location being used to capture the data.
	//
	// DestinationS3Uri is a required field
	DestinationS3Uri *string `type:"string" required:"true"`

	// Whether data capture is enabled or disabled.
	//
	// EnableCapture is a required field
	EnableCapture *bool `type:"boolean" required:"true"`

	// The KMS key being used to encrypt the data in Amazon S3.
	//
	// KmsKeyId is a required field
	KmsKeyId *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DataCaptureConfigSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DataCaptureConfigSummary) GoString() string {
	return s.String()
}

// SetCaptureStatus sets the CaptureStatus field's value.
func (s *DataCaptureConfigSummary) SetCaptureStatus(v string) *DataCaptureConfigSummary {
	s.CaptureStatus = &v
	return s
}

// SetCurrentSamplingPercentage sets the CurrentSamplingPercentage field's value.
func (s *DataCaptureConfigSummary) SetCurrentSamplingPercentage(v int64) *DataCaptureConfigSummary {
	s.CurrentSamplingPercentage = &v
	return s
}

// SetDestinationS3Uri sets the DestinationS3Uri field's value.
func (s *DataCaptureConfigSummary) SetDestinationS3Uri(v string) *DataCaptureConfigSummary {
	s.DestinationS3Uri = &v
	return s
}

// SetEnableCapture sets the EnableCapture field's value.
func (s *DataCaptureConfigSummary) SetEnableCapture(v bool) *DataCaptureConfigSummary {
	s.EnableCapture = &v
	return s
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *DataCaptureConfigSummary) SetKmsKeyId(v string) *DataCaptureConfigSummary {
	s.KmsKeyId = &v
	return s
}

// The meta data of the Glue table which serves as data catalog for the OfflineStore.
type DataCatalogConfig struct {
	_ struct{} `type:"structure"`

	// The name of the Glue table catalog.
	//
	// Catalog is a required field
	Catalog *string `min:"1" type:"string" required:"true"`

	// The name of the Glue table database.
	//
	// Database is a required field
	Database *string `min:"1" type:"string" required:"true"`

	// The name of the Glue table.
	//
	// TableName is a required field
	TableName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DataCatalogConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DataCatalogConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DataCatalogConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DataCatalogConfig"}
	if s.Catalog == nil {
		invalidParams.Add(request.NewErrParamRequired("Catalog"))
	}
	if s.Catalog != nil && len(*s.Catalog) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Catalog", 1))
	}
	if s.Database == nil {
		invalidParams.Add(request.NewErrParamRequired("Database"))
	}
	if s.Database != nil && len(*s.Database) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Database", 1))
	}
	if s.TableName == nil {
		invalidParams.Add(request.NewErrParamRequired("TableName"))
	}
	if s.TableName != nil && len(*s.TableName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TableName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCatalog sets the Catalog field's value.
func (s *DataCatalogConfig) SetCatalog(v string) *DataCatalogConfig {
	s.Catalog = &v
	return s
}

// SetDatabase sets the Database field's value.
func (s *DataCatalogConfig) SetDatabase(v string) *DataCatalogConfig {
	s.Database = &v
	return s
}

// SetTableName sets the TableName field's value.
func (s *DataCatalogConfig) SetTableName(v string) *DataCatalogConfig {
	s.TableName = &v
	return s
}

// The data structure used to specify the data to be used for inference in a
// batch transform job and to associate the data that is relevant to the prediction
// results in the output. The input filter provided allows you to exclude input
// data that is not needed for inference in a batch transform job. The output
// filter provided allows you to include input data relevant to interpreting
// the predictions in the output from the job. For more information, see Associate
// Prediction Results with their Corresponding Input Records (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html).
type DataProcessing struct {
	_ struct{} `type:"structure"`

	// A JSONPath (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html#data-processing-operators)
	// expression used to select a portion of the input data to pass to the algorithm.
	// Use the InputFilter parameter to exclude fields, such as an ID column, from
	// the input. If you want SageMaker to pass the entire input dataset to the
	// algorithm, accept the default value $.
	//
	// Examples: "$", "$[1:]", "$.features"
	InputFilter *string `type:"string"`

	// Specifies the source of the data to join with the transformed data. The valid
	// values are None and Input. The default value is None, which specifies not
	// to join the input with the transformed data. If you want the batch transform
	// job to join the original input data with the transformed data, set JoinSource
	// to Input. You can specify OutputFilter as an additional filter to select
	// a portion of the joined dataset and store it in the output file.
	//
	// For JSON or JSONLines objects, such as a JSON array, SageMaker adds the transformed
	// data to the input JSON object in an attribute called SageMakerOutput. The
	// joined result for JSON must be a key-value pair object. If the input is not
	// a key-value pair object, SageMaker creates a new JSON file. In the new JSON
	// file, and the input data is stored under the SageMakerInput key and the results
	// are stored in SageMakerOutput.
	//
	// For CSV data, SageMaker takes each row as a JSON array and joins the transformed
	// data with the input by appending each transformed row to the end of the input.
	// The joined data has the original input data followed by the transformed data
	// and the output is a CSV file.
	//
	// For information on how joining in applied, see Workflow for Associating Inferences
	// with Input Records (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html#batch-transform-data-processing-workflow).
	JoinSource *string `type:"string" enum:"JoinSource"`

	// A JSONPath (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html#data-processing-operators)
	// expression used to select a portion of the joined dataset to save in the
	// output file for a batch transform job. If you want SageMaker to store the
	// entire input dataset in the output file, leave the default value, $. If you
	// specify indexes that aren't within the dimension size of the joined dataset,
	// you get an error.
	//
	// Examples: "$", "$[0,5:]", "$['id','SageMakerOutput']"
	OutputFilter *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DataProcessing) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DataProcessing) GoString() string {
	return s.String()
}

// SetInputFilter sets the InputFilter field's value.
func (s *DataProcessing) SetInputFilter(v string) *DataProcessing {
	s.InputFilter = &v
	return s
}

// SetJoinSource sets the JoinSource field's value.
func (s *DataProcessing) SetJoinSource(v string) *DataProcessing {
	s.JoinSource = &v
	return s
}

// SetOutputFilter sets the OutputFilter field's value.
func (s *DataProcessing) SetOutputFilter(v string) *DataProcessing {
	s.OutputFilter = &v
	return s
}

// Information about the container that a data quality monitoring job runs.
type DataQualityAppSpecification struct {
	_ struct{} `type:"structure"`

	// The arguments to send to the container that the monitoring job runs.
	ContainerArguments []*string `min:"1" type:"list"`

	// The entrypoint for a container used to run a monitoring job.
	ContainerEntrypoint []*string `min:"1" type:"list"`

	// Sets the environment variables in the container that the monitoring job runs.
	Environment map[string]*string `type:"map"`

	// The container image that the data quality monitoring job runs.
	//
	// ImageUri is a required field
	ImageUri *string `type:"string" required:"true"`

	// An Amazon S3 URI to a script that is called after analysis has been performed.
	// Applicable only for the built-in (first party) containers.
	PostAnalyticsProcessorSourceUri *string `type:"string"`

	// An Amazon S3 URI to a script that is called per row prior to running analysis.
	// It can base64 decode the payload and convert it into a flattened JSON so
	// that the built-in container can use the converted data. Applicable only for
	// the built-in (first party) containers.
	RecordPreprocessorSourceUri *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DataQualityAppSpecification) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DataQualityAppSpecification) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DataQualityAppSpecification) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DataQualityAppSpecification"}
	if s.ContainerArguments != nil && len(s.ContainerArguments) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ContainerArguments", 1))
	}
	if s.ContainerEntrypoint != nil && len(s.ContainerEntrypoint) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ContainerEntrypoint", 1))
	}
	if s.ImageUri == nil {
		invalidParams.Add(request.NewErrParamRequired("ImageUri"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContainerArguments sets the ContainerArguments field's value.
func (s *DataQualityAppSpecification) SetContainerArguments(v []*string) *DataQualityAppSpecification {
	s.ContainerArguments = v
	return s
}

// SetContainerEntrypoint sets the ContainerEntrypoint field's value.
func (s *DataQualityAppSpecification) SetContainerEntrypoint(v []*string) *DataQualityAppSpecification {
	s.ContainerEntrypoint = v
	return s
}

// SetEnvironment sets the Environment field's value.
func (s *DataQualityAppSpecification) SetEnvironment(v map[string]*string) *DataQualityAppSpecification {
	s.Environment = v
	return s
}

// SetImageUri sets the ImageUri field's value.
func (s *DataQualityAppSpecification) SetImageUri(v string) *DataQualityAppSpecification {
	s.ImageUri = &v
	return s
}

// SetPostAnalyticsProcessorSourceUri sets the PostAnalyticsProcessorSourceUri field's value.
func (s *DataQualityAppSpecification) SetPostAnalyticsProcessorSourceUri(v string) *DataQualityAppSpecification {
	s.PostAnalyticsProcessorSourceUri = &v
	return s
}

// SetRecordPreprocessorSourceUri sets the RecordPreprocessorSourceUri field's value.
func (s *DataQualityAppSpecification) SetRecordPreprocessorSourceUri(v string) *DataQualityAppSpecification {
	s.RecordPreprocessorSourceUri = &v
	return s
}

// Configuration for monitoring constraints and monitoring statistics. These
// baseline resources are compared against the results of the current job from
// the series of jobs scheduled to collect data periodically.
type DataQualityBaselineConfig struct {
	_ struct{} `type:"structure"`

	// The name of the job that performs baselining for the data quality monitoring
	// job.
	BaseliningJobName *string `min:"1" type:"string"`

	// The constraints resource for a monitoring job.
	ConstraintsResource *MonitoringConstraintsResource `type:"structure"`

	// The statistics resource for a monitoring job.
	StatisticsResource *MonitoringStatisticsResource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DataQualityBaselineConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DataQualityBaselineConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DataQualityBaselineConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DataQualityBaselineConfig"}
	if s.BaseliningJobName != nil && len(*s.BaseliningJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("BaseliningJobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetBaseliningJobName sets the BaseliningJobName field's value.
func (s *DataQualityBaselineConfig) SetBaseliningJobName(v string) *DataQualityBaselineConfig {
	s.BaseliningJobName = &v
	return s
}

// SetConstraintsResource sets the ConstraintsResource field's value.
func (s *DataQualityBaselineConfig) SetConstraintsResource(v *MonitoringConstraintsResource) *DataQualityBaselineConfig {
	s.ConstraintsResource = v
	return s
}

// SetStatisticsResource sets the StatisticsResource field's value.
func (s *DataQualityBaselineConfig) SetStatisticsResource(v *MonitoringStatisticsResource) *DataQualityBaselineConfig {
	s.StatisticsResource = v
	return s
}

// The input for the data quality monitoring job. Currently endpoints are supported
// for input.
type DataQualityJobInput struct {
	_ struct{} `type:"structure"`

	// Input object for the batch transform job.
	BatchTransformInput *BatchTransformInput_ `type:"structure"`

	// Input object for the endpoint
	EndpointInput *EndpointInput `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DataQualityJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DataQualityJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DataQualityJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DataQualityJobInput"}
	if s.BatchTransformInput != nil {
		if err := s.BatchTransformInput.Validate(); err != nil {
			invalidParams.AddNested("BatchTransformInput", err.(request.ErrInvalidParams))
		}
	}
	if s.EndpointInput != nil {
		if err := s.EndpointInput.Validate(); err != nil {
			invalidParams.AddNested("EndpointInput", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetBatchTransformInput sets the BatchTransformInput field's value.
func (s *DataQualityJobInput) SetBatchTransformInput(v *BatchTransformInput_) *DataQualityJobInput {
	s.BatchTransformInput = v
	return s
}

// SetEndpointInput sets the EndpointInput field's value.
func (s *DataQualityJobInput) SetEndpointInput(v *EndpointInput) *DataQualityJobInput {
	s.EndpointInput = v
	return s
}

// Describes the location of the channel data.
type DataSource struct {
	_ struct{} `type:"structure"`

	// The file system that is associated with a channel.
	FileSystemDataSource *FileSystemDataSource `type:"structure"`

	// The S3 location of the data source that is associated with a channel.
	S3DataSource *S3DataSource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DataSource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DataSource) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DataSource) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DataSource"}
	if s.FileSystemDataSource != nil {
		if err := s.FileSystemDataSource.Validate(); err != nil {
			invalidParams.AddNested("FileSystemDataSource", err.(request.ErrInvalidParams))
		}
	}
	if s.S3DataSource != nil {
		if err := s.S3DataSource.Validate(); err != nil {
			invalidParams.AddNested("S3DataSource", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFileSystemDataSource sets the FileSystemDataSource field's value.
func (s *DataSource) SetFileSystemDataSource(v *FileSystemDataSource) *DataSource {
	s.FileSystemDataSource = v
	return s
}

// SetS3DataSource sets the S3DataSource field's value.
func (s *DataSource) SetS3DataSource(v *S3DataSource) *DataSource {
	s.S3DataSource = v
	return s
}

// Configuration for Dataset Definition inputs. The Dataset Definition input
// must specify exactly one of either AthenaDatasetDefinition or RedshiftDatasetDefinition
// types.
type DatasetDefinition struct {
	_ struct{} `type:"structure"`

	// Configuration for Athena Dataset Definition input.
	AthenaDatasetDefinition *AthenaDatasetDefinition `type:"structure"`

	// Whether the generated dataset is FullyReplicated or ShardedByS3Key (default).
	DataDistributionType *string `type:"string" enum:"DataDistributionType"`

	// Whether to use File or Pipe input mode. In File (default) mode, Amazon SageMaker
	// copies the data from the input source onto the local Amazon Elastic Block
	// Store (Amazon EBS) volumes before starting your training algorithm. This
	// is the most commonly used input mode. In Pipe mode, Amazon SageMaker streams
	// input data from the source directly to your algorithm without using the EBS
	// volume.
	InputMode *string `type:"string" enum:"InputMode"`

	// The local path where you want Amazon SageMaker to download the Dataset Definition
	// inputs to run a processing job. LocalPath is an absolute path to the input
	// data. This is a required parameter when AppManaged is False (default).
	LocalPath *string `type:"string"`

	// Configuration for Redshift Dataset Definition input.
	RedshiftDatasetDefinition *RedshiftDatasetDefinition `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DatasetDefinition) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DatasetDefinition) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DatasetDefinition) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DatasetDefinition"}
	if s.AthenaDatasetDefinition != nil {
		if err := s.AthenaDatasetDefinition.Validate(); err != nil {
			invalidParams.AddNested("AthenaDatasetDefinition", err.(request.ErrInvalidParams))
		}
	}
	if s.RedshiftDatasetDefinition != nil {
		if err := s.RedshiftDatasetDefinition.Validate(); err != nil {
			invalidParams.AddNested("RedshiftDatasetDefinition", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAthenaDatasetDefinition sets the AthenaDatasetDefinition field's value.
func (s *DatasetDefinition) SetAthenaDatasetDefinition(v *AthenaDatasetDefinition) *DatasetDefinition {
	s.AthenaDatasetDefinition = v
	return s
}

// SetDataDistributionType sets the DataDistributionType field's value.
func (s *DatasetDefinition) SetDataDistributionType(v string) *DatasetDefinition {
	s.DataDistributionType = &v
	return s
}

// SetInputMode sets the InputMode field's value.
func (s *DatasetDefinition) SetInputMode(v string) *DatasetDefinition {
	s.InputMode = &v
	return s
}

// SetLocalPath sets the LocalPath field's value.
func (s *DatasetDefinition) SetLocalPath(v string) *DatasetDefinition {
	s.LocalPath = &v
	return s
}

// SetRedshiftDatasetDefinition sets the RedshiftDatasetDefinition field's value.
func (s *DatasetDefinition) SetRedshiftDatasetDefinition(v *RedshiftDatasetDefinition) *DatasetDefinition {
	s.RedshiftDatasetDefinition = v
	return s
}

// Configuration information for the Amazon SageMaker Debugger hook parameters,
// metric and tensor collections, and storage paths. To learn more about how
// to configure the DebugHookConfig parameter, see Use the SageMaker and Debugger
// Configuration API Operations to Create, Update, and Debug Your Training Job
// (https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html).
type DebugHookConfig struct {
	_ struct{} `type:"structure"`

	// Configuration information for Amazon SageMaker Debugger tensor collections.
	// To learn more about how to configure the CollectionConfiguration parameter,
	// see Use the SageMaker and Debugger Configuration API Operations to Create,
	// Update, and Debug Your Training Job (https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html).
	CollectionConfigurations []*CollectionConfiguration `type:"list"`

	// Configuration information for the Amazon SageMaker Debugger hook parameters.
	HookParameters map[string]*string `type:"map"`

	// Path to local storage location for metrics and tensors. Defaults to /opt/ml/output/tensors/.
	LocalPath *string `type:"string"`

	// Path to Amazon S3 storage location for metrics and tensors.
	//
	// S3OutputPath is a required field
	S3OutputPath *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DebugHookConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DebugHookConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DebugHookConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DebugHookConfig"}
	if s.S3OutputPath == nil {
		invalidParams.Add(request.NewErrParamRequired("S3OutputPath"))
	}
	if s.CollectionConfigurations != nil {
		for i, v := range s.CollectionConfigurations {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CollectionConfigurations", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCollectionConfigurations sets the CollectionConfigurations field's value.
func (s *DebugHookConfig) SetCollectionConfigurations(v []*CollectionConfiguration) *DebugHookConfig {
	s.CollectionConfigurations = v
	return s
}

// SetHookParameters sets the HookParameters field's value.
func (s *DebugHookConfig) SetHookParameters(v map[string]*string) *DebugHookConfig {
	s.HookParameters = v
	return s
}

// SetLocalPath sets the LocalPath field's value.
func (s *DebugHookConfig) SetLocalPath(v string) *DebugHookConfig {
	s.LocalPath = &v
	return s
}

// SetS3OutputPath sets the S3OutputPath field's value.
func (s *DebugHookConfig) SetS3OutputPath(v string) *DebugHookConfig {
	s.S3OutputPath = &v
	return s
}

// Configuration information for SageMaker Debugger rules for debugging. To
// learn more about how to configure the DebugRuleConfiguration parameter, see
// Use the SageMaker and Debugger Configuration API Operations to Create, Update,
// and Debug Your Training Job (https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html).
type DebugRuleConfiguration struct {
	_ struct{} `type:"structure"`

	// The instance type to deploy a custom rule for debugging a training job.
	InstanceType *string `type:"string" enum:"ProcessingInstanceType"`

	// Path to local storage location for output of rules. Defaults to /opt/ml/processing/output/rule/.
	LocalPath *string `type:"string"`

	// The name of the rule configuration. It must be unique relative to other rule
	// configuration names.
	//
	// RuleConfigurationName is a required field
	RuleConfigurationName *string `min:"1" type:"string" required:"true"`

	// The Amazon Elastic Container (ECR) Image for the managed rule evaluation.
	//
	// RuleEvaluatorImage is a required field
	RuleEvaluatorImage *string `type:"string" required:"true"`

	// Runtime configuration for rule container.
	RuleParameters map[string]*string `type:"map"`

	// Path to Amazon S3 storage location for rules.
	S3OutputPath *string `type:"string"`

	// The size, in GB, of the ML storage volume attached to the processing instance.
	VolumeSizeInGB *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DebugRuleConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DebugRuleConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DebugRuleConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DebugRuleConfiguration"}
	if s.RuleConfigurationName == nil {
		invalidParams.Add(request.NewErrParamRequired("RuleConfigurationName"))
	}
	if s.RuleConfigurationName != nil && len(*s.RuleConfigurationName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("RuleConfigurationName", 1))
	}
	if s.RuleEvaluatorImage == nil {
		invalidParams.Add(request.NewErrParamRequired("RuleEvaluatorImage"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetInstanceType sets the InstanceType field's value.
func (s *DebugRuleConfiguration) SetInstanceType(v string) *DebugRuleConfiguration {
	s.InstanceType = &v
	return s
}

// SetLocalPath sets the LocalPath field's value.
func (s *DebugRuleConfiguration) SetLocalPath(v string) *DebugRuleConfiguration {
	s.LocalPath = &v
	return s
}

// SetRuleConfigurationName sets the RuleConfigurationName field's value.
func (s *DebugRuleConfiguration) SetRuleConfigurationName(v string) *DebugRuleConfiguration {
	s.RuleConfigurationName = &v
	return s
}

// SetRuleEvaluatorImage sets the RuleEvaluatorImage field's value.
func (s *DebugRuleConfiguration) SetRuleEvaluatorImage(v string) *DebugRuleConfiguration {
	s.RuleEvaluatorImage = &v
	return s
}

// SetRuleParameters sets the RuleParameters field's value.
func (s *DebugRuleConfiguration) SetRuleParameters(v map[string]*string) *DebugRuleConfiguration {
	s.RuleParameters = v
	return s
}

// SetS3OutputPath sets the S3OutputPath field's value.
func (s *DebugRuleConfiguration) SetS3OutputPath(v string) *DebugRuleConfiguration {
	s.S3OutputPath = &v
	return s
}

// SetVolumeSizeInGB sets the VolumeSizeInGB field's value.
func (s *DebugRuleConfiguration) SetVolumeSizeInGB(v int64) *DebugRuleConfiguration {
	s.VolumeSizeInGB = &v
	return s
}

// Information about the status of the rule evaluation.
type DebugRuleEvaluationStatus struct {
	_ struct{} `type:"structure"`

	// Timestamp when the rule evaluation status was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The name of the rule configuration.
	RuleConfigurationName *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) of the rule evaluation job.
	RuleEvaluationJobArn *string `type:"string"`

	// Status of the rule evaluation.
	RuleEvaluationStatus *string `type:"string" enum:"RuleEvaluationStatus"`

	// Details from the rule evaluation.
	StatusDetails *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DebugRuleEvaluationStatus) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DebugRuleEvaluationStatus) GoString() string {
	return s.String()
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DebugRuleEvaluationStatus) SetLastModifiedTime(v time.Time) *DebugRuleEvaluationStatus {
	s.LastModifiedTime = &v
	return s
}

// SetRuleConfigurationName sets the RuleConfigurationName field's value.
func (s *DebugRuleEvaluationStatus) SetRuleConfigurationName(v string) *DebugRuleEvaluationStatus {
	s.RuleConfigurationName = &v
	return s
}

// SetRuleEvaluationJobArn sets the RuleEvaluationJobArn field's value.
func (s *DebugRuleEvaluationStatus) SetRuleEvaluationJobArn(v string) *DebugRuleEvaluationStatus {
	s.RuleEvaluationJobArn = &v
	return s
}

// SetRuleEvaluationStatus sets the RuleEvaluationStatus field's value.
func (s *DebugRuleEvaluationStatus) SetRuleEvaluationStatus(v string) *DebugRuleEvaluationStatus {
	s.RuleEvaluationStatus = &v
	return s
}

// SetStatusDetails sets the StatusDetails field's value.
func (s *DebugRuleEvaluationStatus) SetStatusDetails(v string) *DebugRuleEvaluationStatus {
	s.StatusDetails = &v
	return s
}

// A collection of default EBS storage settings that applies to private spaces
// created within a domain or user profile.
type DefaultEbsStorageSettings struct {
	_ struct{} `type:"structure"`

	// The default size of the EBS storage volume for a private space.
	//
	// DefaultEbsVolumeSizeInGb is a required field
	DefaultEbsVolumeSizeInGb *int64 `min:"5" type:"integer" required:"true"`

	// The maximum size of the EBS storage volume for a private space.
	//
	// MaximumEbsVolumeSizeInGb is a required field
	MaximumEbsVolumeSizeInGb *int64 `min:"5" type:"integer" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DefaultEbsStorageSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DefaultEbsStorageSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DefaultEbsStorageSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DefaultEbsStorageSettings"}
	if s.DefaultEbsVolumeSizeInGb == nil {
		invalidParams.Add(request.NewErrParamRequired("DefaultEbsVolumeSizeInGb"))
	}
	if s.DefaultEbsVolumeSizeInGb != nil && *s.DefaultEbsVolumeSizeInGb < 5 {
		invalidParams.Add(request.NewErrParamMinValue("DefaultEbsVolumeSizeInGb", 5))
	}
	if s.MaximumEbsVolumeSizeInGb == nil {
		invalidParams.Add(request.NewErrParamRequired("MaximumEbsVolumeSizeInGb"))
	}
	if s.MaximumEbsVolumeSizeInGb != nil && *s.MaximumEbsVolumeSizeInGb < 5 {
		invalidParams.Add(request.NewErrParamMinValue("MaximumEbsVolumeSizeInGb", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDefaultEbsVolumeSizeInGb sets the DefaultEbsVolumeSizeInGb field's value.
func (s *DefaultEbsStorageSettings) SetDefaultEbsVolumeSizeInGb(v int64) *DefaultEbsStorageSettings {
	s.DefaultEbsVolumeSizeInGb = &v
	return s
}

// SetMaximumEbsVolumeSizeInGb sets the MaximumEbsVolumeSizeInGb field's value.
func (s *DefaultEbsStorageSettings) SetMaximumEbsVolumeSizeInGb(v int64) *DefaultEbsStorageSettings {
	s.MaximumEbsVolumeSizeInGb = &v
	return s
}

// A collection of settings that apply to spaces created in the Domain.
type DefaultSpaceSettings struct {
	_ struct{} `type:"structure"`

	// The ARN of the execution role for the space.
	ExecutionRole *string `min:"20" type:"string"`

	// The JupyterServer app settings.
	JupyterServerAppSettings *JupyterServerAppSettings `type:"structure"`

	// The KernelGateway app settings.
	KernelGatewayAppSettings *KernelGatewayAppSettings `type:"structure"`

	// The security group IDs for the Amazon Virtual Private Cloud that the space
	// uses for communication.
	SecurityGroups []*string `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DefaultSpaceSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DefaultSpaceSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DefaultSpaceSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DefaultSpaceSettings"}
	if s.ExecutionRole != nil && len(*s.ExecutionRole) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("ExecutionRole", 20))
	}
	if s.JupyterServerAppSettings != nil {
		if err := s.JupyterServerAppSettings.Validate(); err != nil {
			invalidParams.AddNested("JupyterServerAppSettings", err.(request.ErrInvalidParams))
		}
	}
	if s.KernelGatewayAppSettings != nil {
		if err := s.KernelGatewayAppSettings.Validate(); err != nil {
			invalidParams.AddNested("KernelGatewayAppSettings", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetExecutionRole sets the ExecutionRole field's value.
func (s *DefaultSpaceSettings) SetExecutionRole(v string) *DefaultSpaceSettings {
	s.ExecutionRole = &v
	return s
}

// SetJupyterServerAppSettings sets the JupyterServerAppSettings field's value.
func (s *DefaultSpaceSettings) SetJupyterServerAppSettings(v *JupyterServerAppSettings) *DefaultSpaceSettings {
	s.JupyterServerAppSettings = v
	return s
}

// SetKernelGatewayAppSettings sets the KernelGatewayAppSettings field's value.
func (s *DefaultSpaceSettings) SetKernelGatewayAppSettings(v *KernelGatewayAppSettings) *DefaultSpaceSettings {
	s.KernelGatewayAppSettings = v
	return s
}

// SetSecurityGroups sets the SecurityGroups field's value.
func (s *DefaultSpaceSettings) SetSecurityGroups(v []*string) *DefaultSpaceSettings {
	s.SecurityGroups = v
	return s
}

// The default storage settings for a private space.
type DefaultSpaceStorageSettings struct {
	_ struct{} `type:"structure"`

	// The default EBS storage settings for a private space.
	DefaultEbsStorageSettings *DefaultEbsStorageSettings `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DefaultSpaceStorageSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DefaultSpaceStorageSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DefaultSpaceStorageSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DefaultSpaceStorageSettings"}
	if s.DefaultEbsStorageSettings != nil {
		if err := s.DefaultEbsStorageSettings.Validate(); err != nil {
			invalidParams.AddNested("DefaultEbsStorageSettings", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDefaultEbsStorageSettings sets the DefaultEbsStorageSettings field's value.
func (s *DefaultSpaceStorageSettings) SetDefaultEbsStorageSettings(v *DefaultEbsStorageSettings) *DefaultSpaceStorageSettings {
	s.DefaultEbsStorageSettings = v
	return s
}

type DeleteActionInput struct {
	_ struct{} `type:"structure"`

	// The name of the action to delete.
	//
	// ActionName is a required field
	ActionName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteActionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteActionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteActionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteActionInput"}
	if s.ActionName == nil {
		invalidParams.Add(request.NewErrParamRequired("ActionName"))
	}
	if s.ActionName != nil && len(*s.ActionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetActionName sets the ActionName field's value.
func (s *DeleteActionInput) SetActionName(v string) *DeleteActionInput {
	s.ActionName = &v
	return s
}

type DeleteActionOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the action.
	ActionArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteActionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteActionOutput) GoString() string {
	return s.String()
}

// SetActionArn sets the ActionArn field's value.
func (s *DeleteActionOutput) SetActionArn(v string) *DeleteActionOutput {
	s.ActionArn = &v
	return s
}

type DeleteAlgorithmInput struct {
	_ struct{} `type:"structure"`

	// The name of the algorithm to delete.
	//
	// AlgorithmName is a required field
	AlgorithmName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAlgorithmInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAlgorithmInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteAlgorithmInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteAlgorithmInput"}
	if s.AlgorithmName == nil {
		invalidParams.Add(request.NewErrParamRequired("AlgorithmName"))
	}
	if s.AlgorithmName != nil && len(*s.AlgorithmName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AlgorithmName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAlgorithmName sets the AlgorithmName field's value.
func (s *DeleteAlgorithmInput) SetAlgorithmName(v string) *DeleteAlgorithmInput {
	s.AlgorithmName = &v
	return s
}

type DeleteAlgorithmOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAlgorithmOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAlgorithmOutput) GoString() string {
	return s.String()
}

type DeleteAppImageConfigInput struct {
	_ struct{} `type:"structure"`

	// The name of the AppImageConfig to delete.
	//
	// AppImageConfigName is a required field
	AppImageConfigName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAppImageConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAppImageConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteAppImageConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteAppImageConfigInput"}
	if s.AppImageConfigName == nil {
		invalidParams.Add(request.NewErrParamRequired("AppImageConfigName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppImageConfigName sets the AppImageConfigName field's value.
func (s *DeleteAppImageConfigInput) SetAppImageConfigName(v string) *DeleteAppImageConfigInput {
	s.AppImageConfigName = &v
	return s
}

type DeleteAppImageConfigOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAppImageConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAppImageConfigOutput) GoString() string {
	return s.String()
}

type DeleteAppInput struct {
	_ struct{} `type:"structure"`

	// The name of the app.
	//
	// AppName is a required field
	AppName *string `type:"string" required:"true"`

	// The type of app.
	//
	// AppType is a required field
	AppType *string `type:"string" required:"true" enum:"AppType"`

	// The domain ID.
	//
	// DomainId is a required field
	DomainId *string `type:"string" required:"true"`

	// The name of the space. If this value is not set, then UserProfileName must
	// be set.
	SpaceName *string `type:"string"`

	// The user profile name. If this value is not set, then SpaceName must be set.
	UserProfileName *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAppInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAppInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteAppInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteAppInput"}
	if s.AppName == nil {
		invalidParams.Add(request.NewErrParamRequired("AppName"))
	}
	if s.AppType == nil {
		invalidParams.Add(request.NewErrParamRequired("AppType"))
	}
	if s.DomainId == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainId"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppName sets the AppName field's value.
func (s *DeleteAppInput) SetAppName(v string) *DeleteAppInput {
	s.AppName = &v
	return s
}

// SetAppType sets the AppType field's value.
func (s *DeleteAppInput) SetAppType(v string) *DeleteAppInput {
	s.AppType = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *DeleteAppInput) SetDomainId(v string) *DeleteAppInput {
	s.DomainId = &v
	return s
}

// SetSpaceName sets the SpaceName field's value.
func (s *DeleteAppInput) SetSpaceName(v string) *DeleteAppInput {
	s.SpaceName = &v
	return s
}

// SetUserProfileName sets the UserProfileName field's value.
func (s *DeleteAppInput) SetUserProfileName(v string) *DeleteAppInput {
	s.UserProfileName = &v
	return s
}

type DeleteAppOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAppOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAppOutput) GoString() string {
	return s.String()
}

type DeleteArtifactInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the artifact to delete.
	ArtifactArn *string `type:"string"`

	// The URI of the source.
	Source *ArtifactSource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteArtifactInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteArtifactInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteArtifactInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteArtifactInput"}
	if s.Source != nil {
		if err := s.Source.Validate(); err != nil {
			invalidParams.AddNested("Source", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetArtifactArn sets the ArtifactArn field's value.
func (s *DeleteArtifactInput) SetArtifactArn(v string) *DeleteArtifactInput {
	s.ArtifactArn = &v
	return s
}

// SetSource sets the Source field's value.
func (s *DeleteArtifactInput) SetSource(v *ArtifactSource) *DeleteArtifactInput {
	s.Source = v
	return s
}

type DeleteArtifactOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the artifact.
	ArtifactArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteArtifactOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteArtifactOutput) GoString() string {
	return s.String()
}

// SetArtifactArn sets the ArtifactArn field's value.
func (s *DeleteArtifactOutput) SetArtifactArn(v string) *DeleteArtifactOutput {
	s.ArtifactArn = &v
	return s
}

type DeleteAssociationInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the destination.
	//
	// DestinationArn is a required field
	DestinationArn *string `type:"string" required:"true"`

	// The ARN of the source.
	//
	// SourceArn is a required field
	SourceArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAssociationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAssociationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteAssociationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteAssociationInput"}
	if s.DestinationArn == nil {
		invalidParams.Add(request.NewErrParamRequired("DestinationArn"))
	}
	if s.SourceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("SourceArn"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDestinationArn sets the DestinationArn field's value.
func (s *DeleteAssociationInput) SetDestinationArn(v string) *DeleteAssociationInput {
	s.DestinationArn = &v
	return s
}

// SetSourceArn sets the SourceArn field's value.
func (s *DeleteAssociationInput) SetSourceArn(v string) *DeleteAssociationInput {
	s.SourceArn = &v
	return s
}

type DeleteAssociationOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the destination.
	DestinationArn *string `type:"string"`

	// The ARN of the source.
	SourceArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAssociationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAssociationOutput) GoString() string {
	return s.String()
}

// SetDestinationArn sets the DestinationArn field's value.
func (s *DeleteAssociationOutput) SetDestinationArn(v string) *DeleteAssociationOutput {
	s.DestinationArn = &v
	return s
}

// SetSourceArn sets the SourceArn field's value.
func (s *DeleteAssociationOutput) SetSourceArn(v string) *DeleteAssociationOutput {
	s.SourceArn = &v
	return s
}

type DeleteClusterInput struct {
	_ struct{} `type:"structure"`

	// The string name or the Amazon Resource Name (ARN) of the SageMaker HyperPod
	// cluster to delete.
	//
	// ClusterName is a required field
	ClusterName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteClusterInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteClusterInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteClusterInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterInput"}
	if s.ClusterName == nil {
		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClusterName sets the ClusterName field's value.
func (s *DeleteClusterInput) SetClusterName(v string) *DeleteClusterInput {
	s.ClusterName = &v
	return s
}

type DeleteClusterOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the SageMaker HyperPod cluster to delete.
	//
	// ClusterArn is a required field
	ClusterArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteClusterOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteClusterOutput) GoString() string {
	return s.String()
}

// SetClusterArn sets the ClusterArn field's value.
func (s *DeleteClusterOutput) SetClusterArn(v string) *DeleteClusterOutput {
	s.ClusterArn = &v
	return s
}

type DeleteCodeRepositoryInput struct {
	_ struct{} `type:"structure"`

	// The name of the Git repository to delete.
	//
	// CodeRepositoryName is a required field
	CodeRepositoryName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteCodeRepositoryInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteCodeRepositoryInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteCodeRepositoryInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteCodeRepositoryInput"}
	if s.CodeRepositoryName == nil {
		invalidParams.Add(request.NewErrParamRequired("CodeRepositoryName"))
	}
	if s.CodeRepositoryName != nil && len(*s.CodeRepositoryName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("CodeRepositoryName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCodeRepositoryName sets the CodeRepositoryName field's value.
func (s *DeleteCodeRepositoryInput) SetCodeRepositoryName(v string) *DeleteCodeRepositoryInput {
	s.CodeRepositoryName = &v
	return s
}

type DeleteCodeRepositoryOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteCodeRepositoryOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteCodeRepositoryOutput) GoString() string {
	return s.String()
}

type DeleteCompilationJobInput struct {
	_ struct{} `type:"structure"`

	// The name of the compilation job to delete.
	//
	// CompilationJobName is a required field
	CompilationJobName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteCompilationJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteCompilationJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteCompilationJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteCompilationJobInput"}
	if s.CompilationJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("CompilationJobName"))
	}
	if s.CompilationJobName != nil && len(*s.CompilationJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("CompilationJobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCompilationJobName sets the CompilationJobName field's value.
func (s *DeleteCompilationJobInput) SetCompilationJobName(v string) *DeleteCompilationJobInput {
	s.CompilationJobName = &v
	return s
}

type DeleteCompilationJobOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteCompilationJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteCompilationJobOutput) GoString() string {
	return s.String()
}

type DeleteContextInput struct {
	_ struct{} `type:"structure"`

	// The name of the context to delete.
	//
	// ContextName is a required field
	ContextName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteContextInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteContextInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteContextInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteContextInput"}
	if s.ContextName == nil {
		invalidParams.Add(request.NewErrParamRequired("ContextName"))
	}
	if s.ContextName != nil && len(*s.ContextName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ContextName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContextName sets the ContextName field's value.
func (s *DeleteContextInput) SetContextName(v string) *DeleteContextInput {
	s.ContextName = &v
	return s
}

type DeleteContextOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the context.
	ContextArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteContextOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteContextOutput) GoString() string {
	return s.String()
}

// SetContextArn sets the ContextArn field's value.
func (s *DeleteContextOutput) SetContextArn(v string) *DeleteContextOutput {
	s.ContextArn = &v
	return s
}

type DeleteDataQualityJobDefinitionInput struct {
	_ struct{} `type:"structure"`

	// The name of the data quality monitoring job definition to delete.
	//
	// JobDefinitionName is a required field
	JobDefinitionName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteDataQualityJobDefinitionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteDataQualityJobDefinitionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteDataQualityJobDefinitionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteDataQualityJobDefinitionInput"}
	if s.JobDefinitionName == nil {
		invalidParams.Add(request.NewErrParamRequired("JobDefinitionName"))
	}
	if s.JobDefinitionName != nil && len(*s.JobDefinitionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("JobDefinitionName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetJobDefinitionName sets the JobDefinitionName field's value.
func (s *DeleteDataQualityJobDefinitionInput) SetJobDefinitionName(v string) *DeleteDataQualityJobDefinitionInput {
	s.JobDefinitionName = &v
	return s
}

type DeleteDataQualityJobDefinitionOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteDataQualityJobDefinitionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteDataQualityJobDefinitionOutput) GoString() string {
	return s.String()
}

type DeleteDeviceFleetInput struct {
	_ struct{} `type:"structure"`

	// The name of the fleet to delete.
	//
	// DeviceFleetName is a required field
	DeviceFleetName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteDeviceFleetInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteDeviceFleetInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteDeviceFleetInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteDeviceFleetInput"}
	if s.DeviceFleetName == nil {
		invalidParams.Add(request.NewErrParamRequired("DeviceFleetName"))
	}
	if s.DeviceFleetName != nil && len(*s.DeviceFleetName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DeviceFleetName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDeviceFleetName sets the DeviceFleetName field's value.
func (s *DeleteDeviceFleetInput) SetDeviceFleetName(v string) *DeleteDeviceFleetInput {
	s.DeviceFleetName = &v
	return s
}

type DeleteDeviceFleetOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteDeviceFleetOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteDeviceFleetOutput) GoString() string {
	return s.String()
}

type DeleteDomainInput struct {
	_ struct{} `type:"structure"`

	// The domain ID.
	//
	// DomainId is a required field
	DomainId *string `type:"string" required:"true"`

	// The retention policy for this domain, which specifies whether resources will
	// be retained after the Domain is deleted. By default, all resources are retained
	// (not automatically deleted).
	RetentionPolicy *RetentionPolicy `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteDomainInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteDomainInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteDomainInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteDomainInput"}
	if s.DomainId == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainId"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainId sets the DomainId field's value.
func (s *DeleteDomainInput) SetDomainId(v string) *DeleteDomainInput {
	s.DomainId = &v
	return s
}

// SetRetentionPolicy sets the RetentionPolicy field's value.
func (s *DeleteDomainInput) SetRetentionPolicy(v *RetentionPolicy) *DeleteDomainInput {
	s.RetentionPolicy = v
	return s
}

type DeleteDomainOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteDomainOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteDomainOutput) GoString() string {
	return s.String()
}

type DeleteEdgeDeploymentPlanInput struct {
	_ struct{} `type:"structure"`

	// The name of the edge deployment plan to delete.
	//
	// EdgeDeploymentPlanName is a required field
	EdgeDeploymentPlanName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteEdgeDeploymentPlanInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteEdgeDeploymentPlanInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteEdgeDeploymentPlanInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteEdgeDeploymentPlanInput"}
	if s.EdgeDeploymentPlanName == nil {
		invalidParams.Add(request.NewErrParamRequired("EdgeDeploymentPlanName"))
	}
	if s.EdgeDeploymentPlanName != nil && len(*s.EdgeDeploymentPlanName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("EdgeDeploymentPlanName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEdgeDeploymentPlanName sets the EdgeDeploymentPlanName field's value.
func (s *DeleteEdgeDeploymentPlanInput) SetEdgeDeploymentPlanName(v string) *DeleteEdgeDeploymentPlanInput {
	s.EdgeDeploymentPlanName = &v
	return s
}

type DeleteEdgeDeploymentPlanOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteEdgeDeploymentPlanOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteEdgeDeploymentPlanOutput) GoString() string {
	return s.String()
}

type DeleteEdgeDeploymentStageInput struct {
	_ struct{} `type:"structure"`

	// The name of the edge deployment plan from which the stage will be deleted.
	//
	// EdgeDeploymentPlanName is a required field
	EdgeDeploymentPlanName *string `min:"1" type:"string" required:"true"`

	// The name of the stage.
	//
	// StageName is a required field
	StageName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteEdgeDeploymentStageInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteEdgeDeploymentStageInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteEdgeDeploymentStageInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteEdgeDeploymentStageInput"}
	if s.EdgeDeploymentPlanName == nil {
		invalidParams.Add(request.NewErrParamRequired("EdgeDeploymentPlanName"))
	}
	if s.EdgeDeploymentPlanName != nil && len(*s.EdgeDeploymentPlanName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("EdgeDeploymentPlanName", 1))
	}
	if s.StageName == nil {
		invalidParams.Add(request.NewErrParamRequired("StageName"))
	}
	if s.StageName != nil && len(*s.StageName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEdgeDeploymentPlanName sets the EdgeDeploymentPlanName field's value.
func (s *DeleteEdgeDeploymentStageInput) SetEdgeDeploymentPlanName(v string) *DeleteEdgeDeploymentStageInput {
	s.EdgeDeploymentPlanName = &v
	return s
}

// SetStageName sets the StageName field's value.
func (s *DeleteEdgeDeploymentStageInput) SetStageName(v string) *DeleteEdgeDeploymentStageInput {
	s.StageName = &v
	return s
}

type DeleteEdgeDeploymentStageOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteEdgeDeploymentStageOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteEdgeDeploymentStageOutput) GoString() string {
	return s.String()
}

type DeleteEndpointConfigInput struct {
	_ struct{} `type:"structure"`

	// The name of the endpoint configuration that you want to delete.
	//
	// EndpointConfigName is a required field
	EndpointConfigName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteEndpointConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteEndpointConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteEndpointConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteEndpointConfigInput"}
	if s.EndpointConfigName == nil {
		invalidParams.Add(request.NewErrParamRequired("EndpointConfigName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEndpointConfigName sets the EndpointConfigName field's value.
func (s *DeleteEndpointConfigInput) SetEndpointConfigName(v string) *DeleteEndpointConfigInput {
	s.EndpointConfigName = &v
	return s
}

type DeleteEndpointConfigOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteEndpointConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteEndpointConfigOutput) GoString() string {
	return s.String()
}

type DeleteEndpointInput struct {
	_ struct{} `type:"structure"`

	// The name of the endpoint that you want to delete.
	//
	// EndpointName is a required field
	EndpointName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteEndpointInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteEndpointInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteEndpointInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteEndpointInput"}
	if s.EndpointName == nil {
		invalidParams.Add(request.NewErrParamRequired("EndpointName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEndpointName sets the EndpointName field's value.
func (s *DeleteEndpointInput) SetEndpointName(v string) *DeleteEndpointInput {
	s.EndpointName = &v
	return s
}

type DeleteEndpointOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteEndpointOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteEndpointOutput) GoString() string {
	return s.String()
}

type DeleteExperimentInput struct {
	_ struct{} `type:"structure"`

	// The name of the experiment to delete.
	//
	// ExperimentName is a required field
	ExperimentName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteExperimentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteExperimentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteExperimentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteExperimentInput"}
	if s.ExperimentName == nil {
		invalidParams.Add(request.NewErrParamRequired("ExperimentName"))
	}
	if s.ExperimentName != nil && len(*s.ExperimentName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ExperimentName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetExperimentName sets the ExperimentName field's value.
func (s *DeleteExperimentInput) SetExperimentName(v string) *DeleteExperimentInput {
	s.ExperimentName = &v
	return s
}

type DeleteExperimentOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the experiment that is being deleted.
	ExperimentArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteExperimentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteExperimentOutput) GoString() string {
	return s.String()
}

// SetExperimentArn sets the ExperimentArn field's value.
func (s *DeleteExperimentOutput) SetExperimentArn(v string) *DeleteExperimentOutput {
	s.ExperimentArn = &v
	return s
}

type DeleteFeatureGroupInput struct {
	_ struct{} `type:"structure"`

	// The name of the FeatureGroup you want to delete. The name must be unique
	// within an Amazon Web Services Region in an Amazon Web Services account.
	//
	// FeatureGroupName is a required field
	FeatureGroupName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFeatureGroupInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFeatureGroupInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteFeatureGroupInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteFeatureGroupInput"}
	if s.FeatureGroupName == nil {
		invalidParams.Add(request.NewErrParamRequired("FeatureGroupName"))
	}
	if s.FeatureGroupName != nil && len(*s.FeatureGroupName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FeatureGroupName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFeatureGroupName sets the FeatureGroupName field's value.
func (s *DeleteFeatureGroupInput) SetFeatureGroupName(v string) *DeleteFeatureGroupInput {
	s.FeatureGroupName = &v
	return s
}

type DeleteFeatureGroupOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFeatureGroupOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFeatureGroupOutput) GoString() string {
	return s.String()
}

type DeleteFlowDefinitionInput struct {
	_ struct{} `type:"structure"`

	// The name of the flow definition you are deleting.
	//
	// FlowDefinitionName is a required field
	FlowDefinitionName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFlowDefinitionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFlowDefinitionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteFlowDefinitionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteFlowDefinitionInput"}
	if s.FlowDefinitionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FlowDefinitionName"))
	}
	if s.FlowDefinitionName != nil && len(*s.FlowDefinitionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FlowDefinitionName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFlowDefinitionName sets the FlowDefinitionName field's value.
func (s *DeleteFlowDefinitionInput) SetFlowDefinitionName(v string) *DeleteFlowDefinitionInput {
	s.FlowDefinitionName = &v
	return s
}

type DeleteFlowDefinitionOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFlowDefinitionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFlowDefinitionOutput) GoString() string {
	return s.String()
}

type DeleteHubContentInput struct {
	_ struct{} `type:"structure"`

	// The name of the content that you want to delete from a hub.
	//
	// HubContentName is a required field
	HubContentName *string `type:"string" required:"true"`

	// The type of content that you want to delete from a hub.
	//
	// HubContentType is a required field
	HubContentType *string `type:"string" required:"true" enum:"HubContentType"`

	// The version of the content that you want to delete from a hub.
	//
	// HubContentVersion is a required field
	HubContentVersion *string `min:"5" type:"string" required:"true"`

	// The name of the hub that you want to delete content in.
	//
	// HubName is a required field
	HubName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteHubContentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteHubContentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteHubContentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteHubContentInput"}
	if s.HubContentName == nil {
		invalidParams.Add(request.NewErrParamRequired("HubContentName"))
	}
	if s.HubContentType == nil {
		invalidParams.Add(request.NewErrParamRequired("HubContentType"))
	}
	if s.HubContentVersion == nil {
		invalidParams.Add(request.NewErrParamRequired("HubContentVersion"))
	}
	if s.HubContentVersion != nil && len(*s.HubContentVersion) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("HubContentVersion", 5))
	}
	if s.HubName == nil {
		invalidParams.Add(request.NewErrParamRequired("HubName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetHubContentName sets the HubContentName field's value.
func (s *DeleteHubContentInput) SetHubContentName(v string) *DeleteHubContentInput {
	s.HubContentName = &v
	return s
}

// SetHubContentType sets the HubContentType field's value.
func (s *DeleteHubContentInput) SetHubContentType(v string) *DeleteHubContentInput {
	s.HubContentType = &v
	return s
}

// SetHubContentVersion sets the HubContentVersion field's value.
func (s *DeleteHubContentInput) SetHubContentVersion(v string) *DeleteHubContentInput {
	s.HubContentVersion = &v
	return s
}

// SetHubName sets the HubName field's value.
func (s *DeleteHubContentInput) SetHubName(v string) *DeleteHubContentInput {
	s.HubName = &v
	return s
}

type DeleteHubContentOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteHubContentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteHubContentOutput) GoString() string {
	return s.String()
}

type DeleteHubInput struct {
	_ struct{} `type:"structure"`

	// The name of the hub to delete.
	//
	// HubName is a required field
	HubName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteHubInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteHubInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteHubInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteHubInput"}
	if s.HubName == nil {
		invalidParams.Add(request.NewErrParamRequired("HubName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetHubName sets the HubName field's value.
func (s *DeleteHubInput) SetHubName(v string) *DeleteHubInput {
	s.HubName = &v
	return s
}

type DeleteHubOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteHubOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteHubOutput) GoString() string {
	return s.String()
}

type DeleteHumanTaskUiInput struct {
	_ struct{} `type:"structure"`

	// The name of the human task user interface (work task template) you want to
	// delete.
	//
	// HumanTaskUiName is a required field
	HumanTaskUiName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteHumanTaskUiInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteHumanTaskUiInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteHumanTaskUiInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteHumanTaskUiInput"}
	if s.HumanTaskUiName == nil {
		invalidParams.Add(request.NewErrParamRequired("HumanTaskUiName"))
	}
	if s.HumanTaskUiName != nil && len(*s.HumanTaskUiName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("HumanTaskUiName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetHumanTaskUiName sets the HumanTaskUiName field's value.
func (s *DeleteHumanTaskUiInput) SetHumanTaskUiName(v string) *DeleteHumanTaskUiInput {
	s.HumanTaskUiName = &v
	return s
}

type DeleteHumanTaskUiOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteHumanTaskUiOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteHumanTaskUiOutput) GoString() string {
	return s.String()
}

type DeleteHyperParameterTuningJobInput struct {
	_ struct{} `type:"structure"`

	// The name of the hyperparameter tuning job that you want to delete.
	//
	// HyperParameterTuningJobName is a required field
	HyperParameterTuningJobName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteHyperParameterTuningJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteHyperParameterTuningJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteHyperParameterTuningJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteHyperParameterTuningJobInput"}
	if s.HyperParameterTuningJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("HyperParameterTuningJobName"))
	}
	if s.HyperParameterTuningJobName != nil && len(*s.HyperParameterTuningJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("HyperParameterTuningJobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetHyperParameterTuningJobName sets the HyperParameterTuningJobName field's value.
func (s *DeleteHyperParameterTuningJobInput) SetHyperParameterTuningJobName(v string) *DeleteHyperParameterTuningJobInput {
	s.HyperParameterTuningJobName = &v
	return s
}

type DeleteHyperParameterTuningJobOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteHyperParameterTuningJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteHyperParameterTuningJobOutput) GoString() string {
	return s.String()
}

type DeleteImageInput struct {
	_ struct{} `type:"structure"`

	// The name of the image to delete.
	//
	// ImageName is a required field
	ImageName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteImageInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteImageInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteImageInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteImageInput"}
	if s.ImageName == nil {
		invalidParams.Add(request.NewErrParamRequired("ImageName"))
	}
	if s.ImageName != nil && len(*s.ImageName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ImageName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetImageName sets the ImageName field's value.
func (s *DeleteImageInput) SetImageName(v string) *DeleteImageInput {
	s.ImageName = &v
	return s
}

type DeleteImageOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteImageOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteImageOutput) GoString() string {
	return s.String()
}

type DeleteImageVersionInput struct {
	_ struct{} `type:"structure"`

	// The alias of the image to delete.
	Alias *string `min:"1" type:"string"`

	// The name of the image to delete.
	//
	// ImageName is a required field
	ImageName *string `min:"1" type:"string" required:"true"`

	// The version to delete.
	Version *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteImageVersionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteImageVersionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteImageVersionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteImageVersionInput"}
	if s.Alias != nil && len(*s.Alias) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Alias", 1))
	}
	if s.ImageName == nil {
		invalidParams.Add(request.NewErrParamRequired("ImageName"))
	}
	if s.ImageName != nil && len(*s.ImageName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ImageName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAlias sets the Alias field's value.
func (s *DeleteImageVersionInput) SetAlias(v string) *DeleteImageVersionInput {
	s.Alias = &v
	return s
}

// SetImageName sets the ImageName field's value.
func (s *DeleteImageVersionInput) SetImageName(v string) *DeleteImageVersionInput {
	s.ImageName = &v
	return s
}

// SetVersion sets the Version field's value.
func (s *DeleteImageVersionInput) SetVersion(v int64) *DeleteImageVersionInput {
	s.Version = &v
	return s
}

type DeleteImageVersionOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteImageVersionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteImageVersionOutput) GoString() string {
	return s.String()
}

type DeleteInferenceComponentInput struct {
	_ struct{} `type:"structure"`

	// The name of the inference component to delete.
	//
	// InferenceComponentName is a required field
	InferenceComponentName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteInferenceComponentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteInferenceComponentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteInferenceComponentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteInferenceComponentInput"}
	if s.InferenceComponentName == nil {
		invalidParams.Add(request.NewErrParamRequired("InferenceComponentName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetInferenceComponentName sets the InferenceComponentName field's value.
func (s *DeleteInferenceComponentInput) SetInferenceComponentName(v string) *DeleteInferenceComponentInput {
	s.InferenceComponentName = &v
	return s
}

type DeleteInferenceComponentOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteInferenceComponentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteInferenceComponentOutput) GoString() string {
	return s.String()
}

type DeleteInferenceExperimentInput struct {
	_ struct{} `type:"structure"`

	// The name of the inference experiment you want to delete.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteInferenceExperimentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteInferenceExperimentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteInferenceExperimentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteInferenceExperimentInput"}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetName sets the Name field's value.
func (s *DeleteInferenceExperimentInput) SetName(v string) *DeleteInferenceExperimentInput {
	s.Name = &v
	return s
}

type DeleteInferenceExperimentOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the deleted inference experiment.
	//
	// InferenceExperimentArn is a required field
	InferenceExperimentArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteInferenceExperimentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteInferenceExperimentOutput) GoString() string {
	return s.String()
}

// SetInferenceExperimentArn sets the InferenceExperimentArn field's value.
func (s *DeleteInferenceExperimentOutput) SetInferenceExperimentArn(v string) *DeleteInferenceExperimentOutput {
	s.InferenceExperimentArn = &v
	return s
}

type DeleteModelBiasJobDefinitionInput struct {
	_ struct{} `type:"structure"`

	// The name of the model bias job definition to delete.
	//
	// JobDefinitionName is a required field
	JobDefinitionName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelBiasJobDefinitionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelBiasJobDefinitionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteModelBiasJobDefinitionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteModelBiasJobDefinitionInput"}
	if s.JobDefinitionName == nil {
		invalidParams.Add(request.NewErrParamRequired("JobDefinitionName"))
	}
	if s.JobDefinitionName != nil && len(*s.JobDefinitionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("JobDefinitionName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetJobDefinitionName sets the JobDefinitionName field's value.
func (s *DeleteModelBiasJobDefinitionInput) SetJobDefinitionName(v string) *DeleteModelBiasJobDefinitionInput {
	s.JobDefinitionName = &v
	return s
}

type DeleteModelBiasJobDefinitionOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelBiasJobDefinitionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelBiasJobDefinitionOutput) GoString() string {
	return s.String()
}

type DeleteModelCardInput struct {
	_ struct{} `type:"structure"`

	// The name of the model card to delete.
	//
	// ModelCardName is a required field
	ModelCardName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelCardInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelCardInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteModelCardInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteModelCardInput"}
	if s.ModelCardName == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelCardName"))
	}
	if s.ModelCardName != nil && len(*s.ModelCardName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelCardName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetModelCardName sets the ModelCardName field's value.
func (s *DeleteModelCardInput) SetModelCardName(v string) *DeleteModelCardInput {
	s.ModelCardName = &v
	return s
}

type DeleteModelCardOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelCardOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelCardOutput) GoString() string {
	return s.String()
}

type DeleteModelExplainabilityJobDefinitionInput struct {
	_ struct{} `type:"structure"`

	// The name of the model explainability job definition to delete.
	//
	// JobDefinitionName is a required field
	JobDefinitionName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelExplainabilityJobDefinitionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelExplainabilityJobDefinitionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteModelExplainabilityJobDefinitionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteModelExplainabilityJobDefinitionInput"}
	if s.JobDefinitionName == nil {
		invalidParams.Add(request.NewErrParamRequired("JobDefinitionName"))
	}
	if s.JobDefinitionName != nil && len(*s.JobDefinitionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("JobDefinitionName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetJobDefinitionName sets the JobDefinitionName field's value.
func (s *DeleteModelExplainabilityJobDefinitionInput) SetJobDefinitionName(v string) *DeleteModelExplainabilityJobDefinitionInput {
	s.JobDefinitionName = &v
	return s
}

type DeleteModelExplainabilityJobDefinitionOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelExplainabilityJobDefinitionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelExplainabilityJobDefinitionOutput) GoString() string {
	return s.String()
}

type DeleteModelInput struct {
	_ struct{} `type:"structure"`

	// The name of the model to delete.
	//
	// ModelName is a required field
	ModelName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteModelInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteModelInput"}
	if s.ModelName == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetModelName sets the ModelName field's value.
func (s *DeleteModelInput) SetModelName(v string) *DeleteModelInput {
	s.ModelName = &v
	return s
}

type DeleteModelOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelOutput) GoString() string {
	return s.String()
}

type DeleteModelPackageGroupInput struct {
	_ struct{} `type:"structure"`

	// The name of the model group to delete.
	//
	// ModelPackageGroupName is a required field
	ModelPackageGroupName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelPackageGroupInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelPackageGroupInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteModelPackageGroupInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteModelPackageGroupInput"}
	if s.ModelPackageGroupName == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelPackageGroupName"))
	}
	if s.ModelPackageGroupName != nil && len(*s.ModelPackageGroupName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelPackageGroupName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetModelPackageGroupName sets the ModelPackageGroupName field's value.
func (s *DeleteModelPackageGroupInput) SetModelPackageGroupName(v string) *DeleteModelPackageGroupInput {
	s.ModelPackageGroupName = &v
	return s
}

type DeleteModelPackageGroupOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelPackageGroupOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelPackageGroupOutput) GoString() string {
	return s.String()
}

type DeleteModelPackageGroupPolicyInput struct {
	_ struct{} `type:"structure"`

	// The name of the model group for which to delete the policy.
	//
	// ModelPackageGroupName is a required field
	ModelPackageGroupName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelPackageGroupPolicyInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelPackageGroupPolicyInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteModelPackageGroupPolicyInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteModelPackageGroupPolicyInput"}
	if s.ModelPackageGroupName == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelPackageGroupName"))
	}
	if s.ModelPackageGroupName != nil && len(*s.ModelPackageGroupName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelPackageGroupName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetModelPackageGroupName sets the ModelPackageGroupName field's value.
func (s *DeleteModelPackageGroupPolicyInput) SetModelPackageGroupName(v string) *DeleteModelPackageGroupPolicyInput {
	s.ModelPackageGroupName = &v
	return s
}

type DeleteModelPackageGroupPolicyOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelPackageGroupPolicyOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelPackageGroupPolicyOutput) GoString() string {
	return s.String()
}

type DeleteModelPackageInput struct {
	_ struct{} `type:"structure"`

	// The name or Amazon Resource Name (ARN) of the model package to delete.
	//
	// When you specify a name, the name must have 1 to 63 characters. Valid characters
	// are a-z, A-Z, 0-9, and - (hyphen).
	//
	// ModelPackageName is a required field
	ModelPackageName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelPackageInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelPackageInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteModelPackageInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteModelPackageInput"}
	if s.ModelPackageName == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelPackageName"))
	}
	if s.ModelPackageName != nil && len(*s.ModelPackageName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelPackageName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetModelPackageName sets the ModelPackageName field's value.
func (s *DeleteModelPackageInput) SetModelPackageName(v string) *DeleteModelPackageInput {
	s.ModelPackageName = &v
	return s
}

type DeleteModelPackageOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelPackageOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelPackageOutput) GoString() string {
	return s.String()
}

type DeleteModelQualityJobDefinitionInput struct {
	_ struct{} `type:"structure"`

	// The name of the model quality monitoring job definition to delete.
	//
	// JobDefinitionName is a required field
	JobDefinitionName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelQualityJobDefinitionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelQualityJobDefinitionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteModelQualityJobDefinitionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteModelQualityJobDefinitionInput"}
	if s.JobDefinitionName == nil {
		invalidParams.Add(request.NewErrParamRequired("JobDefinitionName"))
	}
	if s.JobDefinitionName != nil && len(*s.JobDefinitionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("JobDefinitionName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetJobDefinitionName sets the JobDefinitionName field's value.
func (s *DeleteModelQualityJobDefinitionInput) SetJobDefinitionName(v string) *DeleteModelQualityJobDefinitionInput {
	s.JobDefinitionName = &v
	return s
}

type DeleteModelQualityJobDefinitionOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelQualityJobDefinitionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteModelQualityJobDefinitionOutput) GoString() string {
	return s.String()
}

type DeleteMonitoringScheduleInput struct {
	_ struct{} `type:"structure"`

	// The name of the monitoring schedule to delete.
	//
	// MonitoringScheduleName is a required field
	MonitoringScheduleName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteMonitoringScheduleInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteMonitoringScheduleInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteMonitoringScheduleInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteMonitoringScheduleInput"}
	if s.MonitoringScheduleName == nil {
		invalidParams.Add(request.NewErrParamRequired("MonitoringScheduleName"))
	}
	if s.MonitoringScheduleName != nil && len(*s.MonitoringScheduleName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MonitoringScheduleName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMonitoringScheduleName sets the MonitoringScheduleName field's value.
func (s *DeleteMonitoringScheduleInput) SetMonitoringScheduleName(v string) *DeleteMonitoringScheduleInput {
	s.MonitoringScheduleName = &v
	return s
}

type DeleteMonitoringScheduleOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteMonitoringScheduleOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteMonitoringScheduleOutput) GoString() string {
	return s.String()
}

type DeleteNotebookInstanceInput struct {
	_ struct{} `type:"structure"`

	// The name of the SageMaker notebook instance to delete.
	//
	// NotebookInstanceName is a required field
	NotebookInstanceName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteNotebookInstanceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteNotebookInstanceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteNotebookInstanceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteNotebookInstanceInput"}
	if s.NotebookInstanceName == nil {
		invalidParams.Add(request.NewErrParamRequired("NotebookInstanceName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetNotebookInstanceName sets the NotebookInstanceName field's value.
func (s *DeleteNotebookInstanceInput) SetNotebookInstanceName(v string) *DeleteNotebookInstanceInput {
	s.NotebookInstanceName = &v
	return s
}

type DeleteNotebookInstanceLifecycleConfigInput struct {
	_ struct{} `type:"structure"`

	// The name of the lifecycle configuration to delete.
	//
	// NotebookInstanceLifecycleConfigName is a required field
	NotebookInstanceLifecycleConfigName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteNotebookInstanceLifecycleConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteNotebookInstanceLifecycleConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteNotebookInstanceLifecycleConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteNotebookInstanceLifecycleConfigInput"}
	if s.NotebookInstanceLifecycleConfigName == nil {
		invalidParams.Add(request.NewErrParamRequired("NotebookInstanceLifecycleConfigName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetNotebookInstanceLifecycleConfigName sets the NotebookInstanceLifecycleConfigName field's value.
func (s *DeleteNotebookInstanceLifecycleConfigInput) SetNotebookInstanceLifecycleConfigName(v string) *DeleteNotebookInstanceLifecycleConfigInput {
	s.NotebookInstanceLifecycleConfigName = &v
	return s
}

type DeleteNotebookInstanceLifecycleConfigOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteNotebookInstanceLifecycleConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteNotebookInstanceLifecycleConfigOutput) GoString() string {
	return s.String()
}

type DeleteNotebookInstanceOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteNotebookInstanceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteNotebookInstanceOutput) GoString() string {
	return s.String()
}

type DeletePipelineInput struct {
	_ struct{} `type:"structure"`

	// A unique, case-sensitive identifier that you provide to ensure the idempotency
	// of the operation. An idempotent operation completes no more than one time.
	ClientRequestToken *string `min:"32" type:"string" idempotencyToken:"true"`

	// The name of the pipeline to delete.
	//
	// PipelineName is a required field
	PipelineName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeletePipelineInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeletePipelineInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeletePipelineInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeletePipelineInput"}
	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 32 {
		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 32))
	}
	if s.PipelineName == nil {
		invalidParams.Add(request.NewErrParamRequired("PipelineName"))
	}
	if s.PipelineName != nil && len(*s.PipelineName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("PipelineName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClientRequestToken sets the ClientRequestToken field's value.
func (s *DeletePipelineInput) SetClientRequestToken(v string) *DeletePipelineInput {
	s.ClientRequestToken = &v
	return s
}

// SetPipelineName sets the PipelineName field's value.
func (s *DeletePipelineInput) SetPipelineName(v string) *DeletePipelineInput {
	s.PipelineName = &v
	return s
}

type DeletePipelineOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the pipeline to delete.
	PipelineArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeletePipelineOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeletePipelineOutput) GoString() string {
	return s.String()
}

// SetPipelineArn sets the PipelineArn field's value.
func (s *DeletePipelineOutput) SetPipelineArn(v string) *DeletePipelineOutput {
	s.PipelineArn = &v
	return s
}

type DeleteProjectInput struct {
	_ struct{} `type:"structure"`

	// The name of the project to delete.
	//
	// ProjectName is a required field
	ProjectName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteProjectInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteProjectInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteProjectInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteProjectInput"}
	if s.ProjectName == nil {
		invalidParams.Add(request.NewErrParamRequired("ProjectName"))
	}
	if s.ProjectName != nil && len(*s.ProjectName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ProjectName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetProjectName sets the ProjectName field's value.
func (s *DeleteProjectInput) SetProjectName(v string) *DeleteProjectInput {
	s.ProjectName = &v
	return s
}

type DeleteProjectOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteProjectOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteProjectOutput) GoString() string {
	return s.String()
}

type DeleteSpaceInput struct {
	_ struct{} `type:"structure"`

	// The ID of the associated Domain.
	//
	// DomainId is a required field
	DomainId *string `type:"string" required:"true"`

	// The name of the space.
	//
	// SpaceName is a required field
	SpaceName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteSpaceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteSpaceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteSpaceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteSpaceInput"}
	if s.DomainId == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainId"))
	}
	if s.SpaceName == nil {
		invalidParams.Add(request.NewErrParamRequired("SpaceName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainId sets the DomainId field's value.
func (s *DeleteSpaceInput) SetDomainId(v string) *DeleteSpaceInput {
	s.DomainId = &v
	return s
}

// SetSpaceName sets the SpaceName field's value.
func (s *DeleteSpaceInput) SetSpaceName(v string) *DeleteSpaceInput {
	s.SpaceName = &v
	return s
}

type DeleteSpaceOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteSpaceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteSpaceOutput) GoString() string {
	return s.String()
}

type DeleteStudioLifecycleConfigInput struct {
	_ struct{} `type:"structure"`

	// The name of the Amazon SageMaker Studio Lifecycle Configuration to delete.
	//
	// StudioLifecycleConfigName is a required field
	StudioLifecycleConfigName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteStudioLifecycleConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteStudioLifecycleConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteStudioLifecycleConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteStudioLifecycleConfigInput"}
	if s.StudioLifecycleConfigName == nil {
		invalidParams.Add(request.NewErrParamRequired("StudioLifecycleConfigName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetStudioLifecycleConfigName sets the StudioLifecycleConfigName field's value.
func (s *DeleteStudioLifecycleConfigInput) SetStudioLifecycleConfigName(v string) *DeleteStudioLifecycleConfigInput {
	s.StudioLifecycleConfigName = &v
	return s
}

type DeleteStudioLifecycleConfigOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteStudioLifecycleConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteStudioLifecycleConfigOutput) GoString() string {
	return s.String()
}

type DeleteTagsInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the resource whose tags you want to delete.
	//
	// ResourceArn is a required field
	ResourceArn *string `type:"string" required:"true"`

	// An array or one or more tag keys to delete.
	//
	// TagKeys is a required field
	TagKeys []*string `min:"1" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteTagsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteTagsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteTagsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteTagsInput"}
	if s.ResourceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
	}
	if s.TagKeys == nil {
		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
	}
	if s.TagKeys != nil && len(s.TagKeys) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetResourceArn sets the ResourceArn field's value.
func (s *DeleteTagsInput) SetResourceArn(v string) *DeleteTagsInput {
	s.ResourceArn = &v
	return s
}

// SetTagKeys sets the TagKeys field's value.
func (s *DeleteTagsInput) SetTagKeys(v []*string) *DeleteTagsInput {
	s.TagKeys = v
	return s
}

type DeleteTagsOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteTagsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteTagsOutput) GoString() string {
	return s.String()
}

type DeleteTrialComponentInput struct {
	_ struct{} `type:"structure"`

	// The name of the component to delete.
	//
	// TrialComponentName is a required field
	TrialComponentName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteTrialComponentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteTrialComponentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteTrialComponentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteTrialComponentInput"}
	if s.TrialComponentName == nil {
		invalidParams.Add(request.NewErrParamRequired("TrialComponentName"))
	}
	if s.TrialComponentName != nil && len(*s.TrialComponentName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TrialComponentName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetTrialComponentName sets the TrialComponentName field's value.
func (s *DeleteTrialComponentInput) SetTrialComponentName(v string) *DeleteTrialComponentInput {
	s.TrialComponentName = &v
	return s
}

type DeleteTrialComponentOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the component is being deleted.
	TrialComponentArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteTrialComponentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteTrialComponentOutput) GoString() string {
	return s.String()
}

// SetTrialComponentArn sets the TrialComponentArn field's value.
func (s *DeleteTrialComponentOutput) SetTrialComponentArn(v string) *DeleteTrialComponentOutput {
	s.TrialComponentArn = &v
	return s
}

type DeleteTrialInput struct {
	_ struct{} `type:"structure"`

	// The name of the trial to delete.
	//
	// TrialName is a required field
	TrialName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteTrialInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteTrialInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteTrialInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteTrialInput"}
	if s.TrialName == nil {
		invalidParams.Add(request.NewErrParamRequired("TrialName"))
	}
	if s.TrialName != nil && len(*s.TrialName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TrialName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetTrialName sets the TrialName field's value.
func (s *DeleteTrialInput) SetTrialName(v string) *DeleteTrialInput {
	s.TrialName = &v
	return s
}

type DeleteTrialOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the trial that is being deleted.
	TrialArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteTrialOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteTrialOutput) GoString() string {
	return s.String()
}

// SetTrialArn sets the TrialArn field's value.
func (s *DeleteTrialOutput) SetTrialArn(v string) *DeleteTrialOutput {
	s.TrialArn = &v
	return s
}

type DeleteUserProfileInput struct {
	_ struct{} `type:"structure"`

	// The domain ID.
	//
	// DomainId is a required field
	DomainId *string `type:"string" required:"true"`

	// The user profile name.
	//
	// UserProfileName is a required field
	UserProfileName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteUserProfileInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteUserProfileInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteUserProfileInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteUserProfileInput"}
	if s.DomainId == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainId"))
	}
	if s.UserProfileName == nil {
		invalidParams.Add(request.NewErrParamRequired("UserProfileName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainId sets the DomainId field's value.
func (s *DeleteUserProfileInput) SetDomainId(v string) *DeleteUserProfileInput {
	s.DomainId = &v
	return s
}

// SetUserProfileName sets the UserProfileName field's value.
func (s *DeleteUserProfileInput) SetUserProfileName(v string) *DeleteUserProfileInput {
	s.UserProfileName = &v
	return s
}

type DeleteUserProfileOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteUserProfileOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteUserProfileOutput) GoString() string {
	return s.String()
}

type DeleteWorkforceInput struct {
	_ struct{} `type:"structure"`

	// The name of the workforce.
	//
	// WorkforceName is a required field
	WorkforceName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteWorkforceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteWorkforceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteWorkforceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteWorkforceInput"}
	if s.WorkforceName == nil {
		invalidParams.Add(request.NewErrParamRequired("WorkforceName"))
	}
	if s.WorkforceName != nil && len(*s.WorkforceName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("WorkforceName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetWorkforceName sets the WorkforceName field's value.
func (s *DeleteWorkforceInput) SetWorkforceName(v string) *DeleteWorkforceInput {
	s.WorkforceName = &v
	return s
}

type DeleteWorkforceOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteWorkforceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteWorkforceOutput) GoString() string {
	return s.String()
}

type DeleteWorkteamInput struct {
	_ struct{} `type:"structure"`

	// The name of the work team to delete.
	//
	// WorkteamName is a required field
	WorkteamName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteWorkteamInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteWorkteamInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteWorkteamInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteWorkteamInput"}
	if s.WorkteamName == nil {
		invalidParams.Add(request.NewErrParamRequired("WorkteamName"))
	}
	if s.WorkteamName != nil && len(*s.WorkteamName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("WorkteamName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetWorkteamName sets the WorkteamName field's value.
func (s *DeleteWorkteamInput) SetWorkteamName(v string) *DeleteWorkteamInput {
	s.WorkteamName = &v
	return s
}

type DeleteWorkteamOutput struct {
	_ struct{} `type:"structure"`

	// Returns true if the work team was successfully deleted; otherwise, returns
	// false.
	//
	// Success is a required field
	Success *bool `type:"boolean" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteWorkteamOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteWorkteamOutput) GoString() string {
	return s.String()
}

// SetSuccess sets the Success field's value.
func (s *DeleteWorkteamOutput) SetSuccess(v bool) *DeleteWorkteamOutput {
	s.Success = &v
	return s
}

// Gets the Amazon EC2 Container Registry path of the docker image of the model
// that is hosted in this ProductionVariant (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariant.html).
//
// If you used the registry/repository[:tag] form to specify the image path
// of the primary container when you created the model hosted in this ProductionVariant,
// the path resolves to a path of the form registry/repository[@digest]. A digest
// is a hash value that identifies a specific version of an image. For information
// about Amazon ECR paths, see Pulling an Image (https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-pull-ecr-image.html)
// in the Amazon ECR User Guide.
type DeployedImage struct {
	_ struct{} `type:"structure"`

	// The date and time when the image path for the model resolved to the ResolvedImage
	ResolutionTime *time.Time `type:"timestamp"`

	// The specific digest path of the image hosted in this ProductionVariant.
	ResolvedImage *string `type:"string"`

	// The image path you specified when you created the model.
	SpecifiedImage *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeployedImage) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeployedImage) GoString() string {
	return s.String()
}

// SetResolutionTime sets the ResolutionTime field's value.
func (s *DeployedImage) SetResolutionTime(v time.Time) *DeployedImage {
	s.ResolutionTime = &v
	return s
}

// SetResolvedImage sets the ResolvedImage field's value.
func (s *DeployedImage) SetResolvedImage(v string) *DeployedImage {
	s.ResolvedImage = &v
	return s
}

// SetSpecifiedImage sets the SpecifiedImage field's value.
func (s *DeployedImage) SetSpecifiedImage(v string) *DeployedImage {
	s.SpecifiedImage = &v
	return s
}

// The deployment configuration for an endpoint, which contains the desired
// deployment strategy and rollback configurations.
type DeploymentConfig struct {
	_ struct{} `type:"structure"`

	// Automatic rollback configuration for handling endpoint deployment failures
	// and recovery.
	AutoRollbackConfiguration *AutoRollbackConfig `type:"structure"`

	// Update policy for a blue/green deployment. If this update policy is specified,
	// SageMaker creates a new fleet during the deployment while maintaining the
	// old fleet. SageMaker flips traffic to the new fleet according to the specified
	// traffic routing configuration. Only one update policy should be used in the
	// deployment configuration. If no update policy is specified, SageMaker uses
	// a blue/green deployment strategy with all at once traffic shifting by default.
	BlueGreenUpdatePolicy *BlueGreenUpdatePolicy `type:"structure"`

	// Specifies a rolling deployment strategy for updating a SageMaker endpoint.
	RollingUpdatePolicy *RollingUpdatePolicy `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeploymentConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeploymentConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeploymentConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeploymentConfig"}
	if s.AutoRollbackConfiguration != nil {
		if err := s.AutoRollbackConfiguration.Validate(); err != nil {
			invalidParams.AddNested("AutoRollbackConfiguration", err.(request.ErrInvalidParams))
		}
	}
	if s.BlueGreenUpdatePolicy != nil {
		if err := s.BlueGreenUpdatePolicy.Validate(); err != nil {
			invalidParams.AddNested("BlueGreenUpdatePolicy", err.(request.ErrInvalidParams))
		}
	}
	if s.RollingUpdatePolicy != nil {
		if err := s.RollingUpdatePolicy.Validate(); err != nil {
			invalidParams.AddNested("RollingUpdatePolicy", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAutoRollbackConfiguration sets the AutoRollbackConfiguration field's value.
func (s *DeploymentConfig) SetAutoRollbackConfiguration(v *AutoRollbackConfig) *DeploymentConfig {
	s.AutoRollbackConfiguration = v
	return s
}

// SetBlueGreenUpdatePolicy sets the BlueGreenUpdatePolicy field's value.
func (s *DeploymentConfig) SetBlueGreenUpdatePolicy(v *BlueGreenUpdatePolicy) *DeploymentConfig {
	s.BlueGreenUpdatePolicy = v
	return s
}

// SetRollingUpdatePolicy sets the RollingUpdatePolicy field's value.
func (s *DeploymentConfig) SetRollingUpdatePolicy(v *RollingUpdatePolicy) *DeploymentConfig {
	s.RollingUpdatePolicy = v
	return s
}

// A set of recommended deployment configurations for the model. To get more
// advanced recommendations, see CreateInferenceRecommendationsJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateInferenceRecommendationsJob.html)
// to create an inference recommendation job.
type DeploymentRecommendation struct {
	_ struct{} `type:"structure"`

	// A list of RealTimeInferenceRecommendation (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RealTimeInferenceRecommendation.html)
	// items.
	RealTimeInferenceRecommendations []*RealTimeInferenceRecommendation `type:"list"`

	// Status of the deployment recommendation. The status NOT_APPLICABLE means
	// that SageMaker is unable to provide a default recommendation for the model
	// using the information provided. If the deployment status is IN_PROGRESS,
	// retry your API call after a few seconds to get a COMPLETED deployment recommendation.
	//
	// RecommendationStatus is a required field
	RecommendationStatus *string `type:"string" required:"true" enum:"RecommendationStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeploymentRecommendation) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeploymentRecommendation) GoString() string {
	return s.String()
}

// SetRealTimeInferenceRecommendations sets the RealTimeInferenceRecommendations field's value.
func (s *DeploymentRecommendation) SetRealTimeInferenceRecommendations(v []*RealTimeInferenceRecommendation) *DeploymentRecommendation {
	s.RealTimeInferenceRecommendations = v
	return s
}

// SetRecommendationStatus sets the RecommendationStatus field's value.
func (s *DeploymentRecommendation) SetRecommendationStatus(v string) *DeploymentRecommendation {
	s.RecommendationStatus = &v
	return s
}

// Contains information about a stage in an edge deployment plan.
type DeploymentStage struct {
	_ struct{} `type:"structure"`

	// Configuration of the deployment details.
	DeploymentConfig *EdgeDeploymentConfig `type:"structure"`

	// Configuration of the devices in the stage.
	//
	// DeviceSelectionConfig is a required field
	DeviceSelectionConfig *DeviceSelectionConfig `type:"structure" required:"true"`

	// The name of the stage.
	//
	// StageName is a required field
	StageName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeploymentStage) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeploymentStage) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeploymentStage) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeploymentStage"}
	if s.DeviceSelectionConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("DeviceSelectionConfig"))
	}
	if s.StageName == nil {
		invalidParams.Add(request.NewErrParamRequired("StageName"))
	}
	if s.StageName != nil && len(*s.StageName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
	}
	if s.DeploymentConfig != nil {
		if err := s.DeploymentConfig.Validate(); err != nil {
			invalidParams.AddNested("DeploymentConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.DeviceSelectionConfig != nil {
		if err := s.DeviceSelectionConfig.Validate(); err != nil {
			invalidParams.AddNested("DeviceSelectionConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDeploymentConfig sets the DeploymentConfig field's value.
func (s *DeploymentStage) SetDeploymentConfig(v *EdgeDeploymentConfig) *DeploymentStage {
	s.DeploymentConfig = v
	return s
}

// SetDeviceSelectionConfig sets the DeviceSelectionConfig field's value.
func (s *DeploymentStage) SetDeviceSelectionConfig(v *DeviceSelectionConfig) *DeploymentStage {
	s.DeviceSelectionConfig = v
	return s
}

// SetStageName sets the StageName field's value.
func (s *DeploymentStage) SetStageName(v string) *DeploymentStage {
	s.StageName = &v
	return s
}

// Contains information summarizing the deployment stage results.
type DeploymentStageStatusSummary struct {
	_ struct{} `type:"structure"`

	// Configuration of the deployment details.
	//
	// DeploymentConfig is a required field
	DeploymentConfig *EdgeDeploymentConfig `type:"structure" required:"true"`

	// General status of the current state.
	//
	// DeploymentStatus is a required field
	DeploymentStatus *EdgeDeploymentStatus `type:"structure" required:"true"`

	// Configuration of the devices in the stage.
	//
	// DeviceSelectionConfig is a required field
	DeviceSelectionConfig *DeviceSelectionConfig `type:"structure" required:"true"`

	// The name of the stage.
	//
	// StageName is a required field
	StageName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeploymentStageStatusSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeploymentStageStatusSummary) GoString() string {
	return s.String()
}

// SetDeploymentConfig sets the DeploymentConfig field's value.
func (s *DeploymentStageStatusSummary) SetDeploymentConfig(v *EdgeDeploymentConfig) *DeploymentStageStatusSummary {
	s.DeploymentConfig = v
	return s
}

// SetDeploymentStatus sets the DeploymentStatus field's value.
func (s *DeploymentStageStatusSummary) SetDeploymentStatus(v *EdgeDeploymentStatus) *DeploymentStageStatusSummary {
	s.DeploymentStatus = v
	return s
}

// SetDeviceSelectionConfig sets the DeviceSelectionConfig field's value.
func (s *DeploymentStageStatusSummary) SetDeviceSelectionConfig(v *DeviceSelectionConfig) *DeploymentStageStatusSummary {
	s.DeviceSelectionConfig = v
	return s
}

// SetStageName sets the StageName field's value.
func (s *DeploymentStageStatusSummary) SetStageName(v string) *DeploymentStageStatusSummary {
	s.StageName = &v
	return s
}

type DeregisterDevicesInput struct {
	_ struct{} `type:"structure"`

	// The name of the fleet the devices belong to.
	//
	// DeviceFleetName is a required field
	DeviceFleetName *string `min:"1" type:"string" required:"true"`

	// The unique IDs of the devices.
	//
	// DeviceNames is a required field
	DeviceNames []*string `type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeregisterDevicesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeregisterDevicesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeregisterDevicesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeregisterDevicesInput"}
	if s.DeviceFleetName == nil {
		invalidParams.Add(request.NewErrParamRequired("DeviceFleetName"))
	}
	if s.DeviceFleetName != nil && len(*s.DeviceFleetName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DeviceFleetName", 1))
	}
	if s.DeviceNames == nil {
		invalidParams.Add(request.NewErrParamRequired("DeviceNames"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDeviceFleetName sets the DeviceFleetName field's value.
func (s *DeregisterDevicesInput) SetDeviceFleetName(v string) *DeregisterDevicesInput {
	s.DeviceFleetName = &v
	return s
}

// SetDeviceNames sets the DeviceNames field's value.
func (s *DeregisterDevicesInput) SetDeviceNames(v []*string) *DeregisterDevicesInput {
	s.DeviceNames = v
	return s
}

type DeregisterDevicesOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeregisterDevicesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeregisterDevicesOutput) GoString() string {
	return s.String()
}

// Information that SageMaker Neo automatically derived about the model.
type DerivedInformation struct {
	_ struct{} `type:"structure"`

	// The data input configuration that SageMaker Neo automatically derived for
	// the model. When SageMaker Neo derives this information, you don't need to
	// specify the data input configuration when you create a compilation job.
	DerivedDataInputConfig *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DerivedInformation) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DerivedInformation) GoString() string {
	return s.String()
}

// SetDerivedDataInputConfig sets the DerivedDataInputConfig field's value.
func (s *DerivedInformation) SetDerivedDataInputConfig(v string) *DerivedInformation {
	s.DerivedDataInputConfig = &v
	return s
}

type DescribeActionInput struct {
	_ struct{} `type:"structure"`

	// The name of the action to describe.
	//
	// ActionName is a required field
	ActionName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeActionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeActionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeActionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeActionInput"}
	if s.ActionName == nil {
		invalidParams.Add(request.NewErrParamRequired("ActionName"))
	}
	if s.ActionName != nil && len(*s.ActionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetActionName sets the ActionName field's value.
func (s *DescribeActionInput) SetActionName(v string) *DescribeActionInput {
	s.ActionName = &v
	return s
}

type DescribeActionOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the action.
	ActionArn *string `type:"string"`

	// The name of the action.
	ActionName *string `min:"1" type:"string"`

	// The type of the action.
	ActionType *string `type:"string"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	CreatedBy *UserContext `type:"structure"`

	// When the action was created.
	CreationTime *time.Time `type:"timestamp"`

	// The description of the action.
	Description *string `type:"string"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	LastModifiedBy *UserContext `type:"structure"`

	// When the action was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the lineage group.
	LineageGroupArn *string `type:"string"`

	// Metadata properties of the tracking entity, trial, or trial component.
	MetadataProperties *MetadataProperties `type:"structure"`

	// A list of the action's properties.
	Properties map[string]*string `type:"map"`

	// The source of the action.
	Source *ActionSource `type:"structure"`

	// The status of the action.
	Status *string `type:"string" enum:"ActionStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeActionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeActionOutput) GoString() string {
	return s.String()
}

// SetActionArn sets the ActionArn field's value.
func (s *DescribeActionOutput) SetActionArn(v string) *DescribeActionOutput {
	s.ActionArn = &v
	return s
}

// SetActionName sets the ActionName field's value.
func (s *DescribeActionOutput) SetActionName(v string) *DescribeActionOutput {
	s.ActionName = &v
	return s
}

// SetActionType sets the ActionType field's value.
func (s *DescribeActionOutput) SetActionType(v string) *DescribeActionOutput {
	s.ActionType = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *DescribeActionOutput) SetCreatedBy(v *UserContext) *DescribeActionOutput {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeActionOutput) SetCreationTime(v time.Time) *DescribeActionOutput {
	s.CreationTime = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *DescribeActionOutput) SetDescription(v string) *DescribeActionOutput {
	s.Description = &v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *DescribeActionOutput) SetLastModifiedBy(v *UserContext) *DescribeActionOutput {
	s.LastModifiedBy = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeActionOutput) SetLastModifiedTime(v time.Time) *DescribeActionOutput {
	s.LastModifiedTime = &v
	return s
}

// SetLineageGroupArn sets the LineageGroupArn field's value.
func (s *DescribeActionOutput) SetLineageGroupArn(v string) *DescribeActionOutput {
	s.LineageGroupArn = &v
	return s
}

// SetMetadataProperties sets the MetadataProperties field's value.
func (s *DescribeActionOutput) SetMetadataProperties(v *MetadataProperties) *DescribeActionOutput {
	s.MetadataProperties = v
	return s
}

// SetProperties sets the Properties field's value.
func (s *DescribeActionOutput) SetProperties(v map[string]*string) *DescribeActionOutput {
	s.Properties = v
	return s
}

// SetSource sets the Source field's value.
func (s *DescribeActionOutput) SetSource(v *ActionSource) *DescribeActionOutput {
	s.Source = v
	return s
}

// SetStatus sets the Status field's value.
func (s *DescribeActionOutput) SetStatus(v string) *DescribeActionOutput {
	s.Status = &v
	return s
}

type DescribeAlgorithmInput struct {
	_ struct{} `type:"structure"`

	// The name of the algorithm to describe.
	//
	// AlgorithmName is a required field
	AlgorithmName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAlgorithmInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAlgorithmInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeAlgorithmInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeAlgorithmInput"}
	if s.AlgorithmName == nil {
		invalidParams.Add(request.NewErrParamRequired("AlgorithmName"))
	}
	if s.AlgorithmName != nil && len(*s.AlgorithmName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AlgorithmName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAlgorithmName sets the AlgorithmName field's value.
func (s *DescribeAlgorithmInput) SetAlgorithmName(v string) *DescribeAlgorithmInput {
	s.AlgorithmName = &v
	return s
}

type DescribeAlgorithmOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the algorithm.
	//
	// AlgorithmArn is a required field
	AlgorithmArn *string `min:"1" type:"string" required:"true"`

	// A brief summary about the algorithm.
	AlgorithmDescription *string `type:"string"`

	// The name of the algorithm being described.
	//
	// AlgorithmName is a required field
	AlgorithmName *string `min:"1" type:"string" required:"true"`

	// The current status of the algorithm.
	//
	// AlgorithmStatus is a required field
	AlgorithmStatus *string `type:"string" required:"true" enum:"AlgorithmStatus"`

	// Details about the current status of the algorithm.
	//
	// AlgorithmStatusDetails is a required field
	AlgorithmStatusDetails *AlgorithmStatusDetails `type:"structure" required:"true"`

	// Whether the algorithm is certified to be listed in Amazon Web Services Marketplace.
	CertifyForMarketplace *bool `type:"boolean"`

	// A timestamp specifying when the algorithm was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// Details about inference jobs that the algorithm runs.
	InferenceSpecification *InferenceSpecification `type:"structure"`

	// The product identifier of the algorithm.
	ProductId *string `type:"string"`

	// Details about training jobs run by this algorithm.
	//
	// TrainingSpecification is a required field
	TrainingSpecification *TrainingSpecification `type:"structure" required:"true"`

	// Details about configurations for one or more training jobs that SageMaker
	// runs to test the algorithm.
	ValidationSpecification *AlgorithmValidationSpecification `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAlgorithmOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAlgorithmOutput) GoString() string {
	return s.String()
}

// SetAlgorithmArn sets the AlgorithmArn field's value.
func (s *DescribeAlgorithmOutput) SetAlgorithmArn(v string) *DescribeAlgorithmOutput {
	s.AlgorithmArn = &v
	return s
}

// SetAlgorithmDescription sets the AlgorithmDescription field's value.
func (s *DescribeAlgorithmOutput) SetAlgorithmDescription(v string) *DescribeAlgorithmOutput {
	s.AlgorithmDescription = &v
	return s
}

// SetAlgorithmName sets the AlgorithmName field's value.
func (s *DescribeAlgorithmOutput) SetAlgorithmName(v string) *DescribeAlgorithmOutput {
	s.AlgorithmName = &v
	return s
}

// SetAlgorithmStatus sets the AlgorithmStatus field's value.
func (s *DescribeAlgorithmOutput) SetAlgorithmStatus(v string) *DescribeAlgorithmOutput {
	s.AlgorithmStatus = &v
	return s
}

// SetAlgorithmStatusDetails sets the AlgorithmStatusDetails field's value.
func (s *DescribeAlgorithmOutput) SetAlgorithmStatusDetails(v *AlgorithmStatusDetails) *DescribeAlgorithmOutput {
	s.AlgorithmStatusDetails = v
	return s
}

// SetCertifyForMarketplace sets the CertifyForMarketplace field's value.
func (s *DescribeAlgorithmOutput) SetCertifyForMarketplace(v bool) *DescribeAlgorithmOutput {
	s.CertifyForMarketplace = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeAlgorithmOutput) SetCreationTime(v time.Time) *DescribeAlgorithmOutput {
	s.CreationTime = &v
	return s
}

// SetInferenceSpecification sets the InferenceSpecification field's value.
func (s *DescribeAlgorithmOutput) SetInferenceSpecification(v *InferenceSpecification) *DescribeAlgorithmOutput {
	s.InferenceSpecification = v
	return s
}

// SetProductId sets the ProductId field's value.
func (s *DescribeAlgorithmOutput) SetProductId(v string) *DescribeAlgorithmOutput {
	s.ProductId = &v
	return s
}

// SetTrainingSpecification sets the TrainingSpecification field's value.
func (s *DescribeAlgorithmOutput) SetTrainingSpecification(v *TrainingSpecification) *DescribeAlgorithmOutput {
	s.TrainingSpecification = v
	return s
}

// SetValidationSpecification sets the ValidationSpecification field's value.
func (s *DescribeAlgorithmOutput) SetValidationSpecification(v *AlgorithmValidationSpecification) *DescribeAlgorithmOutput {
	s.ValidationSpecification = v
	return s
}

type DescribeAppImageConfigInput struct {
	_ struct{} `type:"structure"`

	// The name of the AppImageConfig to describe.
	//
	// AppImageConfigName is a required field
	AppImageConfigName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAppImageConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAppImageConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeAppImageConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeAppImageConfigInput"}
	if s.AppImageConfigName == nil {
		invalidParams.Add(request.NewErrParamRequired("AppImageConfigName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppImageConfigName sets the AppImageConfigName field's value.
func (s *DescribeAppImageConfigInput) SetAppImageConfigName(v string) *DescribeAppImageConfigInput {
	s.AppImageConfigName = &v
	return s
}

type DescribeAppImageConfigOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the AppImageConfig.
	AppImageConfigArn *string `type:"string"`

	// The name of the AppImageConfig.
	AppImageConfigName *string `type:"string"`

	// When the AppImageConfig was created.
	CreationTime *time.Time `type:"timestamp"`

	// The configuration of the JupyterLab app.
	JupyterLabAppImageConfig *JupyterLabAppImageConfig `type:"structure"`

	// The configuration of a KernelGateway app.
	KernelGatewayImageConfig *KernelGatewayImageConfig `type:"structure"`

	// When the AppImageConfig was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAppImageConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAppImageConfigOutput) GoString() string {
	return s.String()
}

// SetAppImageConfigArn sets the AppImageConfigArn field's value.
func (s *DescribeAppImageConfigOutput) SetAppImageConfigArn(v string) *DescribeAppImageConfigOutput {
	s.AppImageConfigArn = &v
	return s
}

// SetAppImageConfigName sets the AppImageConfigName field's value.
func (s *DescribeAppImageConfigOutput) SetAppImageConfigName(v string) *DescribeAppImageConfigOutput {
	s.AppImageConfigName = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeAppImageConfigOutput) SetCreationTime(v time.Time) *DescribeAppImageConfigOutput {
	s.CreationTime = &v
	return s
}

// SetJupyterLabAppImageConfig sets the JupyterLabAppImageConfig field's value.
func (s *DescribeAppImageConfigOutput) SetJupyterLabAppImageConfig(v *JupyterLabAppImageConfig) *DescribeAppImageConfigOutput {
	s.JupyterLabAppImageConfig = v
	return s
}

// SetKernelGatewayImageConfig sets the KernelGatewayImageConfig field's value.
func (s *DescribeAppImageConfigOutput) SetKernelGatewayImageConfig(v *KernelGatewayImageConfig) *DescribeAppImageConfigOutput {
	s.KernelGatewayImageConfig = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeAppImageConfigOutput) SetLastModifiedTime(v time.Time) *DescribeAppImageConfigOutput {
	s.LastModifiedTime = &v
	return s
}

type DescribeAppInput struct {
	_ struct{} `type:"structure"`

	// The name of the app.
	//
	// AppName is a required field
	AppName *string `type:"string" required:"true"`

	// The type of app.
	//
	// AppType is a required field
	AppType *string `type:"string" required:"true" enum:"AppType"`

	// The domain ID.
	//
	// DomainId is a required field
	DomainId *string `type:"string" required:"true"`

	// The name of the space.
	SpaceName *string `type:"string"`

	// The user profile name. If this value is not set, then SpaceName must be set.
	UserProfileName *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAppInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAppInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeAppInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeAppInput"}
	if s.AppName == nil {
		invalidParams.Add(request.NewErrParamRequired("AppName"))
	}
	if s.AppType == nil {
		invalidParams.Add(request.NewErrParamRequired("AppType"))
	}
	if s.DomainId == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainId"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppName sets the AppName field's value.
func (s *DescribeAppInput) SetAppName(v string) *DescribeAppInput {
	s.AppName = &v
	return s
}

// SetAppType sets the AppType field's value.
func (s *DescribeAppInput) SetAppType(v string) *DescribeAppInput {
	s.AppType = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *DescribeAppInput) SetDomainId(v string) *DescribeAppInput {
	s.DomainId = &v
	return s
}

// SetSpaceName sets the SpaceName field's value.
func (s *DescribeAppInput) SetSpaceName(v string) *DescribeAppInput {
	s.SpaceName = &v
	return s
}

// SetUserProfileName sets the UserProfileName field's value.
func (s *DescribeAppInput) SetUserProfileName(v string) *DescribeAppInput {
	s.UserProfileName = &v
	return s
}

type DescribeAppOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the app.
	AppArn *string `type:"string"`

	// The name of the app.
	AppName *string `type:"string"`

	// The type of app.
	AppType *string `type:"string" enum:"AppType"`

	// The creation time.
	CreationTime *time.Time `type:"timestamp"`

	// The domain ID.
	DomainId *string `type:"string"`

	// The failure reason.
	FailureReason *string `type:"string"`

	// The timestamp of the last health check.
	LastHealthCheckTimestamp *time.Time `type:"timestamp"`

	// The timestamp of the last user's activity. LastUserActivityTimestamp is also
	// updated when SageMaker performs health checks without user activity. As a
	// result, this value is set to the same value as LastHealthCheckTimestamp.
	LastUserActivityTimestamp *time.Time `type:"timestamp"`

	// The instance type and the Amazon Resource Name (ARN) of the SageMaker image
	// created on the instance.
	ResourceSpec *ResourceSpec `type:"structure"`

	// The name of the space. If this value is not set, then UserProfileName must
	// be set.
	SpaceName *string `type:"string"`

	// The status.
	Status *string `type:"string" enum:"AppStatus"`

	// The user profile name.
	UserProfileName *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAppOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAppOutput) GoString() string {
	return s.String()
}

// SetAppArn sets the AppArn field's value.
func (s *DescribeAppOutput) SetAppArn(v string) *DescribeAppOutput {
	s.AppArn = &v
	return s
}

// SetAppName sets the AppName field's value.
func (s *DescribeAppOutput) SetAppName(v string) *DescribeAppOutput {
	s.AppName = &v
	return s
}

// SetAppType sets the AppType field's value.
func (s *DescribeAppOutput) SetAppType(v string) *DescribeAppOutput {
	s.AppType = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeAppOutput) SetCreationTime(v time.Time) *DescribeAppOutput {
	s.CreationTime = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *DescribeAppOutput) SetDomainId(v string) *DescribeAppOutput {
	s.DomainId = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *DescribeAppOutput) SetFailureReason(v string) *DescribeAppOutput {
	s.FailureReason = &v
	return s
}

// SetLastHealthCheckTimestamp sets the LastHealthCheckTimestamp field's value.
func (s *DescribeAppOutput) SetLastHealthCheckTimestamp(v time.Time) *DescribeAppOutput {
	s.LastHealthCheckTimestamp = &v
	return s
}

// SetLastUserActivityTimestamp sets the LastUserActivityTimestamp field's value.
func (s *DescribeAppOutput) SetLastUserActivityTimestamp(v time.Time) *DescribeAppOutput {
	s.LastUserActivityTimestamp = &v
	return s
}

// SetResourceSpec sets the ResourceSpec field's value.
func (s *DescribeAppOutput) SetResourceSpec(v *ResourceSpec) *DescribeAppOutput {
	s.ResourceSpec = v
	return s
}

// SetSpaceName sets the SpaceName field's value.
func (s *DescribeAppOutput) SetSpaceName(v string) *DescribeAppOutput {
	s.SpaceName = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *DescribeAppOutput) SetStatus(v string) *DescribeAppOutput {
	s.Status = &v
	return s
}

// SetUserProfileName sets the UserProfileName field's value.
func (s *DescribeAppOutput) SetUserProfileName(v string) *DescribeAppOutput {
	s.UserProfileName = &v
	return s
}

type DescribeArtifactInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the artifact to describe.
	//
	// ArtifactArn is a required field
	ArtifactArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeArtifactInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeArtifactInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeArtifactInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeArtifactInput"}
	if s.ArtifactArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ArtifactArn"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetArtifactArn sets the ArtifactArn field's value.
func (s *DescribeArtifactInput) SetArtifactArn(v string) *DescribeArtifactInput {
	s.ArtifactArn = &v
	return s
}

type DescribeArtifactOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the artifact.
	ArtifactArn *string `type:"string"`

	// The name of the artifact.
	ArtifactName *string `min:"1" type:"string"`

	// The type of the artifact.
	ArtifactType *string `type:"string"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	CreatedBy *UserContext `type:"structure"`

	// When the artifact was created.
	CreationTime *time.Time `type:"timestamp"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	LastModifiedBy *UserContext `type:"structure"`

	// When the artifact was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the lineage group.
	LineageGroupArn *string `type:"string"`

	// Metadata properties of the tracking entity, trial, or trial component.
	MetadataProperties *MetadataProperties `type:"structure"`

	// A list of the artifact's properties.
	Properties map[string]*string `type:"map"`

	// The source of the artifact.
	Source *ArtifactSource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeArtifactOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeArtifactOutput) GoString() string {
	return s.String()
}

// SetArtifactArn sets the ArtifactArn field's value.
func (s *DescribeArtifactOutput) SetArtifactArn(v string) *DescribeArtifactOutput {
	s.ArtifactArn = &v
	return s
}

// SetArtifactName sets the ArtifactName field's value.
func (s *DescribeArtifactOutput) SetArtifactName(v string) *DescribeArtifactOutput {
	s.ArtifactName = &v
	return s
}

// SetArtifactType sets the ArtifactType field's value.
func (s *DescribeArtifactOutput) SetArtifactType(v string) *DescribeArtifactOutput {
	s.ArtifactType = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *DescribeArtifactOutput) SetCreatedBy(v *UserContext) *DescribeArtifactOutput {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeArtifactOutput) SetCreationTime(v time.Time) *DescribeArtifactOutput {
	s.CreationTime = &v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *DescribeArtifactOutput) SetLastModifiedBy(v *UserContext) *DescribeArtifactOutput {
	s.LastModifiedBy = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeArtifactOutput) SetLastModifiedTime(v time.Time) *DescribeArtifactOutput {
	s.LastModifiedTime = &v
	return s
}

// SetLineageGroupArn sets the LineageGroupArn field's value.
func (s *DescribeArtifactOutput) SetLineageGroupArn(v string) *DescribeArtifactOutput {
	s.LineageGroupArn = &v
	return s
}

// SetMetadataProperties sets the MetadataProperties field's value.
func (s *DescribeArtifactOutput) SetMetadataProperties(v *MetadataProperties) *DescribeArtifactOutput {
	s.MetadataProperties = v
	return s
}

// SetProperties sets the Properties field's value.
func (s *DescribeArtifactOutput) SetProperties(v map[string]*string) *DescribeArtifactOutput {
	s.Properties = v
	return s
}

// SetSource sets the Source field's value.
func (s *DescribeArtifactOutput) SetSource(v *ArtifactSource) *DescribeArtifactOutput {
	s.Source = v
	return s
}

type DescribeAutoMLJobInput struct {
	_ struct{} `type:"structure"`

	// Requests information about an AutoML job using its unique name.
	//
	// AutoMLJobName is a required field
	AutoMLJobName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAutoMLJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAutoMLJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeAutoMLJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeAutoMLJobInput"}
	if s.AutoMLJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("AutoMLJobName"))
	}
	if s.AutoMLJobName != nil && len(*s.AutoMLJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AutoMLJobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAutoMLJobName sets the AutoMLJobName field's value.
func (s *DescribeAutoMLJobInput) SetAutoMLJobName(v string) *DescribeAutoMLJobInput {
	s.AutoMLJobName = &v
	return s
}

type DescribeAutoMLJobOutput struct {
	_ struct{} `type:"structure"`

	// Returns the ARN of the AutoML job.
	//
	// AutoMLJobArn is a required field
	AutoMLJobArn *string `min:"1" type:"string" required:"true"`

	// Returns information on the job's artifacts found in AutoMLJobArtifacts.
	AutoMLJobArtifacts *AutoMLJobArtifacts `type:"structure"`

	// Returns the configuration for the AutoML job.
	AutoMLJobConfig *AutoMLJobConfig `type:"structure"`

	// Returns the name of the AutoML job.
	//
	// AutoMLJobName is a required field
	AutoMLJobName *string `min:"1" type:"string" required:"true"`

	// Returns the job's objective.
	AutoMLJobObjective *AutoMLJobObjective `type:"structure"`

	// Returns the secondary status of the AutoML job.
	//
	// AutoMLJobSecondaryStatus is a required field
	AutoMLJobSecondaryStatus *string `type:"string" required:"true" enum:"AutoMLJobSecondaryStatus"`

	// Returns the status of the AutoML job.
	//
	// AutoMLJobStatus is a required field
	AutoMLJobStatus *string `type:"string" required:"true" enum:"AutoMLJobStatus"`

	// The best model candidate selected by SageMaker Autopilot using both the best
	// objective metric and lowest InferenceLatency (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-metrics-validation.html)
	// for an experiment.
	BestCandidate *AutoMLCandidate `type:"structure"`

	// Returns the creation time of the AutoML job.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// Returns the end time of the AutoML job.
	EndTime *time.Time `type:"timestamp"`

	// Returns the failure reason for an AutoML job, when applicable.
	FailureReason *string `type:"string"`

	// Indicates whether the output for an AutoML job generates candidate definitions
	// only.
	GenerateCandidateDefinitionsOnly *bool `type:"boolean"`

	// Returns the input data configuration for the AutoML job.
	//
	// InputDataConfig is a required field
	InputDataConfig []*AutoMLChannel `min:"1" type:"list" required:"true"`

	// Returns the job's last modified time.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`

	// Indicates whether the model was deployed automatically to an endpoint and
	// the name of that endpoint if deployed automatically.
	ModelDeployConfig *ModelDeployConfig `type:"structure"`

	// Provides information about endpoint for the model deployment.
	ModelDeployResult *ModelDeployResult `type:"structure"`

	// Returns the job's output data config.
	//
	// OutputDataConfig is a required field
	OutputDataConfig *AutoMLOutputDataConfig `type:"structure" required:"true"`

	// Returns a list of reasons for partial failures within an AutoML job.
	PartialFailureReasons []*AutoMLPartialFailureReason `min:"1" type:"list"`

	// Returns the job's problem type.
	ProblemType *string `type:"string" enum:"ProblemType"`

	// Contains ProblemType, AutoMLJobObjective, and CompletionCriteria. If you
	// do not provide these values, they are inferred.
	ResolvedAttributes *ResolvedAttributes `type:"structure"`

	// The Amazon Resource Name (ARN) of the Identity and Access Management (IAM)
	// role that has read permission to the input data location and write permission
	// to the output data location in Amazon S3.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAutoMLJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAutoMLJobOutput) GoString() string {
	return s.String()
}

// SetAutoMLJobArn sets the AutoMLJobArn field's value.
func (s *DescribeAutoMLJobOutput) SetAutoMLJobArn(v string) *DescribeAutoMLJobOutput {
	s.AutoMLJobArn = &v
	return s
}

// SetAutoMLJobArtifacts sets the AutoMLJobArtifacts field's value.
func (s *DescribeAutoMLJobOutput) SetAutoMLJobArtifacts(v *AutoMLJobArtifacts) *DescribeAutoMLJobOutput {
	s.AutoMLJobArtifacts = v
	return s
}

// SetAutoMLJobConfig sets the AutoMLJobConfig field's value.
func (s *DescribeAutoMLJobOutput) SetAutoMLJobConfig(v *AutoMLJobConfig) *DescribeAutoMLJobOutput {
	s.AutoMLJobConfig = v
	return s
}

// SetAutoMLJobName sets the AutoMLJobName field's value.
func (s *DescribeAutoMLJobOutput) SetAutoMLJobName(v string) *DescribeAutoMLJobOutput {
	s.AutoMLJobName = &v
	return s
}

// SetAutoMLJobObjective sets the AutoMLJobObjective field's value.
func (s *DescribeAutoMLJobOutput) SetAutoMLJobObjective(v *AutoMLJobObjective) *DescribeAutoMLJobOutput {
	s.AutoMLJobObjective = v
	return s
}

// SetAutoMLJobSecondaryStatus sets the AutoMLJobSecondaryStatus field's value.
func (s *DescribeAutoMLJobOutput) SetAutoMLJobSecondaryStatus(v string) *DescribeAutoMLJobOutput {
	s.AutoMLJobSecondaryStatus = &v
	return s
}

// SetAutoMLJobStatus sets the AutoMLJobStatus field's value.
func (s *DescribeAutoMLJobOutput) SetAutoMLJobStatus(v string) *DescribeAutoMLJobOutput {
	s.AutoMLJobStatus = &v
	return s
}

// SetBestCandidate sets the BestCandidate field's value.
func (s *DescribeAutoMLJobOutput) SetBestCandidate(v *AutoMLCandidate) *DescribeAutoMLJobOutput {
	s.BestCandidate = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeAutoMLJobOutput) SetCreationTime(v time.Time) *DescribeAutoMLJobOutput {
	s.CreationTime = &v
	return s
}

// SetEndTime sets the EndTime field's value.
func (s *DescribeAutoMLJobOutput) SetEndTime(v time.Time) *DescribeAutoMLJobOutput {
	s.EndTime = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *DescribeAutoMLJobOutput) SetFailureReason(v string) *DescribeAutoMLJobOutput {
	s.FailureReason = &v
	return s
}

// SetGenerateCandidateDefinitionsOnly sets the GenerateCandidateDefinitionsOnly field's value.
func (s *DescribeAutoMLJobOutput) SetGenerateCandidateDefinitionsOnly(v bool) *DescribeAutoMLJobOutput {
	s.GenerateCandidateDefinitionsOnly = &v
	return s
}

// SetInputDataConfig sets the InputDataConfig field's value.
func (s *DescribeAutoMLJobOutput) SetInputDataConfig(v []*AutoMLChannel) *DescribeAutoMLJobOutput {
	s.InputDataConfig = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeAutoMLJobOutput) SetLastModifiedTime(v time.Time) *DescribeAutoMLJobOutput {
	s.LastModifiedTime = &v
	return s
}

// SetModelDeployConfig sets the ModelDeployConfig field's value.
func (s *DescribeAutoMLJobOutput) SetModelDeployConfig(v *ModelDeployConfig) *DescribeAutoMLJobOutput {
	s.ModelDeployConfig = v
	return s
}

// SetModelDeployResult sets the ModelDeployResult field's value.
func (s *DescribeAutoMLJobOutput) SetModelDeployResult(v *ModelDeployResult) *DescribeAutoMLJobOutput {
	s.ModelDeployResult = v
	return s
}

// SetOutputDataConfig sets the OutputDataConfig field's value.
func (s *DescribeAutoMLJobOutput) SetOutputDataConfig(v *AutoMLOutputDataConfig) *DescribeAutoMLJobOutput {
	s.OutputDataConfig = v
	return s
}

// SetPartialFailureReasons sets the PartialFailureReasons field's value.
func (s *DescribeAutoMLJobOutput) SetPartialFailureReasons(v []*AutoMLPartialFailureReason) *DescribeAutoMLJobOutput {
	s.PartialFailureReasons = v
	return s
}

// SetProblemType sets the ProblemType field's value.
func (s *DescribeAutoMLJobOutput) SetProblemType(v string) *DescribeAutoMLJobOutput {
	s.ProblemType = &v
	return s
}

// SetResolvedAttributes sets the ResolvedAttributes field's value.
func (s *DescribeAutoMLJobOutput) SetResolvedAttributes(v *ResolvedAttributes) *DescribeAutoMLJobOutput {
	s.ResolvedAttributes = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *DescribeAutoMLJobOutput) SetRoleArn(v string) *DescribeAutoMLJobOutput {
	s.RoleArn = &v
	return s
}

type DescribeAutoMLJobV2Input struct {
	_ struct{} `type:"structure"`

	// Requests information about an AutoML job V2 using its unique name.
	//
	// AutoMLJobName is a required field
	AutoMLJobName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAutoMLJobV2Input) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAutoMLJobV2Input) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeAutoMLJobV2Input) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeAutoMLJobV2Input"}
	if s.AutoMLJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("AutoMLJobName"))
	}
	if s.AutoMLJobName != nil && len(*s.AutoMLJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AutoMLJobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAutoMLJobName sets the AutoMLJobName field's value.
func (s *DescribeAutoMLJobV2Input) SetAutoMLJobName(v string) *DescribeAutoMLJobV2Input {
	s.AutoMLJobName = &v
	return s
}

type DescribeAutoMLJobV2Output struct {
	_ struct{} `type:"structure"`

	// Returns the Amazon Resource Name (ARN) of the AutoML job V2.
	//
	// AutoMLJobArn is a required field
	AutoMLJobArn *string `min:"1" type:"string" required:"true"`

	// The artifacts that are generated during an AutoML job.
	AutoMLJobArtifacts *AutoMLJobArtifacts `type:"structure"`

	// Returns an array of channel objects describing the input data and their location.
	//
	// AutoMLJobInputDataConfig is a required field
	AutoMLJobInputDataConfig []*AutoMLJobChannel `min:"1" type:"list" required:"true"`

	// Returns the name of the AutoML job V2.
	//
	// AutoMLJobName is a required field
	AutoMLJobName *string `min:"1" type:"string" required:"true"`

	// Returns the job's objective.
	AutoMLJobObjective *AutoMLJobObjective `type:"structure"`

	// Returns the secondary status of the AutoML job V2.
	//
	// AutoMLJobSecondaryStatus is a required field
	AutoMLJobSecondaryStatus *string `type:"string" required:"true" enum:"AutoMLJobSecondaryStatus"`

	// Returns the status of the AutoML job V2.
	//
	// AutoMLJobStatus is a required field
	AutoMLJobStatus *string `type:"string" required:"true" enum:"AutoMLJobStatus"`

	// Returns the configuration settings of the problem type set for the AutoML
	// job V2.
	AutoMLProblemTypeConfig *AutoMLProblemTypeConfig `type:"structure"`

	// Returns the name of the problem type configuration set for the AutoML job
	// V2.
	AutoMLProblemTypeConfigName *string `type:"string" enum:"AutoMLProblemTypeConfigName"`

	// Information about the candidate produced by an AutoML training job V2, including
	// its status, steps, and other properties.
	BestCandidate *AutoMLCandidate `type:"structure"`

	// Returns the creation time of the AutoML job V2.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// Returns the configuration settings of how the data are split into train and
	// validation datasets.
	DataSplitConfig *AutoMLDataSplitConfig `type:"structure"`

	// Returns the end time of the AutoML job V2.
	EndTime *time.Time `type:"timestamp"`

	// Returns the reason for the failure of the AutoML job V2, when applicable.
	FailureReason *string `type:"string"`

	// Returns the job's last modified time.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`

	// Indicates whether the model was deployed automatically to an endpoint and
	// the name of that endpoint if deployed automatically.
	ModelDeployConfig *ModelDeployConfig `type:"structure"`

	// Provides information about endpoint for the model deployment.
	ModelDeployResult *ModelDeployResult `type:"structure"`

	// Returns the job's output data config.
	//
	// OutputDataConfig is a required field
	OutputDataConfig *AutoMLOutputDataConfig `type:"structure" required:"true"`

	// Returns a list of reasons for partial failures within an AutoML job V2.
	PartialFailureReasons []*AutoMLPartialFailureReason `min:"1" type:"list"`

	// Returns the resolved attributes used by the AutoML job V2.
	ResolvedAttributes *AutoMLResolvedAttributes `type:"structure"`

	// The ARN of the Identity and Access Management role that has read permission
	// to the input data location and write permission to the output data location
	// in Amazon S3.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// Returns the security configuration for traffic encryption or Amazon VPC settings.
	SecurityConfig *AutoMLSecurityConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAutoMLJobV2Output) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeAutoMLJobV2Output) GoString() string {
	return s.String()
}

// SetAutoMLJobArn sets the AutoMLJobArn field's value.
func (s *DescribeAutoMLJobV2Output) SetAutoMLJobArn(v string) *DescribeAutoMLJobV2Output {
	s.AutoMLJobArn = &v
	return s
}

// SetAutoMLJobArtifacts sets the AutoMLJobArtifacts field's value.
func (s *DescribeAutoMLJobV2Output) SetAutoMLJobArtifacts(v *AutoMLJobArtifacts) *DescribeAutoMLJobV2Output {
	s.AutoMLJobArtifacts = v
	return s
}

// SetAutoMLJobInputDataConfig sets the AutoMLJobInputDataConfig field's value.
func (s *DescribeAutoMLJobV2Output) SetAutoMLJobInputDataConfig(v []*AutoMLJobChannel) *DescribeAutoMLJobV2Output {
	s.AutoMLJobInputDataConfig = v
	return s
}

// SetAutoMLJobName sets the AutoMLJobName field's value.
func (s *DescribeAutoMLJobV2Output) SetAutoMLJobName(v string) *DescribeAutoMLJobV2Output {
	s.AutoMLJobName = &v
	return s
}

// SetAutoMLJobObjective sets the AutoMLJobObjective field's value.
func (s *DescribeAutoMLJobV2Output) SetAutoMLJobObjective(v *AutoMLJobObjective) *DescribeAutoMLJobV2Output {
	s.AutoMLJobObjective = v
	return s
}

// SetAutoMLJobSecondaryStatus sets the AutoMLJobSecondaryStatus field's value.
func (s *DescribeAutoMLJobV2Output) SetAutoMLJobSecondaryStatus(v string) *DescribeAutoMLJobV2Output {
	s.AutoMLJobSecondaryStatus = &v
	return s
}

// SetAutoMLJobStatus sets the AutoMLJobStatus field's value.
func (s *DescribeAutoMLJobV2Output) SetAutoMLJobStatus(v string) *DescribeAutoMLJobV2Output {
	s.AutoMLJobStatus = &v
	return s
}

// SetAutoMLProblemTypeConfig sets the AutoMLProblemTypeConfig field's value.
func (s *DescribeAutoMLJobV2Output) SetAutoMLProblemTypeConfig(v *AutoMLProblemTypeConfig) *DescribeAutoMLJobV2Output {
	s.AutoMLProblemTypeConfig = v
	return s
}

// SetAutoMLProblemTypeConfigName sets the AutoMLProblemTypeConfigName field's value.
func (s *DescribeAutoMLJobV2Output) SetAutoMLProblemTypeConfigName(v string) *DescribeAutoMLJobV2Output {
	s.AutoMLProblemTypeConfigName = &v
	return s
}

// SetBestCandidate sets the BestCandidate field's value.
func (s *DescribeAutoMLJobV2Output) SetBestCandidate(v *AutoMLCandidate) *DescribeAutoMLJobV2Output {
	s.BestCandidate = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeAutoMLJobV2Output) SetCreationTime(v time.Time) *DescribeAutoMLJobV2Output {
	s.CreationTime = &v
	return s
}

// SetDataSplitConfig sets the DataSplitConfig field's value.
func (s *DescribeAutoMLJobV2Output) SetDataSplitConfig(v *AutoMLDataSplitConfig) *DescribeAutoMLJobV2Output {
	s.DataSplitConfig = v
	return s
}

// SetEndTime sets the EndTime field's value.
func (s *DescribeAutoMLJobV2Output) SetEndTime(v time.Time) *DescribeAutoMLJobV2Output {
	s.EndTime = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *DescribeAutoMLJobV2Output) SetFailureReason(v string) *DescribeAutoMLJobV2Output {
	s.FailureReason = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeAutoMLJobV2Output) SetLastModifiedTime(v time.Time) *DescribeAutoMLJobV2Output {
	s.LastModifiedTime = &v
	return s
}

// SetModelDeployConfig sets the ModelDeployConfig field's value.
func (s *DescribeAutoMLJobV2Output) SetModelDeployConfig(v *ModelDeployConfig) *DescribeAutoMLJobV2Output {
	s.ModelDeployConfig = v
	return s
}

// SetModelDeployResult sets the ModelDeployResult field's value.
func (s *DescribeAutoMLJobV2Output) SetModelDeployResult(v *ModelDeployResult) *DescribeAutoMLJobV2Output {
	s.ModelDeployResult = v
	return s
}

// SetOutputDataConfig sets the OutputDataConfig field's value.
func (s *DescribeAutoMLJobV2Output) SetOutputDataConfig(v *AutoMLOutputDataConfig) *DescribeAutoMLJobV2Output {
	s.OutputDataConfig = v
	return s
}

// SetPartialFailureReasons sets the PartialFailureReasons field's value.
func (s *DescribeAutoMLJobV2Output) SetPartialFailureReasons(v []*AutoMLPartialFailureReason) *DescribeAutoMLJobV2Output {
	s.PartialFailureReasons = v
	return s
}

// SetResolvedAttributes sets the ResolvedAttributes field's value.
func (s *DescribeAutoMLJobV2Output) SetResolvedAttributes(v *AutoMLResolvedAttributes) *DescribeAutoMLJobV2Output {
	s.ResolvedAttributes = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *DescribeAutoMLJobV2Output) SetRoleArn(v string) *DescribeAutoMLJobV2Output {
	s.RoleArn = &v
	return s
}

// SetSecurityConfig sets the SecurityConfig field's value.
func (s *DescribeAutoMLJobV2Output) SetSecurityConfig(v *AutoMLSecurityConfig) *DescribeAutoMLJobV2Output {
	s.SecurityConfig = v
	return s
}

type DescribeClusterInput struct {
	_ struct{} `type:"structure"`

	// The string name or the Amazon Resource Name (ARN) of the SageMaker HyperPod
	// cluster.
	//
	// ClusterName is a required field
	ClusterName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeClusterInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeClusterInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeClusterInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeClusterInput"}
	if s.ClusterName == nil {
		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClusterName sets the ClusterName field's value.
func (s *DescribeClusterInput) SetClusterName(v string) *DescribeClusterInput {
	s.ClusterName = &v
	return s
}

type DescribeClusterNodeInput struct {
	_ struct{} `type:"structure"`

	// The string name or the Amazon Resource Name (ARN) of the SageMaker HyperPod
	// cluster in which the instance is.
	//
	// ClusterName is a required field
	ClusterName *string `type:"string" required:"true"`

	// The ID of the instance.
	//
	// NodeId is a required field
	NodeId *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeClusterNodeInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeClusterNodeInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeClusterNodeInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeClusterNodeInput"}
	if s.ClusterName == nil {
		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
	}
	if s.NodeId == nil {
		invalidParams.Add(request.NewErrParamRequired("NodeId"))
	}
	if s.NodeId != nil && len(*s.NodeId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NodeId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClusterName sets the ClusterName field's value.
func (s *DescribeClusterNodeInput) SetClusterName(v string) *DescribeClusterNodeInput {
	s.ClusterName = &v
	return s
}

// SetNodeId sets the NodeId field's value.
func (s *DescribeClusterNodeInput) SetNodeId(v string) *DescribeClusterNodeInput {
	s.NodeId = &v
	return s
}

type DescribeClusterNodeOutput struct {
	_ struct{} `type:"structure"`

	// The details of the instance.
	//
	// NodeDetails is a required field
	NodeDetails *ClusterNodeDetails `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeClusterNodeOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeClusterNodeOutput) GoString() string {
	return s.String()
}

// SetNodeDetails sets the NodeDetails field's value.
func (s *DescribeClusterNodeOutput) SetNodeDetails(v *ClusterNodeDetails) *DescribeClusterNodeOutput {
	s.NodeDetails = v
	return s
}

type DescribeClusterOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the SageMaker HyperPod cluster.
	//
	// ClusterArn is a required field
	ClusterArn *string `type:"string" required:"true"`

	// The name of the SageMaker HyperPod cluster.
	ClusterName *string `min:"1" type:"string"`

	// The status of the SageMaker HyperPod cluster.
	//
	// ClusterStatus is a required field
	ClusterStatus *string `type:"string" required:"true" enum:"ClusterStatus"`

	// The time when the SageMaker Cluster is created.
	CreationTime *time.Time `type:"timestamp"`

	// The failure message of the SageMaker HyperPod cluster.
	FailureMessage *string `type:"string"`

	// The instance groups of the SageMaker HyperPod cluster.
	//
	// InstanceGroups is a required field
	InstanceGroups []*ClusterInstanceGroupDetails `type:"list" required:"true"`

	// Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs,
	// hosted models, and compute resources have access to. You can control access
	// to and from your resources by configuring a VPC. For more information, see
	// Give SageMaker Access to Resources in your Amazon VPC (https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html).
	VpcConfig *VpcConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeClusterOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeClusterOutput) GoString() string {
	return s.String()
}

// SetClusterArn sets the ClusterArn field's value.
func (s *DescribeClusterOutput) SetClusterArn(v string) *DescribeClusterOutput {
	s.ClusterArn = &v
	return s
}

// SetClusterName sets the ClusterName field's value.
func (s *DescribeClusterOutput) SetClusterName(v string) *DescribeClusterOutput {
	s.ClusterName = &v
	return s
}

// SetClusterStatus sets the ClusterStatus field's value.
func (s *DescribeClusterOutput) SetClusterStatus(v string) *DescribeClusterOutput {
	s.ClusterStatus = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeClusterOutput) SetCreationTime(v time.Time) *DescribeClusterOutput {
	s.CreationTime = &v
	return s
}

// SetFailureMessage sets the FailureMessage field's value.
func (s *DescribeClusterOutput) SetFailureMessage(v string) *DescribeClusterOutput {
	s.FailureMessage = &v
	return s
}

// SetInstanceGroups sets the InstanceGroups field's value.
func (s *DescribeClusterOutput) SetInstanceGroups(v []*ClusterInstanceGroupDetails) *DescribeClusterOutput {
	s.InstanceGroups = v
	return s
}

// SetVpcConfig sets the VpcConfig field's value.
func (s *DescribeClusterOutput) SetVpcConfig(v *VpcConfig) *DescribeClusterOutput {
	s.VpcConfig = v
	return s
}

type DescribeCodeRepositoryInput struct {
	_ struct{} `type:"structure"`

	// The name of the Git repository to describe.
	//
	// CodeRepositoryName is a required field
	CodeRepositoryName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeCodeRepositoryInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeCodeRepositoryInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeCodeRepositoryInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeCodeRepositoryInput"}
	if s.CodeRepositoryName == nil {
		invalidParams.Add(request.NewErrParamRequired("CodeRepositoryName"))
	}
	if s.CodeRepositoryName != nil && len(*s.CodeRepositoryName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("CodeRepositoryName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCodeRepositoryName sets the CodeRepositoryName field's value.
func (s *DescribeCodeRepositoryInput) SetCodeRepositoryName(v string) *DescribeCodeRepositoryInput {
	s.CodeRepositoryName = &v
	return s
}

type DescribeCodeRepositoryOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the Git repository.
	//
	// CodeRepositoryArn is a required field
	CodeRepositoryArn *string `min:"1" type:"string" required:"true"`

	// The name of the Git repository.
	//
	// CodeRepositoryName is a required field
	CodeRepositoryName *string `min:"1" type:"string" required:"true"`

	// The date and time that the repository was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// Configuration details about the repository, including the URL where the repository
	// is located, the default branch, and the Amazon Resource Name (ARN) of the
	// Amazon Web Services Secrets Manager secret that contains the credentials
	// used to access the repository.
	GitConfig *GitConfig `type:"structure"`

	// The date and time that the repository was last changed.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeCodeRepositoryOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeCodeRepositoryOutput) GoString() string {
	return s.String()
}

// SetCodeRepositoryArn sets the CodeRepositoryArn field's value.
func (s *DescribeCodeRepositoryOutput) SetCodeRepositoryArn(v string) *DescribeCodeRepositoryOutput {
	s.CodeRepositoryArn = &v
	return s
}

// SetCodeRepositoryName sets the CodeRepositoryName field's value.
func (s *DescribeCodeRepositoryOutput) SetCodeRepositoryName(v string) *DescribeCodeRepositoryOutput {
	s.CodeRepositoryName = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeCodeRepositoryOutput) SetCreationTime(v time.Time) *DescribeCodeRepositoryOutput {
	s.CreationTime = &v
	return s
}

// SetGitConfig sets the GitConfig field's value.
func (s *DescribeCodeRepositoryOutput) SetGitConfig(v *GitConfig) *DescribeCodeRepositoryOutput {
	s.GitConfig = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeCodeRepositoryOutput) SetLastModifiedTime(v time.Time) *DescribeCodeRepositoryOutput {
	s.LastModifiedTime = &v
	return s
}

type DescribeCompilationJobInput struct {
	_ struct{} `type:"structure"`

	// The name of the model compilation job that you want information about.
	//
	// CompilationJobName is a required field
	CompilationJobName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeCompilationJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeCompilationJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeCompilationJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeCompilationJobInput"}
	if s.CompilationJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("CompilationJobName"))
	}
	if s.CompilationJobName != nil && len(*s.CompilationJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("CompilationJobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCompilationJobName sets the CompilationJobName field's value.
func (s *DescribeCompilationJobInput) SetCompilationJobName(v string) *DescribeCompilationJobInput {
	s.CompilationJobName = &v
	return s
}

type DescribeCompilationJobOutput struct {
	_ struct{} `type:"structure"`

	// The time when the model compilation job on a compilation job instance ended.
	// For a successful or stopped job, this is when the job's model artifacts have
	// finished uploading. For a failed job, this is when Amazon SageMaker detected
	// that the job failed.
	CompilationEndTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the model compilation job.
	//
	// CompilationJobArn is a required field
	CompilationJobArn *string `type:"string" required:"true"`

	// The name of the model compilation job.
	//
	// CompilationJobName is a required field
	CompilationJobName *string `min:"1" type:"string" required:"true"`

	// The status of the model compilation job.
	//
	// CompilationJobStatus is a required field
	CompilationJobStatus *string `type:"string" required:"true" enum:"CompilationJobStatus"`

	// The time when the model compilation job started the CompilationJob instances.
	//
	// You are billed for the time between this timestamp and the timestamp in the
	// CompilationEndTime field. In Amazon CloudWatch Logs, the start time might
	// be later than this time. That's because it takes time to download the compilation
	// job, which depends on the size of the compilation job container.
	CompilationStartTime *time.Time `type:"timestamp"`

	// The time that the model compilation job was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// Information that SageMaker Neo automatically derived about the model.
	DerivedInformation *DerivedInformation `type:"structure"`

	// If a model compilation job failed, the reason it failed.
	//
	// FailureReason is a required field
	FailureReason *string `type:"string" required:"true"`

	// The inference image to use when compiling a model. Specify an image only
	// if the target device is a cloud instance.
	InferenceImage *string `type:"string"`

	// Information about the location in Amazon S3 of the input model artifacts,
	// the name and shape of the expected data inputs, and the framework in which
	// the model was trained.
	//
	// InputConfig is a required field
	InputConfig *InputConfig `type:"structure" required:"true"`

	// The time that the status of the model compilation job was last modified.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`

	// Information about the location in Amazon S3 that has been configured for
	// storing the model artifacts used in the compilation job.
	//
	// ModelArtifacts is a required field
	ModelArtifacts *ModelArtifacts `type:"structure" required:"true"`

	// Provides a BLAKE2 hash value that identifies the compiled model artifacts
	// in Amazon S3.
	ModelDigests *ModelDigests `type:"structure"`

	// The Amazon Resource Name (ARN) of the versioned model package that was provided
	// to SageMaker Neo when you initiated a compilation job.
	ModelPackageVersionArn *string `min:"1" type:"string"`

	// Information about the output location for the compiled model and the target
	// device that the model runs on.
	//
	// OutputConfig is a required field
	OutputConfig *OutputConfig `type:"structure" required:"true"`

	// The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker assumes
	// to perform the model compilation job.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// Specifies a limit to how long a model compilation job can run. When the job
	// reaches the time limit, Amazon SageMaker ends the compilation job. Use this
	// API to cap model training costs.
	//
	// StoppingCondition is a required field
	StoppingCondition *StoppingCondition `type:"structure" required:"true"`

	// A VpcConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html)
	// object that specifies the VPC that you want your compilation job to connect
	// to. Control access to your models by configuring the VPC. For more information,
	// see Protect Compilation Jobs by Using an Amazon Virtual Private Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/neo-vpc.html).
	VpcConfig *NeoVpcConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeCompilationJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeCompilationJobOutput) GoString() string {
	return s.String()
}

// SetCompilationEndTime sets the CompilationEndTime field's value.
func (s *DescribeCompilationJobOutput) SetCompilationEndTime(v time.Time) *DescribeCompilationJobOutput {
	s.CompilationEndTime = &v
	return s
}

// SetCompilationJobArn sets the CompilationJobArn field's value.
func (s *DescribeCompilationJobOutput) SetCompilationJobArn(v string) *DescribeCompilationJobOutput {
	s.CompilationJobArn = &v
	return s
}

// SetCompilationJobName sets the CompilationJobName field's value.
func (s *DescribeCompilationJobOutput) SetCompilationJobName(v string) *DescribeCompilationJobOutput {
	s.CompilationJobName = &v
	return s
}

// SetCompilationJobStatus sets the CompilationJobStatus field's value.
func (s *DescribeCompilationJobOutput) SetCompilationJobStatus(v string) *DescribeCompilationJobOutput {
	s.CompilationJobStatus = &v
	return s
}

// SetCompilationStartTime sets the CompilationStartTime field's value.
func (s *DescribeCompilationJobOutput) SetCompilationStartTime(v time.Time) *DescribeCompilationJobOutput {
	s.CompilationStartTime = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeCompilationJobOutput) SetCreationTime(v time.Time) *DescribeCompilationJobOutput {
	s.CreationTime = &v
	return s
}

// SetDerivedInformation sets the DerivedInformation field's value.
func (s *DescribeCompilationJobOutput) SetDerivedInformation(v *DerivedInformation) *DescribeCompilationJobOutput {
	s.DerivedInformation = v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *DescribeCompilationJobOutput) SetFailureReason(v string) *DescribeCompilationJobOutput {
	s.FailureReason = &v
	return s
}

// SetInferenceImage sets the InferenceImage field's value.
func (s *DescribeCompilationJobOutput) SetInferenceImage(v string) *DescribeCompilationJobOutput {
	s.InferenceImage = &v
	return s
}

// SetInputConfig sets the InputConfig field's value.
func (s *DescribeCompilationJobOutput) SetInputConfig(v *InputConfig) *DescribeCompilationJobOutput {
	s.InputConfig = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeCompilationJobOutput) SetLastModifiedTime(v time.Time) *DescribeCompilationJobOutput {
	s.LastModifiedTime = &v
	return s
}

// SetModelArtifacts sets the ModelArtifacts field's value.
func (s *DescribeCompilationJobOutput) SetModelArtifacts(v *ModelArtifacts) *DescribeCompilationJobOutput {
	s.ModelArtifacts = v
	return s
}

// SetModelDigests sets the ModelDigests field's value.
func (s *DescribeCompilationJobOutput) SetModelDigests(v *ModelDigests) *DescribeCompilationJobOutput {
	s.ModelDigests = v
	return s
}

// SetModelPackageVersionArn sets the ModelPackageVersionArn field's value.
func (s *DescribeCompilationJobOutput) SetModelPackageVersionArn(v string) *DescribeCompilationJobOutput {
	s.ModelPackageVersionArn = &v
	return s
}

// SetOutputConfig sets the OutputConfig field's value.
func (s *DescribeCompilationJobOutput) SetOutputConfig(v *OutputConfig) *DescribeCompilationJobOutput {
	s.OutputConfig = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *DescribeCompilationJobOutput) SetRoleArn(v string) *DescribeCompilationJobOutput {
	s.RoleArn = &v
	return s
}

// SetStoppingCondition sets the StoppingCondition field's value.
func (s *DescribeCompilationJobOutput) SetStoppingCondition(v *StoppingCondition) *DescribeCompilationJobOutput {
	s.StoppingCondition = v
	return s
}

// SetVpcConfig sets the VpcConfig field's value.
func (s *DescribeCompilationJobOutput) SetVpcConfig(v *NeoVpcConfig) *DescribeCompilationJobOutput {
	s.VpcConfig = v
	return s
}

type DescribeContextInput struct {
	_ struct{} `type:"structure"`

	// The name of the context to describe.
	//
	// ContextName is a required field
	ContextName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeContextInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeContextInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeContextInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeContextInput"}
	if s.ContextName == nil {
		invalidParams.Add(request.NewErrParamRequired("ContextName"))
	}
	if s.ContextName != nil && len(*s.ContextName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ContextName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContextName sets the ContextName field's value.
func (s *DescribeContextInput) SetContextName(v string) *DescribeContextInput {
	s.ContextName = &v
	return s
}

type DescribeContextOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the context.
	ContextArn *string `type:"string"`

	// The name of the context.
	ContextName *string `min:"1" type:"string"`

	// The type of the context.
	ContextType *string `type:"string"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	CreatedBy *UserContext `type:"structure"`

	// When the context was created.
	CreationTime *time.Time `type:"timestamp"`

	// The description of the context.
	Description *string `type:"string"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	LastModifiedBy *UserContext `type:"structure"`

	// When the context was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the lineage group.
	LineageGroupArn *string `type:"string"`

	// A list of the context's properties.
	Properties map[string]*string `type:"map"`

	// The source of the context.
	Source *ContextSource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeContextOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeContextOutput) GoString() string {
	return s.String()
}

// SetContextArn sets the ContextArn field's value.
func (s *DescribeContextOutput) SetContextArn(v string) *DescribeContextOutput {
	s.ContextArn = &v
	return s
}

// SetContextName sets the ContextName field's value.
func (s *DescribeContextOutput) SetContextName(v string) *DescribeContextOutput {
	s.ContextName = &v
	return s
}

// SetContextType sets the ContextType field's value.
func (s *DescribeContextOutput) SetContextType(v string) *DescribeContextOutput {
	s.ContextType = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *DescribeContextOutput) SetCreatedBy(v *UserContext) *DescribeContextOutput {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeContextOutput) SetCreationTime(v time.Time) *DescribeContextOutput {
	s.CreationTime = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *DescribeContextOutput) SetDescription(v string) *DescribeContextOutput {
	s.Description = &v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *DescribeContextOutput) SetLastModifiedBy(v *UserContext) *DescribeContextOutput {
	s.LastModifiedBy = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeContextOutput) SetLastModifiedTime(v time.Time) *DescribeContextOutput {
	s.LastModifiedTime = &v
	return s
}

// SetLineageGroupArn sets the LineageGroupArn field's value.
func (s *DescribeContextOutput) SetLineageGroupArn(v string) *DescribeContextOutput {
	s.LineageGroupArn = &v
	return s
}

// SetProperties sets the Properties field's value.
func (s *DescribeContextOutput) SetProperties(v map[string]*string) *DescribeContextOutput {
	s.Properties = v
	return s
}

// SetSource sets the Source field's value.
func (s *DescribeContextOutput) SetSource(v *ContextSource) *DescribeContextOutput {
	s.Source = v
	return s
}

type DescribeDataQualityJobDefinitionInput struct {
	_ struct{} `type:"structure"`

	// The name of the data quality monitoring job definition to describe.
	//
	// JobDefinitionName is a required field
	JobDefinitionName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeDataQualityJobDefinitionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeDataQualityJobDefinitionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeDataQualityJobDefinitionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeDataQualityJobDefinitionInput"}
	if s.JobDefinitionName == nil {
		invalidParams.Add(request.NewErrParamRequired("JobDefinitionName"))
	}
	if s.JobDefinitionName != nil && len(*s.JobDefinitionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("JobDefinitionName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetJobDefinitionName sets the JobDefinitionName field's value.
func (s *DescribeDataQualityJobDefinitionInput) SetJobDefinitionName(v string) *DescribeDataQualityJobDefinitionInput {
	s.JobDefinitionName = &v
	return s
}

type DescribeDataQualityJobDefinitionOutput struct {
	_ struct{} `type:"structure"`

	// The time that the data quality monitoring job definition was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// Information about the container that runs the data quality monitoring job.
	//
	// DataQualityAppSpecification is a required field
	DataQualityAppSpecification *DataQualityAppSpecification `type:"structure" required:"true"`

	// The constraints and baselines for the data quality monitoring job definition.
	DataQualityBaselineConfig *DataQualityBaselineConfig `type:"structure"`

	// The list of inputs for the data quality monitoring job. Currently endpoints
	// are supported.
	//
	// DataQualityJobInput is a required field
	DataQualityJobInput *DataQualityJobInput `type:"structure" required:"true"`

	// The output configuration for monitoring jobs.
	//
	// DataQualityJobOutputConfig is a required field
	DataQualityJobOutputConfig *MonitoringOutputConfig `type:"structure" required:"true"`

	// The Amazon Resource Name (ARN) of the data quality monitoring job definition.
	//
	// JobDefinitionArn is a required field
	JobDefinitionArn *string `type:"string" required:"true"`

	// The name of the data quality monitoring job definition.
	//
	// JobDefinitionName is a required field
	JobDefinitionName *string `min:"1" type:"string" required:"true"`

	// Identifies the resources to deploy for a monitoring job.
	//
	// JobResources is a required field
	JobResources *MonitoringResources `type:"structure" required:"true"`

	// The networking configuration for the data quality monitoring job.
	NetworkConfig *MonitoringNetworkConfig `type:"structure"`

	// The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume
	// to perform tasks on your behalf.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// A time limit for how long the monitoring job is allowed to run before stopping.
	StoppingCondition *MonitoringStoppingCondition `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeDataQualityJobDefinitionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeDataQualityJobDefinitionOutput) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeDataQualityJobDefinitionOutput) SetCreationTime(v time.Time) *DescribeDataQualityJobDefinitionOutput {
	s.CreationTime = &v
	return s
}

// SetDataQualityAppSpecification sets the DataQualityAppSpecification field's value.
func (s *DescribeDataQualityJobDefinitionOutput) SetDataQualityAppSpecification(v *DataQualityAppSpecification) *DescribeDataQualityJobDefinitionOutput {
	s.DataQualityAppSpecification = v
	return s
}

// SetDataQualityBaselineConfig sets the DataQualityBaselineConfig field's value.
func (s *DescribeDataQualityJobDefinitionOutput) SetDataQualityBaselineConfig(v *DataQualityBaselineConfig) *DescribeDataQualityJobDefinitionOutput {
	s.DataQualityBaselineConfig = v
	return s
}

// SetDataQualityJobInput sets the DataQualityJobInput field's value.
func (s *DescribeDataQualityJobDefinitionOutput) SetDataQualityJobInput(v *DataQualityJobInput) *DescribeDataQualityJobDefinitionOutput {
	s.DataQualityJobInput = v
	return s
}

// SetDataQualityJobOutputConfig sets the DataQualityJobOutputConfig field's value.
func (s *DescribeDataQualityJobDefinitionOutput) SetDataQualityJobOutputConfig(v *MonitoringOutputConfig) *DescribeDataQualityJobDefinitionOutput {
	s.DataQualityJobOutputConfig = v
	return s
}

// SetJobDefinitionArn sets the JobDefinitionArn field's value.
func (s *DescribeDataQualityJobDefinitionOutput) SetJobDefinitionArn(v string) *DescribeDataQualityJobDefinitionOutput {
	s.JobDefinitionArn = &v
	return s
}

// SetJobDefinitionName sets the JobDefinitionName field's value.
func (s *DescribeDataQualityJobDefinitionOutput) SetJobDefinitionName(v string) *DescribeDataQualityJobDefinitionOutput {
	s.JobDefinitionName = &v
	return s
}

// SetJobResources sets the JobResources field's value.
func (s *DescribeDataQualityJobDefinitionOutput) SetJobResources(v *MonitoringResources) *DescribeDataQualityJobDefinitionOutput {
	s.JobResources = v
	return s
}

// SetNetworkConfig sets the NetworkConfig field's value.
func (s *DescribeDataQualityJobDefinitionOutput) SetNetworkConfig(v *MonitoringNetworkConfig) *DescribeDataQualityJobDefinitionOutput {
	s.NetworkConfig = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *DescribeDataQualityJobDefinitionOutput) SetRoleArn(v string) *DescribeDataQualityJobDefinitionOutput {
	s.RoleArn = &v
	return s
}

// SetStoppingCondition sets the StoppingCondition field's value.
func (s *DescribeDataQualityJobDefinitionOutput) SetStoppingCondition(v *MonitoringStoppingCondition) *DescribeDataQualityJobDefinitionOutput {
	s.StoppingCondition = v
	return s
}

type DescribeDeviceFleetInput struct {
	_ struct{} `type:"structure"`

	// The name of the fleet.
	//
	// DeviceFleetName is a required field
	DeviceFleetName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeDeviceFleetInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeDeviceFleetInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeDeviceFleetInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeDeviceFleetInput"}
	if s.DeviceFleetName == nil {
		invalidParams.Add(request.NewErrParamRequired("DeviceFleetName"))
	}
	if s.DeviceFleetName != nil && len(*s.DeviceFleetName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DeviceFleetName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDeviceFleetName sets the DeviceFleetName field's value.
func (s *DescribeDeviceFleetInput) SetDeviceFleetName(v string) *DescribeDeviceFleetInput {
	s.DeviceFleetName = &v
	return s
}

type DescribeDeviceFleetOutput struct {
	_ struct{} `type:"structure"`

	// Timestamp of when the device fleet was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// A description of the fleet.
	Description *string `min:"1" type:"string"`

	// The The Amazon Resource Name (ARN) of the fleet.
	//
	// DeviceFleetArn is a required field
	DeviceFleetArn *string `type:"string" required:"true"`

	// The name of the fleet.
	//
	// DeviceFleetName is a required field
	DeviceFleetName *string `min:"1" type:"string" required:"true"`

	// The Amazon Resource Name (ARN) alias created in Amazon Web Services Internet
	// of Things (IoT).
	IotRoleAlias *string `type:"string"`

	// Timestamp of when the device fleet was last updated.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`

	// The output configuration for storing sampled data.
	//
	// OutputConfig is a required field
	OutputConfig *EdgeOutputConfig `type:"structure" required:"true"`

	// The Amazon Resource Name (ARN) that has access to Amazon Web Services Internet
	// of Things (IoT).
	RoleArn *string `min:"20" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeDeviceFleetOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeDeviceFleetOutput) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeDeviceFleetOutput) SetCreationTime(v time.Time) *DescribeDeviceFleetOutput {
	s.CreationTime = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *DescribeDeviceFleetOutput) SetDescription(v string) *DescribeDeviceFleetOutput {
	s.Description = &v
	return s
}

// SetDeviceFleetArn sets the DeviceFleetArn field's value.
func (s *DescribeDeviceFleetOutput) SetDeviceFleetArn(v string) *DescribeDeviceFleetOutput {
	s.DeviceFleetArn = &v
	return s
}

// SetDeviceFleetName sets the DeviceFleetName field's value.
func (s *DescribeDeviceFleetOutput) SetDeviceFleetName(v string) *DescribeDeviceFleetOutput {
	s.DeviceFleetName = &v
	return s
}

// SetIotRoleAlias sets the IotRoleAlias field's value.
func (s *DescribeDeviceFleetOutput) SetIotRoleAlias(v string) *DescribeDeviceFleetOutput {
	s.IotRoleAlias = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeDeviceFleetOutput) SetLastModifiedTime(v time.Time) *DescribeDeviceFleetOutput {
	s.LastModifiedTime = &v
	return s
}

// SetOutputConfig sets the OutputConfig field's value.
func (s *DescribeDeviceFleetOutput) SetOutputConfig(v *EdgeOutputConfig) *DescribeDeviceFleetOutput {
	s.OutputConfig = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *DescribeDeviceFleetOutput) SetRoleArn(v string) *DescribeDeviceFleetOutput {
	s.RoleArn = &v
	return s
}

type DescribeDeviceInput struct {
	_ struct{} `type:"structure"`

	// The name of the fleet the devices belong to.
	//
	// DeviceFleetName is a required field
	DeviceFleetName *string `min:"1" type:"string" required:"true"`

	// The unique ID of the device.
	//
	// DeviceName is a required field
	DeviceName *string `min:"1" type:"string" required:"true"`

	// Next token of device description.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeDeviceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeDeviceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeDeviceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeDeviceInput"}
	if s.DeviceFleetName == nil {
		invalidParams.Add(request.NewErrParamRequired("DeviceFleetName"))
	}
	if s.DeviceFleetName != nil && len(*s.DeviceFleetName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DeviceFleetName", 1))
	}
	if s.DeviceName == nil {
		invalidParams.Add(request.NewErrParamRequired("DeviceName"))
	}
	if s.DeviceName != nil && len(*s.DeviceName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DeviceName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDeviceFleetName sets the DeviceFleetName field's value.
func (s *DescribeDeviceInput) SetDeviceFleetName(v string) *DescribeDeviceInput {
	s.DeviceFleetName = &v
	return s
}

// SetDeviceName sets the DeviceName field's value.
func (s *DescribeDeviceInput) SetDeviceName(v string) *DescribeDeviceInput {
	s.DeviceName = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *DescribeDeviceInput) SetNextToken(v string) *DescribeDeviceInput {
	s.NextToken = &v
	return s
}

type DescribeDeviceOutput struct {
	_ struct{} `type:"structure"`

	// Edge Manager agent version.
	AgentVersion *string `min:"1" type:"string"`

	// A description of the device.
	Description *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) of the device.
	DeviceArn *string `min:"20" type:"string"`

	// The name of the fleet the device belongs to.
	//
	// DeviceFleetName is a required field
	DeviceFleetName *string `min:"1" type:"string" required:"true"`

	// The unique identifier of the device.
	//
	// DeviceName is a required field
	DeviceName *string `min:"1" type:"string" required:"true"`

	// The Amazon Web Services Internet of Things (IoT) object thing name associated
	// with the device.
	IotThingName *string `type:"string"`

	// The last heartbeat received from the device.
	LatestHeartbeat *time.Time `type:"timestamp"`

	// The maximum number of models.
	MaxModels *int64 `type:"integer"`

	// Models on the device.
	Models []*EdgeModel `type:"list"`

	// The response from the last list when returning a list large enough to need
	// tokening.
	NextToken *string `type:"string"`

	// The timestamp of the last registration or de-reregistration.
	//
	// RegistrationTime is a required field
	RegistrationTime *time.Time `type:"timestamp" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeDeviceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeDeviceOutput) GoString() string {
	return s.String()
}

// SetAgentVersion sets the AgentVersion field's value.
func (s *DescribeDeviceOutput) SetAgentVersion(v string) *DescribeDeviceOutput {
	s.AgentVersion = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *DescribeDeviceOutput) SetDescription(v string) *DescribeDeviceOutput {
	s.Description = &v
	return s
}

// SetDeviceArn sets the DeviceArn field's value.
func (s *DescribeDeviceOutput) SetDeviceArn(v string) *DescribeDeviceOutput {
	s.DeviceArn = &v
	return s
}

// SetDeviceFleetName sets the DeviceFleetName field's value.
func (s *DescribeDeviceOutput) SetDeviceFleetName(v string) *DescribeDeviceOutput {
	s.DeviceFleetName = &v
	return s
}

// SetDeviceName sets the DeviceName field's value.
func (s *DescribeDeviceOutput) SetDeviceName(v string) *DescribeDeviceOutput {
	s.DeviceName = &v
	return s
}

// SetIotThingName sets the IotThingName field's value.
func (s *DescribeDeviceOutput) SetIotThingName(v string) *DescribeDeviceOutput {
	s.IotThingName = &v
	return s
}

// SetLatestHeartbeat sets the LatestHeartbeat field's value.
func (s *DescribeDeviceOutput) SetLatestHeartbeat(v time.Time) *DescribeDeviceOutput {
	s.LatestHeartbeat = &v
	return s
}

// SetMaxModels sets the MaxModels field's value.
func (s *DescribeDeviceOutput) SetMaxModels(v int64) *DescribeDeviceOutput {
	s.MaxModels = &v
	return s
}

// SetModels sets the Models field's value.
func (s *DescribeDeviceOutput) SetModels(v []*EdgeModel) *DescribeDeviceOutput {
	s.Models = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *DescribeDeviceOutput) SetNextToken(v string) *DescribeDeviceOutput {
	s.NextToken = &v
	return s
}

// SetRegistrationTime sets the RegistrationTime field's value.
func (s *DescribeDeviceOutput) SetRegistrationTime(v time.Time) *DescribeDeviceOutput {
	s.RegistrationTime = &v
	return s
}

type DescribeDomainInput struct {
	_ struct{} `type:"structure"`

	// The domain ID.
	//
	// DomainId is a required field
	DomainId *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeDomainInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeDomainInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeDomainInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeDomainInput"}
	if s.DomainId == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainId"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainId sets the DomainId field's value.
func (s *DescribeDomainInput) SetDomainId(v string) *DescribeDomainInput {
	s.DomainId = &v
	return s
}

type DescribeDomainOutput struct {
	_ struct{} `type:"structure"`

	// Specifies the VPC used for non-EFS traffic. The default value is PublicInternetOnly.
	//
	//    * PublicInternetOnly - Non-EFS traffic is through a VPC managed by Amazon
	//    SageMaker, which allows direct internet access
	//
	//    * VpcOnly - All traffic is through the specified VPC and subnets
	AppNetworkAccessType *string `type:"string" enum:"AppNetworkAccessType"`

	// The entity that creates and manages the required security groups for inter-app
	// communication in VPCOnly mode. Required when CreateDomain.AppNetworkAccessType
	// is VPCOnly and DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn
	// is provided.
	AppSecurityGroupManagement *string `type:"string" enum:"AppSecurityGroupManagement"`

	// The domain's authentication mode.
	AuthMode *string `type:"string" enum:"AuthMode"`

	// The creation time.
	CreationTime *time.Time `type:"timestamp"`

	// The default settings used to create a space.
	DefaultSpaceSettings *DefaultSpaceSettings `type:"structure"`

	// Settings which are applied to UserProfiles in this domain if settings are
	// not explicitly specified in a given UserProfile.
	DefaultUserSettings *UserSettings `type:"structure"`

	// The domain's Amazon Resource Name (ARN).
	DomainArn *string `type:"string"`

	// The domain ID.
	DomainId *string `type:"string"`

	// The domain name.
	DomainName *string `type:"string"`

	// A collection of Domain settings.
	DomainSettings *DomainSettings `type:"structure"`

	// The failure reason.
	FailureReason *string `type:"string"`

	// The ID of the Amazon Elastic File System managed by this Domain.
	HomeEfsFileSystemId *string `type:"string"`

	// Use KmsKeyId.
	//
	// Deprecated: This property is deprecated, use KmsKeyId instead.
	HomeEfsFileSystemKmsKeyId *string `deprecated:"true" type:"string"`

	// The Amazon Web Services KMS customer managed key used to encrypt the EFS
	// volume attached to the domain.
	KmsKeyId *string `type:"string"`

	// The last modified time.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The ID of the security group that authorizes traffic between the RSessionGateway
	// apps and the RStudioServerPro app.
	SecurityGroupIdForDomainBoundary *string `type:"string"`

	// The ARN of the application managed by SageMaker in IAM Identity Center. This
	// value is only returned for domains created after October 1, 2023.
	SingleSignOnApplicationArn *string `type:"string"`

	// The IAM Identity Center managed application instance ID.
	SingleSignOnManagedApplicationInstanceId *string `type:"string"`

	// The status.
	Status *string `type:"string" enum:"DomainStatus"`

	// The VPC subnets that the domain uses for communication.
	SubnetIds []*string `min:"1" type:"list"`

	// The domain's URL.
	Url *string `type:"string"`

	// The ID of the Amazon Virtual Private Cloud (VPC) that the domain uses for
	// communication.
	VpcId *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeDomainOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeDomainOutput) GoString() string {
	return s.String()
}

// SetAppNetworkAccessType sets the AppNetworkAccessType field's value.
func (s *DescribeDomainOutput) SetAppNetworkAccessType(v string) *DescribeDomainOutput {
	s.AppNetworkAccessType = &v
	return s
}

// SetAppSecurityGroupManagement sets the AppSecurityGroupManagement field's value.
func (s *DescribeDomainOutput) SetAppSecurityGroupManagement(v string) *DescribeDomainOutput {
	s.AppSecurityGroupManagement = &v
	return s
}

// SetAuthMode sets the AuthMode field's value.
func (s *DescribeDomainOutput) SetAuthMode(v string) *DescribeDomainOutput {
	s.AuthMode = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeDomainOutput) SetCreationTime(v time.Time) *DescribeDomainOutput {
	s.CreationTime = &v
	return s
}

// SetDefaultSpaceSettings sets the DefaultSpaceSettings field's value.
func (s *DescribeDomainOutput) SetDefaultSpaceSettings(v *DefaultSpaceSettings) *DescribeDomainOutput {
	s.DefaultSpaceSettings = v
	return s
}

// SetDefaultUserSettings sets the DefaultUserSettings field's value.
func (s *DescribeDomainOutput) SetDefaultUserSettings(v *UserSettings) *DescribeDomainOutput {
	s.DefaultUserSettings = v
	return s
}

// SetDomainArn sets the DomainArn field's value.
func (s *DescribeDomainOutput) SetDomainArn(v string) *DescribeDomainOutput {
	s.DomainArn = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *DescribeDomainOutput) SetDomainId(v string) *DescribeDomainOutput {
	s.DomainId = &v
	return s
}

// SetDomainName sets the DomainName field's value.
func (s *DescribeDomainOutput) SetDomainName(v string) *DescribeDomainOutput {
	s.DomainName = &v
	return s
}

// SetDomainSettings sets the DomainSettings field's value.
func (s *DescribeDomainOutput) SetDomainSettings(v *DomainSettings) *DescribeDomainOutput {
	s.DomainSettings = v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *DescribeDomainOutput) SetFailureReason(v string) *DescribeDomainOutput {
	s.FailureReason = &v
	return s
}

// SetHomeEfsFileSystemId sets the HomeEfsFileSystemId field's value.
func (s *DescribeDomainOutput) SetHomeEfsFileSystemId(v string) *DescribeDomainOutput {
	s.HomeEfsFileSystemId = &v
	return s
}

// SetHomeEfsFileSystemKmsKeyId sets the HomeEfsFileSystemKmsKeyId field's value.
func (s *DescribeDomainOutput) SetHomeEfsFileSystemKmsKeyId(v string) *DescribeDomainOutput {
	s.HomeEfsFileSystemKmsKeyId = &v
	return s
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *DescribeDomainOutput) SetKmsKeyId(v string) *DescribeDomainOutput {
	s.KmsKeyId = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeDomainOutput) SetLastModifiedTime(v time.Time) *DescribeDomainOutput {
	s.LastModifiedTime = &v
	return s
}

// SetSecurityGroupIdForDomainBoundary sets the SecurityGroupIdForDomainBoundary field's value.
func (s *DescribeDomainOutput) SetSecurityGroupIdForDomainBoundary(v string) *DescribeDomainOutput {
	s.SecurityGroupIdForDomainBoundary = &v
	return s
}

// SetSingleSignOnApplicationArn sets the SingleSignOnApplicationArn field's value.
func (s *DescribeDomainOutput) SetSingleSignOnApplicationArn(v string) *DescribeDomainOutput {
	s.SingleSignOnApplicationArn = &v
	return s
}

// SetSingleSignOnManagedApplicationInstanceId sets the SingleSignOnManagedApplicationInstanceId field's value.
func (s *DescribeDomainOutput) SetSingleSignOnManagedApplicationInstanceId(v string) *DescribeDomainOutput {
	s.SingleSignOnManagedApplicationInstanceId = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *DescribeDomainOutput) SetStatus(v string) *DescribeDomainOutput {
	s.Status = &v
	return s
}

// SetSubnetIds sets the SubnetIds field's value.
func (s *DescribeDomainOutput) SetSubnetIds(v []*string) *DescribeDomainOutput {
	s.SubnetIds = v
	return s
}

// SetUrl sets the Url field's value.
func (s *DescribeDomainOutput) SetUrl(v string) *DescribeDomainOutput {
	s.Url = &v
	return s
}

// SetVpcId sets the VpcId field's value.
func (s *DescribeDomainOutput) SetVpcId(v string) *DescribeDomainOutput {
	s.VpcId = &v
	return s
}

type DescribeEdgeDeploymentPlanInput struct {
	_ struct{} `type:"structure"`

	// The name of the deployment plan to describe.
	//
	// EdgeDeploymentPlanName is a required field
	EdgeDeploymentPlanName *string `min:"1" type:"string" required:"true"`

	// The maximum number of results to select (50 by default).
	MaxResults *int64 `type:"integer"`

	// If the edge deployment plan has enough stages to require tokening, then this
	// is the response from the last list of stages returned.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeEdgeDeploymentPlanInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeEdgeDeploymentPlanInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeEdgeDeploymentPlanInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeEdgeDeploymentPlanInput"}
	if s.EdgeDeploymentPlanName == nil {
		invalidParams.Add(request.NewErrParamRequired("EdgeDeploymentPlanName"))
	}
	if s.EdgeDeploymentPlanName != nil && len(*s.EdgeDeploymentPlanName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("EdgeDeploymentPlanName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEdgeDeploymentPlanName sets the EdgeDeploymentPlanName field's value.
func (s *DescribeEdgeDeploymentPlanInput) SetEdgeDeploymentPlanName(v string) *DescribeEdgeDeploymentPlanInput {
	s.EdgeDeploymentPlanName = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *DescribeEdgeDeploymentPlanInput) SetMaxResults(v int64) *DescribeEdgeDeploymentPlanInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *DescribeEdgeDeploymentPlanInput) SetNextToken(v string) *DescribeEdgeDeploymentPlanInput {
	s.NextToken = &v
	return s
}

type DescribeEdgeDeploymentPlanOutput struct {
	_ struct{} `type:"structure"`

	// The time when the edge deployment plan was created.
	CreationTime *time.Time `type:"timestamp"`

	// The device fleet used for this edge deployment plan.
	//
	// DeviceFleetName is a required field
	DeviceFleetName *string `min:"1" type:"string" required:"true"`

	// The number of edge devices that failed the deployment.
	EdgeDeploymentFailed *int64 `type:"integer"`

	// The number of edge devices yet to pick up deployment, or in progress.
	EdgeDeploymentPending *int64 `type:"integer"`

	// The ARN of edge deployment plan.
	//
	// EdgeDeploymentPlanArn is a required field
	EdgeDeploymentPlanArn *string `min:"20" type:"string" required:"true"`

	// The name of the edge deployment plan.
	//
	// EdgeDeploymentPlanName is a required field
	EdgeDeploymentPlanName *string `min:"1" type:"string" required:"true"`

	// The number of edge devices with the successful deployment.
	EdgeDeploymentSuccess *int64 `type:"integer"`

	// The time when the edge deployment plan was last updated.
	LastModifiedTime *time.Time `type:"timestamp"`

	// List of models associated with the edge deployment plan.
	//
	// ModelConfigs is a required field
	ModelConfigs []*EdgeDeploymentModelConfig `type:"list" required:"true"`

	// Token to use when calling the next set of stages in the edge deployment plan.
	NextToken *string `type:"string"`

	// List of stages in the edge deployment plan.
	//
	// Stages is a required field
	Stages []*DeploymentStageStatusSummary `type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeEdgeDeploymentPlanOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeEdgeDeploymentPlanOutput) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeEdgeDeploymentPlanOutput) SetCreationTime(v time.Time) *DescribeEdgeDeploymentPlanOutput {
	s.CreationTime = &v
	return s
}

// SetDeviceFleetName sets the DeviceFleetName field's value.
func (s *DescribeEdgeDeploymentPlanOutput) SetDeviceFleetName(v string) *DescribeEdgeDeploymentPlanOutput {
	s.DeviceFleetName = &v
	return s
}

// SetEdgeDeploymentFailed sets the EdgeDeploymentFailed field's value.
func (s *DescribeEdgeDeploymentPlanOutput) SetEdgeDeploymentFailed(v int64) *DescribeEdgeDeploymentPlanOutput {
	s.EdgeDeploymentFailed = &v
	return s
}

// SetEdgeDeploymentPending sets the EdgeDeploymentPending field's value.
func (s *DescribeEdgeDeploymentPlanOutput) SetEdgeDeploymentPending(v int64) *DescribeEdgeDeploymentPlanOutput {
	s.EdgeDeploymentPending = &v
	return s
}

// SetEdgeDeploymentPlanArn sets the EdgeDeploymentPlanArn field's value.
func (s *DescribeEdgeDeploymentPlanOutput) SetEdgeDeploymentPlanArn(v string) *DescribeEdgeDeploymentPlanOutput {
	s.EdgeDeploymentPlanArn = &v
	return s
}

// SetEdgeDeploymentPlanName sets the EdgeDeploymentPlanName field's value.
func (s *DescribeEdgeDeploymentPlanOutput) SetEdgeDeploymentPlanName(v string) *DescribeEdgeDeploymentPlanOutput {
	s.EdgeDeploymentPlanName = &v
	return s
}

// SetEdgeDeploymentSuccess sets the EdgeDeploymentSuccess field's value.
func (s *DescribeEdgeDeploymentPlanOutput) SetEdgeDeploymentSuccess(v int64) *DescribeEdgeDeploymentPlanOutput {
	s.EdgeDeploymentSuccess = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeEdgeDeploymentPlanOutput) SetLastModifiedTime(v time.Time) *DescribeEdgeDeploymentPlanOutput {
	s.LastModifiedTime = &v
	return s
}

// SetModelConfigs sets the ModelConfigs field's value.
func (s *DescribeEdgeDeploymentPlanOutput) SetModelConfigs(v []*EdgeDeploymentModelConfig) *DescribeEdgeDeploymentPlanOutput {
	s.ModelConfigs = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *DescribeEdgeDeploymentPlanOutput) SetNextToken(v string) *DescribeEdgeDeploymentPlanOutput {
	s.NextToken = &v
	return s
}

// SetStages sets the Stages field's value.
func (s *DescribeEdgeDeploymentPlanOutput) SetStages(v []*DeploymentStageStatusSummary) *DescribeEdgeDeploymentPlanOutput {
	s.Stages = v
	return s
}

type DescribeEdgePackagingJobInput struct {
	_ struct{} `type:"structure"`

	// The name of the edge packaging job.
	//
	// EdgePackagingJobName is a required field
	EdgePackagingJobName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeEdgePackagingJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeEdgePackagingJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeEdgePackagingJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeEdgePackagingJobInput"}
	if s.EdgePackagingJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("EdgePackagingJobName"))
	}
	if s.EdgePackagingJobName != nil && len(*s.EdgePackagingJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("EdgePackagingJobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEdgePackagingJobName sets the EdgePackagingJobName field's value.
func (s *DescribeEdgePackagingJobInput) SetEdgePackagingJobName(v string) *DescribeEdgePackagingJobInput {
	s.EdgePackagingJobName = &v
	return s
}

type DescribeEdgePackagingJobOutput struct {
	_ struct{} `type:"structure"`

	// The name of the SageMaker Neo compilation job that is used to locate model
	// artifacts that are being packaged.
	CompilationJobName *string `min:"1" type:"string"`

	// The timestamp of when the packaging job was created.
	CreationTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the edge packaging job.
	//
	// EdgePackagingJobArn is a required field
	EdgePackagingJobArn *string `min:"20" type:"string" required:"true"`

	// The name of the edge packaging job.
	//
	// EdgePackagingJobName is a required field
	EdgePackagingJobName *string `min:"1" type:"string" required:"true"`

	// The current status of the packaging job.
	//
	// EdgePackagingJobStatus is a required field
	EdgePackagingJobStatus *string `type:"string" required:"true" enum:"EdgePackagingJobStatus"`

	// Returns a message describing the job status and error messages.
	EdgePackagingJobStatusMessage *string `type:"string"`

	// The timestamp of when the job was last updated.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The Amazon Simple Storage (S3) URI where model artifacts ares stored.
	ModelArtifact *string `type:"string"`

	// The name of the model.
	ModelName *string `min:"1" type:"string"`

	// The signature document of files in the model artifact.
	ModelSignature *string `type:"string"`

	// The version of the model.
	ModelVersion *string `min:"1" type:"string"`

	// The output configuration for the edge packaging job.
	OutputConfig *EdgeOutputConfig `type:"structure"`

	// The output of a SageMaker Edge Manager deployable resource.
	PresetDeploymentOutput *EdgePresetDeploymentOutput `type:"structure"`

	// The Amazon Web Services KMS key to use when encrypting the EBS volume the
	// job run on.
	ResourceKey *string `type:"string"`

	// The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker
	// to download and upload the model, and to contact Neo.
	RoleArn *string `min:"20" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeEdgePackagingJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeEdgePackagingJobOutput) GoString() string {
	return s.String()
}

// SetCompilationJobName sets the CompilationJobName field's value.
func (s *DescribeEdgePackagingJobOutput) SetCompilationJobName(v string) *DescribeEdgePackagingJobOutput {
	s.CompilationJobName = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeEdgePackagingJobOutput) SetCreationTime(v time.Time) *DescribeEdgePackagingJobOutput {
	s.CreationTime = &v
	return s
}

// SetEdgePackagingJobArn sets the EdgePackagingJobArn field's value.
func (s *DescribeEdgePackagingJobOutput) SetEdgePackagingJobArn(v string) *DescribeEdgePackagingJobOutput {
	s.EdgePackagingJobArn = &v
	return s
}

// SetEdgePackagingJobName sets the EdgePackagingJobName field's value.
func (s *DescribeEdgePackagingJobOutput) SetEdgePackagingJobName(v string) *DescribeEdgePackagingJobOutput {
	s.EdgePackagingJobName = &v
	return s
}

// SetEdgePackagingJobStatus sets the EdgePackagingJobStatus field's value.
func (s *DescribeEdgePackagingJobOutput) SetEdgePackagingJobStatus(v string) *DescribeEdgePackagingJobOutput {
	s.EdgePackagingJobStatus = &v
	return s
}

// SetEdgePackagingJobStatusMessage sets the EdgePackagingJobStatusMessage field's value.
func (s *DescribeEdgePackagingJobOutput) SetEdgePackagingJobStatusMessage(v string) *DescribeEdgePackagingJobOutput {
	s.EdgePackagingJobStatusMessage = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeEdgePackagingJobOutput) SetLastModifiedTime(v time.Time) *DescribeEdgePackagingJobOutput {
	s.LastModifiedTime = &v
	return s
}

// SetModelArtifact sets the ModelArtifact field's value.
func (s *DescribeEdgePackagingJobOutput) SetModelArtifact(v string) *DescribeEdgePackagingJobOutput {
	s.ModelArtifact = &v
	return s
}

// SetModelName sets the ModelName field's value.
func (s *DescribeEdgePackagingJobOutput) SetModelName(v string) *DescribeEdgePackagingJobOutput {
	s.ModelName = &v
	return s
}

// SetModelSignature sets the ModelSignature field's value.
func (s *DescribeEdgePackagingJobOutput) SetModelSignature(v string) *DescribeEdgePackagingJobOutput {
	s.ModelSignature = &v
	return s
}

// SetModelVersion sets the ModelVersion field's value.
func (s *DescribeEdgePackagingJobOutput) SetModelVersion(v string) *DescribeEdgePackagingJobOutput {
	s.ModelVersion = &v
	return s
}

// SetOutputConfig sets the OutputConfig field's value.
func (s *DescribeEdgePackagingJobOutput) SetOutputConfig(v *EdgeOutputConfig) *DescribeEdgePackagingJobOutput {
	s.OutputConfig = v
	return s
}

// SetPresetDeploymentOutput sets the PresetDeploymentOutput field's value.
func (s *DescribeEdgePackagingJobOutput) SetPresetDeploymentOutput(v *EdgePresetDeploymentOutput) *DescribeEdgePackagingJobOutput {
	s.PresetDeploymentOutput = v
	return s
}

// SetResourceKey sets the ResourceKey field's value.
func (s *DescribeEdgePackagingJobOutput) SetResourceKey(v string) *DescribeEdgePackagingJobOutput {
	s.ResourceKey = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *DescribeEdgePackagingJobOutput) SetRoleArn(v string) *DescribeEdgePackagingJobOutput {
	s.RoleArn = &v
	return s
}

type DescribeEndpointConfigInput struct {
	_ struct{} `type:"structure"`

	// The name of the endpoint configuration.
	//
	// EndpointConfigName is a required field
	EndpointConfigName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeEndpointConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeEndpointConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeEndpointConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeEndpointConfigInput"}
	if s.EndpointConfigName == nil {
		invalidParams.Add(request.NewErrParamRequired("EndpointConfigName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEndpointConfigName sets the EndpointConfigName field's value.
func (s *DescribeEndpointConfigInput) SetEndpointConfigName(v string) *DescribeEndpointConfigInput {
	s.EndpointConfigName = &v
	return s
}

type DescribeEndpointConfigOutput struct {
	_ struct{} `type:"structure"`

	// Returns the description of an endpoint configuration created using the CreateEndpointConfig
	// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html)
	// API.
	AsyncInferenceConfig *AsyncInferenceConfig `type:"structure"`

	// A timestamp that shows when the endpoint configuration was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// Configuration to control how SageMaker captures inference data.
	DataCaptureConfig *DataCaptureConfig `type:"structure"`

	// Indicates whether all model containers deployed to the endpoint are isolated.
	// If they are, no inbound or outbound network calls can be made to or from
	// the model containers.
	EnableNetworkIsolation *bool `type:"boolean"`

	// The Amazon Resource Name (ARN) of the endpoint configuration.
	//
	// EndpointConfigArn is a required field
	EndpointConfigArn *string `min:"20" type:"string" required:"true"`

	// Name of the SageMaker endpoint configuration.
	//
	// EndpointConfigName is a required field
	EndpointConfigName *string `type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of the IAM role that you assigned to the endpoint
	// configuration.
	ExecutionRoleArn *string `min:"20" type:"string"`

	// The configuration parameters for an explainer.
	ExplainerConfig *ExplainerConfig `type:"structure"`

	// Amazon Web Services KMS key ID Amazon SageMaker uses to encrypt data when
	// storing it on the ML storage volume attached to the instance.
	KmsKeyId *string `type:"string"`

	// An array of ProductionVariant objects, one for each model that you want to
	// host at this endpoint.
	//
	// ProductionVariants is a required field
	ProductionVariants []*ProductionVariant `min:"1" type:"list" required:"true"`

	// An array of ProductionVariant objects, one for each model that you want to
	// host at this endpoint in shadow mode with production traffic replicated from
	// the model specified on ProductionVariants.
	ShadowProductionVariants []*ProductionVariant `min:"1" type:"list"`

	// Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs,
	// hosted models, and compute resources have access to. You can control access
	// to and from your resources by configuring a VPC. For more information, see
	// Give SageMaker Access to Resources in your Amazon VPC (https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html).
	VpcConfig *VpcConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeEndpointConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeEndpointConfigOutput) GoString() string {
	return s.String()
}

// SetAsyncInferenceConfig sets the AsyncInferenceConfig field's value.
func (s *DescribeEndpointConfigOutput) SetAsyncInferenceConfig(v *AsyncInferenceConfig) *DescribeEndpointConfigOutput {
	s.AsyncInferenceConfig = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeEndpointConfigOutput) SetCreationTime(v time.Time) *DescribeEndpointConfigOutput {
	s.CreationTime = &v
	return s
}

// SetDataCaptureConfig sets the DataCaptureConfig field's value.
func (s *DescribeEndpointConfigOutput) SetDataCaptureConfig(v *DataCaptureConfig) *DescribeEndpointConfigOutput {
	s.DataCaptureConfig = v
	return s
}

// SetEnableNetworkIsolation sets the EnableNetworkIsolation field's value.
func (s *DescribeEndpointConfigOutput) SetEnableNetworkIsolation(v bool) *DescribeEndpointConfigOutput {
	s.EnableNetworkIsolation = &v
	return s
}

// SetEndpointConfigArn sets the EndpointConfigArn field's value.
func (s *DescribeEndpointConfigOutput) SetEndpointConfigArn(v string) *DescribeEndpointConfigOutput {
	s.EndpointConfigArn = &v
	return s
}

// SetEndpointConfigName sets the EndpointConfigName field's value.
func (s *DescribeEndpointConfigOutput) SetEndpointConfigName(v string) *DescribeEndpointConfigOutput {
	s.EndpointConfigName = &v
	return s
}

// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
func (s *DescribeEndpointConfigOutput) SetExecutionRoleArn(v string) *DescribeEndpointConfigOutput {
	s.ExecutionRoleArn = &v
	return s
}

// SetExplainerConfig sets the ExplainerConfig field's value.
func (s *DescribeEndpointConfigOutput) SetExplainerConfig(v *ExplainerConfig) *DescribeEndpointConfigOutput {
	s.ExplainerConfig = v
	return s
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *DescribeEndpointConfigOutput) SetKmsKeyId(v string) *DescribeEndpointConfigOutput {
	s.KmsKeyId = &v
	return s
}

// SetProductionVariants sets the ProductionVariants field's value.
func (s *DescribeEndpointConfigOutput) SetProductionVariants(v []*ProductionVariant) *DescribeEndpointConfigOutput {
	s.ProductionVariants = v
	return s
}

// SetShadowProductionVariants sets the ShadowProductionVariants field's value.
func (s *DescribeEndpointConfigOutput) SetShadowProductionVariants(v []*ProductionVariant) *DescribeEndpointConfigOutput {
	s.ShadowProductionVariants = v
	return s
}

// SetVpcConfig sets the VpcConfig field's value.
func (s *DescribeEndpointConfigOutput) SetVpcConfig(v *VpcConfig) *DescribeEndpointConfigOutput {
	s.VpcConfig = v
	return s
}

type DescribeEndpointInput struct {
	_ struct{} `type:"structure"`

	// The name of the endpoint.
	//
	// EndpointName is a required field
	EndpointName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeEndpointInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeEndpointInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeEndpointInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeEndpointInput"}
	if s.EndpointName == nil {
		invalidParams.Add(request.NewErrParamRequired("EndpointName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEndpointName sets the EndpointName field's value.
func (s *DescribeEndpointInput) SetEndpointName(v string) *DescribeEndpointInput {
	s.EndpointName = &v
	return s
}

type DescribeEndpointOutput struct {
	_ struct{} `type:"structure"`

	// Returns the description of an endpoint configuration created using the CreateEndpointConfig
	// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html)
	// API.
	AsyncInferenceConfig *AsyncInferenceConfig `type:"structure"`

	// A timestamp that shows when the endpoint was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The currently active data capture configuration used by your Endpoint.
	DataCaptureConfig *DataCaptureConfigSummary `type:"structure"`

	// The Amazon Resource Name (ARN) of the endpoint.
	//
	// EndpointArn is a required field
	EndpointArn *string `min:"20" type:"string" required:"true"`

	// The name of the endpoint configuration associated with this endpoint.
	EndpointConfigName *string `type:"string"`

	// Name of the endpoint.
	//
	// EndpointName is a required field
	EndpointName *string `type:"string" required:"true"`

	// The status of the endpoint.
	//
	//    * OutOfService: Endpoint is not available to take incoming requests.
	//
	//    * Creating: CreateEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html)
	//    is executing.
	//
	//    * Updating: UpdateEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html)
	//    or UpdateEndpointWeightsAndCapacities (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html)
	//    is executing.
	//
	//    * SystemUpdating: Endpoint is undergoing maintenance and cannot be updated
	//    or deleted or re-scaled until it has completed. This maintenance operation
	//    does not change any customer-specified values such as VPC config, KMS
	//    encryption, model, instance type, or instance count.
	//
	//    * RollingBack: Endpoint fails to scale up or down or change its variant
	//    weight and is in the process of rolling back to its previous configuration.
	//    Once the rollback completes, endpoint returns to an InService status.
	//    This transitional status only applies to an endpoint that has autoscaling
	//    enabled and is undergoing variant weight or capacity changes as part of
	//    an UpdateEndpointWeightsAndCapacities (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html)
	//    call or when the UpdateEndpointWeightsAndCapacities (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html)
	//    operation is called explicitly.
	//
	//    * InService: Endpoint is available to process incoming requests.
	//
	//    * Deleting: DeleteEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteEndpoint.html)
	//    is executing.
	//
	//    * Failed: Endpoint could not be created, updated, or re-scaled. Use the
	//    FailureReason value returned by DescribeEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html)
	//    for information about the failure. DeleteEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteEndpoint.html)
	//    is the only operation that can be performed on a failed endpoint.
	//
	//    * UpdateRollbackFailed: Both the rolling deployment and auto-rollback
	//    failed. Your endpoint is in service with a mix of the old and new endpoint
	//    configurations. For information about how to remedy this issue and restore
	//    the endpoint's status to InService, see Rolling Deployments (https://docs.aws.amazon.com/sagemaker/latest/dg/deployment-guardrails-rolling.html).
	//
	// EndpointStatus is a required field
	EndpointStatus *string `type:"string" required:"true" enum:"EndpointStatus"`

	// The configuration parameters for an explainer.
	ExplainerConfig *ExplainerConfig `type:"structure"`

	// If the status of the endpoint is Failed, the reason why it failed.
	FailureReason *string `type:"string"`

	// The most recent deployment configuration for the endpoint.
	LastDeploymentConfig *DeploymentConfig `type:"structure"`

	// A timestamp that shows when the endpoint was last modified.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`

	// Returns the summary of an in-progress deployment. This field is only returned
	// when the endpoint is creating or updating with a new endpoint configuration.
	PendingDeploymentSummary *PendingDeploymentSummary `type:"structure"`

	// An array of ProductionVariantSummary (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariantSummary.html)
	// objects, one for each model hosted behind this endpoint.
	ProductionVariants []*ProductionVariantSummary `min:"1" type:"list"`

	// An array of ProductionVariantSummary (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariantSummary.html)
	// objects, one for each model that you want to host at this endpoint in shadow
	// mode with production traffic replicated from the model specified on ProductionVariants.
	ShadowProductionVariants []*ProductionVariantSummary `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeEndpointOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeEndpointOutput) GoString() string {
	return s.String()
}

// SetAsyncInferenceConfig sets the AsyncInferenceConfig field's value.
func (s *DescribeEndpointOutput) SetAsyncInferenceConfig(v *AsyncInferenceConfig) *DescribeEndpointOutput {
	s.AsyncInferenceConfig = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeEndpointOutput) SetCreationTime(v time.Time) *DescribeEndpointOutput {
	s.CreationTime = &v
	return s
}

// SetDataCaptureConfig sets the DataCaptureConfig field's value.
func (s *DescribeEndpointOutput) SetDataCaptureConfig(v *DataCaptureConfigSummary) *DescribeEndpointOutput {
	s.DataCaptureConfig = v
	return s
}

// SetEndpointArn sets the EndpointArn field's value.
func (s *DescribeEndpointOutput) SetEndpointArn(v string) *DescribeEndpointOutput {
	s.EndpointArn = &v
	return s
}

// SetEndpointConfigName sets the EndpointConfigName field's value.
func (s *DescribeEndpointOutput) SetEndpointConfigName(v string) *DescribeEndpointOutput {
	s.EndpointConfigName = &v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *DescribeEndpointOutput) SetEndpointName(v string) *DescribeEndpointOutput {
	s.EndpointName = &v
	return s
}

// SetEndpointStatus sets the EndpointStatus field's value.
func (s *DescribeEndpointOutput) SetEndpointStatus(v string) *DescribeEndpointOutput {
	s.EndpointStatus = &v
	return s
}

// SetExplainerConfig sets the ExplainerConfig field's value.
func (s *DescribeEndpointOutput) SetExplainerConfig(v *ExplainerConfig) *DescribeEndpointOutput {
	s.ExplainerConfig = v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *DescribeEndpointOutput) SetFailureReason(v string) *DescribeEndpointOutput {
	s.FailureReason = &v
	return s
}

// SetLastDeploymentConfig sets the LastDeploymentConfig field's value.
func (s *DescribeEndpointOutput) SetLastDeploymentConfig(v *DeploymentConfig) *DescribeEndpointOutput {
	s.LastDeploymentConfig = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeEndpointOutput) SetLastModifiedTime(v time.Time) *DescribeEndpointOutput {
	s.LastModifiedTime = &v
	return s
}

// SetPendingDeploymentSummary sets the PendingDeploymentSummary field's value.
func (s *DescribeEndpointOutput) SetPendingDeploymentSummary(v *PendingDeploymentSummary) *DescribeEndpointOutput {
	s.PendingDeploymentSummary = v
	return s
}

// SetProductionVariants sets the ProductionVariants field's value.
func (s *DescribeEndpointOutput) SetProductionVariants(v []*ProductionVariantSummary) *DescribeEndpointOutput {
	s.ProductionVariants = v
	return s
}

// SetShadowProductionVariants sets the ShadowProductionVariants field's value.
func (s *DescribeEndpointOutput) SetShadowProductionVariants(v []*ProductionVariantSummary) *DescribeEndpointOutput {
	s.ShadowProductionVariants = v
	return s
}

type DescribeExperimentInput struct {
	_ struct{} `type:"structure"`

	// The name of the experiment to describe.
	//
	// ExperimentName is a required field
	ExperimentName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeExperimentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeExperimentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeExperimentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeExperimentInput"}
	if s.ExperimentName == nil {
		invalidParams.Add(request.NewErrParamRequired("ExperimentName"))
	}
	if s.ExperimentName != nil && len(*s.ExperimentName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ExperimentName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetExperimentName sets the ExperimentName field's value.
func (s *DescribeExperimentInput) SetExperimentName(v string) *DescribeExperimentInput {
	s.ExperimentName = &v
	return s
}

type DescribeExperimentOutput struct {
	_ struct{} `type:"structure"`

	// Who created the experiment.
	CreatedBy *UserContext `type:"structure"`

	// When the experiment was created.
	CreationTime *time.Time `type:"timestamp"`

	// The description of the experiment.
	Description *string `type:"string"`

	// The name of the experiment as displayed. If DisplayName isn't specified,
	// ExperimentName is displayed.
	DisplayName *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) of the experiment.
	ExperimentArn *string `type:"string"`

	// The name of the experiment.
	ExperimentName *string `min:"1" type:"string"`

	// Who last modified the experiment.
	LastModifiedBy *UserContext `type:"structure"`

	// When the experiment was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the source and, optionally, the type.
	Source *ExperimentSource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeExperimentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeExperimentOutput) GoString() string {
	return s.String()
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *DescribeExperimentOutput) SetCreatedBy(v *UserContext) *DescribeExperimentOutput {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeExperimentOutput) SetCreationTime(v time.Time) *DescribeExperimentOutput {
	s.CreationTime = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *DescribeExperimentOutput) SetDescription(v string) *DescribeExperimentOutput {
	s.Description = &v
	return s
}

// SetDisplayName sets the DisplayName field's value.
func (s *DescribeExperimentOutput) SetDisplayName(v string) *DescribeExperimentOutput {
	s.DisplayName = &v
	return s
}

// SetExperimentArn sets the ExperimentArn field's value.
func (s *DescribeExperimentOutput) SetExperimentArn(v string) *DescribeExperimentOutput {
	s.ExperimentArn = &v
	return s
}

// SetExperimentName sets the ExperimentName field's value.
func (s *DescribeExperimentOutput) SetExperimentName(v string) *DescribeExperimentOutput {
	s.ExperimentName = &v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *DescribeExperimentOutput) SetLastModifiedBy(v *UserContext) *DescribeExperimentOutput {
	s.LastModifiedBy = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeExperimentOutput) SetLastModifiedTime(v time.Time) *DescribeExperimentOutput {
	s.LastModifiedTime = &v
	return s
}

// SetSource sets the Source field's value.
func (s *DescribeExperimentOutput) SetSource(v *ExperimentSource) *DescribeExperimentOutput {
	s.Source = v
	return s
}

type DescribeFeatureGroupInput struct {
	_ struct{} `type:"structure"`

	// The name or Amazon Resource Name (ARN) of the FeatureGroup you want described.
	//
	// FeatureGroupName is a required field
	FeatureGroupName *string `min:"1" type:"string" required:"true"`

	// A token to resume pagination of the list of Features (FeatureDefinitions).
	// 2,500 Features are returned by default.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeFeatureGroupInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeFeatureGroupInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeFeatureGroupInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeFeatureGroupInput"}
	if s.FeatureGroupName == nil {
		invalidParams.Add(request.NewErrParamRequired("FeatureGroupName"))
	}
	if s.FeatureGroupName != nil && len(*s.FeatureGroupName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FeatureGroupName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFeatureGroupName sets the FeatureGroupName field's value.
func (s *DescribeFeatureGroupInput) SetFeatureGroupName(v string) *DescribeFeatureGroupInput {
	s.FeatureGroupName = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *DescribeFeatureGroupInput) SetNextToken(v string) *DescribeFeatureGroupInput {
	s.NextToken = &v
	return s
}

type DescribeFeatureGroupOutput struct {
	_ struct{} `type:"structure"`

	// A timestamp indicating when SageMaker created the FeatureGroup.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// A free form description of the feature group.
	Description *string `type:"string"`

	// The name of the feature that stores the EventTime of a Record in a FeatureGroup.
	//
	// An EventTime is a point in time when a new event occurs that corresponds
	// to the creation or update of a Record in a FeatureGroup. All Records in the
	// FeatureGroup have a corresponding EventTime.
	//
	// EventTimeFeatureName is a required field
	EventTimeFeatureName *string `min:"1" type:"string" required:"true"`

	// The reason that the FeatureGroup failed to be replicated in the OfflineStore.
	// This is failure can occur because:
	//
	//    * The FeatureGroup could not be created in the OfflineStore.
	//
	//    * The FeatureGroup could not be deleted from the OfflineStore.
	FailureReason *string `type:"string"`

	// A list of the Features in the FeatureGroup. Each feature is defined by a
	// FeatureName and FeatureType.
	//
	// FeatureDefinitions is a required field
	FeatureDefinitions []*FeatureDefinition `min:"1" type:"list" required:"true"`

	// The Amazon Resource Name (ARN) of the FeatureGroup.
	//
	// FeatureGroupArn is a required field
	FeatureGroupArn *string `type:"string" required:"true"`

	// he name of the FeatureGroup.
	//
	// FeatureGroupName is a required field
	FeatureGroupName *string `min:"1" type:"string" required:"true"`

	// The status of the feature group.
	FeatureGroupStatus *string `type:"string" enum:"FeatureGroupStatus"`

	// A timestamp indicating when the feature group was last updated.
	LastModifiedTime *time.Time `type:"timestamp"`

	// A value indicating whether the update made to the feature group was successful.
	LastUpdateStatus *LastUpdateStatus `type:"structure"`

	// A token to resume pagination of the list of Features (FeatureDefinitions).
	//
	// NextToken is a required field
	NextToken *string `type:"string" required:"true"`

	// The configuration of the offline store. It includes the following configurations:
	//
	//    * Amazon S3 location of the offline store.
	//
	//    * Configuration of the Glue data catalog.
	//
	//    * Table format of the offline store.
	//
	//    * Option to disable the automatic creation of a Glue table for the offline
	//    store.
	//
	//    * Encryption configuration.
	OfflineStoreConfig *OfflineStoreConfig `type:"structure"`

	// The status of the OfflineStore. Notifies you if replicating data into the
	// OfflineStore has failed. Returns either: Active or Blocked
	OfflineStoreStatus *OfflineStoreStatus `type:"structure"`

	// The configuration for the OnlineStore.
	OnlineStoreConfig *OnlineStoreConfig `type:"structure"`

	// The size of the OnlineStore in bytes.
	OnlineStoreTotalSizeBytes *int64 `type:"long"`

	// The name of the Feature used for RecordIdentifier, whose value uniquely identifies
	// a record stored in the feature store.
	//
	// RecordIdentifierFeatureName is a required field
	RecordIdentifierFeatureName *string `min:"1" type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of the IAM execution role used to persist
	// data into the OfflineStore if an OfflineStoreConfig is provided.
	RoleArn *string `min:"20" type:"string"`

	// Active throughput configuration of the feature group. There are two modes:
	// ON_DEMAND and PROVISIONED. With on-demand mode, you are charged for data
	// reads and writes that your application performs on your feature group. You
	// do not need to specify read and write throughput because Feature Store accommodates
	// your workloads as they ramp up and down. You can switch a feature group to
	// on-demand only once in a 24 hour period. With provisioned throughput mode,
	// you specify the read and write capacity per second that you expect your application
	// to require, and you are billed based on those limits. Exceeding provisioned
	// throughput will result in your requests being throttled.
	//
	// Note: PROVISIONED throughput mode is supported only for feature groups that
	// are offline-only, or use the Standard (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OnlineStoreConfig.html#sagemaker-Type-OnlineStoreConfig-StorageType)
	// tier online store.
	ThroughputConfig *ThroughputConfigDescription `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeFeatureGroupOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeFeatureGroupOutput) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeFeatureGroupOutput) SetCreationTime(v time.Time) *DescribeFeatureGroupOutput {
	s.CreationTime = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *DescribeFeatureGroupOutput) SetDescription(v string) *DescribeFeatureGroupOutput {
	s.Description = &v
	return s
}

// SetEventTimeFeatureName sets the EventTimeFeatureName field's value.
func (s *DescribeFeatureGroupOutput) SetEventTimeFeatureName(v string) *DescribeFeatureGroupOutput {
	s.EventTimeFeatureName = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *DescribeFeatureGroupOutput) SetFailureReason(v string) *DescribeFeatureGroupOutput {
	s.FailureReason = &v
	return s
}

// SetFeatureDefinitions sets the FeatureDefinitions field's value.
func (s *DescribeFeatureGroupOutput) SetFeatureDefinitions(v []*FeatureDefinition) *DescribeFeatureGroupOutput {
	s.FeatureDefinitions = v
	return s
}

// SetFeatureGroupArn sets the FeatureGroupArn field's value.
func (s *DescribeFeatureGroupOutput) SetFeatureGroupArn(v string) *DescribeFeatureGroupOutput {
	s.FeatureGroupArn = &v
	return s
}

// SetFeatureGroupName sets the FeatureGroupName field's value.
func (s *DescribeFeatureGroupOutput) SetFeatureGroupName(v string) *DescribeFeatureGroupOutput {
	s.FeatureGroupName = &v
	return s
}

// SetFeatureGroupStatus sets the FeatureGroupStatus field's value.
func (s *DescribeFeatureGroupOutput) SetFeatureGroupStatus(v string) *DescribeFeatureGroupOutput {
	s.FeatureGroupStatus = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeFeatureGroupOutput) SetLastModifiedTime(v time.Time) *DescribeFeatureGroupOutput {
	s.LastModifiedTime = &v
	return s
}

// SetLastUpdateStatus sets the LastUpdateStatus field's value.
func (s *DescribeFeatureGroupOutput) SetLastUpdateStatus(v *LastUpdateStatus) *DescribeFeatureGroupOutput {
	s.LastUpdateStatus = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *DescribeFeatureGroupOutput) SetNextToken(v string) *DescribeFeatureGroupOutput {
	s.NextToken = &v
	return s
}

// SetOfflineStoreConfig sets the OfflineStoreConfig field's value.
func (s *DescribeFeatureGroupOutput) SetOfflineStoreConfig(v *OfflineStoreConfig) *DescribeFeatureGroupOutput {
	s.OfflineStoreConfig = v
	return s
}

// SetOfflineStoreStatus sets the OfflineStoreStatus field's value.
func (s *DescribeFeatureGroupOutput) SetOfflineStoreStatus(v *OfflineStoreStatus) *DescribeFeatureGroupOutput {
	s.OfflineStoreStatus = v
	return s
}

// SetOnlineStoreConfig sets the OnlineStoreConfig field's value.
func (s *DescribeFeatureGroupOutput) SetOnlineStoreConfig(v *OnlineStoreConfig) *DescribeFeatureGroupOutput {
	s.OnlineStoreConfig = v
	return s
}

// SetOnlineStoreTotalSizeBytes sets the OnlineStoreTotalSizeBytes field's value.
func (s *DescribeFeatureGroupOutput) SetOnlineStoreTotalSizeBytes(v int64) *DescribeFeatureGroupOutput {
	s.OnlineStoreTotalSizeBytes = &v
	return s
}

// SetRecordIdentifierFeatureName sets the RecordIdentifierFeatureName field's value.
func (s *DescribeFeatureGroupOutput) SetRecordIdentifierFeatureName(v string) *DescribeFeatureGroupOutput {
	s.RecordIdentifierFeatureName = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *DescribeFeatureGroupOutput) SetRoleArn(v string) *DescribeFeatureGroupOutput {
	s.RoleArn = &v
	return s
}

// SetThroughputConfig sets the ThroughputConfig field's value.
func (s *DescribeFeatureGroupOutput) SetThroughputConfig(v *ThroughputConfigDescription) *DescribeFeatureGroupOutput {
	s.ThroughputConfig = v
	return s
}

type DescribeFeatureMetadataInput struct {
	_ struct{} `type:"structure"`

	// The name or Amazon Resource Name (ARN) of the feature group containing the
	// feature.
	//
	// FeatureGroupName is a required field
	FeatureGroupName *string `min:"1" type:"string" required:"true"`

	// The name of the feature.
	//
	// FeatureName is a required field
	FeatureName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeFeatureMetadataInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeFeatureMetadataInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeFeatureMetadataInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeFeatureMetadataInput"}
	if s.FeatureGroupName == nil {
		invalidParams.Add(request.NewErrParamRequired("FeatureGroupName"))
	}
	if s.FeatureGroupName != nil && len(*s.FeatureGroupName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FeatureGroupName", 1))
	}
	if s.FeatureName == nil {
		invalidParams.Add(request.NewErrParamRequired("FeatureName"))
	}
	if s.FeatureName != nil && len(*s.FeatureName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FeatureName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFeatureGroupName sets the FeatureGroupName field's value.
func (s *DescribeFeatureMetadataInput) SetFeatureGroupName(v string) *DescribeFeatureMetadataInput {
	s.FeatureGroupName = &v
	return s
}

// SetFeatureName sets the FeatureName field's value.
func (s *DescribeFeatureMetadataInput) SetFeatureName(v string) *DescribeFeatureMetadataInput {
	s.FeatureName = &v
	return s
}

type DescribeFeatureMetadataOutput struct {
	_ struct{} `type:"structure"`

	// A timestamp indicating when the feature was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The description you added to describe the feature.
	Description *string `type:"string"`

	// The Amazon Resource Number (ARN) of the feature group that contains the feature.
	//
	// FeatureGroupArn is a required field
	FeatureGroupArn *string `type:"string" required:"true"`

	// The name of the feature group that you've specified.
	//
	// FeatureGroupName is a required field
	FeatureGroupName *string `min:"1" type:"string" required:"true"`

	// The name of the feature that you've specified.
	//
	// FeatureName is a required field
	FeatureName *string `min:"1" type:"string" required:"true"`

	// The data type of the feature.
	//
	// FeatureType is a required field
	FeatureType *string `type:"string" required:"true" enum:"FeatureType"`

	// A timestamp indicating when the metadata for the feature group was modified.
	// For example, if you add a parameter describing the feature, the timestamp
	// changes to reflect the last time you
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`

	// The key-value pairs that you added to describe the feature.
	Parameters []*FeatureParameter `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeFeatureMetadataOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeFeatureMetadataOutput) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeFeatureMetadataOutput) SetCreationTime(v time.Time) *DescribeFeatureMetadataOutput {
	s.CreationTime = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *DescribeFeatureMetadataOutput) SetDescription(v string) *DescribeFeatureMetadataOutput {
	s.Description = &v
	return s
}

// SetFeatureGroupArn sets the FeatureGroupArn field's value.
func (s *DescribeFeatureMetadataOutput) SetFeatureGroupArn(v string) *DescribeFeatureMetadataOutput {
	s.FeatureGroupArn = &v
	return s
}

// SetFeatureGroupName sets the FeatureGroupName field's value.
func (s *DescribeFeatureMetadataOutput) SetFeatureGroupName(v string) *DescribeFeatureMetadataOutput {
	s.FeatureGroupName = &v
	return s
}

// SetFeatureName sets the FeatureName field's value.
func (s *DescribeFeatureMetadataOutput) SetFeatureName(v string) *DescribeFeatureMetadataOutput {
	s.FeatureName = &v
	return s
}

// SetFeatureType sets the FeatureType field's value.
func (s *DescribeFeatureMetadataOutput) SetFeatureType(v string) *DescribeFeatureMetadataOutput {
	s.FeatureType = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeFeatureMetadataOutput) SetLastModifiedTime(v time.Time) *DescribeFeatureMetadataOutput {
	s.LastModifiedTime = &v
	return s
}

// SetParameters sets the Parameters field's value.
func (s *DescribeFeatureMetadataOutput) SetParameters(v []*FeatureParameter) *DescribeFeatureMetadataOutput {
	s.Parameters = v
	return s
}

type DescribeFlowDefinitionInput struct {
	_ struct{} `type:"structure"`

	// The name of the flow definition.
	//
	// FlowDefinitionName is a required field
	FlowDefinitionName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeFlowDefinitionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeFlowDefinitionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeFlowDefinitionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeFlowDefinitionInput"}
	if s.FlowDefinitionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FlowDefinitionName"))
	}
	if s.FlowDefinitionName != nil && len(*s.FlowDefinitionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FlowDefinitionName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFlowDefinitionName sets the FlowDefinitionName field's value.
func (s *DescribeFlowDefinitionInput) SetFlowDefinitionName(v string) *DescribeFlowDefinitionInput {
	s.FlowDefinitionName = &v
	return s
}

type DescribeFlowDefinitionOutput struct {
	_ struct{} `type:"structure"`

	// The timestamp when the flow definition was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The reason your flow definition failed.
	FailureReason *string `type:"string"`

	// The Amazon Resource Name (ARN) of the flow defintion.
	//
	// FlowDefinitionArn is a required field
	FlowDefinitionArn *string `type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of the flow definition.
	//
	// FlowDefinitionName is a required field
	FlowDefinitionName *string `min:"1" type:"string" required:"true"`

	// The status of the flow definition. Valid values are listed below.
	//
	// FlowDefinitionStatus is a required field
	FlowDefinitionStatus *string `type:"string" required:"true" enum:"FlowDefinitionStatus"`

	// An object containing information about what triggers a human review workflow.
	HumanLoopActivationConfig *HumanLoopActivationConfig `type:"structure"`

	// An object containing information about who works on the task, the workforce
	// task price, and other task details.
	HumanLoopConfig *HumanLoopConfig `type:"structure"`

	// Container for configuring the source of human task requests. Used to specify
	// if Amazon Rekognition or Amazon Textract is used as an integration source.
	HumanLoopRequestSource *HumanLoopRequestSource `type:"structure"`

	// An object containing information about the output file.
	//
	// OutputConfig is a required field
	OutputConfig *FlowDefinitionOutputConfig `type:"structure" required:"true"`

	// The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access
	// Management (IAM) execution role for the flow definition.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeFlowDefinitionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeFlowDefinitionOutput) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeFlowDefinitionOutput) SetCreationTime(v time.Time) *DescribeFlowDefinitionOutput {
	s.CreationTime = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *DescribeFlowDefinitionOutput) SetFailureReason(v string) *DescribeFlowDefinitionOutput {
	s.FailureReason = &v
	return s
}

// SetFlowDefinitionArn sets the FlowDefinitionArn field's value.
func (s *DescribeFlowDefinitionOutput) SetFlowDefinitionArn(v string) *DescribeFlowDefinitionOutput {
	s.FlowDefinitionArn = &v
	return s
}

// SetFlowDefinitionName sets the FlowDefinitionName field's value.
func (s *DescribeFlowDefinitionOutput) SetFlowDefinitionName(v string) *DescribeFlowDefinitionOutput {
	s.FlowDefinitionName = &v
	return s
}

// SetFlowDefinitionStatus sets the FlowDefinitionStatus field's value.
func (s *DescribeFlowDefinitionOutput) SetFlowDefinitionStatus(v string) *DescribeFlowDefinitionOutput {
	s.FlowDefinitionStatus = &v
	return s
}

// SetHumanLoopActivationConfig sets the HumanLoopActivationConfig field's value.
func (s *DescribeFlowDefinitionOutput) SetHumanLoopActivationConfig(v *HumanLoopActivationConfig) *DescribeFlowDefinitionOutput {
	s.HumanLoopActivationConfig = v
	return s
}

// SetHumanLoopConfig sets the HumanLoopConfig field's value.
func (s *DescribeFlowDefinitionOutput) SetHumanLoopConfig(v *HumanLoopConfig) *DescribeFlowDefinitionOutput {
	s.HumanLoopConfig = v
	return s
}

// SetHumanLoopRequestSource sets the HumanLoopRequestSource field's value.
func (s *DescribeFlowDefinitionOutput) SetHumanLoopRequestSource(v *HumanLoopRequestSource) *DescribeFlowDefinitionOutput {
	s.HumanLoopRequestSource = v
	return s
}

// SetOutputConfig sets the OutputConfig field's value.
func (s *DescribeFlowDefinitionOutput) SetOutputConfig(v *FlowDefinitionOutputConfig) *DescribeFlowDefinitionOutput {
	s.OutputConfig = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *DescribeFlowDefinitionOutput) SetRoleArn(v string) *DescribeFlowDefinitionOutput {
	s.RoleArn = &v
	return s
}

type DescribeHubContentInput struct {
	_ struct{} `type:"structure"`

	// The name of the content to describe.
	//
	// HubContentName is a required field
	HubContentName *string `type:"string" required:"true"`

	// The type of content in the hub.
	//
	// HubContentType is a required field
	HubContentType *string `type:"string" required:"true" enum:"HubContentType"`

	// The version of the content to describe.
	HubContentVersion *string `min:"5" type:"string"`

	// The name of the hub that contains the content to describe.
	//
	// HubName is a required field
	HubName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeHubContentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeHubContentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeHubContentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeHubContentInput"}
	if s.HubContentName == nil {
		invalidParams.Add(request.NewErrParamRequired("HubContentName"))
	}
	if s.HubContentType == nil {
		invalidParams.Add(request.NewErrParamRequired("HubContentType"))
	}
	if s.HubContentVersion != nil && len(*s.HubContentVersion) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("HubContentVersion", 5))
	}
	if s.HubName == nil {
		invalidParams.Add(request.NewErrParamRequired("HubName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetHubContentName sets the HubContentName field's value.
func (s *DescribeHubContentInput) SetHubContentName(v string) *DescribeHubContentInput {
	s.HubContentName = &v
	return s
}

// SetHubContentType sets the HubContentType field's value.
func (s *DescribeHubContentInput) SetHubContentType(v string) *DescribeHubContentInput {
	s.HubContentType = &v
	return s
}

// SetHubContentVersion sets the HubContentVersion field's value.
func (s *DescribeHubContentInput) SetHubContentVersion(v string) *DescribeHubContentInput {
	s.HubContentVersion = &v
	return s
}

// SetHubName sets the HubName field's value.
func (s *DescribeHubContentInput) SetHubName(v string) *DescribeHubContentInput {
	s.HubName = &v
	return s
}

type DescribeHubContentOutput struct {
	_ struct{} `type:"structure"`

	// The date and time that hub content was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The document schema version for the hub content.
	//
	// DocumentSchemaVersion is a required field
	DocumentSchemaVersion *string `min:"5" type:"string" required:"true"`

	// The failure reason if importing hub content failed.
	FailureReason *string `type:"string"`

	// The Amazon Resource Name (ARN) of the hub that contains the content.
	//
	// HubArn is a required field
	HubArn *string `type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of the hub content.
	//
	// HubContentArn is a required field
	HubContentArn *string `type:"string" required:"true"`

	// The location of any dependencies that the hub content has, such as scripts,
	// model artifacts, datasets, or notebooks.
	HubContentDependencies []*HubContentDependency `type:"list"`

	// A description of the hub content.
	HubContentDescription *string `type:"string"`

	// The display name of the hub content.
	HubContentDisplayName *string `type:"string"`

	// The hub content document that describes information about the hub content
	// such as type, associated containers, scripts, and more.
	//
	// HubContentDocument is a required field
	HubContentDocument *string `type:"string" required:"true"`

	// A string that provides a description of the hub content. This string can
	// include links, tables, and standard markdown formating.
	HubContentMarkdown *string `type:"string"`

	// The name of the hub content.
	//
	// HubContentName is a required field
	HubContentName *string `type:"string" required:"true"`

	// The searchable keywords for the hub content.
	HubContentSearchKeywords []*string `type:"list"`

	// The status of the hub content.
	//
	// HubContentStatus is a required field
	HubContentStatus *string `type:"string" required:"true" enum:"HubContentStatus"`

	// The type of hub content.
	//
	// HubContentType is a required field
	HubContentType *string `type:"string" required:"true" enum:"HubContentType"`

	// The version of the hub content.
	//
	// HubContentVersion is a required field
	HubContentVersion *string `min:"5" type:"string" required:"true"`

	// The name of the hub that contains the content.
	//
	// HubName is a required field
	HubName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeHubContentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeHubContentOutput) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeHubContentOutput) SetCreationTime(v time.Time) *DescribeHubContentOutput {
	s.CreationTime = &v
	return s
}

// SetDocumentSchemaVersion sets the DocumentSchemaVersion field's value.
func (s *DescribeHubContentOutput) SetDocumentSchemaVersion(v string) *DescribeHubContentOutput {
	s.DocumentSchemaVersion = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *DescribeHubContentOutput) SetFailureReason(v string) *DescribeHubContentOutput {
	s.FailureReason = &v
	return s
}

// SetHubArn sets the HubArn field's value.
func (s *DescribeHubContentOutput) SetHubArn(v string) *DescribeHubContentOutput {
	s.HubArn = &v
	return s
}

// SetHubContentArn sets the HubContentArn field's value.
func (s *DescribeHubContentOutput) SetHubContentArn(v string) *DescribeHubContentOutput {
	s.HubContentArn = &v
	return s
}

// SetHubContentDependencies sets the HubContentDependencies field's value.
func (s *DescribeHubContentOutput) SetHubContentDependencies(v []*HubContentDependency) *DescribeHubContentOutput {
	s.HubContentDependencies = v
	return s
}

// SetHubContentDescription sets the HubContentDescription field's value.
func (s *DescribeHubContentOutput) SetHubContentDescription(v string) *DescribeHubContentOutput {
	s.HubContentDescription = &v
	return s
}

// SetHubContentDisplayName sets the HubContentDisplayName field's value.
func (s *DescribeHubContentOutput) SetHubContentDisplayName(v string) *DescribeHubContentOutput {
	s.HubContentDisplayName = &v
	return s
}

// SetHubContentDocument sets the HubContentDocument field's value.
func (s *DescribeHubContentOutput) SetHubContentDocument(v string) *DescribeHubContentOutput {
	s.HubContentDocument = &v
	return s
}

// SetHubContentMarkdown sets the HubContentMarkdown field's value.
func (s *DescribeHubContentOutput) SetHubContentMarkdown(v string) *DescribeHubContentOutput {
	s.HubContentMarkdown = &v
	return s
}

// SetHubContentName sets the HubContentName field's value.
func (s *DescribeHubContentOutput) SetHubContentName(v string) *DescribeHubContentOutput {
	s.HubContentName = &v
	return s
}

// SetHubContentSearchKeywords sets the HubContentSearchKeywords field's value.
func (s *DescribeHubContentOutput) SetHubContentSearchKeywords(v []*string) *DescribeHubContentOutput {
	s.HubContentSearchKeywords = v
	return s
}

// SetHubContentStatus sets the HubContentStatus field's value.
func (s *DescribeHubContentOutput) SetHubContentStatus(v string) *DescribeHubContentOutput {
	s.HubContentStatus = &v
	return s
}

// SetHubContentType sets the HubContentType field's value.
func (s *DescribeHubContentOutput) SetHubContentType(v string) *DescribeHubContentOutput {
	s.HubContentType = &v
	return s
}

// SetHubContentVersion sets the HubContentVersion field's value.
func (s *DescribeHubContentOutput) SetHubContentVersion(v string) *DescribeHubContentOutput {
	s.HubContentVersion = &v
	return s
}

// SetHubName sets the HubName field's value.
func (s *DescribeHubContentOutput) SetHubName(v string) *DescribeHubContentOutput {
	s.HubName = &v
	return s
}

type DescribeHubInput struct {
	_ struct{} `type:"structure"`

	// The name of the hub to describe.
	//
	// HubName is a required field
	HubName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeHubInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeHubInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeHubInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeHubInput"}
	if s.HubName == nil {
		invalidParams.Add(request.NewErrParamRequired("HubName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetHubName sets the HubName field's value.
func (s *DescribeHubInput) SetHubName(v string) *DescribeHubInput {
	s.HubName = &v
	return s
}

type DescribeHubOutput struct {
	_ struct{} `type:"structure"`

	// The date and time that the hub was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The failure reason if importing hub content failed.
	FailureReason *string `type:"string"`

	// The Amazon Resource Name (ARN) of the hub.
	//
	// HubArn is a required field
	HubArn *string `type:"string" required:"true"`

	// A description of the hub.
	HubDescription *string `type:"string"`

	// The display name of the hub.
	HubDisplayName *string `type:"string"`

	// The name of the hub.
	//
	// HubName is a required field
	HubName *string `type:"string" required:"true"`

	// The searchable keywords for the hub.
	HubSearchKeywords []*string `type:"list"`

	// The status of the hub.
	//
	// HubStatus is a required field
	HubStatus *string `type:"string" required:"true" enum:"HubStatus"`

	// The date and time that the hub was last modified.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`

	// The Amazon S3 storage configuration for the hub.
	S3StorageConfig *HubS3StorageConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeHubOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeHubOutput) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeHubOutput) SetCreationTime(v time.Time) *DescribeHubOutput {
	s.CreationTime = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *DescribeHubOutput) SetFailureReason(v string) *DescribeHubOutput {
	s.FailureReason = &v
	return s
}

// SetHubArn sets the HubArn field's value.
func (s *DescribeHubOutput) SetHubArn(v string) *DescribeHubOutput {
	s.HubArn = &v
	return s
}

// SetHubDescription sets the HubDescription field's value.
func (s *DescribeHubOutput) SetHubDescription(v string) *DescribeHubOutput {
	s.HubDescription = &v
	return s
}

// SetHubDisplayName sets the HubDisplayName field's value.
func (s *DescribeHubOutput) SetHubDisplayName(v string) *DescribeHubOutput {
	s.HubDisplayName = &v
	return s
}

// SetHubName sets the HubName field's value.
func (s *DescribeHubOutput) SetHubName(v string) *DescribeHubOutput {
	s.HubName = &v
	return s
}

// SetHubSearchKeywords sets the HubSearchKeywords field's value.
func (s *DescribeHubOutput) SetHubSearchKeywords(v []*string) *DescribeHubOutput {
	s.HubSearchKeywords = v
	return s
}

// SetHubStatus sets the HubStatus field's value.
func (s *DescribeHubOutput) SetHubStatus(v string) *DescribeHubOutput {
	s.HubStatus = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeHubOutput) SetLastModifiedTime(v time.Time) *DescribeHubOutput {
	s.LastModifiedTime = &v
	return s
}

// SetS3StorageConfig sets the S3StorageConfig field's value.
func (s *DescribeHubOutput) SetS3StorageConfig(v *HubS3StorageConfig) *DescribeHubOutput {
	s.S3StorageConfig = v
	return s
}

type DescribeHumanTaskUiInput struct {
	_ struct{} `type:"structure"`

	// The name of the human task user interface (worker task template) you want
	// information about.
	//
	// HumanTaskUiName is a required field
	HumanTaskUiName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeHumanTaskUiInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeHumanTaskUiInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeHumanTaskUiInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeHumanTaskUiInput"}
	if s.HumanTaskUiName == nil {
		invalidParams.Add(request.NewErrParamRequired("HumanTaskUiName"))
	}
	if s.HumanTaskUiName != nil && len(*s.HumanTaskUiName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("HumanTaskUiName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetHumanTaskUiName sets the HumanTaskUiName field's value.
func (s *DescribeHumanTaskUiInput) SetHumanTaskUiName(v string) *DescribeHumanTaskUiInput {
	s.HumanTaskUiName = &v
	return s
}

type DescribeHumanTaskUiOutput struct {
	_ struct{} `type:"structure"`

	// The timestamp when the human task user interface was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The Amazon Resource Name (ARN) of the human task user interface (worker task
	// template).
	//
	// HumanTaskUiArn is a required field
	HumanTaskUiArn *string `type:"string" required:"true"`

	// The name of the human task user interface (worker task template).
	//
	// HumanTaskUiName is a required field
	HumanTaskUiName *string `min:"1" type:"string" required:"true"`

	// The status of the human task user interface (worker task template). Valid
	// values are listed below.
	HumanTaskUiStatus *string `type:"string" enum:"HumanTaskUiStatus"`

	// Container for user interface template information.
	//
	// UiTemplate is a required field
	UiTemplate *UiTemplateInfo `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeHumanTaskUiOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeHumanTaskUiOutput) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeHumanTaskUiOutput) SetCreationTime(v time.Time) *DescribeHumanTaskUiOutput {
	s.CreationTime = &v
	return s
}

// SetHumanTaskUiArn sets the HumanTaskUiArn field's value.
func (s *DescribeHumanTaskUiOutput) SetHumanTaskUiArn(v string) *DescribeHumanTaskUiOutput {
	s.HumanTaskUiArn = &v
	return s
}

// SetHumanTaskUiName sets the HumanTaskUiName field's value.
func (s *DescribeHumanTaskUiOutput) SetHumanTaskUiName(v string) *DescribeHumanTaskUiOutput {
	s.HumanTaskUiName = &v
	return s
}

// SetHumanTaskUiStatus sets the HumanTaskUiStatus field's value.
func (s *DescribeHumanTaskUiOutput) SetHumanTaskUiStatus(v string) *DescribeHumanTaskUiOutput {
	s.HumanTaskUiStatus = &v
	return s
}

// SetUiTemplate sets the UiTemplate field's value.
func (s *DescribeHumanTaskUiOutput) SetUiTemplate(v *UiTemplateInfo) *DescribeHumanTaskUiOutput {
	s.UiTemplate = v
	return s
}

type DescribeHyperParameterTuningJobInput struct {
	_ struct{} `type:"structure"`

	// The name of the tuning job.
	//
	// HyperParameterTuningJobName is a required field
	HyperParameterTuningJobName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeHyperParameterTuningJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeHyperParameterTuningJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeHyperParameterTuningJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeHyperParameterTuningJobInput"}
	if s.HyperParameterTuningJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("HyperParameterTuningJobName"))
	}
	if s.HyperParameterTuningJobName != nil && len(*s.HyperParameterTuningJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("HyperParameterTuningJobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetHyperParameterTuningJobName sets the HyperParameterTuningJobName field's value.
func (s *DescribeHyperParameterTuningJobInput) SetHyperParameterTuningJobName(v string) *DescribeHyperParameterTuningJobInput {
	s.HyperParameterTuningJobName = &v
	return s
}

type DescribeHyperParameterTuningJobOutput struct {
	_ struct{} `type:"structure"`

	// A flag to indicate if autotune is enabled for the hyperparameter tuning job.
	Autotune *Autotune `type:"structure"`

	// A TrainingJobSummary (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobSummary.html)
	// object that describes the training job that completed with the best current
	// HyperParameterTuningJobObjective (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobObjective.html).
	BestTrainingJob *HyperParameterTrainingJobSummary `type:"structure"`

	// The total resources consumed by your hyperparameter tuning job.
	ConsumedResources *HyperParameterTuningJobConsumedResources `type:"structure"`

	// The date and time that the tuning job started.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// If the tuning job failed, the reason it failed.
	FailureReason *string `type:"string"`

	// The date and time that the tuning job ended.
	HyperParameterTuningEndTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the tuning job.
	//
	// HyperParameterTuningJobArn is a required field
	HyperParameterTuningJobArn *string `type:"string" required:"true"`

	// The HyperParameterTuningJobConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html)
	// object that specifies the configuration of the tuning job.
	//
	// HyperParameterTuningJobConfig is a required field
	HyperParameterTuningJobConfig *HyperParameterTuningJobConfig `type:"structure" required:"true"`

	// The name of the hyperparameter tuning job.
	//
	// HyperParameterTuningJobName is a required field
	HyperParameterTuningJobName *string `min:"1" type:"string" required:"true"`

	// The status of the tuning job.
	//
	// HyperParameterTuningJobStatus is a required field
	HyperParameterTuningJobStatus *string `type:"string" required:"true" enum:"HyperParameterTuningJobStatus"`

	// The date and time that the status of the tuning job was modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The ObjectiveStatusCounters (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ObjectiveStatusCounters.html)
	// object that specifies the number of training jobs, categorized by the status
	// of their final objective metric, that this tuning job launched.
	//
	// ObjectiveStatusCounters is a required field
	ObjectiveStatusCounters *ObjectiveStatusCounters `type:"structure" required:"true"`

	// If the hyperparameter tuning job is an warm start tuning job with a WarmStartType
	// of IDENTICAL_DATA_AND_ALGORITHM, this is the TrainingJobSummary (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobSummary.html)
	// for the training job with the best objective metric value of all training
	// jobs launched by this tuning job and all parent jobs specified for the warm
	// start tuning job.
	OverallBestTrainingJob *HyperParameterTrainingJobSummary `type:"structure"`

	// The HyperParameterTrainingJobDefinition (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html)
	// object that specifies the definition of the training jobs that this tuning
	// job launches.
	TrainingJobDefinition *HyperParameterTrainingJobDefinition `type:"structure"`

	// A list of the HyperParameterTrainingJobDefinition (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html)
	// objects launched for this tuning job.
	TrainingJobDefinitions []*HyperParameterTrainingJobDefinition `min:"1" type:"list"`

	// The TrainingJobStatusCounters (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobStatusCounters.html)
	// object that specifies the number of training jobs, categorized by status,
	// that this tuning job launched.
	//
	// TrainingJobStatusCounters is a required field
	TrainingJobStatusCounters *TrainingJobStatusCounters `type:"structure" required:"true"`

	// Tuning job completion information returned as the response from a hyperparameter
	// tuning job. This information tells if your tuning job has or has not converged.
	// It also includes the number of training jobs that have not improved model
	// performance as evaluated against the objective function.
	TuningJobCompletionDetails *HyperParameterTuningJobCompletionDetails `type:"structure"`

	// The configuration for starting the hyperparameter parameter tuning job using
	// one or more previous tuning jobs as a starting point. The results of previous
	// tuning jobs are used to inform which combinations of hyperparameters to search
	// over in the new tuning job.
	WarmStartConfig *HyperParameterTuningJobWarmStartConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeHyperParameterTuningJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeHyperParameterTuningJobOutput) GoString() string {
	return s.String()
}

// SetAutotune sets the Autotune field's value.
func (s *DescribeHyperParameterTuningJobOutput) SetAutotune(v *Autotune) *DescribeHyperParameterTuningJobOutput {
	s.Autotune = v
	return s
}

// SetBestTrainingJob sets the BestTrainingJob field's value.
func (s *DescribeHyperParameterTuningJobOutput) SetBestTrainingJob(v *HyperParameterTrainingJobSummary) *DescribeHyperParameterTuningJobOutput {
	s.BestTrainingJob = v
	return s
}

// SetConsumedResources sets the ConsumedResources field's value.
func (s *DescribeHyperParameterTuningJobOutput) SetConsumedResources(v *HyperParameterTuningJobConsumedResources) *DescribeHyperParameterTuningJobOutput {
	s.ConsumedResources = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeHyperParameterTuningJobOutput) SetCreationTime(v time.Time) *DescribeHyperParameterTuningJobOutput {
	s.CreationTime = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *DescribeHyperParameterTuningJobOutput) SetFailureReason(v string) *DescribeHyperParameterTuningJobOutput {
	s.FailureReason = &v
	return s
}

// SetHyperParameterTuningEndTime sets the HyperParameterTuningEndTime field's value.
func (s *DescribeHyperParameterTuningJobOutput) SetHyperParameterTuningEndTime(v time.Time) *DescribeHyperParameterTuningJobOutput {
	s.HyperParameterTuningEndTime = &v
	return s
}

// SetHyperParameterTuningJobArn sets the HyperParameterTuningJobArn field's value.
func (s *DescribeHyperParameterTuningJobOutput) SetHyperParameterTuningJobArn(v string) *DescribeHyperParameterTuningJobOutput {
	s.HyperParameterTuningJobArn = &v
	return s
}

// SetHyperParameterTuningJobConfig sets the HyperParameterTuningJobConfig field's value.
func (s *DescribeHyperParameterTuningJobOutput) SetHyperParameterTuningJobConfig(v *HyperParameterTuningJobConfig) *DescribeHyperParameterTuningJobOutput {
	s.HyperParameterTuningJobConfig = v
	return s
}

// SetHyperParameterTuningJobName sets the HyperParameterTuningJobName field's value.
func (s *DescribeHyperParameterTuningJobOutput) SetHyperParameterTuningJobName(v string) *DescribeHyperParameterTuningJobOutput {
	s.HyperParameterTuningJobName = &v
	return s
}

// SetHyperParameterTuningJobStatus sets the HyperParameterTuningJobStatus field's value.
func (s *DescribeHyperParameterTuningJobOutput) SetHyperParameterTuningJobStatus(v string) *DescribeHyperParameterTuningJobOutput {
	s.HyperParameterTuningJobStatus = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeHyperParameterTuningJobOutput) SetLastModifiedTime(v time.Time) *DescribeHyperParameterTuningJobOutput {
	s.LastModifiedTime = &v
	return s
}

// SetObjectiveStatusCounters sets the ObjectiveStatusCounters field's value.
func (s *DescribeHyperParameterTuningJobOutput) SetObjectiveStatusCounters(v *ObjectiveStatusCounters) *DescribeHyperParameterTuningJobOutput {
	s.ObjectiveStatusCounters = v
	return s
}

// SetOverallBestTrainingJob sets the OverallBestTrainingJob field's value.
func (s *DescribeHyperParameterTuningJobOutput) SetOverallBestTrainingJob(v *HyperParameterTrainingJobSummary) *DescribeHyperParameterTuningJobOutput {
	s.OverallBestTrainingJob = v
	return s
}

// SetTrainingJobDefinition sets the TrainingJobDefinition field's value.
func (s *DescribeHyperParameterTuningJobOutput) SetTrainingJobDefinition(v *HyperParameterTrainingJobDefinition) *DescribeHyperParameterTuningJobOutput {
	s.TrainingJobDefinition = v
	return s
}

// SetTrainingJobDefinitions sets the TrainingJobDefinitions field's value.
func (s *DescribeHyperParameterTuningJobOutput) SetTrainingJobDefinitions(v []*HyperParameterTrainingJobDefinition) *DescribeHyperParameterTuningJobOutput {
	s.TrainingJobDefinitions = v
	return s
}

// SetTrainingJobStatusCounters sets the TrainingJobStatusCounters field's value.
func (s *DescribeHyperParameterTuningJobOutput) SetTrainingJobStatusCounters(v *TrainingJobStatusCounters) *DescribeHyperParameterTuningJobOutput {
	s.TrainingJobStatusCounters = v
	return s
}

// SetTuningJobCompletionDetails sets the TuningJobCompletionDetails field's value.
func (s *DescribeHyperParameterTuningJobOutput) SetTuningJobCompletionDetails(v *HyperParameterTuningJobCompletionDetails) *DescribeHyperParameterTuningJobOutput {
	s.TuningJobCompletionDetails = v
	return s
}

// SetWarmStartConfig sets the WarmStartConfig field's value.
func (s *DescribeHyperParameterTuningJobOutput) SetWarmStartConfig(v *HyperParameterTuningJobWarmStartConfig) *DescribeHyperParameterTuningJobOutput {
	s.WarmStartConfig = v
	return s
}

type DescribeImageInput struct {
	_ struct{} `type:"structure"`

	// The name of the image to describe.
	//
	// ImageName is a required field
	ImageName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeImageInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeImageInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeImageInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeImageInput"}
	if s.ImageName == nil {
		invalidParams.Add(request.NewErrParamRequired("ImageName"))
	}
	if s.ImageName != nil && len(*s.ImageName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ImageName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetImageName sets the ImageName field's value.
func (s *DescribeImageInput) SetImageName(v string) *DescribeImageInput {
	s.ImageName = &v
	return s
}

type DescribeImageOutput struct {
	_ struct{} `type:"structure"`

	// When the image was created.
	CreationTime *time.Time `type:"timestamp"`

	// The description of the image.
	Description *string `min:"1" type:"string"`

	// The name of the image as displayed.
	DisplayName *string `min:"1" type:"string"`

	// When a create, update, or delete operation fails, the reason for the failure.
	FailureReason *string `type:"string"`

	// The ARN of the image.
	ImageArn *string `type:"string"`

	// The name of the image.
	ImageName *string `min:"1" type:"string"`

	// The status of the image.
	ImageStatus *string `type:"string" enum:"ImageStatus"`

	// When the image was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The ARN of the IAM role that enables Amazon SageMaker to perform tasks on
	// your behalf.
	RoleArn *string `min:"20" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeImageOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeImageOutput) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeImageOutput) SetCreationTime(v time.Time) *DescribeImageOutput {
	s.CreationTime = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *DescribeImageOutput) SetDescription(v string) *DescribeImageOutput {
	s.Description = &v
	return s
}

// SetDisplayName sets the DisplayName field's value.
func (s *DescribeImageOutput) SetDisplayName(v string) *DescribeImageOutput {
	s.DisplayName = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *DescribeImageOutput) SetFailureReason(v string) *DescribeImageOutput {
	s.FailureReason = &v
	return s
}

// SetImageArn sets the ImageArn field's value.
func (s *DescribeImageOutput) SetImageArn(v string) *DescribeImageOutput {
	s.ImageArn = &v
	return s
}

// SetImageName sets the ImageName field's value.
func (s *DescribeImageOutput) SetImageName(v string) *DescribeImageOutput {
	s.ImageName = &v
	return s
}

// SetImageStatus sets the ImageStatus field's value.
func (s *DescribeImageOutput) SetImageStatus(v string) *DescribeImageOutput {
	s.ImageStatus = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeImageOutput) SetLastModifiedTime(v time.Time) *DescribeImageOutput {
	s.LastModifiedTime = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *DescribeImageOutput) SetRoleArn(v string) *DescribeImageOutput {
	s.RoleArn = &v
	return s
}

type DescribeImageVersionInput struct {
	_ struct{} `type:"structure"`

	// The alias of the image version.
	Alias *string `min:"1" type:"string"`

	// The name of the image.
	//
	// ImageName is a required field
	ImageName *string `min:"1" type:"string" required:"true"`

	// The version of the image. If not specified, the latest version is described.
	Version *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeImageVersionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeImageVersionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeImageVersionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeImageVersionInput"}
	if s.Alias != nil && len(*s.Alias) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Alias", 1))
	}
	if s.ImageName == nil {
		invalidParams.Add(request.NewErrParamRequired("ImageName"))
	}
	if s.ImageName != nil && len(*s.ImageName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ImageName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAlias sets the Alias field's value.
func (s *DescribeImageVersionInput) SetAlias(v string) *DescribeImageVersionInput {
	s.Alias = &v
	return s
}

// SetImageName sets the ImageName field's value.
func (s *DescribeImageVersionInput) SetImageName(v string) *DescribeImageVersionInput {
	s.ImageName = &v
	return s
}

// SetVersion sets the Version field's value.
func (s *DescribeImageVersionInput) SetVersion(v int64) *DescribeImageVersionInput {
	s.Version = &v
	return s
}

type DescribeImageVersionOutput struct {
	_ struct{} `type:"structure"`

	// The registry path of the container image on which this image version is based.
	BaseImage *string `min:"1" type:"string"`

	// The registry path of the container image that contains this image version.
	ContainerImage *string `min:"1" type:"string"`

	// When the version was created.
	CreationTime *time.Time `type:"timestamp"`

	// When a create or delete operation fails, the reason for the failure.
	FailureReason *string `type:"string"`

	// Indicates Horovod compatibility.
	Horovod *bool `type:"boolean"`

	// The ARN of the image the version is based on.
	ImageArn *string `type:"string"`

	// The ARN of the version.
	ImageVersionArn *string `type:"string"`

	// The status of the version.
	ImageVersionStatus *string `type:"string" enum:"ImageVersionStatus"`

	// Indicates SageMaker job type compatibility.
	//
	//    * TRAINING: The image version is compatible with SageMaker training jobs.
	//
	//    * INFERENCE: The image version is compatible with SageMaker inference
	//    jobs.
	//
	//    * NOTEBOOK_KERNEL: The image version is compatible with SageMaker notebook
	//    kernels.
	JobType *string `type:"string" enum:"JobType"`

	// When the version was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The machine learning framework vended in the image version.
	MLFramework *string `min:"1" type:"string"`

	// Indicates CPU or GPU compatibility.
	//
	//    * CPU: The image version is compatible with CPU.
	//
	//    * GPU: The image version is compatible with GPU.
	Processor *string `type:"string" enum:"Processor"`

	// The supported programming language and its version.
	ProgrammingLang *string `min:"1" type:"string"`

	// The maintainer description of the image version.
	ReleaseNotes *string `min:"1" type:"string"`

	// The stability of the image version specified by the maintainer.
	//
	//    * NOT_PROVIDED: The maintainers did not provide a status for image version
	//    stability.
	//
	//    * STABLE: The image version is stable.
	//
	//    * TO_BE_ARCHIVED: The image version is set to be archived. Custom image
	//    versions that are set to be archived are automatically archived after
	//    three months.
	//
	//    * ARCHIVED: The image version is archived. Archived image versions are
	//    not searchable and are no longer actively supported.
	VendorGuidance *string `type:"string" enum:"VendorGuidance"`

	// The version number.
	Version *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeImageVersionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeImageVersionOutput) GoString() string {
	return s.String()
}

// SetBaseImage sets the BaseImage field's value.
func (s *DescribeImageVersionOutput) SetBaseImage(v string) *DescribeImageVersionOutput {
	s.BaseImage = &v
	return s
}

// SetContainerImage sets the ContainerImage field's value.
func (s *DescribeImageVersionOutput) SetContainerImage(v string) *DescribeImageVersionOutput {
	s.ContainerImage = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeImageVersionOutput) SetCreationTime(v time.Time) *DescribeImageVersionOutput {
	s.CreationTime = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *DescribeImageVersionOutput) SetFailureReason(v string) *DescribeImageVersionOutput {
	s.FailureReason = &v
	return s
}

// SetHorovod sets the Horovod field's value.
func (s *DescribeImageVersionOutput) SetHorovod(v bool) *DescribeImageVersionOutput {
	s.Horovod = &v
	return s
}

// SetImageArn sets the ImageArn field's value.
func (s *DescribeImageVersionOutput) SetImageArn(v string) *DescribeImageVersionOutput {
	s.ImageArn = &v
	return s
}

// SetImageVersionArn sets the ImageVersionArn field's value.
func (s *DescribeImageVersionOutput) SetImageVersionArn(v string) *DescribeImageVersionOutput {
	s.ImageVersionArn = &v
	return s
}

// SetImageVersionStatus sets the ImageVersionStatus field's value.
func (s *DescribeImageVersionOutput) SetImageVersionStatus(v string) *DescribeImageVersionOutput {
	s.ImageVersionStatus = &v
	return s
}

// SetJobType sets the JobType field's value.
func (s *DescribeImageVersionOutput) SetJobType(v string) *DescribeImageVersionOutput {
	s.JobType = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeImageVersionOutput) SetLastModifiedTime(v time.Time) *DescribeImageVersionOutput {
	s.LastModifiedTime = &v
	return s
}

// SetMLFramework sets the MLFramework field's value.
func (s *DescribeImageVersionOutput) SetMLFramework(v string) *DescribeImageVersionOutput {
	s.MLFramework = &v
	return s
}

// SetProcessor sets the Processor field's value.
func (s *DescribeImageVersionOutput) SetProcessor(v string) *DescribeImageVersionOutput {
	s.Processor = &v
	return s
}

// SetProgrammingLang sets the ProgrammingLang field's value.
func (s *DescribeImageVersionOutput) SetProgrammingLang(v string) *DescribeImageVersionOutput {
	s.ProgrammingLang = &v
	return s
}

// SetReleaseNotes sets the ReleaseNotes field's value.
func (s *DescribeImageVersionOutput) SetReleaseNotes(v string) *DescribeImageVersionOutput {
	s.ReleaseNotes = &v
	return s
}

// SetVendorGuidance sets the VendorGuidance field's value.
func (s *DescribeImageVersionOutput) SetVendorGuidance(v string) *DescribeImageVersionOutput {
	s.VendorGuidance = &v
	return s
}

// SetVersion sets the Version field's value.
func (s *DescribeImageVersionOutput) SetVersion(v int64) *DescribeImageVersionOutput {
	s.Version = &v
	return s
}

type DescribeInferenceComponentInput struct {
	_ struct{} `type:"structure"`

	// The name of the inference component.
	//
	// InferenceComponentName is a required field
	InferenceComponentName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeInferenceComponentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeInferenceComponentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeInferenceComponentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeInferenceComponentInput"}
	if s.InferenceComponentName == nil {
		invalidParams.Add(request.NewErrParamRequired("InferenceComponentName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetInferenceComponentName sets the InferenceComponentName field's value.
func (s *DescribeInferenceComponentInput) SetInferenceComponentName(v string) *DescribeInferenceComponentInput {
	s.InferenceComponentName = &v
	return s
}

type DescribeInferenceComponentOutput struct {
	_ struct{} `type:"structure"`

	// The time when the inference component was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The Amazon Resource Name (ARN) of the endpoint that hosts the inference component.
	//
	// EndpointArn is a required field
	EndpointArn *string `min:"20" type:"string" required:"true"`

	// The name of the endpoint that hosts the inference component.
	//
	// EndpointName is a required field
	EndpointName *string `type:"string" required:"true"`

	// If the inference component status is Failed, the reason for the failure.
	FailureReason *string `type:"string"`

	// The Amazon Resource Name (ARN) of the inference component.
	//
	// InferenceComponentArn is a required field
	InferenceComponentArn *string `min:"20" type:"string" required:"true"`

	// The name of the inference component.
	//
	// InferenceComponentName is a required field
	InferenceComponentName *string `type:"string" required:"true"`

	// The status of the inference component.
	InferenceComponentStatus *string `type:"string" enum:"InferenceComponentStatus"`

	// The time when the inference component was last updated.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`

	// Details about the runtime settings for the model that is deployed with the
	// inference component.
	RuntimeConfig *InferenceComponentRuntimeConfigSummary `type:"structure"`

	// Details about the resources that are deployed with this inference component.
	Specification *InferenceComponentSpecificationSummary `type:"structure"`

	// The name of the production variant that hosts the inference component.
	VariantName *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeInferenceComponentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeInferenceComponentOutput) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeInferenceComponentOutput) SetCreationTime(v time.Time) *DescribeInferenceComponentOutput {
	s.CreationTime = &v
	return s
}

// SetEndpointArn sets the EndpointArn field's value.
func (s *DescribeInferenceComponentOutput) SetEndpointArn(v string) *DescribeInferenceComponentOutput {
	s.EndpointArn = &v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *DescribeInferenceComponentOutput) SetEndpointName(v string) *DescribeInferenceComponentOutput {
	s.EndpointName = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *DescribeInferenceComponentOutput) SetFailureReason(v string) *DescribeInferenceComponentOutput {
	s.FailureReason = &v
	return s
}

// SetInferenceComponentArn sets the InferenceComponentArn field's value.
func (s *DescribeInferenceComponentOutput) SetInferenceComponentArn(v string) *DescribeInferenceComponentOutput {
	s.InferenceComponentArn = &v
	return s
}

// SetInferenceComponentName sets the InferenceComponentName field's value.
func (s *DescribeInferenceComponentOutput) SetInferenceComponentName(v string) *DescribeInferenceComponentOutput {
	s.InferenceComponentName = &v
	return s
}

// SetInferenceComponentStatus sets the InferenceComponentStatus field's value.
func (s *DescribeInferenceComponentOutput) SetInferenceComponentStatus(v string) *DescribeInferenceComponentOutput {
	s.InferenceComponentStatus = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeInferenceComponentOutput) SetLastModifiedTime(v time.Time) *DescribeInferenceComponentOutput {
	s.LastModifiedTime = &v
	return s
}

// SetRuntimeConfig sets the RuntimeConfig field's value.
func (s *DescribeInferenceComponentOutput) SetRuntimeConfig(v *InferenceComponentRuntimeConfigSummary) *DescribeInferenceComponentOutput {
	s.RuntimeConfig = v
	return s
}

// SetSpecification sets the Specification field's value.
func (s *DescribeInferenceComponentOutput) SetSpecification(v *InferenceComponentSpecificationSummary) *DescribeInferenceComponentOutput {
	s.Specification = v
	return s
}

// SetVariantName sets the VariantName field's value.
func (s *DescribeInferenceComponentOutput) SetVariantName(v string) *DescribeInferenceComponentOutput {
	s.VariantName = &v
	return s
}

type DescribeInferenceExperimentInput struct {
	_ struct{} `type:"structure"`

	// The name of the inference experiment to describe.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeInferenceExperimentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeInferenceExperimentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeInferenceExperimentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeInferenceExperimentInput"}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetName sets the Name field's value.
func (s *DescribeInferenceExperimentInput) SetName(v string) *DescribeInferenceExperimentInput {
	s.Name = &v
	return s
}

type DescribeInferenceExperimentOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the inference experiment being described.
	//
	// Arn is a required field
	Arn *string `type:"string" required:"true"`

	// The timestamp at which the inference experiment was completed.
	CompletionTime *time.Time `type:"timestamp"`

	// The timestamp at which you created the inference experiment.
	CreationTime *time.Time `type:"timestamp"`

	// The Amazon S3 location and configuration for storing inference request and
	// response data.
	DataStorageConfig *InferenceExperimentDataStorageConfig `type:"structure"`

	// The description of the inference experiment.
	Description *string `type:"string"`

	// The metadata of the endpoint on which the inference experiment ran.
	//
	// EndpointMetadata is a required field
	EndpointMetadata *EndpointMetadata `type:"structure" required:"true"`

	// The Amazon Web Services Key Management Service (Amazon Web Services KMS)
	// key that Amazon SageMaker uses to encrypt data on the storage volume attached
	// to the ML compute instance that hosts the endpoint. For more information,
	// see CreateInferenceExperiment (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateInferenceExperiment.html).
	KmsKey *string `type:"string"`

	// The timestamp at which you last modified the inference experiment.
	LastModifiedTime *time.Time `type:"timestamp"`

	// An array of ModelVariantConfigSummary objects. There is one for each variant
	// in the inference experiment. Each ModelVariantConfigSummary object in the
	// array describes the infrastructure configuration for deploying the corresponding
	// variant.
	//
	// ModelVariants is a required field
	ModelVariants []*ModelVariantConfigSummary `type:"list" required:"true"`

	// The name of the inference experiment.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// The ARN of the IAM role that Amazon SageMaker can assume to access model
	// artifacts and container images, and manage Amazon SageMaker Inference endpoints
	// for model deployment.
	RoleArn *string `min:"20" type:"string"`

	// The duration for which the inference experiment ran or will run.
	Schedule *InferenceExperimentSchedule `type:"structure"`

	// The configuration of ShadowMode inference experiment type, which shows the
	// production variant that takes all the inference requests, and the shadow
	// variant to which Amazon SageMaker replicates a percentage of the inference
	// requests. For the shadow variant it also shows the percentage of requests
	// that Amazon SageMaker replicates.
	ShadowModeConfig *ShadowModeConfig `type:"structure"`

	// The status of the inference experiment. The following are the possible statuses
	// for an inference experiment:
	//
	//    * Creating - Amazon SageMaker is creating your experiment.
	//
	//    * Created - Amazon SageMaker has finished the creation of your experiment
	//    and will begin the experiment at the scheduled time.
	//
	//    * Updating - When you make changes to your experiment, your experiment
	//    shows as updating.
	//
	//    * Starting - Amazon SageMaker is beginning your experiment.
	//
	//    * Running - Your experiment is in progress.
	//
	//    * Stopping - Amazon SageMaker is stopping your experiment.
	//
	//    * Completed - Your experiment has completed.
	//
	//    * Cancelled - When you conclude your experiment early using the StopInferenceExperiment
	//    (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StopInferenceExperiment.html)
	//    API, or if any operation fails with an unexpected error, it shows as cancelled.
	//
	// Status is a required field
	Status *string `type:"string" required:"true" enum:"InferenceExperimentStatus"`

	// The error message or client-specified Reason from the StopInferenceExperiment
	// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StopInferenceExperiment.html)
	// API, that explains the status of the inference experiment.
	StatusReason *string `type:"string"`

	// The type of the inference experiment.
	//
	// Type is a required field
	Type *string `type:"string" required:"true" enum:"InferenceExperimentType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeInferenceExperimentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeInferenceExperimentOutput) GoString() string {
	return s.String()
}

// SetArn sets the Arn field's value.
func (s *DescribeInferenceExperimentOutput) SetArn(v string) *DescribeInferenceExperimentOutput {
	s.Arn = &v
	return s
}

// SetCompletionTime sets the CompletionTime field's value.
func (s *DescribeInferenceExperimentOutput) SetCompletionTime(v time.Time) *DescribeInferenceExperimentOutput {
	s.CompletionTime = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeInferenceExperimentOutput) SetCreationTime(v time.Time) *DescribeInferenceExperimentOutput {
	s.CreationTime = &v
	return s
}

// SetDataStorageConfig sets the DataStorageConfig field's value.
func (s *DescribeInferenceExperimentOutput) SetDataStorageConfig(v *InferenceExperimentDataStorageConfig) *DescribeInferenceExperimentOutput {
	s.DataStorageConfig = v
	return s
}

// SetDescription sets the Description field's value.
func (s *DescribeInferenceExperimentOutput) SetDescription(v string) *DescribeInferenceExperimentOutput {
	s.Description = &v
	return s
}

// SetEndpointMetadata sets the EndpointMetadata field's value.
func (s *DescribeInferenceExperimentOutput) SetEndpointMetadata(v *EndpointMetadata) *DescribeInferenceExperimentOutput {
	s.EndpointMetadata = v
	return s
}

// SetKmsKey sets the KmsKey field's value.
func (s *DescribeInferenceExperimentOutput) SetKmsKey(v string) *DescribeInferenceExperimentOutput {
	s.KmsKey = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeInferenceExperimentOutput) SetLastModifiedTime(v time.Time) *DescribeInferenceExperimentOutput {
	s.LastModifiedTime = &v
	return s
}

// SetModelVariants sets the ModelVariants field's value.
func (s *DescribeInferenceExperimentOutput) SetModelVariants(v []*ModelVariantConfigSummary) *DescribeInferenceExperimentOutput {
	s.ModelVariants = v
	return s
}

// SetName sets the Name field's value.
func (s *DescribeInferenceExperimentOutput) SetName(v string) *DescribeInferenceExperimentOutput {
	s.Name = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *DescribeInferenceExperimentOutput) SetRoleArn(v string) *DescribeInferenceExperimentOutput {
	s.RoleArn = &v
	return s
}

// SetSchedule sets the Schedule field's value.
func (s *DescribeInferenceExperimentOutput) SetSchedule(v *InferenceExperimentSchedule) *DescribeInferenceExperimentOutput {
	s.Schedule = v
	return s
}

// SetShadowModeConfig sets the ShadowModeConfig field's value.
func (s *DescribeInferenceExperimentOutput) SetShadowModeConfig(v *ShadowModeConfig) *DescribeInferenceExperimentOutput {
	s.ShadowModeConfig = v
	return s
}

// SetStatus sets the Status field's value.
func (s *DescribeInferenceExperimentOutput) SetStatus(v string) *DescribeInferenceExperimentOutput {
	s.Status = &v
	return s
}

// SetStatusReason sets the StatusReason field's value.
func (s *DescribeInferenceExperimentOutput) SetStatusReason(v string) *DescribeInferenceExperimentOutput {
	s.StatusReason = &v
	return s
}

// SetType sets the Type field's value.
func (s *DescribeInferenceExperimentOutput) SetType(v string) *DescribeInferenceExperimentOutput {
	s.Type = &v
	return s
}

type DescribeInferenceRecommendationsJobInput struct {
	_ struct{} `type:"structure"`

	// The name of the job. The name must be unique within an Amazon Web Services
	// Region in the Amazon Web Services account.
	//
	// JobName is a required field
	JobName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeInferenceRecommendationsJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeInferenceRecommendationsJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeInferenceRecommendationsJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeInferenceRecommendationsJobInput"}
	if s.JobName == nil {
		invalidParams.Add(request.NewErrParamRequired("JobName"))
	}
	if s.JobName != nil && len(*s.JobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("JobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetJobName sets the JobName field's value.
func (s *DescribeInferenceRecommendationsJobInput) SetJobName(v string) *DescribeInferenceRecommendationsJobInput {
	s.JobName = &v
	return s
}

type DescribeInferenceRecommendationsJobOutput struct {
	_ struct{} `type:"structure"`

	// A timestamp that shows when the job completed.
	CompletionTime *time.Time `type:"timestamp"`

	// A timestamp that shows when the job was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The performance results from running an Inference Recommender job on an existing
	// endpoint.
	EndpointPerformances []*EndpointPerformance `type:"list"`

	// If the job fails, provides information why the job failed.
	FailureReason *string `type:"string"`

	// The recommendations made by Inference Recommender.
	InferenceRecommendations []*InferenceRecommendation `min:"1" type:"list"`

	// Returns information about the versioned model package Amazon Resource Name
	// (ARN), the traffic pattern, and endpoint configurations you provided when
	// you initiated the job.
	//
	// InputConfig is a required field
	InputConfig *RecommendationJobInputConfig `type:"structure" required:"true"`

	// The Amazon Resource Name (ARN) of the job.
	//
	// JobArn is a required field
	JobArn *string `type:"string" required:"true"`

	// The job description that you provided when you initiated the job.
	JobDescription *string `type:"string"`

	// The name of the job. The name must be unique within an Amazon Web Services
	// Region in the Amazon Web Services account.
	//
	// JobName is a required field
	JobName *string `min:"1" type:"string" required:"true"`

	// The job type that you provided when you initiated the job.
	//
	// JobType is a required field
	JobType *string `type:"string" required:"true" enum:"RecommendationJobType"`

	// A timestamp that shows when the job was last modified.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`

	// The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access
	// Management (IAM) role you provided when you initiated the job.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// The status of the job.
	//
	// Status is a required field
	Status *string `type:"string" required:"true" enum:"RecommendationJobStatus"`

	// The stopping conditions that you provided when you initiated the job.
	StoppingConditions *RecommendationJobStoppingConditions `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeInferenceRecommendationsJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeInferenceRecommendationsJobOutput) GoString() string {
	return s.String()
}

// SetCompletionTime sets the CompletionTime field's value.
func (s *DescribeInferenceRecommendationsJobOutput) SetCompletionTime(v time.Time) *DescribeInferenceRecommendationsJobOutput {
	s.CompletionTime = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeInferenceRecommendationsJobOutput) SetCreationTime(v time.Time) *DescribeInferenceRecommendationsJobOutput {
	s.CreationTime = &v
	return s
}

// SetEndpointPerformances sets the EndpointPerformances field's value.
func (s *DescribeInferenceRecommendationsJobOutput) SetEndpointPerformances(v []*EndpointPerformance) *DescribeInferenceRecommendationsJobOutput {
	s.EndpointPerformances = v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *DescribeInferenceRecommendationsJobOutput) SetFailureReason(v string) *DescribeInferenceRecommendationsJobOutput {
	s.FailureReason = &v
	return s
}

// SetInferenceRecommendations sets the InferenceRecommendations field's value.
func (s *DescribeInferenceRecommendationsJobOutput) SetInferenceRecommendations(v []*InferenceRecommendation) *DescribeInferenceRecommendationsJobOutput {
	s.InferenceRecommendations = v
	return s
}

// SetInputConfig sets the InputConfig field's value.
func (s *DescribeInferenceRecommendationsJobOutput) SetInputConfig(v *RecommendationJobInputConfig) *DescribeInferenceRecommendationsJobOutput {
	s.InputConfig = v
	return s
}

// SetJobArn sets the JobArn field's value.
func (s *DescribeInferenceRecommendationsJobOutput) SetJobArn(v string) *DescribeInferenceRecommendationsJobOutput {
	s.JobArn = &v
	return s
}

// SetJobDescription sets the JobDescription field's value.
func (s *DescribeInferenceRecommendationsJobOutput) SetJobDescription(v string) *DescribeInferenceRecommendationsJobOutput {
	s.JobDescription = &v
	return s
}

// SetJobName sets the JobName field's value.
func (s *DescribeInferenceRecommendationsJobOutput) SetJobName(v string) *DescribeInferenceRecommendationsJobOutput {
	s.JobName = &v
	return s
}

// SetJobType sets the JobType field's value.
func (s *DescribeInferenceRecommendationsJobOutput) SetJobType(v string) *DescribeInferenceRecommendationsJobOutput {
	s.JobType = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeInferenceRecommendationsJobOutput) SetLastModifiedTime(v time.Time) *DescribeInferenceRecommendationsJobOutput {
	s.LastModifiedTime = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *DescribeInferenceRecommendationsJobOutput) SetRoleArn(v string) *DescribeInferenceRecommendationsJobOutput {
	s.RoleArn = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *DescribeInferenceRecommendationsJobOutput) SetStatus(v string) *DescribeInferenceRecommendationsJobOutput {
	s.Status = &v
	return s
}

// SetStoppingConditions sets the StoppingConditions field's value.
func (s *DescribeInferenceRecommendationsJobOutput) SetStoppingConditions(v *RecommendationJobStoppingConditions) *DescribeInferenceRecommendationsJobOutput {
	s.StoppingConditions = v
	return s
}

type DescribeLabelingJobInput struct {
	_ struct{} `type:"structure"`

	// The name of the labeling job to return information for.
	//
	// LabelingJobName is a required field
	LabelingJobName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeLabelingJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeLabelingJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeLabelingJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeLabelingJobInput"}
	if s.LabelingJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("LabelingJobName"))
	}
	if s.LabelingJobName != nil && len(*s.LabelingJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("LabelingJobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetLabelingJobName sets the LabelingJobName field's value.
func (s *DescribeLabelingJobInput) SetLabelingJobName(v string) *DescribeLabelingJobInput {
	s.LabelingJobName = &v
	return s
}

type DescribeLabelingJobOutput struct {
	_ struct{} `type:"structure"`

	// The date and time that the labeling job was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// If the job failed, the reason that it failed.
	FailureReason *string `type:"string"`

	// Configuration information required for human workers to complete a labeling
	// task.
	//
	// HumanTaskConfig is a required field
	HumanTaskConfig *HumanTaskConfig `type:"structure" required:"true"`

	// Input configuration information for the labeling job, such as the Amazon
	// S3 location of the data objects and the location of the manifest file that
	// describes the data objects.
	//
	// InputConfig is a required field
	InputConfig *LabelingJobInputConfig `type:"structure" required:"true"`

	// A unique identifier for work done as part of a labeling job.
	//
	// JobReferenceCode is a required field
	JobReferenceCode *string `min:"1" type:"string" required:"true"`

	// The attribute used as the label in the output manifest file.
	LabelAttributeName *string `min:"1" type:"string"`

	// The S3 location of the JSON file that defines the categories used to label
	// data objects. Please note the following label-category limits:
	//
	//    * Semantic segmentation labeling jobs using automated labeling: 20 labels
	//
	//    * Box bounding labeling jobs (all): 10 labels
	//
	// The file is a JSON structure in the following format:
	//
	// {
	//
	// "document-version": "2018-11-28"
	//
	// "labels": [
	//
	// {
	//
	// "label": "label 1"
	//
	// },
	//
	// {
	//
	// "label": "label 2"
	//
	// },
	//
	// ...
	//
	// {
	//
	// "label": "label n"
	//
	// }
	//
	// ]
	//
	// }
	LabelCategoryConfigS3Uri *string `type:"string"`

	// Provides a breakdown of the number of data objects labeled by humans, the
	// number of objects labeled by machine, the number of objects than couldn't
	// be labeled, and the total number of objects labeled.
	//
	// LabelCounters is a required field
	LabelCounters *LabelCounters `type:"structure" required:"true"`

	// Configuration information for automated data labeling.
	LabelingJobAlgorithmsConfig *LabelingJobAlgorithmsConfig `type:"structure"`

	// The Amazon Resource Name (ARN) of the labeling job.
	//
	// LabelingJobArn is a required field
	LabelingJobArn *string `type:"string" required:"true"`

	// The name assigned to the labeling job when it was created.
	//
	// LabelingJobName is a required field
	LabelingJobName *string `min:"1" type:"string" required:"true"`

	// The location of the output produced by the labeling job.
	LabelingJobOutput *LabelingJobOutput `type:"structure"`

	// The processing status of the labeling job.
	//
	// LabelingJobStatus is a required field
	LabelingJobStatus *string `type:"string" required:"true" enum:"LabelingJobStatus"`

	// The date and time that the labeling job was last updated.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`

	// The location of the job's output data and the Amazon Web Services Key Management
	// Service key ID for the key used to encrypt the output data, if any.
	//
	// OutputConfig is a required field
	OutputConfig *LabelingJobOutputConfig `type:"structure" required:"true"`

	// The Amazon Resource Name (ARN) that SageMaker assumes to perform tasks on
	// your behalf during data labeling.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// A set of conditions for stopping a labeling job. If any of the conditions
	// are met, the job is automatically stopped.
	StoppingConditions *LabelingJobStoppingConditions `type:"structure"`

	// An array of key-value pairs. You can use tags to categorize your Amazon Web
	// Services resources in different ways, for example, by purpose, owner, or
	// environment. For more information, see Tagging Amazon Web Services Resources
	// (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeLabelingJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeLabelingJobOutput) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeLabelingJobOutput) SetCreationTime(v time.Time) *DescribeLabelingJobOutput {
	s.CreationTime = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *DescribeLabelingJobOutput) SetFailureReason(v string) *DescribeLabelingJobOutput {
	s.FailureReason = &v
	return s
}

// SetHumanTaskConfig sets the HumanTaskConfig field's value.
func (s *DescribeLabelingJobOutput) SetHumanTaskConfig(v *HumanTaskConfig) *DescribeLabelingJobOutput {
	s.HumanTaskConfig = v
	return s
}

// SetInputConfig sets the InputConfig field's value.
func (s *DescribeLabelingJobOutput) SetInputConfig(v *LabelingJobInputConfig) *DescribeLabelingJobOutput {
	s.InputConfig = v
	return s
}

// SetJobReferenceCode sets the JobReferenceCode field's value.
func (s *DescribeLabelingJobOutput) SetJobReferenceCode(v string) *DescribeLabelingJobOutput {
	s.JobReferenceCode = &v
	return s
}

// SetLabelAttributeName sets the LabelAttributeName field's value.
func (s *DescribeLabelingJobOutput) SetLabelAttributeName(v string) *DescribeLabelingJobOutput {
	s.LabelAttributeName = &v
	return s
}

// SetLabelCategoryConfigS3Uri sets the LabelCategoryConfigS3Uri field's value.
func (s *DescribeLabelingJobOutput) SetLabelCategoryConfigS3Uri(v string) *DescribeLabelingJobOutput {
	s.LabelCategoryConfigS3Uri = &v
	return s
}

// SetLabelCounters sets the LabelCounters field's value.
func (s *DescribeLabelingJobOutput) SetLabelCounters(v *LabelCounters) *DescribeLabelingJobOutput {
	s.LabelCounters = v
	return s
}

// SetLabelingJobAlgorithmsConfig sets the LabelingJobAlgorithmsConfig field's value.
func (s *DescribeLabelingJobOutput) SetLabelingJobAlgorithmsConfig(v *LabelingJobAlgorithmsConfig) *DescribeLabelingJobOutput {
	s.LabelingJobAlgorithmsConfig = v
	return s
}

// SetLabelingJobArn sets the LabelingJobArn field's value.
func (s *DescribeLabelingJobOutput) SetLabelingJobArn(v string) *DescribeLabelingJobOutput {
	s.LabelingJobArn = &v
	return s
}

// SetLabelingJobName sets the LabelingJobName field's value.
func (s *DescribeLabelingJobOutput) SetLabelingJobName(v string) *DescribeLabelingJobOutput {
	s.LabelingJobName = &v
	return s
}

// SetLabelingJobOutput sets the LabelingJobOutput field's value.
func (s *DescribeLabelingJobOutput) SetLabelingJobOutput(v *LabelingJobOutput) *DescribeLabelingJobOutput {
	s.LabelingJobOutput = v
	return s
}

// SetLabelingJobStatus sets the LabelingJobStatus field's value.
func (s *DescribeLabelingJobOutput) SetLabelingJobStatus(v string) *DescribeLabelingJobOutput {
	s.LabelingJobStatus = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeLabelingJobOutput) SetLastModifiedTime(v time.Time) *DescribeLabelingJobOutput {
	s.LastModifiedTime = &v
	return s
}

// SetOutputConfig sets the OutputConfig field's value.
func (s *DescribeLabelingJobOutput) SetOutputConfig(v *LabelingJobOutputConfig) *DescribeLabelingJobOutput {
	s.OutputConfig = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *DescribeLabelingJobOutput) SetRoleArn(v string) *DescribeLabelingJobOutput {
	s.RoleArn = &v
	return s
}

// SetStoppingConditions sets the StoppingConditions field's value.
func (s *DescribeLabelingJobOutput) SetStoppingConditions(v *LabelingJobStoppingConditions) *DescribeLabelingJobOutput {
	s.StoppingConditions = v
	return s
}

// SetTags sets the Tags field's value.
func (s *DescribeLabelingJobOutput) SetTags(v []*Tag) *DescribeLabelingJobOutput {
	s.Tags = v
	return s
}

type DescribeLineageGroupInput struct {
	_ struct{} `type:"structure"`

	// The name of the lineage group.
	//
	// LineageGroupName is a required field
	LineageGroupName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeLineageGroupInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeLineageGroupInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeLineageGroupInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeLineageGroupInput"}
	if s.LineageGroupName == nil {
		invalidParams.Add(request.NewErrParamRequired("LineageGroupName"))
	}
	if s.LineageGroupName != nil && len(*s.LineageGroupName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("LineageGroupName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetLineageGroupName sets the LineageGroupName field's value.
func (s *DescribeLineageGroupInput) SetLineageGroupName(v string) *DescribeLineageGroupInput {
	s.LineageGroupName = &v
	return s
}

type DescribeLineageGroupOutput struct {
	_ struct{} `type:"structure"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	CreatedBy *UserContext `type:"structure"`

	// The creation time of lineage group.
	CreationTime *time.Time `type:"timestamp"`

	// The description of the lineage group.
	Description *string `type:"string"`

	// The display name of the lineage group.
	DisplayName *string `min:"1" type:"string"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	LastModifiedBy *UserContext `type:"structure"`

	// The last modified time of the lineage group.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the lineage group.
	LineageGroupArn *string `type:"string"`

	// The name of the lineage group.
	LineageGroupName *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeLineageGroupOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeLineageGroupOutput) GoString() string {
	return s.String()
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *DescribeLineageGroupOutput) SetCreatedBy(v *UserContext) *DescribeLineageGroupOutput {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeLineageGroupOutput) SetCreationTime(v time.Time) *DescribeLineageGroupOutput {
	s.CreationTime = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *DescribeLineageGroupOutput) SetDescription(v string) *DescribeLineageGroupOutput {
	s.Description = &v
	return s
}

// SetDisplayName sets the DisplayName field's value.
func (s *DescribeLineageGroupOutput) SetDisplayName(v string) *DescribeLineageGroupOutput {
	s.DisplayName = &v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *DescribeLineageGroupOutput) SetLastModifiedBy(v *UserContext) *DescribeLineageGroupOutput {
	s.LastModifiedBy = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeLineageGroupOutput) SetLastModifiedTime(v time.Time) *DescribeLineageGroupOutput {
	s.LastModifiedTime = &v
	return s
}

// SetLineageGroupArn sets the LineageGroupArn field's value.
func (s *DescribeLineageGroupOutput) SetLineageGroupArn(v string) *DescribeLineageGroupOutput {
	s.LineageGroupArn = &v
	return s
}

// SetLineageGroupName sets the LineageGroupName field's value.
func (s *DescribeLineageGroupOutput) SetLineageGroupName(v string) *DescribeLineageGroupOutput {
	s.LineageGroupName = &v
	return s
}

type DescribeModelBiasJobDefinitionInput struct {
	_ struct{} `type:"structure"`

	// The name of the model bias job definition. The name must be unique within
	// an Amazon Web Services Region in the Amazon Web Services account.
	//
	// JobDefinitionName is a required field
	JobDefinitionName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelBiasJobDefinitionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelBiasJobDefinitionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeModelBiasJobDefinitionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeModelBiasJobDefinitionInput"}
	if s.JobDefinitionName == nil {
		invalidParams.Add(request.NewErrParamRequired("JobDefinitionName"))
	}
	if s.JobDefinitionName != nil && len(*s.JobDefinitionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("JobDefinitionName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetJobDefinitionName sets the JobDefinitionName field's value.
func (s *DescribeModelBiasJobDefinitionInput) SetJobDefinitionName(v string) *DescribeModelBiasJobDefinitionInput {
	s.JobDefinitionName = &v
	return s
}

type DescribeModelBiasJobDefinitionOutput struct {
	_ struct{} `type:"structure"`

	// The time at which the model bias job was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The Amazon Resource Name (ARN) of the model bias job.
	//
	// JobDefinitionArn is a required field
	JobDefinitionArn *string `type:"string" required:"true"`

	// The name of the bias job definition. The name must be unique within an Amazon
	// Web Services Region in the Amazon Web Services account.
	//
	// JobDefinitionName is a required field
	JobDefinitionName *string `min:"1" type:"string" required:"true"`

	// Identifies the resources to deploy for a monitoring job.
	//
	// JobResources is a required field
	JobResources *MonitoringResources `type:"structure" required:"true"`

	// Configures the model bias job to run a specified Docker container image.
	//
	// ModelBiasAppSpecification is a required field
	ModelBiasAppSpecification *ModelBiasAppSpecification `type:"structure" required:"true"`

	// The baseline configuration for a model bias job.
	ModelBiasBaselineConfig *ModelBiasBaselineConfig `type:"structure"`

	// Inputs for the model bias job.
	//
	// ModelBiasJobInput is a required field
	ModelBiasJobInput *ModelBiasJobInput `type:"structure" required:"true"`

	// The output configuration for monitoring jobs.
	//
	// ModelBiasJobOutputConfig is a required field
	ModelBiasJobOutputConfig *MonitoringOutputConfig `type:"structure" required:"true"`

	// Networking options for a model bias job.
	NetworkConfig *MonitoringNetworkConfig `type:"structure"`

	// The Amazon Resource Name (ARN) of the IAM role that has read permission to
	// the input data location and write permission to the output data location
	// in Amazon S3.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// A time limit for how long the monitoring job is allowed to run before stopping.
	StoppingCondition *MonitoringStoppingCondition `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelBiasJobDefinitionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelBiasJobDefinitionOutput) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeModelBiasJobDefinitionOutput) SetCreationTime(v time.Time) *DescribeModelBiasJobDefinitionOutput {
	s.CreationTime = &v
	return s
}

// SetJobDefinitionArn sets the JobDefinitionArn field's value.
func (s *DescribeModelBiasJobDefinitionOutput) SetJobDefinitionArn(v string) *DescribeModelBiasJobDefinitionOutput {
	s.JobDefinitionArn = &v
	return s
}

// SetJobDefinitionName sets the JobDefinitionName field's value.
func (s *DescribeModelBiasJobDefinitionOutput) SetJobDefinitionName(v string) *DescribeModelBiasJobDefinitionOutput {
	s.JobDefinitionName = &v
	return s
}

// SetJobResources sets the JobResources field's value.
func (s *DescribeModelBiasJobDefinitionOutput) SetJobResources(v *MonitoringResources) *DescribeModelBiasJobDefinitionOutput {
	s.JobResources = v
	return s
}

// SetModelBiasAppSpecification sets the ModelBiasAppSpecification field's value.
func (s *DescribeModelBiasJobDefinitionOutput) SetModelBiasAppSpecification(v *ModelBiasAppSpecification) *DescribeModelBiasJobDefinitionOutput {
	s.ModelBiasAppSpecification = v
	return s
}

// SetModelBiasBaselineConfig sets the ModelBiasBaselineConfig field's value.
func (s *DescribeModelBiasJobDefinitionOutput) SetModelBiasBaselineConfig(v *ModelBiasBaselineConfig) *DescribeModelBiasJobDefinitionOutput {
	s.ModelBiasBaselineConfig = v
	return s
}

// SetModelBiasJobInput sets the ModelBiasJobInput field's value.
func (s *DescribeModelBiasJobDefinitionOutput) SetModelBiasJobInput(v *ModelBiasJobInput) *DescribeModelBiasJobDefinitionOutput {
	s.ModelBiasJobInput = v
	return s
}

// SetModelBiasJobOutputConfig sets the ModelBiasJobOutputConfig field's value.
func (s *DescribeModelBiasJobDefinitionOutput) SetModelBiasJobOutputConfig(v *MonitoringOutputConfig) *DescribeModelBiasJobDefinitionOutput {
	s.ModelBiasJobOutputConfig = v
	return s
}

// SetNetworkConfig sets the NetworkConfig field's value.
func (s *DescribeModelBiasJobDefinitionOutput) SetNetworkConfig(v *MonitoringNetworkConfig) *DescribeModelBiasJobDefinitionOutput {
	s.NetworkConfig = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *DescribeModelBiasJobDefinitionOutput) SetRoleArn(v string) *DescribeModelBiasJobDefinitionOutput {
	s.RoleArn = &v
	return s
}

// SetStoppingCondition sets the StoppingCondition field's value.
func (s *DescribeModelBiasJobDefinitionOutput) SetStoppingCondition(v *MonitoringStoppingCondition) *DescribeModelBiasJobDefinitionOutput {
	s.StoppingCondition = v
	return s
}

type DescribeModelCardExportJobInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the model card export job to describe.
	//
	// ModelCardExportJobArn is a required field
	ModelCardExportJobArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelCardExportJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelCardExportJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeModelCardExportJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeModelCardExportJobInput"}
	if s.ModelCardExportJobArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelCardExportJobArn"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetModelCardExportJobArn sets the ModelCardExportJobArn field's value.
func (s *DescribeModelCardExportJobInput) SetModelCardExportJobArn(v string) *DescribeModelCardExportJobInput {
	s.ModelCardExportJobArn = &v
	return s
}

type DescribeModelCardExportJobOutput struct {
	_ struct{} `type:"structure"`

	// The date and time that the model export job was created.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `type:"timestamp" required:"true"`

	// The exported model card artifacts.
	ExportArtifacts *ModelCardExportArtifacts `type:"structure"`

	// The failure reason if the model export job fails.
	FailureReason *string `type:"string"`

	// The date and time that the model export job was last modified.
	//
	// LastModifiedAt is a required field
	LastModifiedAt *time.Time `type:"timestamp" required:"true"`

	// The Amazon Resource Name (ARN) of the model card export job.
	//
	// ModelCardExportJobArn is a required field
	ModelCardExportJobArn *string `type:"string" required:"true"`

	// The name of the model card export job to describe.
	//
	// ModelCardExportJobName is a required field
	ModelCardExportJobName *string `min:"1" type:"string" required:"true"`

	// The name or Amazon Resource Name (ARN) of the model card that the model export
	// job exports.
	//
	// ModelCardName is a required field
	ModelCardName *string `min:"1" type:"string" required:"true"`

	// The version of the model card that the model export job exports.
	//
	// ModelCardVersion is a required field
	ModelCardVersion *int64 `type:"integer" required:"true"`

	// The export output details for the model card.
	//
	// OutputConfig is a required field
	OutputConfig *ModelCardExportOutputConfig `type:"structure" required:"true"`

	// The completion status of the model card export job.
	//
	//    * InProgress: The model card export job is in progress.
	//
	//    * Completed: The model card export job is complete.
	//
	//    * Failed: The model card export job failed. To see the reason for the
	//    failure, see the FailureReason field in the response to a DescribeModelCardExportJob
	//    call.
	//
	// Status is a required field
	Status *string `type:"string" required:"true" enum:"ModelCardExportJobStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelCardExportJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelCardExportJobOutput) GoString() string {
	return s.String()
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *DescribeModelCardExportJobOutput) SetCreatedAt(v time.Time) *DescribeModelCardExportJobOutput {
	s.CreatedAt = &v
	return s
}

// SetExportArtifacts sets the ExportArtifacts field's value.
func (s *DescribeModelCardExportJobOutput) SetExportArtifacts(v *ModelCardExportArtifacts) *DescribeModelCardExportJobOutput {
	s.ExportArtifacts = v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *DescribeModelCardExportJobOutput) SetFailureReason(v string) *DescribeModelCardExportJobOutput {
	s.FailureReason = &v
	return s
}

// SetLastModifiedAt sets the LastModifiedAt field's value.
func (s *DescribeModelCardExportJobOutput) SetLastModifiedAt(v time.Time) *DescribeModelCardExportJobOutput {
	s.LastModifiedAt = &v
	return s
}

// SetModelCardExportJobArn sets the ModelCardExportJobArn field's value.
func (s *DescribeModelCardExportJobOutput) SetModelCardExportJobArn(v string) *DescribeModelCardExportJobOutput {
	s.ModelCardExportJobArn = &v
	return s
}

// SetModelCardExportJobName sets the ModelCardExportJobName field's value.
func (s *DescribeModelCardExportJobOutput) SetModelCardExportJobName(v string) *DescribeModelCardExportJobOutput {
	s.ModelCardExportJobName = &v
	return s
}

// SetModelCardName sets the ModelCardName field's value.
func (s *DescribeModelCardExportJobOutput) SetModelCardName(v string) *DescribeModelCardExportJobOutput {
	s.ModelCardName = &v
	return s
}

// SetModelCardVersion sets the ModelCardVersion field's value.
func (s *DescribeModelCardExportJobOutput) SetModelCardVersion(v int64) *DescribeModelCardExportJobOutput {
	s.ModelCardVersion = &v
	return s
}

// SetOutputConfig sets the OutputConfig field's value.
func (s *DescribeModelCardExportJobOutput) SetOutputConfig(v *ModelCardExportOutputConfig) *DescribeModelCardExportJobOutput {
	s.OutputConfig = v
	return s
}

// SetStatus sets the Status field's value.
func (s *DescribeModelCardExportJobOutput) SetStatus(v string) *DescribeModelCardExportJobOutput {
	s.Status = &v
	return s
}

type DescribeModelCardInput struct {
	_ struct{} `type:"structure"`

	// The name or Amazon Resource Name (ARN) of the model card to describe.
	//
	// ModelCardName is a required field
	ModelCardName *string `min:"1" type:"string" required:"true"`

	// The version of the model card to describe. If a version is not provided,
	// then the latest version of the model card is described.
	ModelCardVersion *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelCardInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelCardInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeModelCardInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeModelCardInput"}
	if s.ModelCardName == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelCardName"))
	}
	if s.ModelCardName != nil && len(*s.ModelCardName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelCardName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetModelCardName sets the ModelCardName field's value.
func (s *DescribeModelCardInput) SetModelCardName(v string) *DescribeModelCardInput {
	s.ModelCardName = &v
	return s
}

// SetModelCardVersion sets the ModelCardVersion field's value.
func (s *DescribeModelCardInput) SetModelCardVersion(v int64) *DescribeModelCardInput {
	s.ModelCardVersion = &v
	return s
}

type DescribeModelCardOutput struct {
	_ struct{} `type:"structure"`

	// The content of the model card.
	//
	// Content is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by DescribeModelCardOutput's
	// String and GoString methods.
	//
	// Content is a required field
	Content *string `type:"string" required:"true" sensitive:"true"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	//
	// CreatedBy is a required field
	CreatedBy *UserContext `type:"structure" required:"true"`

	// The date and time the model card was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	LastModifiedBy *UserContext `type:"structure"`

	// The date and time the model card was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the model card.
	//
	// ModelCardArn is a required field
	ModelCardArn *string `type:"string" required:"true"`

	// The name of the model card.
	//
	// ModelCardName is a required field
	ModelCardName *string `min:"1" type:"string" required:"true"`

	// The processing status of model card deletion. The ModelCardProcessingStatus
	// updates throughout the different deletion steps.
	//
	//    * DeletePending: Model card deletion request received.
	//
	//    * DeleteInProgress: Model card deletion is in progress.
	//
	//    * ContentDeleted: Deleted model card content.
	//
	//    * ExportJobsDeleted: Deleted all export jobs associated with the model
	//    card.
	//
	//    * DeleteCompleted: Successfully deleted the model card.
	//
	//    * DeleteFailed: The model card failed to delete.
	ModelCardProcessingStatus *string `type:"string" enum:"ModelCardProcessingStatus"`

	// The approval status of the model card within your organization. Different
	// organizations might have different criteria for model card review and approval.
	//
	//    * Draft: The model card is a work in progress.
	//
	//    * PendingReview: The model card is pending review.
	//
	//    * Approved: The model card is approved.
	//
	//    * Archived: The model card is archived. No more updates should be made
	//    to the model card, but it can still be exported.
	//
	// ModelCardStatus is a required field
	ModelCardStatus *string `type:"string" required:"true" enum:"ModelCardStatus"`

	// The version of the model card.
	//
	// ModelCardVersion is a required field
	ModelCardVersion *int64 `type:"integer" required:"true"`

	// The security configuration used to protect model card content.
	SecurityConfig *ModelCardSecurityConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelCardOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelCardOutput) GoString() string {
	return s.String()
}

// SetContent sets the Content field's value.
func (s *DescribeModelCardOutput) SetContent(v string) *DescribeModelCardOutput {
	s.Content = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *DescribeModelCardOutput) SetCreatedBy(v *UserContext) *DescribeModelCardOutput {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeModelCardOutput) SetCreationTime(v time.Time) *DescribeModelCardOutput {
	s.CreationTime = &v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *DescribeModelCardOutput) SetLastModifiedBy(v *UserContext) *DescribeModelCardOutput {
	s.LastModifiedBy = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeModelCardOutput) SetLastModifiedTime(v time.Time) *DescribeModelCardOutput {
	s.LastModifiedTime = &v
	return s
}

// SetModelCardArn sets the ModelCardArn field's value.
func (s *DescribeModelCardOutput) SetModelCardArn(v string) *DescribeModelCardOutput {
	s.ModelCardArn = &v
	return s
}

// SetModelCardName sets the ModelCardName field's value.
func (s *DescribeModelCardOutput) SetModelCardName(v string) *DescribeModelCardOutput {
	s.ModelCardName = &v
	return s
}

// SetModelCardProcessingStatus sets the ModelCardProcessingStatus field's value.
func (s *DescribeModelCardOutput) SetModelCardProcessingStatus(v string) *DescribeModelCardOutput {
	s.ModelCardProcessingStatus = &v
	return s
}

// SetModelCardStatus sets the ModelCardStatus field's value.
func (s *DescribeModelCardOutput) SetModelCardStatus(v string) *DescribeModelCardOutput {
	s.ModelCardStatus = &v
	return s
}

// SetModelCardVersion sets the ModelCardVersion field's value.
func (s *DescribeModelCardOutput) SetModelCardVersion(v int64) *DescribeModelCardOutput {
	s.ModelCardVersion = &v
	return s
}

// SetSecurityConfig sets the SecurityConfig field's value.
func (s *DescribeModelCardOutput) SetSecurityConfig(v *ModelCardSecurityConfig) *DescribeModelCardOutput {
	s.SecurityConfig = v
	return s
}

type DescribeModelExplainabilityJobDefinitionInput struct {
	_ struct{} `type:"structure"`

	// The name of the model explainability job definition. The name must be unique
	// within an Amazon Web Services Region in the Amazon Web Services account.
	//
	// JobDefinitionName is a required field
	JobDefinitionName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelExplainabilityJobDefinitionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelExplainabilityJobDefinitionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeModelExplainabilityJobDefinitionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeModelExplainabilityJobDefinitionInput"}
	if s.JobDefinitionName == nil {
		invalidParams.Add(request.NewErrParamRequired("JobDefinitionName"))
	}
	if s.JobDefinitionName != nil && len(*s.JobDefinitionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("JobDefinitionName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetJobDefinitionName sets the JobDefinitionName field's value.
func (s *DescribeModelExplainabilityJobDefinitionInput) SetJobDefinitionName(v string) *DescribeModelExplainabilityJobDefinitionInput {
	s.JobDefinitionName = &v
	return s
}

type DescribeModelExplainabilityJobDefinitionOutput struct {
	_ struct{} `type:"structure"`

	// The time at which the model explainability job was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The Amazon Resource Name (ARN) of the model explainability job.
	//
	// JobDefinitionArn is a required field
	JobDefinitionArn *string `type:"string" required:"true"`

	// The name of the explainability job definition. The name must be unique within
	// an Amazon Web Services Region in the Amazon Web Services account.
	//
	// JobDefinitionName is a required field
	JobDefinitionName *string `min:"1" type:"string" required:"true"`

	// Identifies the resources to deploy for a monitoring job.
	//
	// JobResources is a required field
	JobResources *MonitoringResources `type:"structure" required:"true"`

	// Configures the model explainability job to run a specified Docker container
	// image.
	//
	// ModelExplainabilityAppSpecification is a required field
	ModelExplainabilityAppSpecification *ModelExplainabilityAppSpecification `type:"structure" required:"true"`

	// The baseline configuration for a model explainability job.
	ModelExplainabilityBaselineConfig *ModelExplainabilityBaselineConfig `type:"structure"`

	// Inputs for the model explainability job.
	//
	// ModelExplainabilityJobInput is a required field
	ModelExplainabilityJobInput *ModelExplainabilityJobInput `type:"structure" required:"true"`

	// The output configuration for monitoring jobs.
	//
	// ModelExplainabilityJobOutputConfig is a required field
	ModelExplainabilityJobOutputConfig *MonitoringOutputConfig `type:"structure" required:"true"`

	// Networking options for a model explainability job.
	NetworkConfig *MonitoringNetworkConfig `type:"structure"`

	// The Amazon Resource Name (ARN) of the IAM role that has read permission to
	// the input data location and write permission to the output data location
	// in Amazon S3.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// A time limit for how long the monitoring job is allowed to run before stopping.
	StoppingCondition *MonitoringStoppingCondition `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelExplainabilityJobDefinitionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelExplainabilityJobDefinitionOutput) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeModelExplainabilityJobDefinitionOutput) SetCreationTime(v time.Time) *DescribeModelExplainabilityJobDefinitionOutput {
	s.CreationTime = &v
	return s
}

// SetJobDefinitionArn sets the JobDefinitionArn field's value.
func (s *DescribeModelExplainabilityJobDefinitionOutput) SetJobDefinitionArn(v string) *DescribeModelExplainabilityJobDefinitionOutput {
	s.JobDefinitionArn = &v
	return s
}

// SetJobDefinitionName sets the JobDefinitionName field's value.
func (s *DescribeModelExplainabilityJobDefinitionOutput) SetJobDefinitionName(v string) *DescribeModelExplainabilityJobDefinitionOutput {
	s.JobDefinitionName = &v
	return s
}

// SetJobResources sets the JobResources field's value.
func (s *DescribeModelExplainabilityJobDefinitionOutput) SetJobResources(v *MonitoringResources) *DescribeModelExplainabilityJobDefinitionOutput {
	s.JobResources = v
	return s
}

// SetModelExplainabilityAppSpecification sets the ModelExplainabilityAppSpecification field's value.
func (s *DescribeModelExplainabilityJobDefinitionOutput) SetModelExplainabilityAppSpecification(v *ModelExplainabilityAppSpecification) *DescribeModelExplainabilityJobDefinitionOutput {
	s.ModelExplainabilityAppSpecification = v
	return s
}

// SetModelExplainabilityBaselineConfig sets the ModelExplainabilityBaselineConfig field's value.
func (s *DescribeModelExplainabilityJobDefinitionOutput) SetModelExplainabilityBaselineConfig(v *ModelExplainabilityBaselineConfig) *DescribeModelExplainabilityJobDefinitionOutput {
	s.ModelExplainabilityBaselineConfig = v
	return s
}

// SetModelExplainabilityJobInput sets the ModelExplainabilityJobInput field's value.
func (s *DescribeModelExplainabilityJobDefinitionOutput) SetModelExplainabilityJobInput(v *ModelExplainabilityJobInput) *DescribeModelExplainabilityJobDefinitionOutput {
	s.ModelExplainabilityJobInput = v
	return s
}

// SetModelExplainabilityJobOutputConfig sets the ModelExplainabilityJobOutputConfig field's value.
func (s *DescribeModelExplainabilityJobDefinitionOutput) SetModelExplainabilityJobOutputConfig(v *MonitoringOutputConfig) *DescribeModelExplainabilityJobDefinitionOutput {
	s.ModelExplainabilityJobOutputConfig = v
	return s
}

// SetNetworkConfig sets the NetworkConfig field's value.
func (s *DescribeModelExplainabilityJobDefinitionOutput) SetNetworkConfig(v *MonitoringNetworkConfig) *DescribeModelExplainabilityJobDefinitionOutput {
	s.NetworkConfig = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *DescribeModelExplainabilityJobDefinitionOutput) SetRoleArn(v string) *DescribeModelExplainabilityJobDefinitionOutput {
	s.RoleArn = &v
	return s
}

// SetStoppingCondition sets the StoppingCondition field's value.
func (s *DescribeModelExplainabilityJobDefinitionOutput) SetStoppingCondition(v *MonitoringStoppingCondition) *DescribeModelExplainabilityJobDefinitionOutput {
	s.StoppingCondition = v
	return s
}

type DescribeModelInput struct {
	_ struct{} `type:"structure"`

	// The name of the model.
	//
	// ModelName is a required field
	ModelName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeModelInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeModelInput"}
	if s.ModelName == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetModelName sets the ModelName field's value.
func (s *DescribeModelInput) SetModelName(v string) *DescribeModelInput {
	s.ModelName = &v
	return s
}

type DescribeModelOutput struct {
	_ struct{} `type:"structure"`

	// The containers in the inference pipeline.
	Containers []*ContainerDefinition `type:"list"`

	// A timestamp that shows when the model was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// A set of recommended deployment configurations for the model.
	DeploymentRecommendation *DeploymentRecommendation `type:"structure"`

	// If True, no inbound or outbound network calls can be made to or from the
	// model container.
	EnableNetworkIsolation *bool `type:"boolean"`

	// The Amazon Resource Name (ARN) of the IAM role that you specified for the
	// model.
	ExecutionRoleArn *string `min:"20" type:"string"`

	// Specifies details of how containers in a multi-container endpoint are called.
	InferenceExecutionConfig *InferenceExecutionConfig `type:"structure"`

	// The Amazon Resource Name (ARN) of the model.
	//
	// ModelArn is a required field
	ModelArn *string `min:"20" type:"string" required:"true"`

	// Name of the SageMaker model.
	//
	// ModelName is a required field
	ModelName *string `type:"string" required:"true"`

	// The location of the primary inference code, associated artifacts, and custom
	// environment map that the inference code uses when it is deployed in production.
	PrimaryContainer *ContainerDefinition `type:"structure"`

	// A VpcConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html)
	// object that specifies the VPC that this model has access to. For more information,
	// see Protect Endpoints by Using an Amazon Virtual Private Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html)
	VpcConfig *VpcConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelOutput) GoString() string {
	return s.String()
}

// SetContainers sets the Containers field's value.
func (s *DescribeModelOutput) SetContainers(v []*ContainerDefinition) *DescribeModelOutput {
	s.Containers = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeModelOutput) SetCreationTime(v time.Time) *DescribeModelOutput {
	s.CreationTime = &v
	return s
}

// SetDeploymentRecommendation sets the DeploymentRecommendation field's value.
func (s *DescribeModelOutput) SetDeploymentRecommendation(v *DeploymentRecommendation) *DescribeModelOutput {
	s.DeploymentRecommendation = v
	return s
}

// SetEnableNetworkIsolation sets the EnableNetworkIsolation field's value.
func (s *DescribeModelOutput) SetEnableNetworkIsolation(v bool) *DescribeModelOutput {
	s.EnableNetworkIsolation = &v
	return s
}

// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
func (s *DescribeModelOutput) SetExecutionRoleArn(v string) *DescribeModelOutput {
	s.ExecutionRoleArn = &v
	return s
}

// SetInferenceExecutionConfig sets the InferenceExecutionConfig field's value.
func (s *DescribeModelOutput) SetInferenceExecutionConfig(v *InferenceExecutionConfig) *DescribeModelOutput {
	s.InferenceExecutionConfig = v
	return s
}

// SetModelArn sets the ModelArn field's value.
func (s *DescribeModelOutput) SetModelArn(v string) *DescribeModelOutput {
	s.ModelArn = &v
	return s
}

// SetModelName sets the ModelName field's value.
func (s *DescribeModelOutput) SetModelName(v string) *DescribeModelOutput {
	s.ModelName = &v
	return s
}

// SetPrimaryContainer sets the PrimaryContainer field's value.
func (s *DescribeModelOutput) SetPrimaryContainer(v *ContainerDefinition) *DescribeModelOutput {
	s.PrimaryContainer = v
	return s
}

// SetVpcConfig sets the VpcConfig field's value.
func (s *DescribeModelOutput) SetVpcConfig(v *VpcConfig) *DescribeModelOutput {
	s.VpcConfig = v
	return s
}

type DescribeModelPackageGroupInput struct {
	_ struct{} `type:"structure"`

	// The name of the model group to describe.
	//
	// ModelPackageGroupName is a required field
	ModelPackageGroupName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelPackageGroupInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelPackageGroupInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeModelPackageGroupInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeModelPackageGroupInput"}
	if s.ModelPackageGroupName == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelPackageGroupName"))
	}
	if s.ModelPackageGroupName != nil && len(*s.ModelPackageGroupName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelPackageGroupName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetModelPackageGroupName sets the ModelPackageGroupName field's value.
func (s *DescribeModelPackageGroupInput) SetModelPackageGroupName(v string) *DescribeModelPackageGroupInput {
	s.ModelPackageGroupName = &v
	return s
}

type DescribeModelPackageGroupOutput struct {
	_ struct{} `type:"structure"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	//
	// CreatedBy is a required field
	CreatedBy *UserContext `type:"structure" required:"true"`

	// The time that the model group was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The Amazon Resource Name (ARN) of the model group.
	//
	// ModelPackageGroupArn is a required field
	ModelPackageGroupArn *string `min:"1" type:"string" required:"true"`

	// A description of the model group.
	ModelPackageGroupDescription *string `type:"string"`

	// The name of the model group.
	//
	// ModelPackageGroupName is a required field
	ModelPackageGroupName *string `min:"1" type:"string" required:"true"`

	// The status of the model group.
	//
	// ModelPackageGroupStatus is a required field
	ModelPackageGroupStatus *string `type:"string" required:"true" enum:"ModelPackageGroupStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelPackageGroupOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelPackageGroupOutput) GoString() string {
	return s.String()
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *DescribeModelPackageGroupOutput) SetCreatedBy(v *UserContext) *DescribeModelPackageGroupOutput {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeModelPackageGroupOutput) SetCreationTime(v time.Time) *DescribeModelPackageGroupOutput {
	s.CreationTime = &v
	return s
}

// SetModelPackageGroupArn sets the ModelPackageGroupArn field's value.
func (s *DescribeModelPackageGroupOutput) SetModelPackageGroupArn(v string) *DescribeModelPackageGroupOutput {
	s.ModelPackageGroupArn = &v
	return s
}

// SetModelPackageGroupDescription sets the ModelPackageGroupDescription field's value.
func (s *DescribeModelPackageGroupOutput) SetModelPackageGroupDescription(v string) *DescribeModelPackageGroupOutput {
	s.ModelPackageGroupDescription = &v
	return s
}

// SetModelPackageGroupName sets the ModelPackageGroupName field's value.
func (s *DescribeModelPackageGroupOutput) SetModelPackageGroupName(v string) *DescribeModelPackageGroupOutput {
	s.ModelPackageGroupName = &v
	return s
}

// SetModelPackageGroupStatus sets the ModelPackageGroupStatus field's value.
func (s *DescribeModelPackageGroupOutput) SetModelPackageGroupStatus(v string) *DescribeModelPackageGroupOutput {
	s.ModelPackageGroupStatus = &v
	return s
}

type DescribeModelPackageInput struct {
	_ struct{} `type:"structure"`

	// The name or Amazon Resource Name (ARN) of the model package to describe.
	//
	// When you specify a name, the name must have 1 to 63 characters. Valid characters
	// are a-z, A-Z, 0-9, and - (hyphen).
	//
	// ModelPackageName is a required field
	ModelPackageName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelPackageInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelPackageInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeModelPackageInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeModelPackageInput"}
	if s.ModelPackageName == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelPackageName"))
	}
	if s.ModelPackageName != nil && len(*s.ModelPackageName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelPackageName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetModelPackageName sets the ModelPackageName field's value.
func (s *DescribeModelPackageInput) SetModelPackageName(v string) *DescribeModelPackageInput {
	s.ModelPackageName = &v
	return s
}

type DescribeModelPackageOutput struct {
	_ struct{} `type:"structure"`

	// An array of additional Inference Specification objects. Each additional Inference
	// Specification specifies artifacts based on this model package that can be
	// used on inference endpoints. Generally used with SageMaker Neo to store the
	// compiled artifacts.
	AdditionalInferenceSpecifications []*AdditionalInferenceSpecificationDefinition `min:"1" type:"list"`

	// A description provided for the model approval.
	ApprovalDescription *string `type:"string"`

	// Whether the model package is certified for listing on Amazon Web Services
	// Marketplace.
	CertifyForMarketplace *bool `type:"boolean"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	CreatedBy *UserContext `type:"structure"`

	// A timestamp specifying when the model package was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The metadata properties associated with the model package versions.
	CustomerMetadataProperties map[string]*string `min:"1" type:"map"`

	// The machine learning domain of the model package you specified. Common machine
	// learning domains include computer vision and natural language processing.
	Domain *string `type:"string"`

	// Represents the drift check baselines that can be used when the model monitor
	// is set using the model package. For more information, see the topic on Drift
	// Detection against Previous Baselines in SageMaker Pipelines (https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-quality-clarify-baseline-lifecycle.html#pipelines-quality-clarify-baseline-drift-detection)
	// in the Amazon SageMaker Developer Guide.
	DriftCheckBaselines *DriftCheckBaselines `type:"structure"`

	// Details about inference jobs that can be run with models based on this model
	// package.
	InferenceSpecification *InferenceSpecification `type:"structure"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	LastModifiedBy *UserContext `type:"structure"`

	// The last time that the model package was modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// Metadata properties of the tracking entity, trial, or trial component.
	MetadataProperties *MetadataProperties `type:"structure"`

	// The approval status of the model package.
	ModelApprovalStatus *string `type:"string" enum:"ModelApprovalStatus"`

	// Metrics for the model.
	ModelMetrics *ModelMetrics `type:"structure"`

	// The Amazon Resource Name (ARN) of the model package.
	//
	// ModelPackageArn is a required field
	ModelPackageArn *string `min:"1" type:"string" required:"true"`

	// A brief summary of the model package.
	ModelPackageDescription *string `type:"string"`

	// If the model is a versioned model, the name of the model group that the versioned
	// model belongs to.
	ModelPackageGroupName *string `min:"1" type:"string"`

	// The name of the model package being described.
	//
	// ModelPackageName is a required field
	ModelPackageName *string `min:"1" type:"string" required:"true"`

	// The current status of the model package.
	//
	// ModelPackageStatus is a required field
	ModelPackageStatus *string `type:"string" required:"true" enum:"ModelPackageStatus"`

	// Details about the current status of the model package.
	//
	// ModelPackageStatusDetails is a required field
	ModelPackageStatusDetails *ModelPackageStatusDetails `type:"structure" required:"true"`

	// The version of the model package.
	ModelPackageVersion *int64 `min:"1" type:"integer"`

	// The Amazon Simple Storage Service (Amazon S3) path where the sample payload
	// are stored. This path points to a single gzip compressed tar archive (.tar.gz
	// suffix).
	SamplePayloadUrl *string `type:"string"`

	// Indicates if you want to skip model validation.
	SkipModelValidation *string `type:"string" enum:"SkipModelValidation"`

	// Details about the algorithm that was used to create the model package.
	SourceAlgorithmSpecification *SourceAlgorithmSpecification `type:"structure"`

	// The machine learning task you specified that your model package accomplishes.
	// Common machine learning tasks include object detection and image classification.
	Task *string `type:"string"`

	// Configurations for one or more transform jobs that SageMaker runs to test
	// the model package.
	ValidationSpecification *ModelPackageValidationSpecification `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelPackageOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelPackageOutput) GoString() string {
	return s.String()
}

// SetAdditionalInferenceSpecifications sets the AdditionalInferenceSpecifications field's value.
func (s *DescribeModelPackageOutput) SetAdditionalInferenceSpecifications(v []*AdditionalInferenceSpecificationDefinition) *DescribeModelPackageOutput {
	s.AdditionalInferenceSpecifications = v
	return s
}

// SetApprovalDescription sets the ApprovalDescription field's value.
func (s *DescribeModelPackageOutput) SetApprovalDescription(v string) *DescribeModelPackageOutput {
	s.ApprovalDescription = &v
	return s
}

// SetCertifyForMarketplace sets the CertifyForMarketplace field's value.
func (s *DescribeModelPackageOutput) SetCertifyForMarketplace(v bool) *DescribeModelPackageOutput {
	s.CertifyForMarketplace = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *DescribeModelPackageOutput) SetCreatedBy(v *UserContext) *DescribeModelPackageOutput {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeModelPackageOutput) SetCreationTime(v time.Time) *DescribeModelPackageOutput {
	s.CreationTime = &v
	return s
}

// SetCustomerMetadataProperties sets the CustomerMetadataProperties field's value.
func (s *DescribeModelPackageOutput) SetCustomerMetadataProperties(v map[string]*string) *DescribeModelPackageOutput {
	s.CustomerMetadataProperties = v
	return s
}

// SetDomain sets the Domain field's value.
func (s *DescribeModelPackageOutput) SetDomain(v string) *DescribeModelPackageOutput {
	s.Domain = &v
	return s
}

// SetDriftCheckBaselines sets the DriftCheckBaselines field's value.
func (s *DescribeModelPackageOutput) SetDriftCheckBaselines(v *DriftCheckBaselines) *DescribeModelPackageOutput {
	s.DriftCheckBaselines = v
	return s
}

// SetInferenceSpecification sets the InferenceSpecification field's value.
func (s *DescribeModelPackageOutput) SetInferenceSpecification(v *InferenceSpecification) *DescribeModelPackageOutput {
	s.InferenceSpecification = v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *DescribeModelPackageOutput) SetLastModifiedBy(v *UserContext) *DescribeModelPackageOutput {
	s.LastModifiedBy = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeModelPackageOutput) SetLastModifiedTime(v time.Time) *DescribeModelPackageOutput {
	s.LastModifiedTime = &v
	return s
}

// SetMetadataProperties sets the MetadataProperties field's value.
func (s *DescribeModelPackageOutput) SetMetadataProperties(v *MetadataProperties) *DescribeModelPackageOutput {
	s.MetadataProperties = v
	return s
}

// SetModelApprovalStatus sets the ModelApprovalStatus field's value.
func (s *DescribeModelPackageOutput) SetModelApprovalStatus(v string) *DescribeModelPackageOutput {
	s.ModelApprovalStatus = &v
	return s
}

// SetModelMetrics sets the ModelMetrics field's value.
func (s *DescribeModelPackageOutput) SetModelMetrics(v *ModelMetrics) *DescribeModelPackageOutput {
	s.ModelMetrics = v
	return s
}

// SetModelPackageArn sets the ModelPackageArn field's value.
func (s *DescribeModelPackageOutput) SetModelPackageArn(v string) *DescribeModelPackageOutput {
	s.ModelPackageArn = &v
	return s
}

// SetModelPackageDescription sets the ModelPackageDescription field's value.
func (s *DescribeModelPackageOutput) SetModelPackageDescription(v string) *DescribeModelPackageOutput {
	s.ModelPackageDescription = &v
	return s
}

// SetModelPackageGroupName sets the ModelPackageGroupName field's value.
func (s *DescribeModelPackageOutput) SetModelPackageGroupName(v string) *DescribeModelPackageOutput {
	s.ModelPackageGroupName = &v
	return s
}

// SetModelPackageName sets the ModelPackageName field's value.
func (s *DescribeModelPackageOutput) SetModelPackageName(v string) *DescribeModelPackageOutput {
	s.ModelPackageName = &v
	return s
}

// SetModelPackageStatus sets the ModelPackageStatus field's value.
func (s *DescribeModelPackageOutput) SetModelPackageStatus(v string) *DescribeModelPackageOutput {
	s.ModelPackageStatus = &v
	return s
}

// SetModelPackageStatusDetails sets the ModelPackageStatusDetails field's value.
func (s *DescribeModelPackageOutput) SetModelPackageStatusDetails(v *ModelPackageStatusDetails) *DescribeModelPackageOutput {
	s.ModelPackageStatusDetails = v
	return s
}

// SetModelPackageVersion sets the ModelPackageVersion field's value.
func (s *DescribeModelPackageOutput) SetModelPackageVersion(v int64) *DescribeModelPackageOutput {
	s.ModelPackageVersion = &v
	return s
}

// SetSamplePayloadUrl sets the SamplePayloadUrl field's value.
func (s *DescribeModelPackageOutput) SetSamplePayloadUrl(v string) *DescribeModelPackageOutput {
	s.SamplePayloadUrl = &v
	return s
}

// SetSkipModelValidation sets the SkipModelValidation field's value.
func (s *DescribeModelPackageOutput) SetSkipModelValidation(v string) *DescribeModelPackageOutput {
	s.SkipModelValidation = &v
	return s
}

// SetSourceAlgorithmSpecification sets the SourceAlgorithmSpecification field's value.
func (s *DescribeModelPackageOutput) SetSourceAlgorithmSpecification(v *SourceAlgorithmSpecification) *DescribeModelPackageOutput {
	s.SourceAlgorithmSpecification = v
	return s
}

// SetTask sets the Task field's value.
func (s *DescribeModelPackageOutput) SetTask(v string) *DescribeModelPackageOutput {
	s.Task = &v
	return s
}

// SetValidationSpecification sets the ValidationSpecification field's value.
func (s *DescribeModelPackageOutput) SetValidationSpecification(v *ModelPackageValidationSpecification) *DescribeModelPackageOutput {
	s.ValidationSpecification = v
	return s
}

type DescribeModelQualityJobDefinitionInput struct {
	_ struct{} `type:"structure"`

	// The name of the model quality job. The name must be unique within an Amazon
	// Web Services Region in the Amazon Web Services account.
	//
	// JobDefinitionName is a required field
	JobDefinitionName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelQualityJobDefinitionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelQualityJobDefinitionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeModelQualityJobDefinitionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeModelQualityJobDefinitionInput"}
	if s.JobDefinitionName == nil {
		invalidParams.Add(request.NewErrParamRequired("JobDefinitionName"))
	}
	if s.JobDefinitionName != nil && len(*s.JobDefinitionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("JobDefinitionName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetJobDefinitionName sets the JobDefinitionName field's value.
func (s *DescribeModelQualityJobDefinitionInput) SetJobDefinitionName(v string) *DescribeModelQualityJobDefinitionInput {
	s.JobDefinitionName = &v
	return s
}

type DescribeModelQualityJobDefinitionOutput struct {
	_ struct{} `type:"structure"`

	// The time at which the model quality job was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The Amazon Resource Name (ARN) of the model quality job.
	//
	// JobDefinitionArn is a required field
	JobDefinitionArn *string `type:"string" required:"true"`

	// The name of the quality job definition. The name must be unique within an
	// Amazon Web Services Region in the Amazon Web Services account.
	//
	// JobDefinitionName is a required field
	JobDefinitionName *string `min:"1" type:"string" required:"true"`

	// Identifies the resources to deploy for a monitoring job.
	//
	// JobResources is a required field
	JobResources *MonitoringResources `type:"structure" required:"true"`

	// Configures the model quality job to run a specified Docker container image.
	//
	// ModelQualityAppSpecification is a required field
	ModelQualityAppSpecification *ModelQualityAppSpecification `type:"structure" required:"true"`

	// The baseline configuration for a model quality job.
	ModelQualityBaselineConfig *ModelQualityBaselineConfig `type:"structure"`

	// Inputs for the model quality job.
	//
	// ModelQualityJobInput is a required field
	ModelQualityJobInput *ModelQualityJobInput `type:"structure" required:"true"`

	// The output configuration for monitoring jobs.
	//
	// ModelQualityJobOutputConfig is a required field
	ModelQualityJobOutputConfig *MonitoringOutputConfig `type:"structure" required:"true"`

	// Networking options for a model quality job.
	NetworkConfig *MonitoringNetworkConfig `type:"structure"`

	// The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume
	// to perform tasks on your behalf.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// A time limit for how long the monitoring job is allowed to run before stopping.
	StoppingCondition *MonitoringStoppingCondition `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelQualityJobDefinitionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeModelQualityJobDefinitionOutput) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeModelQualityJobDefinitionOutput) SetCreationTime(v time.Time) *DescribeModelQualityJobDefinitionOutput {
	s.CreationTime = &v
	return s
}

// SetJobDefinitionArn sets the JobDefinitionArn field's value.
func (s *DescribeModelQualityJobDefinitionOutput) SetJobDefinitionArn(v string) *DescribeModelQualityJobDefinitionOutput {
	s.JobDefinitionArn = &v
	return s
}

// SetJobDefinitionName sets the JobDefinitionName field's value.
func (s *DescribeModelQualityJobDefinitionOutput) SetJobDefinitionName(v string) *DescribeModelQualityJobDefinitionOutput {
	s.JobDefinitionName = &v
	return s
}

// SetJobResources sets the JobResources field's value.
func (s *DescribeModelQualityJobDefinitionOutput) SetJobResources(v *MonitoringResources) *DescribeModelQualityJobDefinitionOutput {
	s.JobResources = v
	return s
}

// SetModelQualityAppSpecification sets the ModelQualityAppSpecification field's value.
func (s *DescribeModelQualityJobDefinitionOutput) SetModelQualityAppSpecification(v *ModelQualityAppSpecification) *DescribeModelQualityJobDefinitionOutput {
	s.ModelQualityAppSpecification = v
	return s
}

// SetModelQualityBaselineConfig sets the ModelQualityBaselineConfig field's value.
func (s *DescribeModelQualityJobDefinitionOutput) SetModelQualityBaselineConfig(v *ModelQualityBaselineConfig) *DescribeModelQualityJobDefinitionOutput {
	s.ModelQualityBaselineConfig = v
	return s
}

// SetModelQualityJobInput sets the ModelQualityJobInput field's value.
func (s *DescribeModelQualityJobDefinitionOutput) SetModelQualityJobInput(v *ModelQualityJobInput) *DescribeModelQualityJobDefinitionOutput {
	s.ModelQualityJobInput = v
	return s
}

// SetModelQualityJobOutputConfig sets the ModelQualityJobOutputConfig field's value.
func (s *DescribeModelQualityJobDefinitionOutput) SetModelQualityJobOutputConfig(v *MonitoringOutputConfig) *DescribeModelQualityJobDefinitionOutput {
	s.ModelQualityJobOutputConfig = v
	return s
}

// SetNetworkConfig sets the NetworkConfig field's value.
func (s *DescribeModelQualityJobDefinitionOutput) SetNetworkConfig(v *MonitoringNetworkConfig) *DescribeModelQualityJobDefinitionOutput {
	s.NetworkConfig = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *DescribeModelQualityJobDefinitionOutput) SetRoleArn(v string) *DescribeModelQualityJobDefinitionOutput {
	s.RoleArn = &v
	return s
}

// SetStoppingCondition sets the StoppingCondition field's value.
func (s *DescribeModelQualityJobDefinitionOutput) SetStoppingCondition(v *MonitoringStoppingCondition) *DescribeModelQualityJobDefinitionOutput {
	s.StoppingCondition = v
	return s
}

type DescribeMonitoringScheduleInput struct {
	_ struct{} `type:"structure"`

	// Name of a previously created monitoring schedule.
	//
	// MonitoringScheduleName is a required field
	MonitoringScheduleName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeMonitoringScheduleInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeMonitoringScheduleInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeMonitoringScheduleInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeMonitoringScheduleInput"}
	if s.MonitoringScheduleName == nil {
		invalidParams.Add(request.NewErrParamRequired("MonitoringScheduleName"))
	}
	if s.MonitoringScheduleName != nil && len(*s.MonitoringScheduleName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MonitoringScheduleName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMonitoringScheduleName sets the MonitoringScheduleName field's value.
func (s *DescribeMonitoringScheduleInput) SetMonitoringScheduleName(v string) *DescribeMonitoringScheduleInput {
	s.MonitoringScheduleName = &v
	return s
}

type DescribeMonitoringScheduleOutput struct {
	_ struct{} `type:"structure"`

	// The time at which the monitoring job was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The name of the endpoint for the monitoring job.
	EndpointName *string `type:"string"`

	// A string, up to one KB in size, that contains the reason a monitoring job
	// failed, if it failed.
	FailureReason *string `type:"string"`

	// The time at which the monitoring job was last modified.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`

	// Describes metadata on the last execution to run, if there was one.
	LastMonitoringExecutionSummary *MonitoringExecutionSummary `type:"structure"`

	// The Amazon Resource Name (ARN) of the monitoring schedule.
	//
	// MonitoringScheduleArn is a required field
	MonitoringScheduleArn *string `type:"string" required:"true"`

	// The configuration object that specifies the monitoring schedule and defines
	// the monitoring job.
	//
	// MonitoringScheduleConfig is a required field
	MonitoringScheduleConfig *MonitoringScheduleConfig `type:"structure" required:"true"`

	// Name of the monitoring schedule.
	//
	// MonitoringScheduleName is a required field
	MonitoringScheduleName *string `min:"1" type:"string" required:"true"`

	// The status of an monitoring job.
	//
	// MonitoringScheduleStatus is a required field
	MonitoringScheduleStatus *string `type:"string" required:"true" enum:"ScheduleStatus"`

	// The type of the monitoring job that this schedule runs. This is one of the
	// following values.
	//
	//    * DATA_QUALITY - The schedule is for a data quality monitoring job.
	//
	//    * MODEL_QUALITY - The schedule is for a model quality monitoring job.
	//
	//    * MODEL_BIAS - The schedule is for a bias monitoring job.
	//
	//    * MODEL_EXPLAINABILITY - The schedule is for an explainability monitoring
	//    job.
	MonitoringType *string `type:"string" enum:"MonitoringType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeMonitoringScheduleOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeMonitoringScheduleOutput) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeMonitoringScheduleOutput) SetCreationTime(v time.Time) *DescribeMonitoringScheduleOutput {
	s.CreationTime = &v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *DescribeMonitoringScheduleOutput) SetEndpointName(v string) *DescribeMonitoringScheduleOutput {
	s.EndpointName = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *DescribeMonitoringScheduleOutput) SetFailureReason(v string) *DescribeMonitoringScheduleOutput {
	s.FailureReason = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeMonitoringScheduleOutput) SetLastModifiedTime(v time.Time) *DescribeMonitoringScheduleOutput {
	s.LastModifiedTime = &v
	return s
}

// SetLastMonitoringExecutionSummary sets the LastMonitoringExecutionSummary field's value.
func (s *DescribeMonitoringScheduleOutput) SetLastMonitoringExecutionSummary(v *MonitoringExecutionSummary) *DescribeMonitoringScheduleOutput {
	s.LastMonitoringExecutionSummary = v
	return s
}

// SetMonitoringScheduleArn sets the MonitoringScheduleArn field's value.
func (s *DescribeMonitoringScheduleOutput) SetMonitoringScheduleArn(v string) *DescribeMonitoringScheduleOutput {
	s.MonitoringScheduleArn = &v
	return s
}

// SetMonitoringScheduleConfig sets the MonitoringScheduleConfig field's value.
func (s *DescribeMonitoringScheduleOutput) SetMonitoringScheduleConfig(v *MonitoringScheduleConfig) *DescribeMonitoringScheduleOutput {
	s.MonitoringScheduleConfig = v
	return s
}

// SetMonitoringScheduleName sets the MonitoringScheduleName field's value.
func (s *DescribeMonitoringScheduleOutput) SetMonitoringScheduleName(v string) *DescribeMonitoringScheduleOutput {
	s.MonitoringScheduleName = &v
	return s
}

// SetMonitoringScheduleStatus sets the MonitoringScheduleStatus field's value.
func (s *DescribeMonitoringScheduleOutput) SetMonitoringScheduleStatus(v string) *DescribeMonitoringScheduleOutput {
	s.MonitoringScheduleStatus = &v
	return s
}

// SetMonitoringType sets the MonitoringType field's value.
func (s *DescribeMonitoringScheduleOutput) SetMonitoringType(v string) *DescribeMonitoringScheduleOutput {
	s.MonitoringType = &v
	return s
}

type DescribeNotebookInstanceInput struct {
	_ struct{} `type:"structure"`

	// The name of the notebook instance that you want information about.
	//
	// NotebookInstanceName is a required field
	NotebookInstanceName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeNotebookInstanceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeNotebookInstanceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeNotebookInstanceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeNotebookInstanceInput"}
	if s.NotebookInstanceName == nil {
		invalidParams.Add(request.NewErrParamRequired("NotebookInstanceName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetNotebookInstanceName sets the NotebookInstanceName field's value.
func (s *DescribeNotebookInstanceInput) SetNotebookInstanceName(v string) *DescribeNotebookInstanceInput {
	s.NotebookInstanceName = &v
	return s
}

type DescribeNotebookInstanceLifecycleConfigInput struct {
	_ struct{} `type:"structure"`

	// The name of the lifecycle configuration to describe.
	//
	// NotebookInstanceLifecycleConfigName is a required field
	NotebookInstanceLifecycleConfigName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeNotebookInstanceLifecycleConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeNotebookInstanceLifecycleConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeNotebookInstanceLifecycleConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeNotebookInstanceLifecycleConfigInput"}
	if s.NotebookInstanceLifecycleConfigName == nil {
		invalidParams.Add(request.NewErrParamRequired("NotebookInstanceLifecycleConfigName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetNotebookInstanceLifecycleConfigName sets the NotebookInstanceLifecycleConfigName field's value.
func (s *DescribeNotebookInstanceLifecycleConfigInput) SetNotebookInstanceLifecycleConfigName(v string) *DescribeNotebookInstanceLifecycleConfigInput {
	s.NotebookInstanceLifecycleConfigName = &v
	return s
}

type DescribeNotebookInstanceLifecycleConfigOutput struct {
	_ struct{} `type:"structure"`

	// A timestamp that tells when the lifecycle configuration was created.
	CreationTime *time.Time `type:"timestamp"`

	// A timestamp that tells when the lifecycle configuration was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the lifecycle configuration.
	NotebookInstanceLifecycleConfigArn *string `type:"string"`

	// The name of the lifecycle configuration.
	NotebookInstanceLifecycleConfigName *string `type:"string"`

	// The shell script that runs only once, when you create a notebook instance.
	OnCreate []*NotebookInstanceLifecycleHook `type:"list"`

	// The shell script that runs every time you start a notebook instance, including
	// when you create the notebook instance.
	OnStart []*NotebookInstanceLifecycleHook `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeNotebookInstanceLifecycleConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeNotebookInstanceLifecycleConfigOutput) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeNotebookInstanceLifecycleConfigOutput) SetCreationTime(v time.Time) *DescribeNotebookInstanceLifecycleConfigOutput {
	s.CreationTime = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeNotebookInstanceLifecycleConfigOutput) SetLastModifiedTime(v time.Time) *DescribeNotebookInstanceLifecycleConfigOutput {
	s.LastModifiedTime = &v
	return s
}

// SetNotebookInstanceLifecycleConfigArn sets the NotebookInstanceLifecycleConfigArn field's value.
func (s *DescribeNotebookInstanceLifecycleConfigOutput) SetNotebookInstanceLifecycleConfigArn(v string) *DescribeNotebookInstanceLifecycleConfigOutput {
	s.NotebookInstanceLifecycleConfigArn = &v
	return s
}

// SetNotebookInstanceLifecycleConfigName sets the NotebookInstanceLifecycleConfigName field's value.
func (s *DescribeNotebookInstanceLifecycleConfigOutput) SetNotebookInstanceLifecycleConfigName(v string) *DescribeNotebookInstanceLifecycleConfigOutput {
	s.NotebookInstanceLifecycleConfigName = &v
	return s
}

// SetOnCreate sets the OnCreate field's value.
func (s *DescribeNotebookInstanceLifecycleConfigOutput) SetOnCreate(v []*NotebookInstanceLifecycleHook) *DescribeNotebookInstanceLifecycleConfigOutput {
	s.OnCreate = v
	return s
}

// SetOnStart sets the OnStart field's value.
func (s *DescribeNotebookInstanceLifecycleConfigOutput) SetOnStart(v []*NotebookInstanceLifecycleHook) *DescribeNotebookInstanceLifecycleConfigOutput {
	s.OnStart = v
	return s
}

type DescribeNotebookInstanceOutput struct {
	_ struct{} `type:"structure"`

	// A list of the Elastic Inference (EI) instance types associated with this
	// notebook instance. Currently only one EI instance type can be associated
	// with a notebook instance. For more information, see Using Elastic Inference
	// in Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html).
	AcceleratorTypes []*string `type:"list" enum:"NotebookInstanceAcceleratorType"`

	// An array of up to three Git repositories associated with the notebook instance.
	// These can be either the names of Git repositories stored as resources in
	// your account, or the URL of Git repositories in Amazon Web Services CodeCommit
	// (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) or
	// in any other Git repository. These repositories are cloned at the same level
	// as the default repository of your notebook instance. For more information,
	// see Associating Git Repositories with SageMaker Notebook Instances (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html).
	AdditionalCodeRepositories []*string `type:"list"`

	// A timestamp. Use this parameter to return the time when the notebook instance
	// was created
	CreationTime *time.Time `type:"timestamp"`

	// The Git repository associated with the notebook instance as its default code
	// repository. This can be either the name of a Git repository stored as a resource
	// in your account, or the URL of a Git repository in Amazon Web Services CodeCommit
	// (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) or
	// in any other Git repository. When you open a notebook instance, it opens
	// in the directory that contains this repository. For more information, see
	// Associating Git Repositories with SageMaker Notebook Instances (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html).
	DefaultCodeRepository *string `min:"1" type:"string"`

	// Describes whether SageMaker provides internet access to the notebook instance.
	// If this value is set to Disabled, the notebook instance does not have internet
	// access, and cannot connect to SageMaker training and endpoint services.
	//
	// For more information, see Notebook Instances Are Internet-Enabled by Default
	// (https://docs.aws.amazon.com/sagemaker/latest/dg/appendix-additional-considerations.html#appendix-notebook-and-internet-access).
	DirectInternetAccess *string `type:"string" enum:"DirectInternetAccess"`

	// If status is Failed, the reason it failed.
	FailureReason *string `type:"string"`

	// Information on the IMDS configuration of the notebook instance
	InstanceMetadataServiceConfiguration *InstanceMetadataServiceConfiguration `type:"structure"`

	// The type of ML compute instance running on the notebook instance.
	InstanceType *string `type:"string" enum:"InstanceType"`

	// The Amazon Web Services KMS key ID SageMaker uses to encrypt data when storing
	// it on the ML storage volume attached to the instance.
	KmsKeyId *string `type:"string"`

	// A timestamp. Use this parameter to retrieve the time when the notebook instance
	// was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The network interface IDs that SageMaker created at the time of creating
	// the instance.
	NetworkInterfaceId *string `type:"string"`

	// The Amazon Resource Name (ARN) of the notebook instance.
	NotebookInstanceArn *string `type:"string"`

	// Returns the name of a notebook instance lifecycle configuration.
	//
	// For information about notebook instance lifestyle configurations, see Step
	// 2.1: (Optional) Customize a Notebook Instance (https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html)
	NotebookInstanceLifecycleConfigName *string `type:"string"`

	// The name of the SageMaker notebook instance.
	NotebookInstanceName *string `type:"string"`

	// The status of the notebook instance.
	NotebookInstanceStatus *string `type:"string" enum:"NotebookInstanceStatus"`

	// The platform identifier of the notebook instance runtime environment.
	PlatformIdentifier *string `type:"string"`

	// The Amazon Resource Name (ARN) of the IAM role associated with the instance.
	RoleArn *string `min:"20" type:"string"`

	// Whether root access is enabled or disabled for users of the notebook instance.
	//
	// Lifecycle configurations need root access to be able to set up a notebook
	// instance. Because of this, lifecycle configurations associated with a notebook
	// instance always run with root access even if you disable root access for
	// users.
	RootAccess *string `type:"string" enum:"RootAccess"`

	// The IDs of the VPC security groups.
	SecurityGroups []*string `type:"list"`

	// The ID of the VPC subnet.
	SubnetId *string `type:"string"`

	// The URL that you use to connect to the Jupyter notebook that is running in
	// your notebook instance.
	Url *string `type:"string"`

	// The size, in GB, of the ML storage volume attached to the notebook instance.
	VolumeSizeInGB *int64 `min:"5" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeNotebookInstanceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeNotebookInstanceOutput) GoString() string {
	return s.String()
}

// SetAcceleratorTypes sets the AcceleratorTypes field's value.
func (s *DescribeNotebookInstanceOutput) SetAcceleratorTypes(v []*string) *DescribeNotebookInstanceOutput {
	s.AcceleratorTypes = v
	return s
}

// SetAdditionalCodeRepositories sets the AdditionalCodeRepositories field's value.
func (s *DescribeNotebookInstanceOutput) SetAdditionalCodeRepositories(v []*string) *DescribeNotebookInstanceOutput {
	s.AdditionalCodeRepositories = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeNotebookInstanceOutput) SetCreationTime(v time.Time) *DescribeNotebookInstanceOutput {
	s.CreationTime = &v
	return s
}

// SetDefaultCodeRepository sets the DefaultCodeRepository field's value.
func (s *DescribeNotebookInstanceOutput) SetDefaultCodeRepository(v string) *DescribeNotebookInstanceOutput {
	s.DefaultCodeRepository = &v
	return s
}

// SetDirectInternetAccess sets the DirectInternetAccess field's value.
func (s *DescribeNotebookInstanceOutput) SetDirectInternetAccess(v string) *DescribeNotebookInstanceOutput {
	s.DirectInternetAccess = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *DescribeNotebookInstanceOutput) SetFailureReason(v string) *DescribeNotebookInstanceOutput {
	s.FailureReason = &v
	return s
}

// SetInstanceMetadataServiceConfiguration sets the InstanceMetadataServiceConfiguration field's value.
func (s *DescribeNotebookInstanceOutput) SetInstanceMetadataServiceConfiguration(v *InstanceMetadataServiceConfiguration) *DescribeNotebookInstanceOutput {
	s.InstanceMetadataServiceConfiguration = v
	return s
}

// SetInstanceType sets the InstanceType field's value.
func (s *DescribeNotebookInstanceOutput) SetInstanceType(v string) *DescribeNotebookInstanceOutput {
	s.InstanceType = &v
	return s
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *DescribeNotebookInstanceOutput) SetKmsKeyId(v string) *DescribeNotebookInstanceOutput {
	s.KmsKeyId = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeNotebookInstanceOutput) SetLastModifiedTime(v time.Time) *DescribeNotebookInstanceOutput {
	s.LastModifiedTime = &v
	return s
}

// SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
func (s *DescribeNotebookInstanceOutput) SetNetworkInterfaceId(v string) *DescribeNotebookInstanceOutput {
	s.NetworkInterfaceId = &v
	return s
}

// SetNotebookInstanceArn sets the NotebookInstanceArn field's value.
func (s *DescribeNotebookInstanceOutput) SetNotebookInstanceArn(v string) *DescribeNotebookInstanceOutput {
	s.NotebookInstanceArn = &v
	return s
}

// SetNotebookInstanceLifecycleConfigName sets the NotebookInstanceLifecycleConfigName field's value.
func (s *DescribeNotebookInstanceOutput) SetNotebookInstanceLifecycleConfigName(v string) *DescribeNotebookInstanceOutput {
	s.NotebookInstanceLifecycleConfigName = &v
	return s
}

// SetNotebookInstanceName sets the NotebookInstanceName field's value.
func (s *DescribeNotebookInstanceOutput) SetNotebookInstanceName(v string) *DescribeNotebookInstanceOutput {
	s.NotebookInstanceName = &v
	return s
}

// SetNotebookInstanceStatus sets the NotebookInstanceStatus field's value.
func (s *DescribeNotebookInstanceOutput) SetNotebookInstanceStatus(v string) *DescribeNotebookInstanceOutput {
	s.NotebookInstanceStatus = &v
	return s
}

// SetPlatformIdentifier sets the PlatformIdentifier field's value.
func (s *DescribeNotebookInstanceOutput) SetPlatformIdentifier(v string) *DescribeNotebookInstanceOutput {
	s.PlatformIdentifier = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *DescribeNotebookInstanceOutput) SetRoleArn(v string) *DescribeNotebookInstanceOutput {
	s.RoleArn = &v
	return s
}

// SetRootAccess sets the RootAccess field's value.
func (s *DescribeNotebookInstanceOutput) SetRootAccess(v string) *DescribeNotebookInstanceOutput {
	s.RootAccess = &v
	return s
}

// SetSecurityGroups sets the SecurityGroups field's value.
func (s *DescribeNotebookInstanceOutput) SetSecurityGroups(v []*string) *DescribeNotebookInstanceOutput {
	s.SecurityGroups = v
	return s
}

// SetSubnetId sets the SubnetId field's value.
func (s *DescribeNotebookInstanceOutput) SetSubnetId(v string) *DescribeNotebookInstanceOutput {
	s.SubnetId = &v
	return s
}

// SetUrl sets the Url field's value.
func (s *DescribeNotebookInstanceOutput) SetUrl(v string) *DescribeNotebookInstanceOutput {
	s.Url = &v
	return s
}

// SetVolumeSizeInGB sets the VolumeSizeInGB field's value.
func (s *DescribeNotebookInstanceOutput) SetVolumeSizeInGB(v int64) *DescribeNotebookInstanceOutput {
	s.VolumeSizeInGB = &v
	return s
}

type DescribePipelineDefinitionForExecutionInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the pipeline execution.
	//
	// PipelineExecutionArn is a required field
	PipelineExecutionArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribePipelineDefinitionForExecutionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribePipelineDefinitionForExecutionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribePipelineDefinitionForExecutionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribePipelineDefinitionForExecutionInput"}
	if s.PipelineExecutionArn == nil {
		invalidParams.Add(request.NewErrParamRequired("PipelineExecutionArn"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetPipelineExecutionArn sets the PipelineExecutionArn field's value.
func (s *DescribePipelineDefinitionForExecutionInput) SetPipelineExecutionArn(v string) *DescribePipelineDefinitionForExecutionInput {
	s.PipelineExecutionArn = &v
	return s
}

type DescribePipelineDefinitionForExecutionOutput struct {
	_ struct{} `type:"structure"`

	// The time when the pipeline was created.
	CreationTime *time.Time `type:"timestamp"`

	// The JSON pipeline definition.
	PipelineDefinition *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribePipelineDefinitionForExecutionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribePipelineDefinitionForExecutionOutput) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribePipelineDefinitionForExecutionOutput) SetCreationTime(v time.Time) *DescribePipelineDefinitionForExecutionOutput {
	s.CreationTime = &v
	return s
}

// SetPipelineDefinition sets the PipelineDefinition field's value.
func (s *DescribePipelineDefinitionForExecutionOutput) SetPipelineDefinition(v string) *DescribePipelineDefinitionForExecutionOutput {
	s.PipelineDefinition = &v
	return s
}

type DescribePipelineExecutionInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the pipeline execution.
	//
	// PipelineExecutionArn is a required field
	PipelineExecutionArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribePipelineExecutionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribePipelineExecutionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribePipelineExecutionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribePipelineExecutionInput"}
	if s.PipelineExecutionArn == nil {
		invalidParams.Add(request.NewErrParamRequired("PipelineExecutionArn"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetPipelineExecutionArn sets the PipelineExecutionArn field's value.
func (s *DescribePipelineExecutionInput) SetPipelineExecutionArn(v string) *DescribePipelineExecutionInput {
	s.PipelineExecutionArn = &v
	return s
}

type DescribePipelineExecutionOutput struct {
	_ struct{} `type:"structure"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	CreatedBy *UserContext `type:"structure"`

	// The time when the pipeline execution was created.
	CreationTime *time.Time `type:"timestamp"`

	// If the execution failed, a message describing why.
	FailureReason *string `type:"string"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	LastModifiedBy *UserContext `type:"structure"`

	// The time when the pipeline execution was modified last.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The parallelism configuration applied to the pipeline.
	ParallelismConfiguration *ParallelismConfiguration `type:"structure"`

	// The Amazon Resource Name (ARN) of the pipeline.
	PipelineArn *string `type:"string"`

	// The Amazon Resource Name (ARN) of the pipeline execution.
	PipelineExecutionArn *string `type:"string"`

	// The description of the pipeline execution.
	PipelineExecutionDescription *string `type:"string"`

	// The display name of the pipeline execution.
	PipelineExecutionDisplayName *string `min:"1" type:"string"`

	// The status of the pipeline execution.
	PipelineExecutionStatus *string `type:"string" enum:"PipelineExecutionStatus"`

	// Specifies the names of the experiment and trial created by a pipeline.
	PipelineExperimentConfig *PipelineExperimentConfig `type:"structure"`

	// The selective execution configuration applied to the pipeline run.
	SelectiveExecutionConfig *SelectiveExecutionConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribePipelineExecutionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribePipelineExecutionOutput) GoString() string {
	return s.String()
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *DescribePipelineExecutionOutput) SetCreatedBy(v *UserContext) *DescribePipelineExecutionOutput {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribePipelineExecutionOutput) SetCreationTime(v time.Time) *DescribePipelineExecutionOutput {
	s.CreationTime = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *DescribePipelineExecutionOutput) SetFailureReason(v string) *DescribePipelineExecutionOutput {
	s.FailureReason = &v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *DescribePipelineExecutionOutput) SetLastModifiedBy(v *UserContext) *DescribePipelineExecutionOutput {
	s.LastModifiedBy = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribePipelineExecutionOutput) SetLastModifiedTime(v time.Time) *DescribePipelineExecutionOutput {
	s.LastModifiedTime = &v
	return s
}

// SetParallelismConfiguration sets the ParallelismConfiguration field's value.
func (s *DescribePipelineExecutionOutput) SetParallelismConfiguration(v *ParallelismConfiguration) *DescribePipelineExecutionOutput {
	s.ParallelismConfiguration = v
	return s
}

// SetPipelineArn sets the PipelineArn field's value.
func (s *DescribePipelineExecutionOutput) SetPipelineArn(v string) *DescribePipelineExecutionOutput {
	s.PipelineArn = &v
	return s
}

// SetPipelineExecutionArn sets the PipelineExecutionArn field's value.
func (s *DescribePipelineExecutionOutput) SetPipelineExecutionArn(v string) *DescribePipelineExecutionOutput {
	s.PipelineExecutionArn = &v
	return s
}

// SetPipelineExecutionDescription sets the PipelineExecutionDescription field's value.
func (s *DescribePipelineExecutionOutput) SetPipelineExecutionDescription(v string) *DescribePipelineExecutionOutput {
	s.PipelineExecutionDescription = &v
	return s
}

// SetPipelineExecutionDisplayName sets the PipelineExecutionDisplayName field's value.
func (s *DescribePipelineExecutionOutput) SetPipelineExecutionDisplayName(v string) *DescribePipelineExecutionOutput {
	s.PipelineExecutionDisplayName = &v
	return s
}

// SetPipelineExecutionStatus sets the PipelineExecutionStatus field's value.
func (s *DescribePipelineExecutionOutput) SetPipelineExecutionStatus(v string) *DescribePipelineExecutionOutput {
	s.PipelineExecutionStatus = &v
	return s
}

// SetPipelineExperimentConfig sets the PipelineExperimentConfig field's value.
func (s *DescribePipelineExecutionOutput) SetPipelineExperimentConfig(v *PipelineExperimentConfig) *DescribePipelineExecutionOutput {
	s.PipelineExperimentConfig = v
	return s
}

// SetSelectiveExecutionConfig sets the SelectiveExecutionConfig field's value.
func (s *DescribePipelineExecutionOutput) SetSelectiveExecutionConfig(v *SelectiveExecutionConfig) *DescribePipelineExecutionOutput {
	s.SelectiveExecutionConfig = v
	return s
}

type DescribePipelineInput struct {
	_ struct{} `type:"structure"`

	// The name or Amazon Resource Name (ARN) of the pipeline to describe.
	//
	// PipelineName is a required field
	PipelineName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribePipelineInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribePipelineInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribePipelineInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribePipelineInput"}
	if s.PipelineName == nil {
		invalidParams.Add(request.NewErrParamRequired("PipelineName"))
	}
	if s.PipelineName != nil && len(*s.PipelineName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("PipelineName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetPipelineName sets the PipelineName field's value.
func (s *DescribePipelineInput) SetPipelineName(v string) *DescribePipelineInput {
	s.PipelineName = &v
	return s
}

type DescribePipelineOutput struct {
	_ struct{} `type:"structure"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	CreatedBy *UserContext `type:"structure"`

	// The time when the pipeline was created.
	CreationTime *time.Time `type:"timestamp"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	LastModifiedBy *UserContext `type:"structure"`

	// The time when the pipeline was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The time when the pipeline was last run.
	LastRunTime *time.Time `type:"timestamp"`

	// Lists the parallelism configuration applied to the pipeline.
	ParallelismConfiguration *ParallelismConfiguration `type:"structure"`

	// The Amazon Resource Name (ARN) of the pipeline.
	PipelineArn *string `type:"string"`

	// The JSON pipeline definition.
	PipelineDefinition *string `min:"1" type:"string"`

	// The description of the pipeline.
	PipelineDescription *string `type:"string"`

	// The display name of the pipeline.
	PipelineDisplayName *string `min:"1" type:"string"`

	// The name of the pipeline.
	PipelineName *string `min:"1" type:"string"`

	// The status of the pipeline execution.
	PipelineStatus *string `type:"string" enum:"PipelineStatus"`

	// The Amazon Resource Name (ARN) that the pipeline uses to execute.
	RoleArn *string `min:"20" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribePipelineOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribePipelineOutput) GoString() string {
	return s.String()
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *DescribePipelineOutput) SetCreatedBy(v *UserContext) *DescribePipelineOutput {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribePipelineOutput) SetCreationTime(v time.Time) *DescribePipelineOutput {
	s.CreationTime = &v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *DescribePipelineOutput) SetLastModifiedBy(v *UserContext) *DescribePipelineOutput {
	s.LastModifiedBy = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribePipelineOutput) SetLastModifiedTime(v time.Time) *DescribePipelineOutput {
	s.LastModifiedTime = &v
	return s
}

// SetLastRunTime sets the LastRunTime field's value.
func (s *DescribePipelineOutput) SetLastRunTime(v time.Time) *DescribePipelineOutput {
	s.LastRunTime = &v
	return s
}

// SetParallelismConfiguration sets the ParallelismConfiguration field's value.
func (s *DescribePipelineOutput) SetParallelismConfiguration(v *ParallelismConfiguration) *DescribePipelineOutput {
	s.ParallelismConfiguration = v
	return s
}

// SetPipelineArn sets the PipelineArn field's value.
func (s *DescribePipelineOutput) SetPipelineArn(v string) *DescribePipelineOutput {
	s.PipelineArn = &v
	return s
}

// SetPipelineDefinition sets the PipelineDefinition field's value.
func (s *DescribePipelineOutput) SetPipelineDefinition(v string) *DescribePipelineOutput {
	s.PipelineDefinition = &v
	return s
}

// SetPipelineDescription sets the PipelineDescription field's value.
func (s *DescribePipelineOutput) SetPipelineDescription(v string) *DescribePipelineOutput {
	s.PipelineDescription = &v
	return s
}

// SetPipelineDisplayName sets the PipelineDisplayName field's value.
func (s *DescribePipelineOutput) SetPipelineDisplayName(v string) *DescribePipelineOutput {
	s.PipelineDisplayName = &v
	return s
}

// SetPipelineName sets the PipelineName field's value.
func (s *DescribePipelineOutput) SetPipelineName(v string) *DescribePipelineOutput {
	s.PipelineName = &v
	return s
}

// SetPipelineStatus sets the PipelineStatus field's value.
func (s *DescribePipelineOutput) SetPipelineStatus(v string) *DescribePipelineOutput {
	s.PipelineStatus = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *DescribePipelineOutput) SetRoleArn(v string) *DescribePipelineOutput {
	s.RoleArn = &v
	return s
}

type DescribeProcessingJobInput struct {
	_ struct{} `type:"structure"`

	// The name of the processing job. The name must be unique within an Amazon
	// Web Services Region in the Amazon Web Services account.
	//
	// ProcessingJobName is a required field
	ProcessingJobName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeProcessingJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeProcessingJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeProcessingJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeProcessingJobInput"}
	if s.ProcessingJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("ProcessingJobName"))
	}
	if s.ProcessingJobName != nil && len(*s.ProcessingJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ProcessingJobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetProcessingJobName sets the ProcessingJobName field's value.
func (s *DescribeProcessingJobInput) SetProcessingJobName(v string) *DescribeProcessingJobInput {
	s.ProcessingJobName = &v
	return s
}

type DescribeProcessingJobOutput struct {
	_ struct{} `type:"structure"`

	// Configures the processing job to run a specified container image.
	//
	// AppSpecification is a required field
	AppSpecification *AppSpecification `type:"structure" required:"true"`

	// The ARN of an AutoML job associated with this processing job.
	AutoMLJobArn *string `min:"1" type:"string"`

	// The time at which the processing job was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The environment variables set in the Docker container.
	Environment map[string]*string `type:"map"`

	// An optional string, up to one KB in size, that contains metadata from the
	// processing container when the processing job exits.
	ExitMessage *string `type:"string"`

	// The configuration information used to create an experiment.
	ExperimentConfig *ExperimentConfig `type:"structure"`

	// A string, up to one KB in size, that contains the reason a processing job
	// failed, if it failed.
	FailureReason *string `type:"string"`

	// The time at which the processing job was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The ARN of a monitoring schedule for an endpoint associated with this processing
	// job.
	MonitoringScheduleArn *string `type:"string"`

	// Networking options for a processing job.
	NetworkConfig *NetworkConfig `type:"structure"`

	// The time at which the processing job completed.
	ProcessingEndTime *time.Time `type:"timestamp"`

	// The inputs for a processing job.
	ProcessingInputs []*ProcessingInput `type:"list"`

	// The Amazon Resource Name (ARN) of the processing job.
	//
	// ProcessingJobArn is a required field
	ProcessingJobArn *string `type:"string" required:"true"`

	// The name of the processing job. The name must be unique within an Amazon
	// Web Services Region in the Amazon Web Services account.
	//
	// ProcessingJobName is a required field
	ProcessingJobName *string `min:"1" type:"string" required:"true"`

	// Provides the status of a processing job.
	//
	// ProcessingJobStatus is a required field
	ProcessingJobStatus *string `type:"string" required:"true" enum:"ProcessingJobStatus"`

	// Output configuration for the processing job.
	ProcessingOutputConfig *ProcessingOutputConfig `type:"structure"`

	// Identifies the resources, ML compute instances, and ML storage volumes to
	// deploy for a processing job. In distributed training, you specify more than
	// one instance.
	//
	// ProcessingResources is a required field
	ProcessingResources *ProcessingResources `type:"structure" required:"true"`

	// The time at which the processing job started.
	ProcessingStartTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume
	// to perform tasks on your behalf.
	RoleArn *string `min:"20" type:"string"`

	// The time limit for how long the processing job is allowed to run.
	StoppingCondition *ProcessingStoppingCondition `type:"structure"`

	// The ARN of a training job associated with this processing job.
	TrainingJobArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeProcessingJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeProcessingJobOutput) GoString() string {
	return s.String()
}

// SetAppSpecification sets the AppSpecification field's value.
func (s *DescribeProcessingJobOutput) SetAppSpecification(v *AppSpecification) *DescribeProcessingJobOutput {
	s.AppSpecification = v
	return s
}

// SetAutoMLJobArn sets the AutoMLJobArn field's value.
func (s *DescribeProcessingJobOutput) SetAutoMLJobArn(v string) *DescribeProcessingJobOutput {
	s.AutoMLJobArn = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeProcessingJobOutput) SetCreationTime(v time.Time) *DescribeProcessingJobOutput {
	s.CreationTime = &v
	return s
}

// SetEnvironment sets the Environment field's value.
func (s *DescribeProcessingJobOutput) SetEnvironment(v map[string]*string) *DescribeProcessingJobOutput {
	s.Environment = v
	return s
}

// SetExitMessage sets the ExitMessage field's value.
func (s *DescribeProcessingJobOutput) SetExitMessage(v string) *DescribeProcessingJobOutput {
	s.ExitMessage = &v
	return s
}

// SetExperimentConfig sets the ExperimentConfig field's value.
func (s *DescribeProcessingJobOutput) SetExperimentConfig(v *ExperimentConfig) *DescribeProcessingJobOutput {
	s.ExperimentConfig = v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *DescribeProcessingJobOutput) SetFailureReason(v string) *DescribeProcessingJobOutput {
	s.FailureReason = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeProcessingJobOutput) SetLastModifiedTime(v time.Time) *DescribeProcessingJobOutput {
	s.LastModifiedTime = &v
	return s
}

// SetMonitoringScheduleArn sets the MonitoringScheduleArn field's value.
func (s *DescribeProcessingJobOutput) SetMonitoringScheduleArn(v string) *DescribeProcessingJobOutput {
	s.MonitoringScheduleArn = &v
	return s
}

// SetNetworkConfig sets the NetworkConfig field's value.
func (s *DescribeProcessingJobOutput) SetNetworkConfig(v *NetworkConfig) *DescribeProcessingJobOutput {
	s.NetworkConfig = v
	return s
}

// SetProcessingEndTime sets the ProcessingEndTime field's value.
func (s *DescribeProcessingJobOutput) SetProcessingEndTime(v time.Time) *DescribeProcessingJobOutput {
	s.ProcessingEndTime = &v
	return s
}

// SetProcessingInputs sets the ProcessingInputs field's value.
func (s *DescribeProcessingJobOutput) SetProcessingInputs(v []*ProcessingInput) *DescribeProcessingJobOutput {
	s.ProcessingInputs = v
	return s
}

// SetProcessingJobArn sets the ProcessingJobArn field's value.
func (s *DescribeProcessingJobOutput) SetProcessingJobArn(v string) *DescribeProcessingJobOutput {
	s.ProcessingJobArn = &v
	return s
}

// SetProcessingJobName sets the ProcessingJobName field's value.
func (s *DescribeProcessingJobOutput) SetProcessingJobName(v string) *DescribeProcessingJobOutput {
	s.ProcessingJobName = &v
	return s
}

// SetProcessingJobStatus sets the ProcessingJobStatus field's value.
func (s *DescribeProcessingJobOutput) SetProcessingJobStatus(v string) *DescribeProcessingJobOutput {
	s.ProcessingJobStatus = &v
	return s
}

// SetProcessingOutputConfig sets the ProcessingOutputConfig field's value.
func (s *DescribeProcessingJobOutput) SetProcessingOutputConfig(v *ProcessingOutputConfig) *DescribeProcessingJobOutput {
	s.ProcessingOutputConfig = v
	return s
}

// SetProcessingResources sets the ProcessingResources field's value.
func (s *DescribeProcessingJobOutput) SetProcessingResources(v *ProcessingResources) *DescribeProcessingJobOutput {
	s.ProcessingResources = v
	return s
}

// SetProcessingStartTime sets the ProcessingStartTime field's value.
func (s *DescribeProcessingJobOutput) SetProcessingStartTime(v time.Time) *DescribeProcessingJobOutput {
	s.ProcessingStartTime = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *DescribeProcessingJobOutput) SetRoleArn(v string) *DescribeProcessingJobOutput {
	s.RoleArn = &v
	return s
}

// SetStoppingCondition sets the StoppingCondition field's value.
func (s *DescribeProcessingJobOutput) SetStoppingCondition(v *ProcessingStoppingCondition) *DescribeProcessingJobOutput {
	s.StoppingCondition = v
	return s
}

// SetTrainingJobArn sets the TrainingJobArn field's value.
func (s *DescribeProcessingJobOutput) SetTrainingJobArn(v string) *DescribeProcessingJobOutput {
	s.TrainingJobArn = &v
	return s
}

type DescribeProjectInput struct {
	_ struct{} `type:"structure"`

	// The name of the project to describe.
	//
	// ProjectName is a required field
	ProjectName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeProjectInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeProjectInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeProjectInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeProjectInput"}
	if s.ProjectName == nil {
		invalidParams.Add(request.NewErrParamRequired("ProjectName"))
	}
	if s.ProjectName != nil && len(*s.ProjectName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ProjectName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetProjectName sets the ProjectName field's value.
func (s *DescribeProjectInput) SetProjectName(v string) *DescribeProjectInput {
	s.ProjectName = &v
	return s
}

type DescribeProjectOutput struct {
	_ struct{} `type:"structure"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	CreatedBy *UserContext `type:"structure"`

	// The time when the project was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	LastModifiedBy *UserContext `type:"structure"`

	// The timestamp when project was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the project.
	//
	// ProjectArn is a required field
	ProjectArn *string `min:"1" type:"string" required:"true"`

	// The description of the project.
	ProjectDescription *string `type:"string"`

	// The ID of the project.
	//
	// ProjectId is a required field
	ProjectId *string `min:"1" type:"string" required:"true"`

	// The name of the project.
	//
	// ProjectName is a required field
	ProjectName *string `min:"1" type:"string" required:"true"`

	// The status of the project.
	//
	// ProjectStatus is a required field
	ProjectStatus *string `type:"string" required:"true" enum:"ProjectStatus"`

	// Information about a provisioned service catalog product.
	ServiceCatalogProvisionedProductDetails *ServiceCatalogProvisionedProductDetails `type:"structure"`

	// Information used to provision a service catalog product. For information,
	// see What is Amazon Web Services Service Catalog (https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html).
	//
	// ServiceCatalogProvisioningDetails is a required field
	ServiceCatalogProvisioningDetails *ServiceCatalogProvisioningDetails `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeProjectOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeProjectOutput) GoString() string {
	return s.String()
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *DescribeProjectOutput) SetCreatedBy(v *UserContext) *DescribeProjectOutput {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeProjectOutput) SetCreationTime(v time.Time) *DescribeProjectOutput {
	s.CreationTime = &v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *DescribeProjectOutput) SetLastModifiedBy(v *UserContext) *DescribeProjectOutput {
	s.LastModifiedBy = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeProjectOutput) SetLastModifiedTime(v time.Time) *DescribeProjectOutput {
	s.LastModifiedTime = &v
	return s
}

// SetProjectArn sets the ProjectArn field's value.
func (s *DescribeProjectOutput) SetProjectArn(v string) *DescribeProjectOutput {
	s.ProjectArn = &v
	return s
}

// SetProjectDescription sets the ProjectDescription field's value.
func (s *DescribeProjectOutput) SetProjectDescription(v string) *DescribeProjectOutput {
	s.ProjectDescription = &v
	return s
}

// SetProjectId sets the ProjectId field's value.
func (s *DescribeProjectOutput) SetProjectId(v string) *DescribeProjectOutput {
	s.ProjectId = &v
	return s
}

// SetProjectName sets the ProjectName field's value.
func (s *DescribeProjectOutput) SetProjectName(v string) *DescribeProjectOutput {
	s.ProjectName = &v
	return s
}

// SetProjectStatus sets the ProjectStatus field's value.
func (s *DescribeProjectOutput) SetProjectStatus(v string) *DescribeProjectOutput {
	s.ProjectStatus = &v
	return s
}

// SetServiceCatalogProvisionedProductDetails sets the ServiceCatalogProvisionedProductDetails field's value.
func (s *DescribeProjectOutput) SetServiceCatalogProvisionedProductDetails(v *ServiceCatalogProvisionedProductDetails) *DescribeProjectOutput {
	s.ServiceCatalogProvisionedProductDetails = v
	return s
}

// SetServiceCatalogProvisioningDetails sets the ServiceCatalogProvisioningDetails field's value.
func (s *DescribeProjectOutput) SetServiceCatalogProvisioningDetails(v *ServiceCatalogProvisioningDetails) *DescribeProjectOutput {
	s.ServiceCatalogProvisioningDetails = v
	return s
}

type DescribeSpaceInput struct {
	_ struct{} `type:"structure"`

	// The ID of the associated Domain.
	//
	// DomainId is a required field
	DomainId *string `type:"string" required:"true"`

	// The name of the space.
	//
	// SpaceName is a required field
	SpaceName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeSpaceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeSpaceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeSpaceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeSpaceInput"}
	if s.DomainId == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainId"))
	}
	if s.SpaceName == nil {
		invalidParams.Add(request.NewErrParamRequired("SpaceName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainId sets the DomainId field's value.
func (s *DescribeSpaceInput) SetDomainId(v string) *DescribeSpaceInput {
	s.DomainId = &v
	return s
}

// SetSpaceName sets the SpaceName field's value.
func (s *DescribeSpaceInput) SetSpaceName(v string) *DescribeSpaceInput {
	s.SpaceName = &v
	return s
}

type DescribeSpaceOutput struct {
	_ struct{} `type:"structure"`

	// The creation time.
	CreationTime *time.Time `type:"timestamp"`

	// The ID of the associated Domain.
	DomainId *string `type:"string"`

	// The failure reason.
	FailureReason *string `type:"string"`

	// The ID of the space's profile in the Amazon Elastic File System volume.
	HomeEfsFileSystemUid *string `type:"string"`

	// The last modified time.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The collection of ownership settings for a space.
	OwnershipSettings *OwnershipSettings `type:"structure"`

	// The space's Amazon Resource Name (ARN).
	SpaceArn *string `type:"string"`

	// The name of the space that appears in the Amazon SageMaker Studio UI.
	SpaceDisplayName *string `type:"string"`

	// The name of the space.
	SpaceName *string `type:"string"`

	// A collection of space settings.
	SpaceSettings *SpaceSettings `type:"structure"`

	// The collection of space sharing settings for a space.
	SpaceSharingSettings *SpaceSharingSettings `type:"structure"`

	// The status.
	Status *string `type:"string" enum:"SpaceStatus"`

	// Returns the URL of the space. If the space is created with Amazon Web Services
	// IAM Identity Center (Successor to Amazon Web Services Single Sign-On) authentication,
	// users can navigate to the URL after appending the respective redirect parameter
	// for the application type to be federated through Amazon Web Services IAM
	// Identity Center.
	//
	// The following application types are supported:
	//
	//    * Studio Classic: &redirect=JupyterServer
	//
	//    * JupyterLab: &redirect=JupyterLab
	//
	//    * Code Editor, based on Code-OSS, Visual Studio Code - Open Source: &redirect=CodeEditor
	Url *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeSpaceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeSpaceOutput) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeSpaceOutput) SetCreationTime(v time.Time) *DescribeSpaceOutput {
	s.CreationTime = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *DescribeSpaceOutput) SetDomainId(v string) *DescribeSpaceOutput {
	s.DomainId = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *DescribeSpaceOutput) SetFailureReason(v string) *DescribeSpaceOutput {
	s.FailureReason = &v
	return s
}

// SetHomeEfsFileSystemUid sets the HomeEfsFileSystemUid field's value.
func (s *DescribeSpaceOutput) SetHomeEfsFileSystemUid(v string) *DescribeSpaceOutput {
	s.HomeEfsFileSystemUid = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeSpaceOutput) SetLastModifiedTime(v time.Time) *DescribeSpaceOutput {
	s.LastModifiedTime = &v
	return s
}

// SetOwnershipSettings sets the OwnershipSettings field's value.
func (s *DescribeSpaceOutput) SetOwnershipSettings(v *OwnershipSettings) *DescribeSpaceOutput {
	s.OwnershipSettings = v
	return s
}

// SetSpaceArn sets the SpaceArn field's value.
func (s *DescribeSpaceOutput) SetSpaceArn(v string) *DescribeSpaceOutput {
	s.SpaceArn = &v
	return s
}

// SetSpaceDisplayName sets the SpaceDisplayName field's value.
func (s *DescribeSpaceOutput) SetSpaceDisplayName(v string) *DescribeSpaceOutput {
	s.SpaceDisplayName = &v
	return s
}

// SetSpaceName sets the SpaceName field's value.
func (s *DescribeSpaceOutput) SetSpaceName(v string) *DescribeSpaceOutput {
	s.SpaceName = &v
	return s
}

// SetSpaceSettings sets the SpaceSettings field's value.
func (s *DescribeSpaceOutput) SetSpaceSettings(v *SpaceSettings) *DescribeSpaceOutput {
	s.SpaceSettings = v
	return s
}

// SetSpaceSharingSettings sets the SpaceSharingSettings field's value.
func (s *DescribeSpaceOutput) SetSpaceSharingSettings(v *SpaceSharingSettings) *DescribeSpaceOutput {
	s.SpaceSharingSettings = v
	return s
}

// SetStatus sets the Status field's value.
func (s *DescribeSpaceOutput) SetStatus(v string) *DescribeSpaceOutput {
	s.Status = &v
	return s
}

// SetUrl sets the Url field's value.
func (s *DescribeSpaceOutput) SetUrl(v string) *DescribeSpaceOutput {
	s.Url = &v
	return s
}

type DescribeStudioLifecycleConfigInput struct {
	_ struct{} `type:"structure"`

	// The name of the Amazon SageMaker Studio Lifecycle Configuration to describe.
	//
	// StudioLifecycleConfigName is a required field
	StudioLifecycleConfigName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeStudioLifecycleConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeStudioLifecycleConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeStudioLifecycleConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeStudioLifecycleConfigInput"}
	if s.StudioLifecycleConfigName == nil {
		invalidParams.Add(request.NewErrParamRequired("StudioLifecycleConfigName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetStudioLifecycleConfigName sets the StudioLifecycleConfigName field's value.
func (s *DescribeStudioLifecycleConfigInput) SetStudioLifecycleConfigName(v string) *DescribeStudioLifecycleConfigInput {
	s.StudioLifecycleConfigName = &v
	return s
}

type DescribeStudioLifecycleConfigOutput struct {
	_ struct{} `type:"structure"`

	// The creation time of the Amazon SageMaker Studio Lifecycle Configuration.
	CreationTime *time.Time `type:"timestamp"`

	// This value is equivalent to CreationTime because Amazon SageMaker Studio
	// Lifecycle Configurations are immutable.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The App type that the Lifecycle Configuration is attached to.
	StudioLifecycleConfigAppType *string `type:"string" enum:"StudioLifecycleConfigAppType"`

	// The ARN of the Lifecycle Configuration to describe.
	StudioLifecycleConfigArn *string `type:"string"`

	// The content of your Amazon SageMaker Studio Lifecycle Configuration script.
	StudioLifecycleConfigContent *string `min:"1" type:"string"`

	// The name of the Amazon SageMaker Studio Lifecycle Configuration that is described.
	StudioLifecycleConfigName *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeStudioLifecycleConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeStudioLifecycleConfigOutput) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeStudioLifecycleConfigOutput) SetCreationTime(v time.Time) *DescribeStudioLifecycleConfigOutput {
	s.CreationTime = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeStudioLifecycleConfigOutput) SetLastModifiedTime(v time.Time) *DescribeStudioLifecycleConfigOutput {
	s.LastModifiedTime = &v
	return s
}

// SetStudioLifecycleConfigAppType sets the StudioLifecycleConfigAppType field's value.
func (s *DescribeStudioLifecycleConfigOutput) SetStudioLifecycleConfigAppType(v string) *DescribeStudioLifecycleConfigOutput {
	s.StudioLifecycleConfigAppType = &v
	return s
}

// SetStudioLifecycleConfigArn sets the StudioLifecycleConfigArn field's value.
func (s *DescribeStudioLifecycleConfigOutput) SetStudioLifecycleConfigArn(v string) *DescribeStudioLifecycleConfigOutput {
	s.StudioLifecycleConfigArn = &v
	return s
}

// SetStudioLifecycleConfigContent sets the StudioLifecycleConfigContent field's value.
func (s *DescribeStudioLifecycleConfigOutput) SetStudioLifecycleConfigContent(v string) *DescribeStudioLifecycleConfigOutput {
	s.StudioLifecycleConfigContent = &v
	return s
}

// SetStudioLifecycleConfigName sets the StudioLifecycleConfigName field's value.
func (s *DescribeStudioLifecycleConfigOutput) SetStudioLifecycleConfigName(v string) *DescribeStudioLifecycleConfigOutput {
	s.StudioLifecycleConfigName = &v
	return s
}

type DescribeSubscribedWorkteamInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the subscribed work team to describe.
	//
	// WorkteamArn is a required field
	WorkteamArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeSubscribedWorkteamInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeSubscribedWorkteamInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeSubscribedWorkteamInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeSubscribedWorkteamInput"}
	if s.WorkteamArn == nil {
		invalidParams.Add(request.NewErrParamRequired("WorkteamArn"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetWorkteamArn sets the WorkteamArn field's value.
func (s *DescribeSubscribedWorkteamInput) SetWorkteamArn(v string) *DescribeSubscribedWorkteamInput {
	s.WorkteamArn = &v
	return s
}

type DescribeSubscribedWorkteamOutput struct {
	_ struct{} `type:"structure"`

	// A Workteam instance that contains information about the work team.
	//
	// SubscribedWorkteam is a required field
	SubscribedWorkteam *SubscribedWorkteam `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeSubscribedWorkteamOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeSubscribedWorkteamOutput) GoString() string {
	return s.String()
}

// SetSubscribedWorkteam sets the SubscribedWorkteam field's value.
func (s *DescribeSubscribedWorkteamOutput) SetSubscribedWorkteam(v *SubscribedWorkteam) *DescribeSubscribedWorkteamOutput {
	s.SubscribedWorkteam = v
	return s
}

type DescribeTrainingJobInput struct {
	_ struct{} `type:"structure"`

	// The name of the training job.
	//
	// TrainingJobName is a required field
	TrainingJobName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeTrainingJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeTrainingJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeTrainingJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeTrainingJobInput"}
	if s.TrainingJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("TrainingJobName"))
	}
	if s.TrainingJobName != nil && len(*s.TrainingJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TrainingJobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetTrainingJobName sets the TrainingJobName field's value.
func (s *DescribeTrainingJobInput) SetTrainingJobName(v string) *DescribeTrainingJobInput {
	s.TrainingJobName = &v
	return s
}

type DescribeTrainingJobOutput struct {
	_ struct{} `type:"structure"`

	// Information about the algorithm used for training, and algorithm metadata.
	//
	// AlgorithmSpecification is a required field
	AlgorithmSpecification *AlgorithmSpecification `type:"structure" required:"true"`

	// The Amazon Resource Name (ARN) of an AutoML job.
	AutoMLJobArn *string `min:"1" type:"string"`

	// The billable time in seconds. Billable time refers to the absolute wall-clock
	// time.
	//
	// Multiply BillableTimeInSeconds by the number of instances (InstanceCount)
	// in your training cluster to get the total compute time SageMaker bills you
	// if you run distributed training. The formula is as follows: BillableTimeInSeconds
	// * InstanceCount .
	//
	// You can calculate the savings from using managed spot training using the
	// formula (1 - BillableTimeInSeconds / TrainingTimeInSeconds) * 100. For example,
	// if BillableTimeInSeconds is 100 and TrainingTimeInSeconds is 500, the savings
	// is 80%.
	BillableTimeInSeconds *int64 `min:"1" type:"integer"`

	// Contains information about the output location for managed spot training
	// checkpoint data.
	CheckpointConfig *CheckpointConfig `type:"structure"`

	// A timestamp that indicates when the training job was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// Configuration information for the Amazon SageMaker Debugger hook parameters,
	// metric and tensor collections, and storage paths. To learn more about how
	// to configure the DebugHookConfig parameter, see Use the SageMaker and Debugger
	// Configuration API Operations to Create, Update, and Debug Your Training Job
	// (https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html).
	DebugHookConfig *DebugHookConfig `type:"structure"`

	// Configuration information for Amazon SageMaker Debugger rules for debugging
	// output tensors.
	DebugRuleConfigurations []*DebugRuleConfiguration `type:"list"`

	// Evaluation status of Amazon SageMaker Debugger rules for debugging on a training
	// job.
	DebugRuleEvaluationStatuses []*DebugRuleEvaluationStatus `type:"list"`

	// To encrypt all communications between ML compute instances in distributed
	// training, choose True. Encryption provides greater security for distributed
	// training, but training might take longer. How long it takes depends on the
	// amount of communication between compute instances, especially if you use
	// a deep learning algorithms in distributed training.
	EnableInterContainerTrafficEncryption *bool `type:"boolean"`

	// A Boolean indicating whether managed spot training is enabled (True) or not
	// (False).
	EnableManagedSpotTraining *bool `type:"boolean"`

	// If you want to allow inbound or outbound network calls, except for calls
	// between peers within a training cluster for distributed training, choose
	// True. If you enable network isolation for training jobs that are configured
	// to use a VPC, SageMaker downloads and uploads customer data and model artifacts
	// through the specified VPC, but the training container does not have network
	// access.
	EnableNetworkIsolation *bool `type:"boolean"`

	// The environment variables to set in the Docker container.
	Environment map[string]*string `type:"map"`

	// Associates a SageMaker job as a trial component with an experiment and trial.
	// Specified when you call the following APIs:
	//
	//    * CreateProcessingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html)
	//
	//    * CreateTrainingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)
	//
	//    * CreateTransformJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html)
	ExperimentConfig *ExperimentConfig `type:"structure"`

	// If the training job failed, the reason it failed.
	FailureReason *string `type:"string"`

	// A collection of MetricData objects that specify the names, values, and dates
	// and times that the training algorithm emitted to Amazon CloudWatch.
	FinalMetricDataList []*MetricData `type:"list"`

	// Algorithm-specific parameters.
	HyperParameters map[string]*string `type:"map"`

	// Contains information about the infrastructure health check configuration
	// for the training job.
	InfraCheckConfig *InfraCheckConfig `type:"structure"`

	// An array of Channel objects that describes each data input channel.
	InputDataConfig []*Channel `min:"1" type:"list"`

	// The Amazon Resource Name (ARN) of the SageMaker Ground Truth labeling job
	// that created the transform or training job.
	LabelingJobArn *string `type:"string"`

	// A timestamp that indicates when the status of the training job was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// Information about the Amazon S3 location that is configured for storing model
	// artifacts.
	//
	// ModelArtifacts is a required field
	ModelArtifacts *ModelArtifacts `type:"structure" required:"true"`

	// The S3 path where model artifacts that you configured when creating the job
	// are stored. SageMaker creates subfolders for model artifacts.
	OutputDataConfig *OutputDataConfig `type:"structure"`

	// Configuration information for Amazon SageMaker Debugger system monitoring,
	// framework profiling, and storage paths.
	ProfilerConfig *ProfilerConfig `type:"structure"`

	// Configuration information for Amazon SageMaker Debugger rules for profiling
	// system and framework metrics.
	ProfilerRuleConfigurations []*ProfilerRuleConfiguration `type:"list"`

	// Evaluation status of Amazon SageMaker Debugger rules for profiling on a training
	// job.
	ProfilerRuleEvaluationStatuses []*ProfilerRuleEvaluationStatus `type:"list"`

	// Profiling status of a training job.
	ProfilingStatus *string `type:"string" enum:"ProfilingStatus"`

	// Configuration for remote debugging. To learn more about the remote debugging
	// functionality of SageMaker, see Access a training container through Amazon
	// Web Services Systems Manager (SSM) for remote debugging (https://docs.aws.amazon.com/sagemaker/latest/dg/train-remote-debugging.html).
	RemoteDebugConfig *RemoteDebugConfig `type:"structure"`

	// Resources, including ML compute instances and ML storage volumes, that are
	// configured for model training.
	//
	// ResourceConfig is a required field
	ResourceConfig *ResourceConfig `type:"structure" required:"true"`

	// The number of times to retry the job when the job fails due to an InternalServerError.
	RetryStrategy *RetryStrategy `type:"structure"`

	// The Amazon Web Services Identity and Access Management (IAM) role configured
	// for the training job.
	RoleArn *string `min:"20" type:"string"`

	// Provides detailed information about the state of the training job. For detailed
	// information on the secondary status of the training job, see StatusMessage
	// under SecondaryStatusTransition (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SecondaryStatusTransition.html).
	//
	// SageMaker provides primary statuses and secondary statuses that apply to
	// each of them:
	//
	// InProgress
	//
	//    * Starting - Starting the training job.
	//
	//    * Downloading - An optional stage for algorithms that support File training
	//    input mode. It indicates that data is being downloaded to the ML storage
	//    volumes.
	//
	//    * Training - Training is in progress.
	//
	//    * Interrupted - The job stopped because the managed spot training instances
	//    were interrupted.
	//
	//    * Uploading - Training is complete and the model artifacts are being uploaded
	//    to the S3 location.
	//
	// Completed
	//
	//    * Completed - The training job has completed.
	//
	// Failed
	//
	//    * Failed - The training job has failed. The reason for the failure is
	//    returned in the FailureReason field of DescribeTrainingJobResponse.
	//
	// Stopped
	//
	//    * MaxRuntimeExceeded - The job stopped because it exceeded the maximum
	//    allowed runtime.
	//
	//    * MaxWaitTimeExceeded - The job stopped because it exceeded the maximum
	//    allowed wait time.
	//
	//    * Stopped - The training job has stopped.
	//
	// Stopping
	//
	//    * Stopping - Stopping the training job.
	//
	// Valid values for SecondaryStatus are subject to change.
	//
	// We no longer support the following secondary statuses:
	//
	//    * LaunchingMLInstances
	//
	//    * PreparingTraining
	//
	//    * DownloadingTrainingImage
	//
	// SecondaryStatus is a required field
	SecondaryStatus *string `type:"string" required:"true" enum:"SecondaryStatus"`

	// A history of all of the secondary statuses that the training job has transitioned
	// through.
	SecondaryStatusTransitions []*SecondaryStatusTransition `type:"list"`

	// Specifies a limit to how long a model training job can run. It also specifies
	// how long a managed Spot training job has to complete. When the job reaches
	// the time limit, SageMaker ends the training job. Use this API to cap model
	// training costs.
	//
	// To stop a job, SageMaker sends the algorithm the SIGTERM signal, which delays
	// job termination for 120 seconds. Algorithms can use this 120-second window
	// to save the model artifacts, so the results of training are not lost.
	//
	// StoppingCondition is a required field
	StoppingCondition *StoppingCondition `type:"structure" required:"true"`

	// Configuration of storage locations for the Amazon SageMaker Debugger TensorBoard
	// output data.
	TensorBoardOutputConfig *TensorBoardOutputConfig `type:"structure"`

	// Indicates the time when the training job ends on training instances. You
	// are billed for the time interval between the value of TrainingStartTime and
	// this time. For successful jobs and stopped jobs, this is the time after model
	// artifacts are uploaded. For failed jobs, this is the time when SageMaker
	// detects a job failure.
	TrainingEndTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the training job.
	//
	// TrainingJobArn is a required field
	TrainingJobArn *string `type:"string" required:"true"`

	// Name of the model training job.
	//
	// TrainingJobName is a required field
	TrainingJobName *string `min:"1" type:"string" required:"true"`

	// The status of the training job.
	//
	// SageMaker provides the following training job statuses:
	//
	//    * InProgress - The training is in progress.
	//
	//    * Completed - The training job has completed.
	//
	//    * Failed - The training job has failed. To see the reason for the failure,
	//    see the FailureReason field in the response to a DescribeTrainingJobResponse
	//    call.
	//
	//    * Stopping - The training job is stopping.
	//
	//    * Stopped - The training job has stopped.
	//
	// For more detailed information, see SecondaryStatus.
	//
	// TrainingJobStatus is a required field
	TrainingJobStatus *string `type:"string" required:"true" enum:"TrainingJobStatus"`

	// Indicates the time when the training job starts on training instances. You
	// are billed for the time interval between this time and the value of TrainingEndTime.
	// The start time in CloudWatch Logs might be later than this time. The difference
	// is due to the time it takes to download the training data and to the size
	// of the training container.
	TrainingStartTime *time.Time `type:"timestamp"`

	// The training time in seconds.
	TrainingTimeInSeconds *int64 `min:"1" type:"integer"`

	// The Amazon Resource Name (ARN) of the associated hyperparameter tuning job
	// if the training job was launched by a hyperparameter tuning job.
	TuningJobArn *string `type:"string"`

	// A VpcConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html)
	// object that specifies the VPC that this training job has access to. For more
	// information, see Protect Training Jobs by Using an Amazon Virtual Private
	// Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html).
	VpcConfig *VpcConfig `type:"structure"`

	// The status of the warm pool associated with the training job.
	WarmPoolStatus *WarmPoolStatus `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeTrainingJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeTrainingJobOutput) GoString() string {
	return s.String()
}

// SetAlgorithmSpecification sets the AlgorithmSpecification field's value.
func (s *DescribeTrainingJobOutput) SetAlgorithmSpecification(v *AlgorithmSpecification) *DescribeTrainingJobOutput {
	s.AlgorithmSpecification = v
	return s
}

// SetAutoMLJobArn sets the AutoMLJobArn field's value.
func (s *DescribeTrainingJobOutput) SetAutoMLJobArn(v string) *DescribeTrainingJobOutput {
	s.AutoMLJobArn = &v
	return s
}

// SetBillableTimeInSeconds sets the BillableTimeInSeconds field's value.
func (s *DescribeTrainingJobOutput) SetBillableTimeInSeconds(v int64) *DescribeTrainingJobOutput {
	s.BillableTimeInSeconds = &v
	return s
}

// SetCheckpointConfig sets the CheckpointConfig field's value.
func (s *DescribeTrainingJobOutput) SetCheckpointConfig(v *CheckpointConfig) *DescribeTrainingJobOutput {
	s.CheckpointConfig = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeTrainingJobOutput) SetCreationTime(v time.Time) *DescribeTrainingJobOutput {
	s.CreationTime = &v
	return s
}

// SetDebugHookConfig sets the DebugHookConfig field's value.
func (s *DescribeTrainingJobOutput) SetDebugHookConfig(v *DebugHookConfig) *DescribeTrainingJobOutput {
	s.DebugHookConfig = v
	return s
}

// SetDebugRuleConfigurations sets the DebugRuleConfigurations field's value.
func (s *DescribeTrainingJobOutput) SetDebugRuleConfigurations(v []*DebugRuleConfiguration) *DescribeTrainingJobOutput {
	s.DebugRuleConfigurations = v
	return s
}

// SetDebugRuleEvaluationStatuses sets the DebugRuleEvaluationStatuses field's value.
func (s *DescribeTrainingJobOutput) SetDebugRuleEvaluationStatuses(v []*DebugRuleEvaluationStatus) *DescribeTrainingJobOutput {
	s.DebugRuleEvaluationStatuses = v
	return s
}

// SetEnableInterContainerTrafficEncryption sets the EnableInterContainerTrafficEncryption field's value.
func (s *DescribeTrainingJobOutput) SetEnableInterContainerTrafficEncryption(v bool) *DescribeTrainingJobOutput {
	s.EnableInterContainerTrafficEncryption = &v
	return s
}

// SetEnableManagedSpotTraining sets the EnableManagedSpotTraining field's value.
func (s *DescribeTrainingJobOutput) SetEnableManagedSpotTraining(v bool) *DescribeTrainingJobOutput {
	s.EnableManagedSpotTraining = &v
	return s
}

// SetEnableNetworkIsolation sets the EnableNetworkIsolation field's value.
func (s *DescribeTrainingJobOutput) SetEnableNetworkIsolation(v bool) *DescribeTrainingJobOutput {
	s.EnableNetworkIsolation = &v
	return s
}

// SetEnvironment sets the Environment field's value.
func (s *DescribeTrainingJobOutput) SetEnvironment(v map[string]*string) *DescribeTrainingJobOutput {
	s.Environment = v
	return s
}

// SetExperimentConfig sets the ExperimentConfig field's value.
func (s *DescribeTrainingJobOutput) SetExperimentConfig(v *ExperimentConfig) *DescribeTrainingJobOutput {
	s.ExperimentConfig = v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *DescribeTrainingJobOutput) SetFailureReason(v string) *DescribeTrainingJobOutput {
	s.FailureReason = &v
	return s
}

// SetFinalMetricDataList sets the FinalMetricDataList field's value.
func (s *DescribeTrainingJobOutput) SetFinalMetricDataList(v []*MetricData) *DescribeTrainingJobOutput {
	s.FinalMetricDataList = v
	return s
}

// SetHyperParameters sets the HyperParameters field's value.
func (s *DescribeTrainingJobOutput) SetHyperParameters(v map[string]*string) *DescribeTrainingJobOutput {
	s.HyperParameters = v
	return s
}

// SetInfraCheckConfig sets the InfraCheckConfig field's value.
func (s *DescribeTrainingJobOutput) SetInfraCheckConfig(v *InfraCheckConfig) *DescribeTrainingJobOutput {
	s.InfraCheckConfig = v
	return s
}

// SetInputDataConfig sets the InputDataConfig field's value.
func (s *DescribeTrainingJobOutput) SetInputDataConfig(v []*Channel) *DescribeTrainingJobOutput {
	s.InputDataConfig = v
	return s
}

// SetLabelingJobArn sets the LabelingJobArn field's value.
func (s *DescribeTrainingJobOutput) SetLabelingJobArn(v string) *DescribeTrainingJobOutput {
	s.LabelingJobArn = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeTrainingJobOutput) SetLastModifiedTime(v time.Time) *DescribeTrainingJobOutput {
	s.LastModifiedTime = &v
	return s
}

// SetModelArtifacts sets the ModelArtifacts field's value.
func (s *DescribeTrainingJobOutput) SetModelArtifacts(v *ModelArtifacts) *DescribeTrainingJobOutput {
	s.ModelArtifacts = v
	return s
}

// SetOutputDataConfig sets the OutputDataConfig field's value.
func (s *DescribeTrainingJobOutput) SetOutputDataConfig(v *OutputDataConfig) *DescribeTrainingJobOutput {
	s.OutputDataConfig = v
	return s
}

// SetProfilerConfig sets the ProfilerConfig field's value.
func (s *DescribeTrainingJobOutput) SetProfilerConfig(v *ProfilerConfig) *DescribeTrainingJobOutput {
	s.ProfilerConfig = v
	return s
}

// SetProfilerRuleConfigurations sets the ProfilerRuleConfigurations field's value.
func (s *DescribeTrainingJobOutput) SetProfilerRuleConfigurations(v []*ProfilerRuleConfiguration) *DescribeTrainingJobOutput {
	s.ProfilerRuleConfigurations = v
	return s
}

// SetProfilerRuleEvaluationStatuses sets the ProfilerRuleEvaluationStatuses field's value.
func (s *DescribeTrainingJobOutput) SetProfilerRuleEvaluationStatuses(v []*ProfilerRuleEvaluationStatus) *DescribeTrainingJobOutput {
	s.ProfilerRuleEvaluationStatuses = v
	return s
}

// SetProfilingStatus sets the ProfilingStatus field's value.
func (s *DescribeTrainingJobOutput) SetProfilingStatus(v string) *DescribeTrainingJobOutput {
	s.ProfilingStatus = &v
	return s
}

// SetRemoteDebugConfig sets the RemoteDebugConfig field's value.
func (s *DescribeTrainingJobOutput) SetRemoteDebugConfig(v *RemoteDebugConfig) *DescribeTrainingJobOutput {
	s.RemoteDebugConfig = v
	return s
}

// SetResourceConfig sets the ResourceConfig field's value.
func (s *DescribeTrainingJobOutput) SetResourceConfig(v *ResourceConfig) *DescribeTrainingJobOutput {
	s.ResourceConfig = v
	return s
}

// SetRetryStrategy sets the RetryStrategy field's value.
func (s *DescribeTrainingJobOutput) SetRetryStrategy(v *RetryStrategy) *DescribeTrainingJobOutput {
	s.RetryStrategy = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *DescribeTrainingJobOutput) SetRoleArn(v string) *DescribeTrainingJobOutput {
	s.RoleArn = &v
	return s
}

// SetSecondaryStatus sets the SecondaryStatus field's value.
func (s *DescribeTrainingJobOutput) SetSecondaryStatus(v string) *DescribeTrainingJobOutput {
	s.SecondaryStatus = &v
	return s
}

// SetSecondaryStatusTransitions sets the SecondaryStatusTransitions field's value.
func (s *DescribeTrainingJobOutput) SetSecondaryStatusTransitions(v []*SecondaryStatusTransition) *DescribeTrainingJobOutput {
	s.SecondaryStatusTransitions = v
	return s
}

// SetStoppingCondition sets the StoppingCondition field's value.
func (s *DescribeTrainingJobOutput) SetStoppingCondition(v *StoppingCondition) *DescribeTrainingJobOutput {
	s.StoppingCondition = v
	return s
}

// SetTensorBoardOutputConfig sets the TensorBoardOutputConfig field's value.
func (s *DescribeTrainingJobOutput) SetTensorBoardOutputConfig(v *TensorBoardOutputConfig) *DescribeTrainingJobOutput {
	s.TensorBoardOutputConfig = v
	return s
}

// SetTrainingEndTime sets the TrainingEndTime field's value.
func (s *DescribeTrainingJobOutput) SetTrainingEndTime(v time.Time) *DescribeTrainingJobOutput {
	s.TrainingEndTime = &v
	return s
}

// SetTrainingJobArn sets the TrainingJobArn field's value.
func (s *DescribeTrainingJobOutput) SetTrainingJobArn(v string) *DescribeTrainingJobOutput {
	s.TrainingJobArn = &v
	return s
}

// SetTrainingJobName sets the TrainingJobName field's value.
func (s *DescribeTrainingJobOutput) SetTrainingJobName(v string) *DescribeTrainingJobOutput {
	s.TrainingJobName = &v
	return s
}

// SetTrainingJobStatus sets the TrainingJobStatus field's value.
func (s *DescribeTrainingJobOutput) SetTrainingJobStatus(v string) *DescribeTrainingJobOutput {
	s.TrainingJobStatus = &v
	return s
}

// SetTrainingStartTime sets the TrainingStartTime field's value.
func (s *DescribeTrainingJobOutput) SetTrainingStartTime(v time.Time) *DescribeTrainingJobOutput {
	s.TrainingStartTime = &v
	return s
}

// SetTrainingTimeInSeconds sets the TrainingTimeInSeconds field's value.
func (s *DescribeTrainingJobOutput) SetTrainingTimeInSeconds(v int64) *DescribeTrainingJobOutput {
	s.TrainingTimeInSeconds = &v
	return s
}

// SetTuningJobArn sets the TuningJobArn field's value.
func (s *DescribeTrainingJobOutput) SetTuningJobArn(v string) *DescribeTrainingJobOutput {
	s.TuningJobArn = &v
	return s
}

// SetVpcConfig sets the VpcConfig field's value.
func (s *DescribeTrainingJobOutput) SetVpcConfig(v *VpcConfig) *DescribeTrainingJobOutput {
	s.VpcConfig = v
	return s
}

// SetWarmPoolStatus sets the WarmPoolStatus field's value.
func (s *DescribeTrainingJobOutput) SetWarmPoolStatus(v *WarmPoolStatus) *DescribeTrainingJobOutput {
	s.WarmPoolStatus = v
	return s
}

type DescribeTransformJobInput struct {
	_ struct{} `type:"structure"`

	// The name of the transform job that you want to view details of.
	//
	// TransformJobName is a required field
	TransformJobName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeTransformJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeTransformJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeTransformJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeTransformJobInput"}
	if s.TransformJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("TransformJobName"))
	}
	if s.TransformJobName != nil && len(*s.TransformJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TransformJobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetTransformJobName sets the TransformJobName field's value.
func (s *DescribeTransformJobInput) SetTransformJobName(v string) *DescribeTransformJobInput {
	s.TransformJobName = &v
	return s
}

type DescribeTransformJobOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the AutoML transform job.
	AutoMLJobArn *string `min:"1" type:"string"`

	// Specifies the number of records to include in a mini-batch for an HTTP inference
	// request. A record is a single unit of input data that inference can be made
	// on. For example, a single line in a CSV file is a record.
	//
	// To enable the batch strategy, you must set SplitType to Line, RecordIO, or
	// TFRecord.
	BatchStrategy *string `type:"string" enum:"BatchStrategy"`

	// A timestamp that shows when the transform Job was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// Configuration to control how SageMaker captures inference data.
	DataCaptureConfig *BatchDataCaptureConfig `type:"structure"`

	// The data structure used to specify the data to be used for inference in a
	// batch transform job and to associate the data that is relevant to the prediction
	// results in the output. The input filter provided allows you to exclude input
	// data that is not needed for inference in a batch transform job. The output
	// filter provided allows you to include input data relevant to interpreting
	// the predictions in the output from the job. For more information, see Associate
	// Prediction Results with their Corresponding Input Records (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html).
	DataProcessing *DataProcessing `type:"structure"`

	// The environment variables to set in the Docker container. We support up to
	// 16 key and values entries in the map.
	Environment map[string]*string `type:"map"`

	// Associates a SageMaker job as a trial component with an experiment and trial.
	// Specified when you call the following APIs:
	//
	//    * CreateProcessingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html)
	//
	//    * CreateTrainingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)
	//
	//    * CreateTransformJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html)
	ExperimentConfig *ExperimentConfig `type:"structure"`

	// If the transform job failed, FailureReason describes why it failed. A transform
	// job creates a log file, which includes error messages, and stores it as an
	// Amazon S3 object. For more information, see Log Amazon SageMaker Events with
	// Amazon CloudWatch (https://docs.aws.amazon.com/sagemaker/latest/dg/logging-cloudwatch.html).
	FailureReason *string `type:"string"`

	// The Amazon Resource Name (ARN) of the Amazon SageMaker Ground Truth labeling
	// job that created the transform or training job.
	LabelingJobArn *string `type:"string"`

	// The maximum number of parallel requests on each instance node that can be
	// launched in a transform job. The default value is 1.
	MaxConcurrentTransforms *int64 `type:"integer"`

	// The maximum payload size, in MB, used in the transform job.
	MaxPayloadInMB *int64 `type:"integer"`

	// The timeout and maximum number of retries for processing a transform job
	// invocation.
	ModelClientConfig *ModelClientConfig `type:"structure"`

	// The name of the model used in the transform job.
	//
	// ModelName is a required field
	ModelName *string `type:"string" required:"true"`

	// Indicates when the transform job has been completed, or has stopped or failed.
	// You are billed for the time interval between this time and the value of TransformStartTime.
	TransformEndTime *time.Time `type:"timestamp"`

	// Describes the dataset to be transformed and the Amazon S3 location where
	// it is stored.
	//
	// TransformInput is a required field
	TransformInput *TransformInput `type:"structure" required:"true"`

	// The Amazon Resource Name (ARN) of the transform job.
	//
	// TransformJobArn is a required field
	TransformJobArn *string `type:"string" required:"true"`

	// The name of the transform job.
	//
	// TransformJobName is a required field
	TransformJobName *string `min:"1" type:"string" required:"true"`

	// The status of the transform job. If the transform job failed, the reason
	// is returned in the FailureReason field.
	//
	// TransformJobStatus is a required field
	TransformJobStatus *string `type:"string" required:"true" enum:"TransformJobStatus"`

	// Identifies the Amazon S3 location where you want Amazon SageMaker to save
	// the results from the transform job.
	TransformOutput *TransformOutput `type:"structure"`

	// Describes the resources, including ML instance types and ML instance count,
	// to use for the transform job.
	//
	// TransformResources is a required field
	TransformResources *TransformResources `type:"structure" required:"true"`

	// Indicates when the transform job starts on ML instances. You are billed for
	// the time interval between this time and the value of TransformEndTime.
	TransformStartTime *time.Time `type:"timestamp"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeTransformJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeTransformJobOutput) GoString() string {
	return s.String()
}

// SetAutoMLJobArn sets the AutoMLJobArn field's value.
func (s *DescribeTransformJobOutput) SetAutoMLJobArn(v string) *DescribeTransformJobOutput {
	s.AutoMLJobArn = &v
	return s
}

// SetBatchStrategy sets the BatchStrategy field's value.
func (s *DescribeTransformJobOutput) SetBatchStrategy(v string) *DescribeTransformJobOutput {
	s.BatchStrategy = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeTransformJobOutput) SetCreationTime(v time.Time) *DescribeTransformJobOutput {
	s.CreationTime = &v
	return s
}

// SetDataCaptureConfig sets the DataCaptureConfig field's value.
func (s *DescribeTransformJobOutput) SetDataCaptureConfig(v *BatchDataCaptureConfig) *DescribeTransformJobOutput {
	s.DataCaptureConfig = v
	return s
}

// SetDataProcessing sets the DataProcessing field's value.
func (s *DescribeTransformJobOutput) SetDataProcessing(v *DataProcessing) *DescribeTransformJobOutput {
	s.DataProcessing = v
	return s
}

// SetEnvironment sets the Environment field's value.
func (s *DescribeTransformJobOutput) SetEnvironment(v map[string]*string) *DescribeTransformJobOutput {
	s.Environment = v
	return s
}

// SetExperimentConfig sets the ExperimentConfig field's value.
func (s *DescribeTransformJobOutput) SetExperimentConfig(v *ExperimentConfig) *DescribeTransformJobOutput {
	s.ExperimentConfig = v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *DescribeTransformJobOutput) SetFailureReason(v string) *DescribeTransformJobOutput {
	s.FailureReason = &v
	return s
}

// SetLabelingJobArn sets the LabelingJobArn field's value.
func (s *DescribeTransformJobOutput) SetLabelingJobArn(v string) *DescribeTransformJobOutput {
	s.LabelingJobArn = &v
	return s
}

// SetMaxConcurrentTransforms sets the MaxConcurrentTransforms field's value.
func (s *DescribeTransformJobOutput) SetMaxConcurrentTransforms(v int64) *DescribeTransformJobOutput {
	s.MaxConcurrentTransforms = &v
	return s
}

// SetMaxPayloadInMB sets the MaxPayloadInMB field's value.
func (s *DescribeTransformJobOutput) SetMaxPayloadInMB(v int64) *DescribeTransformJobOutput {
	s.MaxPayloadInMB = &v
	return s
}

// SetModelClientConfig sets the ModelClientConfig field's value.
func (s *DescribeTransformJobOutput) SetModelClientConfig(v *ModelClientConfig) *DescribeTransformJobOutput {
	s.ModelClientConfig = v
	return s
}

// SetModelName sets the ModelName field's value.
func (s *DescribeTransformJobOutput) SetModelName(v string) *DescribeTransformJobOutput {
	s.ModelName = &v
	return s
}

// SetTransformEndTime sets the TransformEndTime field's value.
func (s *DescribeTransformJobOutput) SetTransformEndTime(v time.Time) *DescribeTransformJobOutput {
	s.TransformEndTime = &v
	return s
}

// SetTransformInput sets the TransformInput field's value.
func (s *DescribeTransformJobOutput) SetTransformInput(v *TransformInput) *DescribeTransformJobOutput {
	s.TransformInput = v
	return s
}

// SetTransformJobArn sets the TransformJobArn field's value.
func (s *DescribeTransformJobOutput) SetTransformJobArn(v string) *DescribeTransformJobOutput {
	s.TransformJobArn = &v
	return s
}

// SetTransformJobName sets the TransformJobName field's value.
func (s *DescribeTransformJobOutput) SetTransformJobName(v string) *DescribeTransformJobOutput {
	s.TransformJobName = &v
	return s
}

// SetTransformJobStatus sets the TransformJobStatus field's value.
func (s *DescribeTransformJobOutput) SetTransformJobStatus(v string) *DescribeTransformJobOutput {
	s.TransformJobStatus = &v
	return s
}

// SetTransformOutput sets the TransformOutput field's value.
func (s *DescribeTransformJobOutput) SetTransformOutput(v *TransformOutput) *DescribeTransformJobOutput {
	s.TransformOutput = v
	return s
}

// SetTransformResources sets the TransformResources field's value.
func (s *DescribeTransformJobOutput) SetTransformResources(v *TransformResources) *DescribeTransformJobOutput {
	s.TransformResources = v
	return s
}

// SetTransformStartTime sets the TransformStartTime field's value.
func (s *DescribeTransformJobOutput) SetTransformStartTime(v time.Time) *DescribeTransformJobOutput {
	s.TransformStartTime = &v
	return s
}

type DescribeTrialComponentInput struct {
	_ struct{} `type:"structure"`

	// The name of the trial component to describe.
	//
	// TrialComponentName is a required field
	TrialComponentName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeTrialComponentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeTrialComponentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeTrialComponentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeTrialComponentInput"}
	if s.TrialComponentName == nil {
		invalidParams.Add(request.NewErrParamRequired("TrialComponentName"))
	}
	if s.TrialComponentName != nil && len(*s.TrialComponentName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TrialComponentName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetTrialComponentName sets the TrialComponentName field's value.
func (s *DescribeTrialComponentInput) SetTrialComponentName(v string) *DescribeTrialComponentInput {
	s.TrialComponentName = &v
	return s
}

type DescribeTrialComponentOutput struct {
	_ struct{} `type:"structure"`

	// Who created the trial component.
	CreatedBy *UserContext `type:"structure"`

	// When the component was created.
	CreationTime *time.Time `type:"timestamp"`

	// The name of the component as displayed. If DisplayName isn't specified, TrialComponentName
	// is displayed.
	DisplayName *string `min:"1" type:"string"`

	// When the component ended.
	EndTime *time.Time `type:"timestamp"`

	// The input artifacts of the component.
	InputArtifacts map[string]*TrialComponentArtifact `type:"map"`

	// Who last modified the component.
	LastModifiedBy *UserContext `type:"structure"`

	// When the component was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the lineage group.
	LineageGroupArn *string `type:"string"`

	// Metadata properties of the tracking entity, trial, or trial component.
	MetadataProperties *MetadataProperties `type:"structure"`

	// The metrics for the component.
	Metrics []*TrialComponentMetricSummary `type:"list"`

	// The output artifacts of the component.
	OutputArtifacts map[string]*TrialComponentArtifact `type:"map"`

	// The hyperparameters of the component.
	Parameters map[string]*TrialComponentParameterValue `type:"map"`

	// The Amazon Resource Name (ARN) of the source and, optionally, the job type.
	Source *TrialComponentSource `type:"structure"`

	// A list of ARNs and, if applicable, job types for multiple sources of an experiment
	// run.
	Sources []*TrialComponentSource `type:"list"`

	// When the component started.
	StartTime *time.Time `type:"timestamp"`

	// The status of the component. States include:
	//
	//    * InProgress
	//
	//    * Completed
	//
	//    * Failed
	Status *TrialComponentStatus `type:"structure"`

	// The Amazon Resource Name (ARN) of the trial component.
	TrialComponentArn *string `type:"string"`

	// The name of the trial component.
	TrialComponentName *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeTrialComponentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeTrialComponentOutput) GoString() string {
	return s.String()
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *DescribeTrialComponentOutput) SetCreatedBy(v *UserContext) *DescribeTrialComponentOutput {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeTrialComponentOutput) SetCreationTime(v time.Time) *DescribeTrialComponentOutput {
	s.CreationTime = &v
	return s
}

// SetDisplayName sets the DisplayName field's value.
func (s *DescribeTrialComponentOutput) SetDisplayName(v string) *DescribeTrialComponentOutput {
	s.DisplayName = &v
	return s
}

// SetEndTime sets the EndTime field's value.
func (s *DescribeTrialComponentOutput) SetEndTime(v time.Time) *DescribeTrialComponentOutput {
	s.EndTime = &v
	return s
}

// SetInputArtifacts sets the InputArtifacts field's value.
func (s *DescribeTrialComponentOutput) SetInputArtifacts(v map[string]*TrialComponentArtifact) *DescribeTrialComponentOutput {
	s.InputArtifacts = v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *DescribeTrialComponentOutput) SetLastModifiedBy(v *UserContext) *DescribeTrialComponentOutput {
	s.LastModifiedBy = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeTrialComponentOutput) SetLastModifiedTime(v time.Time) *DescribeTrialComponentOutput {
	s.LastModifiedTime = &v
	return s
}

// SetLineageGroupArn sets the LineageGroupArn field's value.
func (s *DescribeTrialComponentOutput) SetLineageGroupArn(v string) *DescribeTrialComponentOutput {
	s.LineageGroupArn = &v
	return s
}

// SetMetadataProperties sets the MetadataProperties field's value.
func (s *DescribeTrialComponentOutput) SetMetadataProperties(v *MetadataProperties) *DescribeTrialComponentOutput {
	s.MetadataProperties = v
	return s
}

// SetMetrics sets the Metrics field's value.
func (s *DescribeTrialComponentOutput) SetMetrics(v []*TrialComponentMetricSummary) *DescribeTrialComponentOutput {
	s.Metrics = v
	return s
}

// SetOutputArtifacts sets the OutputArtifacts field's value.
func (s *DescribeTrialComponentOutput) SetOutputArtifacts(v map[string]*TrialComponentArtifact) *DescribeTrialComponentOutput {
	s.OutputArtifacts = v
	return s
}

// SetParameters sets the Parameters field's value.
func (s *DescribeTrialComponentOutput) SetParameters(v map[string]*TrialComponentParameterValue) *DescribeTrialComponentOutput {
	s.Parameters = v
	return s
}

// SetSource sets the Source field's value.
func (s *DescribeTrialComponentOutput) SetSource(v *TrialComponentSource) *DescribeTrialComponentOutput {
	s.Source = v
	return s
}

// SetSources sets the Sources field's value.
func (s *DescribeTrialComponentOutput) SetSources(v []*TrialComponentSource) *DescribeTrialComponentOutput {
	s.Sources = v
	return s
}

// SetStartTime sets the StartTime field's value.
func (s *DescribeTrialComponentOutput) SetStartTime(v time.Time) *DescribeTrialComponentOutput {
	s.StartTime = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *DescribeTrialComponentOutput) SetStatus(v *TrialComponentStatus) *DescribeTrialComponentOutput {
	s.Status = v
	return s
}

// SetTrialComponentArn sets the TrialComponentArn field's value.
func (s *DescribeTrialComponentOutput) SetTrialComponentArn(v string) *DescribeTrialComponentOutput {
	s.TrialComponentArn = &v
	return s
}

// SetTrialComponentName sets the TrialComponentName field's value.
func (s *DescribeTrialComponentOutput) SetTrialComponentName(v string) *DescribeTrialComponentOutput {
	s.TrialComponentName = &v
	return s
}

type DescribeTrialInput struct {
	_ struct{} `type:"structure"`

	// The name of the trial to describe.
	//
	// TrialName is a required field
	TrialName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeTrialInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeTrialInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeTrialInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeTrialInput"}
	if s.TrialName == nil {
		invalidParams.Add(request.NewErrParamRequired("TrialName"))
	}
	if s.TrialName != nil && len(*s.TrialName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TrialName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetTrialName sets the TrialName field's value.
func (s *DescribeTrialInput) SetTrialName(v string) *DescribeTrialInput {
	s.TrialName = &v
	return s
}

type DescribeTrialOutput struct {
	_ struct{} `type:"structure"`

	// Who created the trial.
	CreatedBy *UserContext `type:"structure"`

	// When the trial was created.
	CreationTime *time.Time `type:"timestamp"`

	// The name of the trial as displayed. If DisplayName isn't specified, TrialName
	// is displayed.
	DisplayName *string `min:"1" type:"string"`

	// The name of the experiment the trial is part of.
	ExperimentName *string `min:"1" type:"string"`

	// Who last modified the trial.
	LastModifiedBy *UserContext `type:"structure"`

	// When the trial was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// Metadata properties of the tracking entity, trial, or trial component.
	MetadataProperties *MetadataProperties `type:"structure"`

	// The Amazon Resource Name (ARN) of the source and, optionally, the job type.
	Source *TrialSource `type:"structure"`

	// The Amazon Resource Name (ARN) of the trial.
	TrialArn *string `type:"string"`

	// The name of the trial.
	TrialName *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeTrialOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeTrialOutput) GoString() string {
	return s.String()
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *DescribeTrialOutput) SetCreatedBy(v *UserContext) *DescribeTrialOutput {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeTrialOutput) SetCreationTime(v time.Time) *DescribeTrialOutput {
	s.CreationTime = &v
	return s
}

// SetDisplayName sets the DisplayName field's value.
func (s *DescribeTrialOutput) SetDisplayName(v string) *DescribeTrialOutput {
	s.DisplayName = &v
	return s
}

// SetExperimentName sets the ExperimentName field's value.
func (s *DescribeTrialOutput) SetExperimentName(v string) *DescribeTrialOutput {
	s.ExperimentName = &v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *DescribeTrialOutput) SetLastModifiedBy(v *UserContext) *DescribeTrialOutput {
	s.LastModifiedBy = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeTrialOutput) SetLastModifiedTime(v time.Time) *DescribeTrialOutput {
	s.LastModifiedTime = &v
	return s
}

// SetMetadataProperties sets the MetadataProperties field's value.
func (s *DescribeTrialOutput) SetMetadataProperties(v *MetadataProperties) *DescribeTrialOutput {
	s.MetadataProperties = v
	return s
}

// SetSource sets the Source field's value.
func (s *DescribeTrialOutput) SetSource(v *TrialSource) *DescribeTrialOutput {
	s.Source = v
	return s
}

// SetTrialArn sets the TrialArn field's value.
func (s *DescribeTrialOutput) SetTrialArn(v string) *DescribeTrialOutput {
	s.TrialArn = &v
	return s
}

// SetTrialName sets the TrialName field's value.
func (s *DescribeTrialOutput) SetTrialName(v string) *DescribeTrialOutput {
	s.TrialName = &v
	return s
}

type DescribeUserProfileInput struct {
	_ struct{} `type:"structure"`

	// The domain ID.
	//
	// DomainId is a required field
	DomainId *string `type:"string" required:"true"`

	// The user profile name. This value is not case sensitive.
	//
	// UserProfileName is a required field
	UserProfileName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeUserProfileInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeUserProfileInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeUserProfileInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeUserProfileInput"}
	if s.DomainId == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainId"))
	}
	if s.UserProfileName == nil {
		invalidParams.Add(request.NewErrParamRequired("UserProfileName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainId sets the DomainId field's value.
func (s *DescribeUserProfileInput) SetDomainId(v string) *DescribeUserProfileInput {
	s.DomainId = &v
	return s
}

// SetUserProfileName sets the UserProfileName field's value.
func (s *DescribeUserProfileInput) SetUserProfileName(v string) *DescribeUserProfileInput {
	s.UserProfileName = &v
	return s
}

type DescribeUserProfileOutput struct {
	_ struct{} `type:"structure"`

	// The creation time.
	CreationTime *time.Time `type:"timestamp"`

	// The ID of the domain that contains the profile.
	DomainId *string `type:"string"`

	// The failure reason.
	FailureReason *string `type:"string"`

	// The ID of the user's profile in the Amazon Elastic File System (EFS) volume.
	HomeEfsFileSystemUid *string `type:"string"`

	// The last modified time.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The IAM Identity Center user identifier.
	SingleSignOnUserIdentifier *string `type:"string"`

	// The IAM Identity Center user value.
	SingleSignOnUserValue *string `type:"string"`

	// The status.
	Status *string `type:"string" enum:"UserProfileStatus"`

	// The user profile Amazon Resource Name (ARN).
	UserProfileArn *string `type:"string"`

	// The user profile name.
	UserProfileName *string `type:"string"`

	// A collection of settings.
	UserSettings *UserSettings `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeUserProfileOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeUserProfileOutput) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *DescribeUserProfileOutput) SetCreationTime(v time.Time) *DescribeUserProfileOutput {
	s.CreationTime = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *DescribeUserProfileOutput) SetDomainId(v string) *DescribeUserProfileOutput {
	s.DomainId = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *DescribeUserProfileOutput) SetFailureReason(v string) *DescribeUserProfileOutput {
	s.FailureReason = &v
	return s
}

// SetHomeEfsFileSystemUid sets the HomeEfsFileSystemUid field's value.
func (s *DescribeUserProfileOutput) SetHomeEfsFileSystemUid(v string) *DescribeUserProfileOutput {
	s.HomeEfsFileSystemUid = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DescribeUserProfileOutput) SetLastModifiedTime(v time.Time) *DescribeUserProfileOutput {
	s.LastModifiedTime = &v
	return s
}

// SetSingleSignOnUserIdentifier sets the SingleSignOnUserIdentifier field's value.
func (s *DescribeUserProfileOutput) SetSingleSignOnUserIdentifier(v string) *DescribeUserProfileOutput {
	s.SingleSignOnUserIdentifier = &v
	return s
}

// SetSingleSignOnUserValue sets the SingleSignOnUserValue field's value.
func (s *DescribeUserProfileOutput) SetSingleSignOnUserValue(v string) *DescribeUserProfileOutput {
	s.SingleSignOnUserValue = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *DescribeUserProfileOutput) SetStatus(v string) *DescribeUserProfileOutput {
	s.Status = &v
	return s
}

// SetUserProfileArn sets the UserProfileArn field's value.
func (s *DescribeUserProfileOutput) SetUserProfileArn(v string) *DescribeUserProfileOutput {
	s.UserProfileArn = &v
	return s
}

// SetUserProfileName sets the UserProfileName field's value.
func (s *DescribeUserProfileOutput) SetUserProfileName(v string) *DescribeUserProfileOutput {
	s.UserProfileName = &v
	return s
}

// SetUserSettings sets the UserSettings field's value.
func (s *DescribeUserProfileOutput) SetUserSettings(v *UserSettings) *DescribeUserProfileOutput {
	s.UserSettings = v
	return s
}

type DescribeWorkforceInput struct {
	_ struct{} `type:"structure"`

	// The name of the private workforce whose access you want to restrict. WorkforceName
	// is automatically set to default when a workforce is created and cannot be
	// modified.
	//
	// WorkforceName is a required field
	WorkforceName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeWorkforceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeWorkforceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeWorkforceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkforceInput"}
	if s.WorkforceName == nil {
		invalidParams.Add(request.NewErrParamRequired("WorkforceName"))
	}
	if s.WorkforceName != nil && len(*s.WorkforceName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("WorkforceName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetWorkforceName sets the WorkforceName field's value.
func (s *DescribeWorkforceInput) SetWorkforceName(v string) *DescribeWorkforceInput {
	s.WorkforceName = &v
	return s
}

type DescribeWorkforceOutput struct {
	_ struct{} `type:"structure"`

	// A single private workforce, which is automatically created when you create
	// your first private work team. You can create one private work force in each
	// Amazon Web Services Region. By default, any workforce-related API operation
	// used in a specific region will apply to the workforce created in that region.
	// To learn how to create a private workforce, see Create a Private Workforce
	// (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-create-private.html).
	//
	// Workforce is a required field
	Workforce *Workforce `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeWorkforceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeWorkforceOutput) GoString() string {
	return s.String()
}

// SetWorkforce sets the Workforce field's value.
func (s *DescribeWorkforceOutput) SetWorkforce(v *Workforce) *DescribeWorkforceOutput {
	s.Workforce = v
	return s
}

type DescribeWorkteamInput struct {
	_ struct{} `type:"structure"`

	// The name of the work team to return a description of.
	//
	// WorkteamName is a required field
	WorkteamName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeWorkteamInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeWorkteamInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeWorkteamInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkteamInput"}
	if s.WorkteamName == nil {
		invalidParams.Add(request.NewErrParamRequired("WorkteamName"))
	}
	if s.WorkteamName != nil && len(*s.WorkteamName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("WorkteamName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetWorkteamName sets the WorkteamName field's value.
func (s *DescribeWorkteamInput) SetWorkteamName(v string) *DescribeWorkteamInput {
	s.WorkteamName = &v
	return s
}

type DescribeWorkteamOutput struct {
	_ struct{} `type:"structure"`

	// A Workteam instance that contains information about the work team.
	//
	// Workteam is a required field
	Workteam *Workteam `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeWorkteamOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DescribeWorkteamOutput) GoString() string {
	return s.String()
}

// SetWorkteam sets the Workteam field's value.
func (s *DescribeWorkteamOutput) SetWorkteam(v *Workteam) *DescribeWorkteamOutput {
	s.Workteam = v
	return s
}

// Specifies weight and capacity values for a production variant.
type DesiredWeightAndCapacity struct {
	_ struct{} `type:"structure"`

	// The variant's capacity.
	DesiredInstanceCount *int64 `type:"integer"`

	// The variant's weight.
	DesiredWeight *float64 `type:"float"`

	// Specifies the serverless update concurrency configuration for an endpoint
	// variant.
	ServerlessUpdateConfig *ProductionVariantServerlessUpdateConfig `type:"structure"`

	// The name of the variant to update.
	//
	// VariantName is a required field
	VariantName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DesiredWeightAndCapacity) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DesiredWeightAndCapacity) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DesiredWeightAndCapacity) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DesiredWeightAndCapacity"}
	if s.VariantName == nil {
		invalidParams.Add(request.NewErrParamRequired("VariantName"))
	}
	if s.ServerlessUpdateConfig != nil {
		if err := s.ServerlessUpdateConfig.Validate(); err != nil {
			invalidParams.AddNested("ServerlessUpdateConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDesiredInstanceCount sets the DesiredInstanceCount field's value.
func (s *DesiredWeightAndCapacity) SetDesiredInstanceCount(v int64) *DesiredWeightAndCapacity {
	s.DesiredInstanceCount = &v
	return s
}

// SetDesiredWeight sets the DesiredWeight field's value.
func (s *DesiredWeightAndCapacity) SetDesiredWeight(v float64) *DesiredWeightAndCapacity {
	s.DesiredWeight = &v
	return s
}

// SetServerlessUpdateConfig sets the ServerlessUpdateConfig field's value.
func (s *DesiredWeightAndCapacity) SetServerlessUpdateConfig(v *ProductionVariantServerlessUpdateConfig) *DesiredWeightAndCapacity {
	s.ServerlessUpdateConfig = v
	return s
}

// SetVariantName sets the VariantName field's value.
func (s *DesiredWeightAndCapacity) SetVariantName(v string) *DesiredWeightAndCapacity {
	s.VariantName = &v
	return s
}

// Information of a particular device.
type Device struct {
	_ struct{} `type:"structure"`

	// Description of the device.
	Description *string `min:"1" type:"string"`

	// The name of the device.
	//
	// DeviceName is a required field
	DeviceName *string `min:"1" type:"string" required:"true"`

	// Amazon Web Services Internet of Things (IoT) object name.
	IotThingName *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Device) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Device) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *Device) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "Device"}
	if s.Description != nil && len(*s.Description) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
	}
	if s.DeviceName == nil {
		invalidParams.Add(request.NewErrParamRequired("DeviceName"))
	}
	if s.DeviceName != nil && len(*s.DeviceName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DeviceName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDescription sets the Description field's value.
func (s *Device) SetDescription(v string) *Device {
	s.Description = &v
	return s
}

// SetDeviceName sets the DeviceName field's value.
func (s *Device) SetDeviceName(v string) *Device {
	s.DeviceName = &v
	return s
}

// SetIotThingName sets the IotThingName field's value.
func (s *Device) SetIotThingName(v string) *Device {
	s.IotThingName = &v
	return s
}

// Contains information summarizing device details and deployment status.
type DeviceDeploymentSummary struct {
	_ struct{} `type:"structure"`

	// The name of the deployed stage.
	DeployedStageName *string `min:"1" type:"string"`

	// The time when the deployment on the device started.
	DeploymentStartTime *time.Time `type:"timestamp"`

	// The description of the device.
	Description *string `min:"1" type:"string"`

	// The ARN of the device.
	//
	// DeviceArn is a required field
	DeviceArn *string `min:"20" type:"string" required:"true"`

	// The deployment status of the device.
	DeviceDeploymentStatus *string `type:"string" enum:"DeviceDeploymentStatus"`

	// The detailed error message for the deployoment status result.
	DeviceDeploymentStatusMessage *string `type:"string"`

	// The name of the fleet to which the device belongs to.
	DeviceFleetName *string `min:"1" type:"string"`

	// The name of the device.
	//
	// DeviceName is a required field
	DeviceName *string `min:"1" type:"string" required:"true"`

	// The ARN of the edge deployment plan.
	//
	// EdgeDeploymentPlanArn is a required field
	EdgeDeploymentPlanArn *string `min:"20" type:"string" required:"true"`

	// The name of the edge deployment plan.
	//
	// EdgeDeploymentPlanName is a required field
	EdgeDeploymentPlanName *string `min:"1" type:"string" required:"true"`

	// The name of the stage in the edge deployment plan.
	//
	// StageName is a required field
	StageName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeviceDeploymentSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeviceDeploymentSummary) GoString() string {
	return s.String()
}

// SetDeployedStageName sets the DeployedStageName field's value.
func (s *DeviceDeploymentSummary) SetDeployedStageName(v string) *DeviceDeploymentSummary {
	s.DeployedStageName = &v
	return s
}

// SetDeploymentStartTime sets the DeploymentStartTime field's value.
func (s *DeviceDeploymentSummary) SetDeploymentStartTime(v time.Time) *DeviceDeploymentSummary {
	s.DeploymentStartTime = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *DeviceDeploymentSummary) SetDescription(v string) *DeviceDeploymentSummary {
	s.Description = &v
	return s
}

// SetDeviceArn sets the DeviceArn field's value.
func (s *DeviceDeploymentSummary) SetDeviceArn(v string) *DeviceDeploymentSummary {
	s.DeviceArn = &v
	return s
}

// SetDeviceDeploymentStatus sets the DeviceDeploymentStatus field's value.
func (s *DeviceDeploymentSummary) SetDeviceDeploymentStatus(v string) *DeviceDeploymentSummary {
	s.DeviceDeploymentStatus = &v
	return s
}

// SetDeviceDeploymentStatusMessage sets the DeviceDeploymentStatusMessage field's value.
func (s *DeviceDeploymentSummary) SetDeviceDeploymentStatusMessage(v string) *DeviceDeploymentSummary {
	s.DeviceDeploymentStatusMessage = &v
	return s
}

// SetDeviceFleetName sets the DeviceFleetName field's value.
func (s *DeviceDeploymentSummary) SetDeviceFleetName(v string) *DeviceDeploymentSummary {
	s.DeviceFleetName = &v
	return s
}

// SetDeviceName sets the DeviceName field's value.
func (s *DeviceDeploymentSummary) SetDeviceName(v string) *DeviceDeploymentSummary {
	s.DeviceName = &v
	return s
}

// SetEdgeDeploymentPlanArn sets the EdgeDeploymentPlanArn field's value.
func (s *DeviceDeploymentSummary) SetEdgeDeploymentPlanArn(v string) *DeviceDeploymentSummary {
	s.EdgeDeploymentPlanArn = &v
	return s
}

// SetEdgeDeploymentPlanName sets the EdgeDeploymentPlanName field's value.
func (s *DeviceDeploymentSummary) SetEdgeDeploymentPlanName(v string) *DeviceDeploymentSummary {
	s.EdgeDeploymentPlanName = &v
	return s
}

// SetStageName sets the StageName field's value.
func (s *DeviceDeploymentSummary) SetStageName(v string) *DeviceDeploymentSummary {
	s.StageName = &v
	return s
}

// Summary of the device fleet.
type DeviceFleetSummary struct {
	_ struct{} `type:"structure"`

	// Timestamp of when the device fleet was created.
	CreationTime *time.Time `type:"timestamp"`

	// Amazon Resource Name (ARN) of the device fleet.
	//
	// DeviceFleetArn is a required field
	DeviceFleetArn *string `type:"string" required:"true"`

	// Name of the device fleet.
	//
	// DeviceFleetName is a required field
	DeviceFleetName *string `min:"1" type:"string" required:"true"`

	// Timestamp of when the device fleet was last updated.
	LastModifiedTime *time.Time `type:"timestamp"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeviceFleetSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeviceFleetSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *DeviceFleetSummary) SetCreationTime(v time.Time) *DeviceFleetSummary {
	s.CreationTime = &v
	return s
}

// SetDeviceFleetArn sets the DeviceFleetArn field's value.
func (s *DeviceFleetSummary) SetDeviceFleetArn(v string) *DeviceFleetSummary {
	s.DeviceFleetArn = &v
	return s
}

// SetDeviceFleetName sets the DeviceFleetName field's value.
func (s *DeviceFleetSummary) SetDeviceFleetName(v string) *DeviceFleetSummary {
	s.DeviceFleetName = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DeviceFleetSummary) SetLastModifiedTime(v time.Time) *DeviceFleetSummary {
	s.LastModifiedTime = &v
	return s
}

// Contains information about the configurations of selected devices.
type DeviceSelectionConfig struct {
	_ struct{} `type:"structure"`

	// A filter to select devices with names containing this name.
	DeviceNameContains *string `min:"1" type:"string"`

	// List of devices chosen to deploy.
	DeviceNames []*string `type:"list"`

	// Type of device subsets to deploy to the current stage.
	//
	// DeviceSubsetType is a required field
	DeviceSubsetType *string `type:"string" required:"true" enum:"DeviceSubsetType"`

	// Percentage of devices in the fleet to deploy to the current stage.
	Percentage *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeviceSelectionConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeviceSelectionConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeviceSelectionConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeviceSelectionConfig"}
	if s.DeviceNameContains != nil && len(*s.DeviceNameContains) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DeviceNameContains", 1))
	}
	if s.DeviceSubsetType == nil {
		invalidParams.Add(request.NewErrParamRequired("DeviceSubsetType"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDeviceNameContains sets the DeviceNameContains field's value.
func (s *DeviceSelectionConfig) SetDeviceNameContains(v string) *DeviceSelectionConfig {
	s.DeviceNameContains = &v
	return s
}

// SetDeviceNames sets the DeviceNames field's value.
func (s *DeviceSelectionConfig) SetDeviceNames(v []*string) *DeviceSelectionConfig {
	s.DeviceNames = v
	return s
}

// SetDeviceSubsetType sets the DeviceSubsetType field's value.
func (s *DeviceSelectionConfig) SetDeviceSubsetType(v string) *DeviceSelectionConfig {
	s.DeviceSubsetType = &v
	return s
}

// SetPercentage sets the Percentage field's value.
func (s *DeviceSelectionConfig) SetPercentage(v int64) *DeviceSelectionConfig {
	s.Percentage = &v
	return s
}

// Status of devices.
type DeviceStats struct {
	_ struct{} `type:"structure"`

	// The number of devices connected with a heartbeat.
	//
	// ConnectedDeviceCount is a required field
	ConnectedDeviceCount *int64 `type:"long" required:"true"`

	// The number of registered devices.
	//
	// RegisteredDeviceCount is a required field
	RegisteredDeviceCount *int64 `type:"long" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeviceStats) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeviceStats) GoString() string {
	return s.String()
}

// SetConnectedDeviceCount sets the ConnectedDeviceCount field's value.
func (s *DeviceStats) SetConnectedDeviceCount(v int64) *DeviceStats {
	s.ConnectedDeviceCount = &v
	return s
}

// SetRegisteredDeviceCount sets the RegisteredDeviceCount field's value.
func (s *DeviceStats) SetRegisteredDeviceCount(v int64) *DeviceStats {
	s.RegisteredDeviceCount = &v
	return s
}

// Summary of the device.
type DeviceSummary struct {
	_ struct{} `type:"structure"`

	// Edge Manager agent version.
	AgentVersion *string `min:"1" type:"string"`

	// A description of the device.
	Description *string `min:"1" type:"string"`

	// Amazon Resource Name (ARN) of the device.
	//
	// DeviceArn is a required field
	DeviceArn *string `min:"20" type:"string" required:"true"`

	// The name of the fleet the device belongs to.
	DeviceFleetName *string `min:"1" type:"string"`

	// The unique identifier of the device.
	//
	// DeviceName is a required field
	DeviceName *string `min:"1" type:"string" required:"true"`

	// The Amazon Web Services Internet of Things (IoT) object thing name associated
	// with the device..
	IotThingName *string `type:"string"`

	// The last heartbeat received from the device.
	LatestHeartbeat *time.Time `type:"timestamp"`

	// Models on the device.
	Models []*EdgeModelSummary `type:"list"`

	// The timestamp of the last registration or de-reregistration.
	RegistrationTime *time.Time `type:"timestamp"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeviceSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeviceSummary) GoString() string {
	return s.String()
}

// SetAgentVersion sets the AgentVersion field's value.
func (s *DeviceSummary) SetAgentVersion(v string) *DeviceSummary {
	s.AgentVersion = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *DeviceSummary) SetDescription(v string) *DeviceSummary {
	s.Description = &v
	return s
}

// SetDeviceArn sets the DeviceArn field's value.
func (s *DeviceSummary) SetDeviceArn(v string) *DeviceSummary {
	s.DeviceArn = &v
	return s
}

// SetDeviceFleetName sets the DeviceFleetName field's value.
func (s *DeviceSummary) SetDeviceFleetName(v string) *DeviceSummary {
	s.DeviceFleetName = &v
	return s
}

// SetDeviceName sets the DeviceName field's value.
func (s *DeviceSummary) SetDeviceName(v string) *DeviceSummary {
	s.DeviceName = &v
	return s
}

// SetIotThingName sets the IotThingName field's value.
func (s *DeviceSummary) SetIotThingName(v string) *DeviceSummary {
	s.IotThingName = &v
	return s
}

// SetLatestHeartbeat sets the LatestHeartbeat field's value.
func (s *DeviceSummary) SetLatestHeartbeat(v time.Time) *DeviceSummary {
	s.LatestHeartbeat = &v
	return s
}

// SetModels sets the Models field's value.
func (s *DeviceSummary) SetModels(v []*EdgeModelSummary) *DeviceSummary {
	s.Models = v
	return s
}

// SetRegistrationTime sets the RegistrationTime field's value.
func (s *DeviceSummary) SetRegistrationTime(v time.Time) *DeviceSummary {
	s.RegistrationTime = &v
	return s
}

// The model deployment settings for the SageMaker Canvas application.
//
// In order to enable model deployment for Canvas, the SageMaker Domain's or
// user profile's Amazon Web Services IAM execution role must have the AmazonSageMakerCanvasDirectDeployAccess
// policy attached. You can also turn on model deployment permissions through
// the SageMaker Domain's or user profile's settings in the SageMaker console.
type DirectDeploySettings struct {
	_ struct{} `type:"structure"`

	// Describes whether model deployment permissions are enabled or disabled in
	// the Canvas application.
	Status *string `type:"string" enum:"FeatureStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DirectDeploySettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DirectDeploySettings) GoString() string {
	return s.String()
}

// SetStatus sets the Status field's value.
func (s *DirectDeploySettings) SetStatus(v string) *DirectDeploySettings {
	s.Status = &v
	return s
}

type DisableSagemakerServicecatalogPortfolioInput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DisableSagemakerServicecatalogPortfolioInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DisableSagemakerServicecatalogPortfolioInput) GoString() string {
	return s.String()
}

type DisableSagemakerServicecatalogPortfolioOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DisableSagemakerServicecatalogPortfolioOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DisableSagemakerServicecatalogPortfolioOutput) GoString() string {
	return s.String()
}

type DisassociateTrialComponentInput struct {
	_ struct{} `type:"structure"`

	// The name of the component to disassociate from the trial.
	//
	// TrialComponentName is a required field
	TrialComponentName *string `min:"1" type:"string" required:"true"`

	// The name of the trial to disassociate from.
	//
	// TrialName is a required field
	TrialName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DisassociateTrialComponentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DisassociateTrialComponentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DisassociateTrialComponentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DisassociateTrialComponentInput"}
	if s.TrialComponentName == nil {
		invalidParams.Add(request.NewErrParamRequired("TrialComponentName"))
	}
	if s.TrialComponentName != nil && len(*s.TrialComponentName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TrialComponentName", 1))
	}
	if s.TrialName == nil {
		invalidParams.Add(request.NewErrParamRequired("TrialName"))
	}
	if s.TrialName != nil && len(*s.TrialName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TrialName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetTrialComponentName sets the TrialComponentName field's value.
func (s *DisassociateTrialComponentInput) SetTrialComponentName(v string) *DisassociateTrialComponentInput {
	s.TrialComponentName = &v
	return s
}

// SetTrialName sets the TrialName field's value.
func (s *DisassociateTrialComponentInput) SetTrialName(v string) *DisassociateTrialComponentInput {
	s.TrialName = &v
	return s
}

type DisassociateTrialComponentOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the trial.
	TrialArn *string `type:"string"`

	// The Amazon Resource Name (ARN) of the trial component.
	TrialComponentArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DisassociateTrialComponentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DisassociateTrialComponentOutput) GoString() string {
	return s.String()
}

// SetTrialArn sets the TrialArn field's value.
func (s *DisassociateTrialComponentOutput) SetTrialArn(v string) *DisassociateTrialComponentOutput {
	s.TrialArn = &v
	return s
}

// SetTrialComponentArn sets the TrialComponentArn field's value.
func (s *DisassociateTrialComponentOutput) SetTrialComponentArn(v string) *DisassociateTrialComponentOutput {
	s.TrialComponentArn = &v
	return s
}

// A collection of settings that configure the domain's Docker interaction.
type DockerSettings struct {
	_ struct{} `type:"structure"`

	// Indicates whether the domain can access Docker.
	EnableDockerAccess *string `type:"string" enum:"FeatureStatus"`

	// The list of Amazon Web Services accounts that are trusted when the domain
	// is created in VPC-only mode.
	VpcOnlyTrustedAccounts []*string `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DockerSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DockerSettings) GoString() string {
	return s.String()
}

// SetEnableDockerAccess sets the EnableDockerAccess field's value.
func (s *DockerSettings) SetEnableDockerAccess(v string) *DockerSettings {
	s.EnableDockerAccess = &v
	return s
}

// SetVpcOnlyTrustedAccounts sets the VpcOnlyTrustedAccounts field's value.
func (s *DockerSettings) SetVpcOnlyTrustedAccounts(v []*string) *DockerSettings {
	s.VpcOnlyTrustedAccounts = v
	return s
}

// The domain's details.
type DomainDetails struct {
	_ struct{} `type:"structure"`

	// The creation time.
	CreationTime *time.Time `type:"timestamp"`

	// The domain's Amazon Resource Name (ARN).
	DomainArn *string `type:"string"`

	// The domain ID.
	DomainId *string `type:"string"`

	// The domain name.
	DomainName *string `type:"string"`

	// The last modified time.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The status.
	Status *string `type:"string" enum:"DomainStatus"`

	// The domain's URL.
	Url *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DomainDetails) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DomainDetails) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *DomainDetails) SetCreationTime(v time.Time) *DomainDetails {
	s.CreationTime = &v
	return s
}

// SetDomainArn sets the DomainArn field's value.
func (s *DomainDetails) SetDomainArn(v string) *DomainDetails {
	s.DomainArn = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *DomainDetails) SetDomainId(v string) *DomainDetails {
	s.DomainId = &v
	return s
}

// SetDomainName sets the DomainName field's value.
func (s *DomainDetails) SetDomainName(v string) *DomainDetails {
	s.DomainName = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *DomainDetails) SetLastModifiedTime(v time.Time) *DomainDetails {
	s.LastModifiedTime = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *DomainDetails) SetStatus(v string) *DomainDetails {
	s.Status = &v
	return s
}

// SetUrl sets the Url field's value.
func (s *DomainDetails) SetUrl(v string) *DomainDetails {
	s.Url = &v
	return s
}

// A collection of settings that apply to the SageMaker Domain. These settings
// are specified through the CreateDomain API call.
type DomainSettings struct {
	_ struct{} `type:"structure"`

	// A collection of settings that configure the domain's Docker interaction.
	DockerSettings *DockerSettings `type:"structure"`

	// The configuration for attaching a SageMaker user profile name to the execution
	// role as a sts:SourceIdentity key (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html).
	ExecutionRoleIdentityConfig *string `type:"string" enum:"ExecutionRoleIdentityConfig"`

	// A collection of settings that configure the RStudioServerPro Domain-level
	// app.
	RStudioServerProDomainSettings *RStudioServerProDomainSettings `type:"structure"`

	// The security groups for the Amazon Virtual Private Cloud that the Domain
	// uses for communication between Domain-level apps and user apps.
	SecurityGroupIds []*string `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DomainSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DomainSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DomainSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DomainSettings"}
	if s.RStudioServerProDomainSettings != nil {
		if err := s.RStudioServerProDomainSettings.Validate(); err != nil {
			invalidParams.AddNested("RStudioServerProDomainSettings", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDockerSettings sets the DockerSettings field's value.
func (s *DomainSettings) SetDockerSettings(v *DockerSettings) *DomainSettings {
	s.DockerSettings = v
	return s
}

// SetExecutionRoleIdentityConfig sets the ExecutionRoleIdentityConfig field's value.
func (s *DomainSettings) SetExecutionRoleIdentityConfig(v string) *DomainSettings {
	s.ExecutionRoleIdentityConfig = &v
	return s
}

// SetRStudioServerProDomainSettings sets the RStudioServerProDomainSettings field's value.
func (s *DomainSettings) SetRStudioServerProDomainSettings(v *RStudioServerProDomainSettings) *DomainSettings {
	s.RStudioServerProDomainSettings = v
	return s
}

// SetSecurityGroupIds sets the SecurityGroupIds field's value.
func (s *DomainSettings) SetSecurityGroupIds(v []*string) *DomainSettings {
	s.SecurityGroupIds = v
	return s
}

// A collection of Domain configuration settings to update.
type DomainSettingsForUpdate struct {
	_ struct{} `type:"structure"`

	// A collection of settings that configure the domain's Docker interaction.
	DockerSettings *DockerSettings `type:"structure"`

	// The configuration for attaching a SageMaker user profile name to the execution
	// role as a sts:SourceIdentity key (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html).
	// This configuration can only be modified if there are no apps in the InService
	// or Pending state.
	ExecutionRoleIdentityConfig *string `type:"string" enum:"ExecutionRoleIdentityConfig"`

	// A collection of RStudioServerPro Domain-level app settings to update. A single
	// RStudioServerPro application is created for a domain.
	RStudioServerProDomainSettingsForUpdate *RStudioServerProDomainSettingsForUpdate `type:"structure"`

	// The security groups for the Amazon Virtual Private Cloud that the Domain
	// uses for communication between Domain-level apps and user apps.
	SecurityGroupIds []*string `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DomainSettingsForUpdate) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DomainSettingsForUpdate) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DomainSettingsForUpdate) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DomainSettingsForUpdate"}
	if s.RStudioServerProDomainSettingsForUpdate != nil {
		if err := s.RStudioServerProDomainSettingsForUpdate.Validate(); err != nil {
			invalidParams.AddNested("RStudioServerProDomainSettingsForUpdate", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDockerSettings sets the DockerSettings field's value.
func (s *DomainSettingsForUpdate) SetDockerSettings(v *DockerSettings) *DomainSettingsForUpdate {
	s.DockerSettings = v
	return s
}

// SetExecutionRoleIdentityConfig sets the ExecutionRoleIdentityConfig field's value.
func (s *DomainSettingsForUpdate) SetExecutionRoleIdentityConfig(v string) *DomainSettingsForUpdate {
	s.ExecutionRoleIdentityConfig = &v
	return s
}

// SetRStudioServerProDomainSettingsForUpdate sets the RStudioServerProDomainSettingsForUpdate field's value.
func (s *DomainSettingsForUpdate) SetRStudioServerProDomainSettingsForUpdate(v *RStudioServerProDomainSettingsForUpdate) *DomainSettingsForUpdate {
	s.RStudioServerProDomainSettingsForUpdate = v
	return s
}

// SetSecurityGroupIds sets the SecurityGroupIds field's value.
func (s *DomainSettingsForUpdate) SetSecurityGroupIds(v []*string) *DomainSettingsForUpdate {
	s.SecurityGroupIds = v
	return s
}

// Represents the drift check baselines that can be used when the model monitor
// is set using the model package.
type DriftCheckBaselines struct {
	_ struct{} `type:"structure"`

	// Represents the drift check bias baselines that can be used when the model
	// monitor is set using the model package.
	Bias *DriftCheckBias `type:"structure"`

	// Represents the drift check explainability baselines that can be used when
	// the model monitor is set using the model package.
	Explainability *DriftCheckExplainability `type:"structure"`

	// Represents the drift check model data quality baselines that can be used
	// when the model monitor is set using the model package.
	ModelDataQuality *DriftCheckModelDataQuality `type:"structure"`

	// Represents the drift check model quality baselines that can be used when
	// the model monitor is set using the model package.
	ModelQuality *DriftCheckModelQuality `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DriftCheckBaselines) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DriftCheckBaselines) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DriftCheckBaselines) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DriftCheckBaselines"}
	if s.Bias != nil {
		if err := s.Bias.Validate(); err != nil {
			invalidParams.AddNested("Bias", err.(request.ErrInvalidParams))
		}
	}
	if s.Explainability != nil {
		if err := s.Explainability.Validate(); err != nil {
			invalidParams.AddNested("Explainability", err.(request.ErrInvalidParams))
		}
	}
	if s.ModelDataQuality != nil {
		if err := s.ModelDataQuality.Validate(); err != nil {
			invalidParams.AddNested("ModelDataQuality", err.(request.ErrInvalidParams))
		}
	}
	if s.ModelQuality != nil {
		if err := s.ModelQuality.Validate(); err != nil {
			invalidParams.AddNested("ModelQuality", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetBias sets the Bias field's value.
func (s *DriftCheckBaselines) SetBias(v *DriftCheckBias) *DriftCheckBaselines {
	s.Bias = v
	return s
}

// SetExplainability sets the Explainability field's value.
func (s *DriftCheckBaselines) SetExplainability(v *DriftCheckExplainability) *DriftCheckBaselines {
	s.Explainability = v
	return s
}

// SetModelDataQuality sets the ModelDataQuality field's value.
func (s *DriftCheckBaselines) SetModelDataQuality(v *DriftCheckModelDataQuality) *DriftCheckBaselines {
	s.ModelDataQuality = v
	return s
}

// SetModelQuality sets the ModelQuality field's value.
func (s *DriftCheckBaselines) SetModelQuality(v *DriftCheckModelQuality) *DriftCheckBaselines {
	s.ModelQuality = v
	return s
}

// Represents the drift check bias baselines that can be used when the model
// monitor is set using the model package.
type DriftCheckBias struct {
	_ struct{} `type:"structure"`

	// The bias config file for a model.
	ConfigFile *FileSource `type:"structure"`

	// The post-training constraints.
	PostTrainingConstraints *MetricsSource `type:"structure"`

	// The pre-training constraints.
	PreTrainingConstraints *MetricsSource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DriftCheckBias) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DriftCheckBias) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DriftCheckBias) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DriftCheckBias"}
	if s.ConfigFile != nil {
		if err := s.ConfigFile.Validate(); err != nil {
			invalidParams.AddNested("ConfigFile", err.(request.ErrInvalidParams))
		}
	}
	if s.PostTrainingConstraints != nil {
		if err := s.PostTrainingConstraints.Validate(); err != nil {
			invalidParams.AddNested("PostTrainingConstraints", err.(request.ErrInvalidParams))
		}
	}
	if s.PreTrainingConstraints != nil {
		if err := s.PreTrainingConstraints.Validate(); err != nil {
			invalidParams.AddNested("PreTrainingConstraints", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetConfigFile sets the ConfigFile field's value.
func (s *DriftCheckBias) SetConfigFile(v *FileSource) *DriftCheckBias {
	s.ConfigFile = v
	return s
}

// SetPostTrainingConstraints sets the PostTrainingConstraints field's value.
func (s *DriftCheckBias) SetPostTrainingConstraints(v *MetricsSource) *DriftCheckBias {
	s.PostTrainingConstraints = v
	return s
}

// SetPreTrainingConstraints sets the PreTrainingConstraints field's value.
func (s *DriftCheckBias) SetPreTrainingConstraints(v *MetricsSource) *DriftCheckBias {
	s.PreTrainingConstraints = v
	return s
}

// Represents the drift check explainability baselines that can be used when
// the model monitor is set using the model package.
type DriftCheckExplainability struct {
	_ struct{} `type:"structure"`

	// The explainability config file for the model.
	ConfigFile *FileSource `type:"structure"`

	// The drift check explainability constraints.
	Constraints *MetricsSource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DriftCheckExplainability) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DriftCheckExplainability) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DriftCheckExplainability) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DriftCheckExplainability"}
	if s.ConfigFile != nil {
		if err := s.ConfigFile.Validate(); err != nil {
			invalidParams.AddNested("ConfigFile", err.(request.ErrInvalidParams))
		}
	}
	if s.Constraints != nil {
		if err := s.Constraints.Validate(); err != nil {
			invalidParams.AddNested("Constraints", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetConfigFile sets the ConfigFile field's value.
func (s *DriftCheckExplainability) SetConfigFile(v *FileSource) *DriftCheckExplainability {
	s.ConfigFile = v
	return s
}

// SetConstraints sets the Constraints field's value.
func (s *DriftCheckExplainability) SetConstraints(v *MetricsSource) *DriftCheckExplainability {
	s.Constraints = v
	return s
}

// Represents the drift check data quality baselines that can be used when the
// model monitor is set using the model package.
type DriftCheckModelDataQuality struct {
	_ struct{} `type:"structure"`

	// The drift check model data quality constraints.
	Constraints *MetricsSource `type:"structure"`

	// The drift check model data quality statistics.
	Statistics *MetricsSource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DriftCheckModelDataQuality) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DriftCheckModelDataQuality) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DriftCheckModelDataQuality) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DriftCheckModelDataQuality"}
	if s.Constraints != nil {
		if err := s.Constraints.Validate(); err != nil {
			invalidParams.AddNested("Constraints", err.(request.ErrInvalidParams))
		}
	}
	if s.Statistics != nil {
		if err := s.Statistics.Validate(); err != nil {
			invalidParams.AddNested("Statistics", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetConstraints sets the Constraints field's value.
func (s *DriftCheckModelDataQuality) SetConstraints(v *MetricsSource) *DriftCheckModelDataQuality {
	s.Constraints = v
	return s
}

// SetStatistics sets the Statistics field's value.
func (s *DriftCheckModelDataQuality) SetStatistics(v *MetricsSource) *DriftCheckModelDataQuality {
	s.Statistics = v
	return s
}

// Represents the drift check model quality baselines that can be used when
// the model monitor is set using the model package.
type DriftCheckModelQuality struct {
	_ struct{} `type:"structure"`

	// The drift check model quality constraints.
	Constraints *MetricsSource `type:"structure"`

	// The drift check model quality statistics.
	Statistics *MetricsSource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DriftCheckModelQuality) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DriftCheckModelQuality) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DriftCheckModelQuality) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DriftCheckModelQuality"}
	if s.Constraints != nil {
		if err := s.Constraints.Validate(); err != nil {
			invalidParams.AddNested("Constraints", err.(request.ErrInvalidParams))
		}
	}
	if s.Statistics != nil {
		if err := s.Statistics.Validate(); err != nil {
			invalidParams.AddNested("Statistics", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetConstraints sets the Constraints field's value.
func (s *DriftCheckModelQuality) SetConstraints(v *MetricsSource) *DriftCheckModelQuality {
	s.Constraints = v
	return s
}

// SetStatistics sets the Statistics field's value.
func (s *DriftCheckModelQuality) SetStatistics(v *MetricsSource) *DriftCheckModelQuality {
	s.Statistics = v
	return s
}

// An object with the recommended values for you to specify when creating an
// autoscaling policy.
type DynamicScalingConfiguration struct {
	_ struct{} `type:"structure"`

	// The recommended maximum capacity to specify for your autoscaling policy.
	MaxCapacity *int64 `type:"integer"`

	// The recommended minimum capacity to specify for your autoscaling policy.
	MinCapacity *int64 `type:"integer"`

	// The recommended scale in cooldown time for your autoscaling policy.
	ScaleInCooldown *int64 `type:"integer"`

	// The recommended scale out cooldown time for your autoscaling policy.
	ScaleOutCooldown *int64 `type:"integer"`

	// An object of the scaling policies for each metric.
	ScalingPolicies []*ScalingPolicy `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DynamicScalingConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DynamicScalingConfiguration) GoString() string {
	return s.String()
}

// SetMaxCapacity sets the MaxCapacity field's value.
func (s *DynamicScalingConfiguration) SetMaxCapacity(v int64) *DynamicScalingConfiguration {
	s.MaxCapacity = &v
	return s
}

// SetMinCapacity sets the MinCapacity field's value.
func (s *DynamicScalingConfiguration) SetMinCapacity(v int64) *DynamicScalingConfiguration {
	s.MinCapacity = &v
	return s
}

// SetScaleInCooldown sets the ScaleInCooldown field's value.
func (s *DynamicScalingConfiguration) SetScaleInCooldown(v int64) *DynamicScalingConfiguration {
	s.ScaleInCooldown = &v
	return s
}

// SetScaleOutCooldown sets the ScaleOutCooldown field's value.
func (s *DynamicScalingConfiguration) SetScaleOutCooldown(v int64) *DynamicScalingConfiguration {
	s.ScaleOutCooldown = &v
	return s
}

// SetScalingPolicies sets the ScalingPolicies field's value.
func (s *DynamicScalingConfiguration) SetScalingPolicies(v []*ScalingPolicy) *DynamicScalingConfiguration {
	s.ScalingPolicies = v
	return s
}

// A file system, created by you in Amazon EFS, that you assign to a user profile
// or space for an Amazon SageMaker Domain. Permitted users can access this
// file system in Amazon SageMaker Studio.
type EFSFileSystem struct {
	_ struct{} `type:"structure"`

	// The ID of your Amazon EFS file system.
	//
	// FileSystemId is a required field
	FileSystemId *string `min:"11" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EFSFileSystem) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EFSFileSystem) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *EFSFileSystem) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "EFSFileSystem"}
	if s.FileSystemId == nil {
		invalidParams.Add(request.NewErrParamRequired("FileSystemId"))
	}
	if s.FileSystemId != nil && len(*s.FileSystemId) < 11 {
		invalidParams.Add(request.NewErrParamMinLen("FileSystemId", 11))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFileSystemId sets the FileSystemId field's value.
func (s *EFSFileSystem) SetFileSystemId(v string) *EFSFileSystem {
	s.FileSystemId = &v
	return s
}

// The settings for assigning a custom Amazon EFS file system to a user profile
// or space for an Amazon SageMaker Domain.
type EFSFileSystemConfig struct {
	_ struct{} `type:"structure"`

	// The ID of your Amazon EFS file system.
	//
	// FileSystemId is a required field
	FileSystemId *string `min:"11" type:"string" required:"true"`

	// The path to the file system directory that is accessible in Amazon SageMaker
	// Studio. Permitted users can access only this directory and below.
	FileSystemPath *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EFSFileSystemConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EFSFileSystemConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *EFSFileSystemConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "EFSFileSystemConfig"}
	if s.FileSystemId == nil {
		invalidParams.Add(request.NewErrParamRequired("FileSystemId"))
	}
	if s.FileSystemId != nil && len(*s.FileSystemId) < 11 {
		invalidParams.Add(request.NewErrParamMinLen("FileSystemId", 11))
	}
	if s.FileSystemPath != nil && len(*s.FileSystemPath) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FileSystemPath", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFileSystemId sets the FileSystemId field's value.
func (s *EFSFileSystemConfig) SetFileSystemId(v string) *EFSFileSystemConfig {
	s.FileSystemId = &v
	return s
}

// SetFileSystemPath sets the FileSystemPath field's value.
func (s *EFSFileSystemConfig) SetFileSystemPath(v string) *EFSFileSystemConfig {
	s.FileSystemPath = &v
	return s
}

// The configurations and outcomes of an Amazon EMR step execution.
type EMRStepMetadata struct {
	_ struct{} `type:"structure"`

	// The identifier of the EMR cluster.
	ClusterId *string `type:"string"`

	// The path to the log file where the cluster step's failure root cause is recorded.
	LogFilePath *string `type:"string"`

	// The identifier of the EMR cluster step.
	StepId *string `type:"string"`

	// The name of the EMR cluster step.
	StepName *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EMRStepMetadata) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EMRStepMetadata) GoString() string {
	return s.String()
}

// SetClusterId sets the ClusterId field's value.
func (s *EMRStepMetadata) SetClusterId(v string) *EMRStepMetadata {
	s.ClusterId = &v
	return s
}

// SetLogFilePath sets the LogFilePath field's value.
func (s *EMRStepMetadata) SetLogFilePath(v string) *EMRStepMetadata {
	s.LogFilePath = &v
	return s
}

// SetStepId sets the StepId field's value.
func (s *EMRStepMetadata) SetStepId(v string) *EMRStepMetadata {
	s.StepId = &v
	return s
}

// SetStepName sets the StepName field's value.
func (s *EMRStepMetadata) SetStepName(v string) *EMRStepMetadata {
	s.StepName = &v
	return s
}

// A collection of EBS storage settings that applies to private spaces.
type EbsStorageSettings struct {
	_ struct{} `type:"structure"`

	// The size of an EBS storage volume for a private space.
	//
	// EbsVolumeSizeInGb is a required field
	EbsVolumeSizeInGb *int64 `min:"5" type:"integer" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EbsStorageSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EbsStorageSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *EbsStorageSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "EbsStorageSettings"}
	if s.EbsVolumeSizeInGb == nil {
		invalidParams.Add(request.NewErrParamRequired("EbsVolumeSizeInGb"))
	}
	if s.EbsVolumeSizeInGb != nil && *s.EbsVolumeSizeInGb < 5 {
		invalidParams.Add(request.NewErrParamMinValue("EbsVolumeSizeInGb", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEbsVolumeSizeInGb sets the EbsVolumeSizeInGb field's value.
func (s *EbsStorageSettings) SetEbsVolumeSizeInGb(v int64) *EbsStorageSettings {
	s.EbsVolumeSizeInGb = &v
	return s
}

// A directed edge connecting two lineage entities.
type Edge struct {
	_ struct{} `type:"structure"`

	// The type of the Association(Edge) between the source and destination. For
	// example ContributedTo, Produced, or DerivedFrom.
	AssociationType *string `type:"string" enum:"AssociationEdgeType"`

	// The Amazon Resource Name (ARN) of the destination lineage entity of the directed
	// edge.
	DestinationArn *string `type:"string"`

	// The Amazon Resource Name (ARN) of the source lineage entity of the directed
	// edge.
	SourceArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Edge) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Edge) GoString() string {
	return s.String()
}

// SetAssociationType sets the AssociationType field's value.
func (s *Edge) SetAssociationType(v string) *Edge {
	s.AssociationType = &v
	return s
}

// SetDestinationArn sets the DestinationArn field's value.
func (s *Edge) SetDestinationArn(v string) *Edge {
	s.DestinationArn = &v
	return s
}

// SetSourceArn sets the SourceArn field's value.
func (s *Edge) SetSourceArn(v string) *Edge {
	s.SourceArn = &v
	return s
}

// Contains information about the configuration of a deployment.
type EdgeDeploymentConfig struct {
	_ struct{} `type:"structure"`

	// Toggle that determines whether to rollback to previous configuration if the
	// current deployment fails. By default this is turned on. You may turn this
	// off if you want to investigate the errors yourself.
	//
	// FailureHandlingPolicy is a required field
	FailureHandlingPolicy *string `type:"string" required:"true" enum:"FailureHandlingPolicy"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EdgeDeploymentConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EdgeDeploymentConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *EdgeDeploymentConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "EdgeDeploymentConfig"}
	if s.FailureHandlingPolicy == nil {
		invalidParams.Add(request.NewErrParamRequired("FailureHandlingPolicy"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFailureHandlingPolicy sets the FailureHandlingPolicy field's value.
func (s *EdgeDeploymentConfig) SetFailureHandlingPolicy(v string) *EdgeDeploymentConfig {
	s.FailureHandlingPolicy = &v
	return s
}

// Contains information about the configuration of a model in a deployment.
type EdgeDeploymentModelConfig struct {
	_ struct{} `type:"structure"`

	// The edge packaging job associated with this deployment.
	//
	// EdgePackagingJobName is a required field
	EdgePackagingJobName *string `min:"1" type:"string" required:"true"`

	// The name the device application uses to reference this model.
	//
	// ModelHandle is a required field
	ModelHandle *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EdgeDeploymentModelConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EdgeDeploymentModelConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *EdgeDeploymentModelConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "EdgeDeploymentModelConfig"}
	if s.EdgePackagingJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("EdgePackagingJobName"))
	}
	if s.EdgePackagingJobName != nil && len(*s.EdgePackagingJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("EdgePackagingJobName", 1))
	}
	if s.ModelHandle == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelHandle"))
	}
	if s.ModelHandle != nil && len(*s.ModelHandle) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelHandle", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEdgePackagingJobName sets the EdgePackagingJobName field's value.
func (s *EdgeDeploymentModelConfig) SetEdgePackagingJobName(v string) *EdgeDeploymentModelConfig {
	s.EdgePackagingJobName = &v
	return s
}

// SetModelHandle sets the ModelHandle field's value.
func (s *EdgeDeploymentModelConfig) SetModelHandle(v string) *EdgeDeploymentModelConfig {
	s.ModelHandle = &v
	return s
}

// Contains information summarizing an edge deployment plan.
type EdgeDeploymentPlanSummary struct {
	_ struct{} `type:"structure"`

	// The time when the edge deployment plan was created.
	CreationTime *time.Time `type:"timestamp"`

	// The name of the device fleet used for the deployment.
	//
	// DeviceFleetName is a required field
	DeviceFleetName *string `min:"1" type:"string" required:"true"`

	// The number of edge devices that failed the deployment.
	//
	// EdgeDeploymentFailed is a required field
	EdgeDeploymentFailed *int64 `type:"integer" required:"true"`

	// The number of edge devices yet to pick up the deployment, or in progress.
	//
	// EdgeDeploymentPending is a required field
	EdgeDeploymentPending *int64 `type:"integer" required:"true"`

	// The ARN of the edge deployment plan.
	//
	// EdgeDeploymentPlanArn is a required field
	EdgeDeploymentPlanArn *string `min:"20" type:"string" required:"true"`

	// The name of the edge deployment plan.
	//
	// EdgeDeploymentPlanName is a required field
	EdgeDeploymentPlanName *string `min:"1" type:"string" required:"true"`

	// The number of edge devices with the successful deployment.
	//
	// EdgeDeploymentSuccess is a required field
	EdgeDeploymentSuccess *int64 `type:"integer" required:"true"`

	// The time when the edge deployment plan was last updated.
	LastModifiedTime *time.Time `type:"timestamp"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EdgeDeploymentPlanSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EdgeDeploymentPlanSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *EdgeDeploymentPlanSummary) SetCreationTime(v time.Time) *EdgeDeploymentPlanSummary {
	s.CreationTime = &v
	return s
}

// SetDeviceFleetName sets the DeviceFleetName field's value.
func (s *EdgeDeploymentPlanSummary) SetDeviceFleetName(v string) *EdgeDeploymentPlanSummary {
	s.DeviceFleetName = &v
	return s
}

// SetEdgeDeploymentFailed sets the EdgeDeploymentFailed field's value.
func (s *EdgeDeploymentPlanSummary) SetEdgeDeploymentFailed(v int64) *EdgeDeploymentPlanSummary {
	s.EdgeDeploymentFailed = &v
	return s
}

// SetEdgeDeploymentPending sets the EdgeDeploymentPending field's value.
func (s *EdgeDeploymentPlanSummary) SetEdgeDeploymentPending(v int64) *EdgeDeploymentPlanSummary {
	s.EdgeDeploymentPending = &v
	return s
}

// SetEdgeDeploymentPlanArn sets the EdgeDeploymentPlanArn field's value.
func (s *EdgeDeploymentPlanSummary) SetEdgeDeploymentPlanArn(v string) *EdgeDeploymentPlanSummary {
	s.EdgeDeploymentPlanArn = &v
	return s
}

// SetEdgeDeploymentPlanName sets the EdgeDeploymentPlanName field's value.
func (s *EdgeDeploymentPlanSummary) SetEdgeDeploymentPlanName(v string) *EdgeDeploymentPlanSummary {
	s.EdgeDeploymentPlanName = &v
	return s
}

// SetEdgeDeploymentSuccess sets the EdgeDeploymentSuccess field's value.
func (s *EdgeDeploymentPlanSummary) SetEdgeDeploymentSuccess(v int64) *EdgeDeploymentPlanSummary {
	s.EdgeDeploymentSuccess = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *EdgeDeploymentPlanSummary) SetLastModifiedTime(v time.Time) *EdgeDeploymentPlanSummary {
	s.LastModifiedTime = &v
	return s
}

// Contains information summarizing the deployment stage results.
type EdgeDeploymentStatus struct {
	_ struct{} `type:"structure"`

	// The number of edge devices that failed the deployment in current stage.
	//
	// EdgeDeploymentFailedInStage is a required field
	EdgeDeploymentFailedInStage *int64 `type:"integer" required:"true"`

	// The number of edge devices yet to pick up the deployment in current stage,
	// or in progress.
	//
	// EdgeDeploymentPendingInStage is a required field
	EdgeDeploymentPendingInStage *int64 `type:"integer" required:"true"`

	// The time when the deployment API started.
	EdgeDeploymentStageStartTime *time.Time `type:"timestamp"`

	// A detailed message about deployment status in current stage.
	EdgeDeploymentStatusMessage *string `type:"string"`

	// The number of edge devices with the successful deployment in the current
	// stage.
	//
	// EdgeDeploymentSuccessInStage is a required field
	EdgeDeploymentSuccessInStage *int64 `type:"integer" required:"true"`

	// The general status of the current stage.
	//
	// StageStatus is a required field
	StageStatus *string `type:"string" required:"true" enum:"StageStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EdgeDeploymentStatus) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EdgeDeploymentStatus) GoString() string {
	return s.String()
}

// SetEdgeDeploymentFailedInStage sets the EdgeDeploymentFailedInStage field's value.
func (s *EdgeDeploymentStatus) SetEdgeDeploymentFailedInStage(v int64) *EdgeDeploymentStatus {
	s.EdgeDeploymentFailedInStage = &v
	return s
}

// SetEdgeDeploymentPendingInStage sets the EdgeDeploymentPendingInStage field's value.
func (s *EdgeDeploymentStatus) SetEdgeDeploymentPendingInStage(v int64) *EdgeDeploymentStatus {
	s.EdgeDeploymentPendingInStage = &v
	return s
}

// SetEdgeDeploymentStageStartTime sets the EdgeDeploymentStageStartTime field's value.
func (s *EdgeDeploymentStatus) SetEdgeDeploymentStageStartTime(v time.Time) *EdgeDeploymentStatus {
	s.EdgeDeploymentStageStartTime = &v
	return s
}

// SetEdgeDeploymentStatusMessage sets the EdgeDeploymentStatusMessage field's value.
func (s *EdgeDeploymentStatus) SetEdgeDeploymentStatusMessage(v string) *EdgeDeploymentStatus {
	s.EdgeDeploymentStatusMessage = &v
	return s
}

// SetEdgeDeploymentSuccessInStage sets the EdgeDeploymentSuccessInStage field's value.
func (s *EdgeDeploymentStatus) SetEdgeDeploymentSuccessInStage(v int64) *EdgeDeploymentStatus {
	s.EdgeDeploymentSuccessInStage = &v
	return s
}

// SetStageStatus sets the StageStatus field's value.
func (s *EdgeDeploymentStatus) SetStageStatus(v string) *EdgeDeploymentStatus {
	s.StageStatus = &v
	return s
}

// The model on the edge device.
type EdgeModel struct {
	_ struct{} `type:"structure"`

	// The timestamp of the last inference that was made.
	LatestInference *time.Time `type:"timestamp"`

	// The timestamp of the last data sample taken.
	LatestSampleTime *time.Time `type:"timestamp"`

	// The name of the model.
	//
	// ModelName is a required field
	ModelName *string `min:"1" type:"string" required:"true"`

	// The model version.
	//
	// ModelVersion is a required field
	ModelVersion *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EdgeModel) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EdgeModel) GoString() string {
	return s.String()
}

// SetLatestInference sets the LatestInference field's value.
func (s *EdgeModel) SetLatestInference(v time.Time) *EdgeModel {
	s.LatestInference = &v
	return s
}

// SetLatestSampleTime sets the LatestSampleTime field's value.
func (s *EdgeModel) SetLatestSampleTime(v time.Time) *EdgeModel {
	s.LatestSampleTime = &v
	return s
}

// SetModelName sets the ModelName field's value.
func (s *EdgeModel) SetModelName(v string) *EdgeModel {
	s.ModelName = &v
	return s
}

// SetModelVersion sets the ModelVersion field's value.
func (s *EdgeModel) SetModelVersion(v string) *EdgeModel {
	s.ModelVersion = &v
	return s
}

// Status of edge devices with this model.
type EdgeModelStat struct {
	_ struct{} `type:"structure"`

	// The number of devices that have this model version, a heart beat, and are
	// currently running.
	//
	// ActiveDeviceCount is a required field
	ActiveDeviceCount *int64 `type:"long" required:"true"`

	// The number of devices that have this model version and have a heart beat.
	//
	// ConnectedDeviceCount is a required field
	ConnectedDeviceCount *int64 `type:"long" required:"true"`

	// The name of the model.
	//
	// ModelName is a required field
	ModelName *string `min:"1" type:"string" required:"true"`

	// The model version.
	//
	// ModelVersion is a required field
	ModelVersion *string `min:"1" type:"string" required:"true"`

	// The number of devices that have this model version and do not have a heart
	// beat.
	//
	// OfflineDeviceCount is a required field
	OfflineDeviceCount *int64 `type:"long" required:"true"`

	// The number of devices with this model version and are producing sample data.
	//
	// SamplingDeviceCount is a required field
	SamplingDeviceCount *int64 `type:"long" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EdgeModelStat) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EdgeModelStat) GoString() string {
	return s.String()
}

// SetActiveDeviceCount sets the ActiveDeviceCount field's value.
func (s *EdgeModelStat) SetActiveDeviceCount(v int64) *EdgeModelStat {
	s.ActiveDeviceCount = &v
	return s
}

// SetConnectedDeviceCount sets the ConnectedDeviceCount field's value.
func (s *EdgeModelStat) SetConnectedDeviceCount(v int64) *EdgeModelStat {
	s.ConnectedDeviceCount = &v
	return s
}

// SetModelName sets the ModelName field's value.
func (s *EdgeModelStat) SetModelName(v string) *EdgeModelStat {
	s.ModelName = &v
	return s
}

// SetModelVersion sets the ModelVersion field's value.
func (s *EdgeModelStat) SetModelVersion(v string) *EdgeModelStat {
	s.ModelVersion = &v
	return s
}

// SetOfflineDeviceCount sets the OfflineDeviceCount field's value.
func (s *EdgeModelStat) SetOfflineDeviceCount(v int64) *EdgeModelStat {
	s.OfflineDeviceCount = &v
	return s
}

// SetSamplingDeviceCount sets the SamplingDeviceCount field's value.
func (s *EdgeModelStat) SetSamplingDeviceCount(v int64) *EdgeModelStat {
	s.SamplingDeviceCount = &v
	return s
}

// Summary of model on edge device.
type EdgeModelSummary struct {
	_ struct{} `type:"structure"`

	// The name of the model.
	//
	// ModelName is a required field
	ModelName *string `min:"1" type:"string" required:"true"`

	// The version model.
	//
	// ModelVersion is a required field
	ModelVersion *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EdgeModelSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EdgeModelSummary) GoString() string {
	return s.String()
}

// SetModelName sets the ModelName field's value.
func (s *EdgeModelSummary) SetModelName(v string) *EdgeModelSummary {
	s.ModelName = &v
	return s
}

// SetModelVersion sets the ModelVersion field's value.
func (s *EdgeModelSummary) SetModelVersion(v string) *EdgeModelSummary {
	s.ModelVersion = &v
	return s
}

// The output configuration.
type EdgeOutputConfig struct {
	_ struct{} `type:"structure"`

	// The Amazon Web Services Key Management Service (Amazon Web Services KMS)
	// key that Amazon SageMaker uses to encrypt data on the storage volume after
	// compilation job. If you don't provide a KMS key ID, Amazon SageMaker uses
	// the default KMS key for Amazon S3 for your role's account.
	KmsKeyId *string `type:"string"`

	// The configuration used to create deployment artifacts. Specify configuration
	// options with a JSON string. The available configuration options for each
	// type are:
	//
	//    * ComponentName (optional) - Name of the GreenGrass V2 component. If not
	//    specified, the default name generated consists of "SagemakerEdgeManager"
	//    and the name of your SageMaker Edge Manager packaging job.
	//
	//    * ComponentDescription (optional) - Description of the component.
	//
	//    * ComponentVersion (optional) - The version of the component. Amazon Web
	//    Services IoT Greengrass uses semantic versions for components. Semantic
	//    versions follow a major.minor.patch number system. For example, version
	//    1.0.0 represents the first major release for a component. For more information,
	//    see the semantic version specification (https://semver.org/).
	//
	//    * PlatformOS (optional) - The name of the operating system for the platform.
	//    Supported platforms include Windows and Linux.
	//
	//    * PlatformArchitecture (optional) - The processor architecture for the
	//    platform. Supported architectures Windows include: Windows32_x86, Windows64_x64.
	//    Supported architectures for Linux include: Linux x86_64, Linux ARMV8.
	PresetDeploymentConfig *string `type:"string"`

	// The deployment type SageMaker Edge Manager will create. Currently only supports
	// Amazon Web Services IoT Greengrass Version 2 components.
	PresetDeploymentType *string `type:"string" enum:"EdgePresetDeploymentType"`

	// The Amazon Simple Storage (S3) bucker URI.
	//
	// S3OutputLocation is a required field
	S3OutputLocation *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EdgeOutputConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EdgeOutputConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *EdgeOutputConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "EdgeOutputConfig"}
	if s.S3OutputLocation == nil {
		invalidParams.Add(request.NewErrParamRequired("S3OutputLocation"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *EdgeOutputConfig) SetKmsKeyId(v string) *EdgeOutputConfig {
	s.KmsKeyId = &v
	return s
}

// SetPresetDeploymentConfig sets the PresetDeploymentConfig field's value.
func (s *EdgeOutputConfig) SetPresetDeploymentConfig(v string) *EdgeOutputConfig {
	s.PresetDeploymentConfig = &v
	return s
}

// SetPresetDeploymentType sets the PresetDeploymentType field's value.
func (s *EdgeOutputConfig) SetPresetDeploymentType(v string) *EdgeOutputConfig {
	s.PresetDeploymentType = &v
	return s
}

// SetS3OutputLocation sets the S3OutputLocation field's value.
func (s *EdgeOutputConfig) SetS3OutputLocation(v string) *EdgeOutputConfig {
	s.S3OutputLocation = &v
	return s
}

// Summary of edge packaging job.
type EdgePackagingJobSummary struct {
	_ struct{} `type:"structure"`

	// The name of the SageMaker Neo compilation job.
	CompilationJobName *string `min:"1" type:"string"`

	// The timestamp of when the job was created.
	CreationTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the edge packaging job.
	//
	// EdgePackagingJobArn is a required field
	EdgePackagingJobArn *string `min:"20" type:"string" required:"true"`

	// The name of the edge packaging job.
	//
	// EdgePackagingJobName is a required field
	EdgePackagingJobName *string `min:"1" type:"string" required:"true"`

	// The status of the edge packaging job.
	//
	// EdgePackagingJobStatus is a required field
	EdgePackagingJobStatus *string `type:"string" required:"true" enum:"EdgePackagingJobStatus"`

	// The timestamp of when the edge packaging job was last updated.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The name of the model.
	ModelName *string `min:"1" type:"string"`

	// The version of the model.
	ModelVersion *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EdgePackagingJobSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EdgePackagingJobSummary) GoString() string {
	return s.String()
}

// SetCompilationJobName sets the CompilationJobName field's value.
func (s *EdgePackagingJobSummary) SetCompilationJobName(v string) *EdgePackagingJobSummary {
	s.CompilationJobName = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *EdgePackagingJobSummary) SetCreationTime(v time.Time) *EdgePackagingJobSummary {
	s.CreationTime = &v
	return s
}

// SetEdgePackagingJobArn sets the EdgePackagingJobArn field's value.
func (s *EdgePackagingJobSummary) SetEdgePackagingJobArn(v string) *EdgePackagingJobSummary {
	s.EdgePackagingJobArn = &v
	return s
}

// SetEdgePackagingJobName sets the EdgePackagingJobName field's value.
func (s *EdgePackagingJobSummary) SetEdgePackagingJobName(v string) *EdgePackagingJobSummary {
	s.EdgePackagingJobName = &v
	return s
}

// SetEdgePackagingJobStatus sets the EdgePackagingJobStatus field's value.
func (s *EdgePackagingJobSummary) SetEdgePackagingJobStatus(v string) *EdgePackagingJobSummary {
	s.EdgePackagingJobStatus = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *EdgePackagingJobSummary) SetLastModifiedTime(v time.Time) *EdgePackagingJobSummary {
	s.LastModifiedTime = &v
	return s
}

// SetModelName sets the ModelName field's value.
func (s *EdgePackagingJobSummary) SetModelName(v string) *EdgePackagingJobSummary {
	s.ModelName = &v
	return s
}

// SetModelVersion sets the ModelVersion field's value.
func (s *EdgePackagingJobSummary) SetModelVersion(v string) *EdgePackagingJobSummary {
	s.ModelVersion = &v
	return s
}

// The output of a SageMaker Edge Manager deployable resource.
type EdgePresetDeploymentOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the generated deployable resource.
	Artifact *string `min:"20" type:"string"`

	// The status of the deployable resource.
	Status *string `type:"string" enum:"EdgePresetDeploymentStatus"`

	// Returns a message describing the status of the deployed resource.
	StatusMessage *string `type:"string"`

	// The deployment type created by SageMaker Edge Manager. Currently only supports
	// Amazon Web Services IoT Greengrass Version 2 components.
	//
	// Type is a required field
	Type *string `type:"string" required:"true" enum:"EdgePresetDeploymentType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EdgePresetDeploymentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EdgePresetDeploymentOutput) GoString() string {
	return s.String()
}

// SetArtifact sets the Artifact field's value.
func (s *EdgePresetDeploymentOutput) SetArtifact(v string) *EdgePresetDeploymentOutput {
	s.Artifact = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *EdgePresetDeploymentOutput) SetStatus(v string) *EdgePresetDeploymentOutput {
	s.Status = &v
	return s
}

// SetStatusMessage sets the StatusMessage field's value.
func (s *EdgePresetDeploymentOutput) SetStatusMessage(v string) *EdgePresetDeploymentOutput {
	s.StatusMessage = &v
	return s
}

// SetType sets the Type field's value.
func (s *EdgePresetDeploymentOutput) SetType(v string) *EdgePresetDeploymentOutput {
	s.Type = &v
	return s
}

type EnableSagemakerServicecatalogPortfolioInput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EnableSagemakerServicecatalogPortfolioInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EnableSagemakerServicecatalogPortfolioInput) GoString() string {
	return s.String()
}

type EnableSagemakerServicecatalogPortfolioOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EnableSagemakerServicecatalogPortfolioOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EnableSagemakerServicecatalogPortfolioOutput) GoString() string {
	return s.String()
}

// A hosted endpoint for real-time inference.
type Endpoint struct {
	_ struct{} `type:"structure"`

	// The time that the endpoint was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The currently active data capture configuration used by your Endpoint.
	DataCaptureConfig *DataCaptureConfigSummary `type:"structure"`

	// The Amazon Resource Name (ARN) of the endpoint.
	//
	// EndpointArn is a required field
	EndpointArn *string `min:"20" type:"string" required:"true"`

	// The endpoint configuration associated with the endpoint.
	//
	// EndpointConfigName is a required field
	EndpointConfigName *string `type:"string" required:"true"`

	// The name of the endpoint.
	//
	// EndpointName is a required field
	EndpointName *string `type:"string" required:"true"`

	// The status of the endpoint.
	//
	// EndpointStatus is a required field
	EndpointStatus *string `type:"string" required:"true" enum:"EndpointStatus"`

	// If the endpoint failed, the reason it failed.
	FailureReason *string `type:"string"`

	// The last time the endpoint was modified.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`

	// A list of monitoring schedules for the endpoint. For information about model
	// monitoring, see Amazon SageMaker Model Monitor (https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor.html).
	MonitoringSchedules []*MonitoringSchedule `type:"list"`

	// A list of the production variants hosted on the endpoint. Each production
	// variant is a model.
	ProductionVariants []*ProductionVariantSummary `min:"1" type:"list"`

	// A list of the shadow variants hosted on the endpoint. Each shadow variant
	// is a model in shadow mode with production traffic replicated from the production
	// variant.
	ShadowProductionVariants []*ProductionVariantSummary `min:"1" type:"list"`

	// A list of the tags associated with the endpoint. For more information, see
	// Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)
	// in the Amazon Web Services General Reference Guide.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Endpoint) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Endpoint) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *Endpoint) SetCreationTime(v time.Time) *Endpoint {
	s.CreationTime = &v
	return s
}

// SetDataCaptureConfig sets the DataCaptureConfig field's value.
func (s *Endpoint) SetDataCaptureConfig(v *DataCaptureConfigSummary) *Endpoint {
	s.DataCaptureConfig = v
	return s
}

// SetEndpointArn sets the EndpointArn field's value.
func (s *Endpoint) SetEndpointArn(v string) *Endpoint {
	s.EndpointArn = &v
	return s
}

// SetEndpointConfigName sets the EndpointConfigName field's value.
func (s *Endpoint) SetEndpointConfigName(v string) *Endpoint {
	s.EndpointConfigName = &v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *Endpoint) SetEndpointName(v string) *Endpoint {
	s.EndpointName = &v
	return s
}

// SetEndpointStatus sets the EndpointStatus field's value.
func (s *Endpoint) SetEndpointStatus(v string) *Endpoint {
	s.EndpointStatus = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *Endpoint) SetFailureReason(v string) *Endpoint {
	s.FailureReason = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *Endpoint) SetLastModifiedTime(v time.Time) *Endpoint {
	s.LastModifiedTime = &v
	return s
}

// SetMonitoringSchedules sets the MonitoringSchedules field's value.
func (s *Endpoint) SetMonitoringSchedules(v []*MonitoringSchedule) *Endpoint {
	s.MonitoringSchedules = v
	return s
}

// SetProductionVariants sets the ProductionVariants field's value.
func (s *Endpoint) SetProductionVariants(v []*ProductionVariantSummary) *Endpoint {
	s.ProductionVariants = v
	return s
}

// SetShadowProductionVariants sets the ShadowProductionVariants field's value.
func (s *Endpoint) SetShadowProductionVariants(v []*ProductionVariantSummary) *Endpoint {
	s.ShadowProductionVariants = v
	return s
}

// SetTags sets the Tags field's value.
func (s *Endpoint) SetTags(v []*Tag) *Endpoint {
	s.Tags = v
	return s
}

// Provides summary information for an endpoint configuration.
type EndpointConfigSummary struct {
	_ struct{} `type:"structure"`

	// A timestamp that shows when the endpoint configuration was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The Amazon Resource Name (ARN) of the endpoint configuration.
	//
	// EndpointConfigArn is a required field
	EndpointConfigArn *string `min:"20" type:"string" required:"true"`

	// The name of the endpoint configuration.
	//
	// EndpointConfigName is a required field
	EndpointConfigName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EndpointConfigSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EndpointConfigSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *EndpointConfigSummary) SetCreationTime(v time.Time) *EndpointConfigSummary {
	s.CreationTime = &v
	return s
}

// SetEndpointConfigArn sets the EndpointConfigArn field's value.
func (s *EndpointConfigSummary) SetEndpointConfigArn(v string) *EndpointConfigSummary {
	s.EndpointConfigArn = &v
	return s
}

// SetEndpointConfigName sets the EndpointConfigName field's value.
func (s *EndpointConfigSummary) SetEndpointConfigName(v string) *EndpointConfigSummary {
	s.EndpointConfigName = &v
	return s
}

// Details about a customer endpoint that was compared in an Inference Recommender
// job.
type EndpointInfo struct {
	_ struct{} `type:"structure"`

	// The name of a customer's endpoint.
	EndpointName *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EndpointInfo) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EndpointInfo) GoString() string {
	return s.String()
}

// SetEndpointName sets the EndpointName field's value.
func (s *EndpointInfo) SetEndpointName(v string) *EndpointInfo {
	s.EndpointName = &v
	return s
}

// Input object for the endpoint
type EndpointInput struct {
	_ struct{} `type:"structure"`

	// If specified, monitoring jobs substract this time from the end time. For
	// information about using offsets for scheduling monitoring jobs, see Schedule
	// Model Quality Monitoring Jobs (https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-schedule.html).
	EndTimeOffset *string `min:"1" type:"string"`

	// An endpoint in customer's account which has enabled DataCaptureConfig enabled.
	//
	// EndpointName is a required field
	EndpointName *string `type:"string" required:"true"`

	// The attributes of the input data to exclude from the analysis.
	ExcludeFeaturesAttribute *string `type:"string"`

	// The attributes of the input data that are the input features.
	FeaturesAttribute *string `type:"string"`

	// The attribute of the input data that represents the ground truth label.
	InferenceAttribute *string `type:"string"`

	// Path to the filesystem where the endpoint data is available to the container.
	//
	// LocalPath is a required field
	LocalPath *string `type:"string" required:"true"`

	// In a classification problem, the attribute that represents the class probability.
	ProbabilityAttribute *string `type:"string"`

	// The threshold for the class probability to be evaluated as a positive result.
	ProbabilityThresholdAttribute *float64 `type:"double"`

	// Whether input data distributed in Amazon S3 is fully replicated or sharded
	// by an Amazon S3 key. Defaults to FullyReplicated
	S3DataDistributionType *string `type:"string" enum:"ProcessingS3DataDistributionType"`

	// Whether the Pipe or File is used as the input mode for transferring data
	// for the monitoring job. Pipe mode is recommended for large datasets. File
	// mode is useful for small files that fit in memory. Defaults to File.
	S3InputMode *string `type:"string" enum:"ProcessingS3InputMode"`

	// If specified, monitoring jobs substract this time from the start time. For
	// information about using offsets for scheduling monitoring jobs, see Schedule
	// Model Quality Monitoring Jobs (https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-schedule.html).
	StartTimeOffset *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EndpointInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EndpointInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *EndpointInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "EndpointInput"}
	if s.EndTimeOffset != nil && len(*s.EndTimeOffset) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("EndTimeOffset", 1))
	}
	if s.EndpointName == nil {
		invalidParams.Add(request.NewErrParamRequired("EndpointName"))
	}
	if s.LocalPath == nil {
		invalidParams.Add(request.NewErrParamRequired("LocalPath"))
	}
	if s.StartTimeOffset != nil && len(*s.StartTimeOffset) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("StartTimeOffset", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEndTimeOffset sets the EndTimeOffset field's value.
func (s *EndpointInput) SetEndTimeOffset(v string) *EndpointInput {
	s.EndTimeOffset = &v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *EndpointInput) SetEndpointName(v string) *EndpointInput {
	s.EndpointName = &v
	return s
}

// SetExcludeFeaturesAttribute sets the ExcludeFeaturesAttribute field's value.
func (s *EndpointInput) SetExcludeFeaturesAttribute(v string) *EndpointInput {
	s.ExcludeFeaturesAttribute = &v
	return s
}

// SetFeaturesAttribute sets the FeaturesAttribute field's value.
func (s *EndpointInput) SetFeaturesAttribute(v string) *EndpointInput {
	s.FeaturesAttribute = &v
	return s
}

// SetInferenceAttribute sets the InferenceAttribute field's value.
func (s *EndpointInput) SetInferenceAttribute(v string) *EndpointInput {
	s.InferenceAttribute = &v
	return s
}

// SetLocalPath sets the LocalPath field's value.
func (s *EndpointInput) SetLocalPath(v string) *EndpointInput {
	s.LocalPath = &v
	return s
}

// SetProbabilityAttribute sets the ProbabilityAttribute field's value.
func (s *EndpointInput) SetProbabilityAttribute(v string) *EndpointInput {
	s.ProbabilityAttribute = &v
	return s
}

// SetProbabilityThresholdAttribute sets the ProbabilityThresholdAttribute field's value.
func (s *EndpointInput) SetProbabilityThresholdAttribute(v float64) *EndpointInput {
	s.ProbabilityThresholdAttribute = &v
	return s
}

// SetS3DataDistributionType sets the S3DataDistributionType field's value.
func (s *EndpointInput) SetS3DataDistributionType(v string) *EndpointInput {
	s.S3DataDistributionType = &v
	return s
}

// SetS3InputMode sets the S3InputMode field's value.
func (s *EndpointInput) SetS3InputMode(v string) *EndpointInput {
	s.S3InputMode = &v
	return s
}

// SetStartTimeOffset sets the StartTimeOffset field's value.
func (s *EndpointInput) SetStartTimeOffset(v string) *EndpointInput {
	s.StartTimeOffset = &v
	return s
}

// The endpoint configuration for the load test.
type EndpointInputConfiguration struct {
	_ struct{} `type:"structure"`

	// The parameter you want to benchmark against.
	EnvironmentParameterRanges *EnvironmentParameterRanges `type:"structure"`

	// The inference specification name in the model package version.
	InferenceSpecificationName *string `min:"1" type:"string"`

	// The instance types to use for the load test.
	InstanceType *string `type:"string" enum:"ProductionVariantInstanceType"`

	// Specifies the serverless configuration for an endpoint variant.
	ServerlessConfig *ProductionVariantServerlessConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EndpointInputConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EndpointInputConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *EndpointInputConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "EndpointInputConfiguration"}
	if s.InferenceSpecificationName != nil && len(*s.InferenceSpecificationName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("InferenceSpecificationName", 1))
	}
	if s.EnvironmentParameterRanges != nil {
		if err := s.EnvironmentParameterRanges.Validate(); err != nil {
			invalidParams.AddNested("EnvironmentParameterRanges", err.(request.ErrInvalidParams))
		}
	}
	if s.ServerlessConfig != nil {
		if err := s.ServerlessConfig.Validate(); err != nil {
			invalidParams.AddNested("ServerlessConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEnvironmentParameterRanges sets the EnvironmentParameterRanges field's value.
func (s *EndpointInputConfiguration) SetEnvironmentParameterRanges(v *EnvironmentParameterRanges) *EndpointInputConfiguration {
	s.EnvironmentParameterRanges = v
	return s
}

// SetInferenceSpecificationName sets the InferenceSpecificationName field's value.
func (s *EndpointInputConfiguration) SetInferenceSpecificationName(v string) *EndpointInputConfiguration {
	s.InferenceSpecificationName = &v
	return s
}

// SetInstanceType sets the InstanceType field's value.
func (s *EndpointInputConfiguration) SetInstanceType(v string) *EndpointInputConfiguration {
	s.InstanceType = &v
	return s
}

// SetServerlessConfig sets the ServerlessConfig field's value.
func (s *EndpointInputConfiguration) SetServerlessConfig(v *ProductionVariantServerlessConfig) *EndpointInputConfiguration {
	s.ServerlessConfig = v
	return s
}

// The metadata of the endpoint.
type EndpointMetadata struct {
	_ struct{} `type:"structure"`

	// The name of the endpoint configuration.
	EndpointConfigName *string `type:"string"`

	// The name of the endpoint.
	//
	// EndpointName is a required field
	EndpointName *string `type:"string" required:"true"`

	// The status of the endpoint. For possible values of the status of an endpoint,
	// see EndpointSummary (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_EndpointSummary.html).
	EndpointStatus *string `type:"string" enum:"EndpointStatus"`

	// If the status of the endpoint is Failed, or the status is InService but update
	// operation fails, this provides the reason why it failed.
	FailureReason *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EndpointMetadata) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EndpointMetadata) GoString() string {
	return s.String()
}

// SetEndpointConfigName sets the EndpointConfigName field's value.
func (s *EndpointMetadata) SetEndpointConfigName(v string) *EndpointMetadata {
	s.EndpointConfigName = &v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *EndpointMetadata) SetEndpointName(v string) *EndpointMetadata {
	s.EndpointName = &v
	return s
}

// SetEndpointStatus sets the EndpointStatus field's value.
func (s *EndpointMetadata) SetEndpointStatus(v string) *EndpointMetadata {
	s.EndpointStatus = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *EndpointMetadata) SetFailureReason(v string) *EndpointMetadata {
	s.FailureReason = &v
	return s
}

// The endpoint configuration made by Inference Recommender during a recommendation
// job.
type EndpointOutputConfiguration struct {
	_ struct{} `type:"structure"`

	// The name of the endpoint made during a recommendation job.
	//
	// EndpointName is a required field
	EndpointName *string `type:"string" required:"true"`

	// The number of instances recommended to launch initially.
	InitialInstanceCount *int64 `min:"1" type:"integer"`

	// The instance type recommended by Amazon SageMaker Inference Recommender.
	InstanceType *string `type:"string" enum:"ProductionVariantInstanceType"`

	// Specifies the serverless configuration for an endpoint variant.
	ServerlessConfig *ProductionVariantServerlessConfig `type:"structure"`

	// The name of the production variant (deployed model) made during a recommendation
	// job.
	//
	// VariantName is a required field
	VariantName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EndpointOutputConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EndpointOutputConfiguration) GoString() string {
	return s.String()
}

// SetEndpointName sets the EndpointName field's value.
func (s *EndpointOutputConfiguration) SetEndpointName(v string) *EndpointOutputConfiguration {
	s.EndpointName = &v
	return s
}

// SetInitialInstanceCount sets the InitialInstanceCount field's value.
func (s *EndpointOutputConfiguration) SetInitialInstanceCount(v int64) *EndpointOutputConfiguration {
	s.InitialInstanceCount = &v
	return s
}

// SetInstanceType sets the InstanceType field's value.
func (s *EndpointOutputConfiguration) SetInstanceType(v string) *EndpointOutputConfiguration {
	s.InstanceType = &v
	return s
}

// SetServerlessConfig sets the ServerlessConfig field's value.
func (s *EndpointOutputConfiguration) SetServerlessConfig(v *ProductionVariantServerlessConfig) *EndpointOutputConfiguration {
	s.ServerlessConfig = v
	return s
}

// SetVariantName sets the VariantName field's value.
func (s *EndpointOutputConfiguration) SetVariantName(v string) *EndpointOutputConfiguration {
	s.VariantName = &v
	return s
}

// The performance results from running an Inference Recommender job on an existing
// endpoint.
type EndpointPerformance struct {
	_ struct{} `type:"structure"`

	// Details about a customer endpoint that was compared in an Inference Recommender
	// job.
	//
	// EndpointInfo is a required field
	EndpointInfo *EndpointInfo `type:"structure" required:"true"`

	// The metrics for an existing endpoint.
	//
	// Metrics is a required field
	Metrics *InferenceMetrics `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EndpointPerformance) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EndpointPerformance) GoString() string {
	return s.String()
}

// SetEndpointInfo sets the EndpointInfo field's value.
func (s *EndpointPerformance) SetEndpointInfo(v *EndpointInfo) *EndpointPerformance {
	s.EndpointInfo = v
	return s
}

// SetMetrics sets the Metrics field's value.
func (s *EndpointPerformance) SetMetrics(v *InferenceMetrics) *EndpointPerformance {
	s.Metrics = v
	return s
}

// Provides summary information for an endpoint.
type EndpointSummary struct {
	_ struct{} `type:"structure"`

	// A timestamp that shows when the endpoint was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The Amazon Resource Name (ARN) of the endpoint.
	//
	// EndpointArn is a required field
	EndpointArn *string `min:"20" type:"string" required:"true"`

	// The name of the endpoint.
	//
	// EndpointName is a required field
	EndpointName *string `type:"string" required:"true"`

	// The status of the endpoint.
	//
	//    * OutOfService: Endpoint is not available to take incoming requests.
	//
	//    * Creating: CreateEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html)
	//    is executing.
	//
	//    * Updating: UpdateEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html)
	//    or UpdateEndpointWeightsAndCapacities (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html)
	//    is executing.
	//
	//    * SystemUpdating: Endpoint is undergoing maintenance and cannot be updated
	//    or deleted or re-scaled until it has completed. This maintenance operation
	//    does not change any customer-specified values such as VPC config, KMS
	//    encryption, model, instance type, or instance count.
	//
	//    * RollingBack: Endpoint fails to scale up or down or change its variant
	//    weight and is in the process of rolling back to its previous configuration.
	//    Once the rollback completes, endpoint returns to an InService status.
	//    This transitional status only applies to an endpoint that has autoscaling
	//    enabled and is undergoing variant weight or capacity changes as part of
	//    an UpdateEndpointWeightsAndCapacities (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html)
	//    call or when the UpdateEndpointWeightsAndCapacities (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html)
	//    operation is called explicitly.
	//
	//    * InService: Endpoint is available to process incoming requests.
	//
	//    * Deleting: DeleteEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteEndpoint.html)
	//    is executing.
	//
	//    * Failed: Endpoint could not be created, updated, or re-scaled. Use DescribeEndpointOutput$FailureReason
	//    for information about the failure. DeleteEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteEndpoint.html)
	//    is the only operation that can be performed on a failed endpoint.
	//
	// To get a list of endpoints with a specified status, use the StatusEquals
	// filter with a call to ListEndpoints (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListEndpoints.html).
	//
	// EndpointStatus is a required field
	EndpointStatus *string `type:"string" required:"true" enum:"EndpointStatus"`

	// A timestamp that shows when the endpoint was last modified.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EndpointSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EndpointSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *EndpointSummary) SetCreationTime(v time.Time) *EndpointSummary {
	s.CreationTime = &v
	return s
}

// SetEndpointArn sets the EndpointArn field's value.
func (s *EndpointSummary) SetEndpointArn(v string) *EndpointSummary {
	s.EndpointArn = &v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *EndpointSummary) SetEndpointName(v string) *EndpointSummary {
	s.EndpointName = &v
	return s
}

// SetEndpointStatus sets the EndpointStatus field's value.
func (s *EndpointSummary) SetEndpointStatus(v string) *EndpointSummary {
	s.EndpointStatus = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *EndpointSummary) SetLastModifiedTime(v time.Time) *EndpointSummary {
	s.LastModifiedTime = &v
	return s
}

// A list of environment parameters suggested by the Amazon SageMaker Inference
// Recommender.
type EnvironmentParameter struct {
	_ struct{} `type:"structure"`

	// The environment key suggested by the Amazon SageMaker Inference Recommender.
	//
	// Key is a required field
	Key *string `type:"string" required:"true"`

	// The value suggested by the Amazon SageMaker Inference Recommender.
	//
	// Value is a required field
	Value *string `type:"string" required:"true"`

	// The value type suggested by the Amazon SageMaker Inference Recommender.
	//
	// ValueType is a required field
	ValueType *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EnvironmentParameter) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EnvironmentParameter) GoString() string {
	return s.String()
}

// SetKey sets the Key field's value.
func (s *EnvironmentParameter) SetKey(v string) *EnvironmentParameter {
	s.Key = &v
	return s
}

// SetValue sets the Value field's value.
func (s *EnvironmentParameter) SetValue(v string) *EnvironmentParameter {
	s.Value = &v
	return s
}

// SetValueType sets the ValueType field's value.
func (s *EnvironmentParameter) SetValueType(v string) *EnvironmentParameter {
	s.ValueType = &v
	return s
}

// Specifies the range of environment parameters
type EnvironmentParameterRanges struct {
	_ struct{} `type:"structure"`

	// Specified a list of parameters for each category.
	CategoricalParameterRanges []*CategoricalParameter `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EnvironmentParameterRanges) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EnvironmentParameterRanges) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *EnvironmentParameterRanges) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "EnvironmentParameterRanges"}
	if s.CategoricalParameterRanges != nil && len(s.CategoricalParameterRanges) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("CategoricalParameterRanges", 1))
	}
	if s.CategoricalParameterRanges != nil {
		for i, v := range s.CategoricalParameterRanges {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CategoricalParameterRanges", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCategoricalParameterRanges sets the CategoricalParameterRanges field's value.
func (s *EnvironmentParameterRanges) SetCategoricalParameterRanges(v []*CategoricalParameter) *EnvironmentParameterRanges {
	s.CategoricalParameterRanges = v
	return s
}

// The properties of an experiment as returned by the Search (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html)
// API.
type Experiment struct {
	_ struct{} `type:"structure"`

	// Who created the experiment.
	CreatedBy *UserContext `type:"structure"`

	// When the experiment was created.
	CreationTime *time.Time `type:"timestamp"`

	// The description of the experiment.
	Description *string `type:"string"`

	// The name of the experiment as displayed. If DisplayName isn't specified,
	// ExperimentName is displayed.
	DisplayName *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) of the experiment.
	ExperimentArn *string `type:"string"`

	// The name of the experiment.
	ExperimentName *string `min:"1" type:"string"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	LastModifiedBy *UserContext `type:"structure"`

	// When the experiment was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The source of the experiment.
	Source *ExperimentSource `type:"structure"`

	// The list of tags that are associated with the experiment. You can use Search
	// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html)
	// API to search on the tags.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Experiment) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Experiment) GoString() string {
	return s.String()
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *Experiment) SetCreatedBy(v *UserContext) *Experiment {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *Experiment) SetCreationTime(v time.Time) *Experiment {
	s.CreationTime = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *Experiment) SetDescription(v string) *Experiment {
	s.Description = &v
	return s
}

// SetDisplayName sets the DisplayName field's value.
func (s *Experiment) SetDisplayName(v string) *Experiment {
	s.DisplayName = &v
	return s
}

// SetExperimentArn sets the ExperimentArn field's value.
func (s *Experiment) SetExperimentArn(v string) *Experiment {
	s.ExperimentArn = &v
	return s
}

// SetExperimentName sets the ExperimentName field's value.
func (s *Experiment) SetExperimentName(v string) *Experiment {
	s.ExperimentName = &v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *Experiment) SetLastModifiedBy(v *UserContext) *Experiment {
	s.LastModifiedBy = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *Experiment) SetLastModifiedTime(v time.Time) *Experiment {
	s.LastModifiedTime = &v
	return s
}

// SetSource sets the Source field's value.
func (s *Experiment) SetSource(v *ExperimentSource) *Experiment {
	s.Source = v
	return s
}

// SetTags sets the Tags field's value.
func (s *Experiment) SetTags(v []*Tag) *Experiment {
	s.Tags = v
	return s
}

// Associates a SageMaker job as a trial component with an experiment and trial.
// Specified when you call the following APIs:
//
//   - CreateProcessingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html)
//
//   - CreateTrainingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)
//
//   - CreateTransformJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html)
type ExperimentConfig struct {
	_ struct{} `type:"structure"`

	// The name of an existing experiment to associate with the trial component.
	ExperimentName *string `min:"1" type:"string"`

	// The name of the experiment run to associate with the trial component.
	RunName *string `min:"1" type:"string"`

	// The display name for the trial component. If this key isn't specified, the
	// display name is the trial component name.
	TrialComponentDisplayName *string `min:"1" type:"string"`

	// The name of an existing trial to associate the trial component with. If not
	// specified, a new trial is created.
	TrialName *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ExperimentConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ExperimentConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ExperimentConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ExperimentConfig"}
	if s.ExperimentName != nil && len(*s.ExperimentName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ExperimentName", 1))
	}
	if s.RunName != nil && len(*s.RunName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("RunName", 1))
	}
	if s.TrialComponentDisplayName != nil && len(*s.TrialComponentDisplayName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TrialComponentDisplayName", 1))
	}
	if s.TrialName != nil && len(*s.TrialName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TrialName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetExperimentName sets the ExperimentName field's value.
func (s *ExperimentConfig) SetExperimentName(v string) *ExperimentConfig {
	s.ExperimentName = &v
	return s
}

// SetRunName sets the RunName field's value.
func (s *ExperimentConfig) SetRunName(v string) *ExperimentConfig {
	s.RunName = &v
	return s
}

// SetTrialComponentDisplayName sets the TrialComponentDisplayName field's value.
func (s *ExperimentConfig) SetTrialComponentDisplayName(v string) *ExperimentConfig {
	s.TrialComponentDisplayName = &v
	return s
}

// SetTrialName sets the TrialName field's value.
func (s *ExperimentConfig) SetTrialName(v string) *ExperimentConfig {
	s.TrialName = &v
	return s
}

// The source of the experiment.
type ExperimentSource struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the source.
	//
	// SourceArn is a required field
	SourceArn *string `type:"string" required:"true"`

	// The source type.
	SourceType *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ExperimentSource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ExperimentSource) GoString() string {
	return s.String()
}

// SetSourceArn sets the SourceArn field's value.
func (s *ExperimentSource) SetSourceArn(v string) *ExperimentSource {
	s.SourceArn = &v
	return s
}

// SetSourceType sets the SourceType field's value.
func (s *ExperimentSource) SetSourceType(v string) *ExperimentSource {
	s.SourceType = &v
	return s
}

// A summary of the properties of an experiment. To get the complete set of
// properties, call the DescribeExperiment (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeExperiment.html)
// API and provide the ExperimentName.
type ExperimentSummary struct {
	_ struct{} `type:"structure"`

	// When the experiment was created.
	CreationTime *time.Time `type:"timestamp"`

	// The name of the experiment as displayed. If DisplayName isn't specified,
	// ExperimentName is displayed.
	DisplayName *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) of the experiment.
	ExperimentArn *string `type:"string"`

	// The name of the experiment.
	ExperimentName *string `min:"1" type:"string"`

	// The source of the experiment.
	ExperimentSource *ExperimentSource `type:"structure"`

	// When the experiment was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ExperimentSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ExperimentSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *ExperimentSummary) SetCreationTime(v time.Time) *ExperimentSummary {
	s.CreationTime = &v
	return s
}

// SetDisplayName sets the DisplayName field's value.
func (s *ExperimentSummary) SetDisplayName(v string) *ExperimentSummary {
	s.DisplayName = &v
	return s
}

// SetExperimentArn sets the ExperimentArn field's value.
func (s *ExperimentSummary) SetExperimentArn(v string) *ExperimentSummary {
	s.ExperimentArn = &v
	return s
}

// SetExperimentName sets the ExperimentName field's value.
func (s *ExperimentSummary) SetExperimentName(v string) *ExperimentSummary {
	s.ExperimentName = &v
	return s
}

// SetExperimentSource sets the ExperimentSource field's value.
func (s *ExperimentSummary) SetExperimentSource(v *ExperimentSource) *ExperimentSummary {
	s.ExperimentSource = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *ExperimentSummary) SetLastModifiedTime(v time.Time) *ExperimentSummary {
	s.LastModifiedTime = &v
	return s
}

// Contains explainability metrics for a model.
type Explainability struct {
	_ struct{} `type:"structure"`

	// The explainability report for a model.
	Report *MetricsSource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Explainability) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Explainability) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *Explainability) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "Explainability"}
	if s.Report != nil {
		if err := s.Report.Validate(); err != nil {
			invalidParams.AddNested("Report", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetReport sets the Report field's value.
func (s *Explainability) SetReport(v *MetricsSource) *Explainability {
	s.Report = v
	return s
}

// A parameter to activate explainers.
type ExplainerConfig struct {
	_ struct{} `type:"structure"`

	// A member of ExplainerConfig that contains configuration parameters for the
	// SageMaker Clarify explainer.
	ClarifyExplainerConfig *ClarifyExplainerConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ExplainerConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ExplainerConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ExplainerConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ExplainerConfig"}
	if s.ClarifyExplainerConfig != nil {
		if err := s.ClarifyExplainerConfig.Validate(); err != nil {
			invalidParams.AddNested("ClarifyExplainerConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClarifyExplainerConfig sets the ClarifyExplainerConfig field's value.
func (s *ExplainerConfig) SetClarifyExplainerConfig(v *ClarifyExplainerConfig) *ExplainerConfig {
	s.ClarifyExplainerConfig = v
	return s
}

// The container for the metadata for Fail step.
type FailStepMetadata struct {
	_ struct{} `type:"structure"`

	// A message that you define and then is processed and rendered by the Fail
	// step when the error occurs.
	ErrorMessage *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FailStepMetadata) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FailStepMetadata) GoString() string {
	return s.String()
}

// SetErrorMessage sets the ErrorMessage field's value.
func (s *FailStepMetadata) SetErrorMessage(v string) *FailStepMetadata {
	s.ErrorMessage = &v
	return s
}

// A list of features. You must include FeatureName and FeatureType. Valid feature
// FeatureTypes are Integral, Fractional and String.
type FeatureDefinition struct {
	_ struct{} `type:"structure"`

	// Configuration for your collection.
	CollectionConfig *CollectionConfig `type:"structure"`

	// A grouping of elements where each element within the collection must have
	// the same feature type (String, Integral, or Fractional).
	//
	//    * List: An ordered collection of elements.
	//
	//    * Set: An unordered collection of unique elements.
	//
	//    * Vector: A specialized list that represents a fixed-size array of elements.
	//    The vector dimension is determined by you. Must have elements with fractional
	//    feature types.
	CollectionType *string `type:"string" enum:"CollectionType"`

	// The name of a feature. The type must be a string. FeatureName cannot be any
	// of the following: is_deleted, write_time, api_invocation_time.
	//
	// FeatureName is a required field
	FeatureName *string `min:"1" type:"string" required:"true"`

	// The value type of a feature. Valid values are Integral, Fractional, or String.
	//
	// FeatureType is a required field
	FeatureType *string `type:"string" required:"true" enum:"FeatureType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FeatureDefinition) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FeatureDefinition) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *FeatureDefinition) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "FeatureDefinition"}
	if s.FeatureName == nil {
		invalidParams.Add(request.NewErrParamRequired("FeatureName"))
	}
	if s.FeatureName != nil && len(*s.FeatureName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FeatureName", 1))
	}
	if s.FeatureType == nil {
		invalidParams.Add(request.NewErrParamRequired("FeatureType"))
	}
	if s.CollectionConfig != nil {
		if err := s.CollectionConfig.Validate(); err != nil {
			invalidParams.AddNested("CollectionConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCollectionConfig sets the CollectionConfig field's value.
func (s *FeatureDefinition) SetCollectionConfig(v *CollectionConfig) *FeatureDefinition {
	s.CollectionConfig = v
	return s
}

// SetCollectionType sets the CollectionType field's value.
func (s *FeatureDefinition) SetCollectionType(v string) *FeatureDefinition {
	s.CollectionType = &v
	return s
}

// SetFeatureName sets the FeatureName field's value.
func (s *FeatureDefinition) SetFeatureName(v string) *FeatureDefinition {
	s.FeatureName = &v
	return s
}

// SetFeatureType sets the FeatureType field's value.
func (s *FeatureDefinition) SetFeatureType(v string) *FeatureDefinition {
	s.FeatureType = &v
	return s
}

// Amazon SageMaker Feature Store stores features in a collection called Feature
// Group. A Feature Group can be visualized as a table which has rows, with
// a unique identifier for each row where each column in the table is a feature.
// In principle, a Feature Group is composed of features and values per features.
type FeatureGroup struct {
	_ struct{} `type:"structure"`

	// The time a FeatureGroup was created.
	CreationTime *time.Time `type:"timestamp"`

	// A free form description of a FeatureGroup.
	Description *string `type:"string"`

	// The name of the feature that stores the EventTime of a Record in a FeatureGroup.
	//
	// A EventTime is point in time when a new event occurs that corresponds to
	// the creation or update of a Record in FeatureGroup. All Records in the FeatureGroup
	// must have a corresponding EventTime.
	EventTimeFeatureName *string `min:"1" type:"string"`

	// The reason that the FeatureGroup failed to be replicated in the OfflineStore.
	// This is failure may be due to a failure to create a FeatureGroup in or delete
	// a FeatureGroup from the OfflineStore.
	FailureReason *string `type:"string"`

	// A list of Features. Each Feature must include a FeatureName and a FeatureType.
	//
	// Valid FeatureTypes are Integral, Fractional and String.
	//
	// FeatureNames cannot be any of the following: is_deleted, write_time, api_invocation_time.
	//
	// You can create up to 2,500 FeatureDefinitions per FeatureGroup.
	FeatureDefinitions []*FeatureDefinition `min:"1" type:"list"`

	// The Amazon Resource Name (ARN) of a FeatureGroup.
	FeatureGroupArn *string `type:"string"`

	// The name of the FeatureGroup.
	FeatureGroupName *string `min:"1" type:"string"`

	// A FeatureGroup status.
	FeatureGroupStatus *string `type:"string" enum:"FeatureGroupStatus"`

	// A timestamp indicating the last time you updated the feature group.
	LastModifiedTime *time.Time `type:"timestamp"`

	// A value that indicates whether the feature group was updated successfully.
	LastUpdateStatus *LastUpdateStatus `type:"structure"`

	// The configuration of an OfflineStore.
	//
	// Provide an OfflineStoreConfig in a request to CreateFeatureGroup to create
	// an OfflineStore.
	//
	// To encrypt an OfflineStore using at rest data encryption, specify Amazon
	// Web Services Key Management Service (KMS) key ID, or KMSKeyId, in S3StorageConfig.
	OfflineStoreConfig *OfflineStoreConfig `type:"structure"`

	// The status of OfflineStore.
	OfflineStoreStatus *OfflineStoreStatus `type:"structure"`

	// Use this to specify the Amazon Web Services Key Management Service (KMS)
	// Key ID, or KMSKeyId, for at rest data encryption. You can turn OnlineStore
	// on or off by specifying the EnableOnlineStore flag at General Assembly.
	//
	// The default value is False.
	OnlineStoreConfig *OnlineStoreConfig `type:"structure"`

	// The name of the Feature whose value uniquely identifies a Record defined
	// in the FeatureGroup FeatureDefinitions.
	RecordIdentifierFeatureName *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) of the IAM execution role used to create the
	// feature group.
	RoleArn *string `min:"20" type:"string"`

	// Tags used to define a FeatureGroup.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FeatureGroup) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FeatureGroup) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *FeatureGroup) SetCreationTime(v time.Time) *FeatureGroup {
	s.CreationTime = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *FeatureGroup) SetDescription(v string) *FeatureGroup {
	s.Description = &v
	return s
}

// SetEventTimeFeatureName sets the EventTimeFeatureName field's value.
func (s *FeatureGroup) SetEventTimeFeatureName(v string) *FeatureGroup {
	s.EventTimeFeatureName = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *FeatureGroup) SetFailureReason(v string) *FeatureGroup {
	s.FailureReason = &v
	return s
}

// SetFeatureDefinitions sets the FeatureDefinitions field's value.
func (s *FeatureGroup) SetFeatureDefinitions(v []*FeatureDefinition) *FeatureGroup {
	s.FeatureDefinitions = v
	return s
}

// SetFeatureGroupArn sets the FeatureGroupArn field's value.
func (s *FeatureGroup) SetFeatureGroupArn(v string) *FeatureGroup {
	s.FeatureGroupArn = &v
	return s
}

// SetFeatureGroupName sets the FeatureGroupName field's value.
func (s *FeatureGroup) SetFeatureGroupName(v string) *FeatureGroup {
	s.FeatureGroupName = &v
	return s
}

// SetFeatureGroupStatus sets the FeatureGroupStatus field's value.
func (s *FeatureGroup) SetFeatureGroupStatus(v string) *FeatureGroup {
	s.FeatureGroupStatus = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *FeatureGroup) SetLastModifiedTime(v time.Time) *FeatureGroup {
	s.LastModifiedTime = &v
	return s
}

// SetLastUpdateStatus sets the LastUpdateStatus field's value.
func (s *FeatureGroup) SetLastUpdateStatus(v *LastUpdateStatus) *FeatureGroup {
	s.LastUpdateStatus = v
	return s
}

// SetOfflineStoreConfig sets the OfflineStoreConfig field's value.
func (s *FeatureGroup) SetOfflineStoreConfig(v *OfflineStoreConfig) *FeatureGroup {
	s.OfflineStoreConfig = v
	return s
}

// SetOfflineStoreStatus sets the OfflineStoreStatus field's value.
func (s *FeatureGroup) SetOfflineStoreStatus(v *OfflineStoreStatus) *FeatureGroup {
	s.OfflineStoreStatus = v
	return s
}

// SetOnlineStoreConfig sets the OnlineStoreConfig field's value.
func (s *FeatureGroup) SetOnlineStoreConfig(v *OnlineStoreConfig) *FeatureGroup {
	s.OnlineStoreConfig = v
	return s
}

// SetRecordIdentifierFeatureName sets the RecordIdentifierFeatureName field's value.
func (s *FeatureGroup) SetRecordIdentifierFeatureName(v string) *FeatureGroup {
	s.RecordIdentifierFeatureName = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *FeatureGroup) SetRoleArn(v string) *FeatureGroup {
	s.RoleArn = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *FeatureGroup) SetTags(v []*Tag) *FeatureGroup {
	s.Tags = v
	return s
}

// The name, ARN, CreationTime, FeatureGroup values, LastUpdatedTime and EnableOnlineStorage
// status of a FeatureGroup.
type FeatureGroupSummary struct {
	_ struct{} `type:"structure"`

	// A timestamp indicating the time of creation time of the FeatureGroup.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// Unique identifier for the FeatureGroup.
	//
	// FeatureGroupArn is a required field
	FeatureGroupArn *string `type:"string" required:"true"`

	// The name of FeatureGroup.
	//
	// FeatureGroupName is a required field
	FeatureGroupName *string `min:"1" type:"string" required:"true"`

	// The status of a FeatureGroup. The status can be any of the following: Creating,
	// Created, CreateFail, Deleting or DetailFail.
	FeatureGroupStatus *string `type:"string" enum:"FeatureGroupStatus"`

	// Notifies you if replicating data into the OfflineStore has failed. Returns
	// either: Active or Blocked.
	OfflineStoreStatus *OfflineStoreStatus `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FeatureGroupSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FeatureGroupSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *FeatureGroupSummary) SetCreationTime(v time.Time) *FeatureGroupSummary {
	s.CreationTime = &v
	return s
}

// SetFeatureGroupArn sets the FeatureGroupArn field's value.
func (s *FeatureGroupSummary) SetFeatureGroupArn(v string) *FeatureGroupSummary {
	s.FeatureGroupArn = &v
	return s
}

// SetFeatureGroupName sets the FeatureGroupName field's value.
func (s *FeatureGroupSummary) SetFeatureGroupName(v string) *FeatureGroupSummary {
	s.FeatureGroupName = &v
	return s
}

// SetFeatureGroupStatus sets the FeatureGroupStatus field's value.
func (s *FeatureGroupSummary) SetFeatureGroupStatus(v string) *FeatureGroupSummary {
	s.FeatureGroupStatus = &v
	return s
}

// SetOfflineStoreStatus sets the OfflineStoreStatus field's value.
func (s *FeatureGroupSummary) SetOfflineStoreStatus(v *OfflineStoreStatus) *FeatureGroupSummary {
	s.OfflineStoreStatus = v
	return s
}

// The metadata for a feature. It can either be metadata that you specify, or
// metadata that is updated automatically.
type FeatureMetadata struct {
	_ struct{} `type:"structure"`

	// A timestamp indicating when the feature was created.
	CreationTime *time.Time `type:"timestamp"`

	// An optional description that you specify to better describe the feature.
	Description *string `type:"string"`

	// The Amazon Resource Number (ARN) of the feature group.
	FeatureGroupArn *string `type:"string"`

	// The name of the feature group containing the feature.
	FeatureGroupName *string `min:"1" type:"string"`

	// The name of feature.
	FeatureName *string `min:"1" type:"string"`

	// The data type of the feature.
	FeatureType *string `type:"string" enum:"FeatureType"`

	// A timestamp indicating when the feature was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// Optional key-value pairs that you specify to better describe the feature.
	Parameters []*FeatureParameter `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FeatureMetadata) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FeatureMetadata) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *FeatureMetadata) SetCreationTime(v time.Time) *FeatureMetadata {
	s.CreationTime = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *FeatureMetadata) SetDescription(v string) *FeatureMetadata {
	s.Description = &v
	return s
}

// SetFeatureGroupArn sets the FeatureGroupArn field's value.
func (s *FeatureMetadata) SetFeatureGroupArn(v string) *FeatureMetadata {
	s.FeatureGroupArn = &v
	return s
}

// SetFeatureGroupName sets the FeatureGroupName field's value.
func (s *FeatureMetadata) SetFeatureGroupName(v string) *FeatureMetadata {
	s.FeatureGroupName = &v
	return s
}

// SetFeatureName sets the FeatureName field's value.
func (s *FeatureMetadata) SetFeatureName(v string) *FeatureMetadata {
	s.FeatureName = &v
	return s
}

// SetFeatureType sets the FeatureType field's value.
func (s *FeatureMetadata) SetFeatureType(v string) *FeatureMetadata {
	s.FeatureType = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *FeatureMetadata) SetLastModifiedTime(v time.Time) *FeatureMetadata {
	s.LastModifiedTime = &v
	return s
}

// SetParameters sets the Parameters field's value.
func (s *FeatureMetadata) SetParameters(v []*FeatureParameter) *FeatureMetadata {
	s.Parameters = v
	return s
}

// A key-value pair that you specify to describe the feature.
type FeatureParameter struct {
	_ struct{} `type:"structure"`

	// A key that must contain a value to describe the feature.
	Key *string `min:"1" type:"string"`

	// The value that belongs to a key.
	Value *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FeatureParameter) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FeatureParameter) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *FeatureParameter) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "FeatureParameter"}
	if s.Key != nil && len(*s.Key) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
	}
	if s.Value != nil && len(*s.Value) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetKey sets the Key field's value.
func (s *FeatureParameter) SetKey(v string) *FeatureParameter {
	s.Key = &v
	return s
}

// SetValue sets the Value field's value.
func (s *FeatureParameter) SetValue(v string) *FeatureParameter {
	s.Value = &v
	return s
}

// Contains details regarding the file source.
type FileSource struct {
	_ struct{} `type:"structure"`

	// The digest of the file source.
	ContentDigest *string `type:"string"`

	// The type of content stored in the file source.
	ContentType *string `type:"string"`

	// The Amazon S3 URI for the file source.
	//
	// S3Uri is a required field
	S3Uri *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FileSource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FileSource) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *FileSource) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "FileSource"}
	if s.S3Uri == nil {
		invalidParams.Add(request.NewErrParamRequired("S3Uri"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContentDigest sets the ContentDigest field's value.
func (s *FileSource) SetContentDigest(v string) *FileSource {
	s.ContentDigest = &v
	return s
}

// SetContentType sets the ContentType field's value.
func (s *FileSource) SetContentType(v string) *FileSource {
	s.ContentType = &v
	return s
}

// SetS3Uri sets the S3Uri field's value.
func (s *FileSource) SetS3Uri(v string) *FileSource {
	s.S3Uri = &v
	return s
}

// The Amazon Elastic File System (EFS) storage configuration for a SageMaker
// image.
type FileSystemConfig struct {
	_ struct{} `type:"structure"`

	// The default POSIX group ID (GID). If not specified, defaults to 100.
	DefaultGid *int64 `type:"integer"`

	// The default POSIX user ID (UID). If not specified, defaults to 1000.
	DefaultUid *int64 `type:"integer"`

	// The path within the image to mount the user's EFS home directory. The directory
	// should be empty. If not specified, defaults to /home/sagemaker-user.
	MountPath *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FileSystemConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FileSystemConfig) GoString() string {
	return s.String()
}

// SetDefaultGid sets the DefaultGid field's value.
func (s *FileSystemConfig) SetDefaultGid(v int64) *FileSystemConfig {
	s.DefaultGid = &v
	return s
}

// SetDefaultUid sets the DefaultUid field's value.
func (s *FileSystemConfig) SetDefaultUid(v int64) *FileSystemConfig {
	s.DefaultUid = &v
	return s
}

// SetMountPath sets the MountPath field's value.
func (s *FileSystemConfig) SetMountPath(v string) *FileSystemConfig {
	s.MountPath = &v
	return s
}

// Specifies a file system data source for a channel.
type FileSystemDataSource struct {
	_ struct{} `type:"structure"`

	// The full path to the directory to associate with the channel.
	//
	// DirectoryPath is a required field
	DirectoryPath *string `type:"string" required:"true"`

	// The access mode of the mount of the directory associated with the channel.
	// A directory can be mounted either in ro (read-only) or rw (read-write) mode.
	//
	// FileSystemAccessMode is a required field
	FileSystemAccessMode *string `type:"string" required:"true" enum:"FileSystemAccessMode"`

	// The file system id.
	//
	// FileSystemId is a required field
	FileSystemId *string `min:"11" type:"string" required:"true"`

	// The file system type.
	//
	// FileSystemType is a required field
	FileSystemType *string `type:"string" required:"true" enum:"FileSystemType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FileSystemDataSource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FileSystemDataSource) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *FileSystemDataSource) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "FileSystemDataSource"}
	if s.DirectoryPath == nil {
		invalidParams.Add(request.NewErrParamRequired("DirectoryPath"))
	}
	if s.FileSystemAccessMode == nil {
		invalidParams.Add(request.NewErrParamRequired("FileSystemAccessMode"))
	}
	if s.FileSystemId == nil {
		invalidParams.Add(request.NewErrParamRequired("FileSystemId"))
	}
	if s.FileSystemId != nil && len(*s.FileSystemId) < 11 {
		invalidParams.Add(request.NewErrParamMinLen("FileSystemId", 11))
	}
	if s.FileSystemType == nil {
		invalidParams.Add(request.NewErrParamRequired("FileSystemType"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDirectoryPath sets the DirectoryPath field's value.
func (s *FileSystemDataSource) SetDirectoryPath(v string) *FileSystemDataSource {
	s.DirectoryPath = &v
	return s
}

// SetFileSystemAccessMode sets the FileSystemAccessMode field's value.
func (s *FileSystemDataSource) SetFileSystemAccessMode(v string) *FileSystemDataSource {
	s.FileSystemAccessMode = &v
	return s
}

// SetFileSystemId sets the FileSystemId field's value.
func (s *FileSystemDataSource) SetFileSystemId(v string) *FileSystemDataSource {
	s.FileSystemId = &v
	return s
}

// SetFileSystemType sets the FileSystemType field's value.
func (s *FileSystemDataSource) SetFileSystemType(v string) *FileSystemDataSource {
	s.FileSystemType = &v
	return s
}

// A conditional statement for a search expression that includes a resource
// property, a Boolean operator, and a value. Resources that match the statement
// are returned in the results from the Search (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html)
// API.
//
// If you specify a Value, but not an Operator, SageMaker uses the equals operator.
//
// In search, there are several property types:
//
// # Metrics
//
// To define a metric filter, enter a value using the form "Metrics.<name>",
// where <name> is a metric name. For example, the following filter searches
// for training jobs with an "accuracy" metric greater than "0.9":
//
// {
//
// "Name": "Metrics.accuracy",
//
// "Operator": "GreaterThan",
//
// "Value": "0.9"
//
// }
//
// # HyperParameters
//
// To define a hyperparameter filter, enter a value with the form "HyperParameters.<name>".
// Decimal hyperparameter values are treated as a decimal in a comparison if
// the specified Value is also a decimal value. If the specified Value is an
// integer, the decimal hyperparameter values are treated as integers. For example,
// the following filter is satisfied by training jobs with a "learning_rate"
// hyperparameter that is less than "0.5":
//
// {
//
// "Name": "HyperParameters.learning_rate",
//
// "Operator": "LessThan",
//
// "Value": "0.5"
//
// }
//
// # Tags
//
// To define a tag filter, enter a value with the form Tags.<key>.
type Filter struct {
	_ struct{} `type:"structure"`

	// A resource property name. For example, TrainingJobName. For valid property
	// names, see SearchRecord (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SearchRecord.html).
	// You must specify a valid property for the resource.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// A Boolean binary operator that is used to evaluate the filter. The operator
	// field contains one of the following values:
	//
	// Equals
	//
	// The value of Name equals Value.
	//
	// NotEquals
	//
	// The value of Name doesn't equal Value.
	//
	// Exists
	//
	// The Name property exists.
	//
	// NotExists
	//
	// The Name property does not exist.
	//
	// GreaterThan
	//
	// The value of Name is greater than Value. Not supported for text properties.
	//
	// GreaterThanOrEqualTo
	//
	// The value of Name is greater than or equal to Value. Not supported for text
	// properties.
	//
	// LessThan
	//
	// The value of Name is less than Value. Not supported for text properties.
	//
	// LessThanOrEqualTo
	//
	// The value of Name is less than or equal to Value. Not supported for text
	// properties.
	//
	// In
	//
	// The value of Name is one of the comma delimited strings in Value. Only supported
	// for text properties.
	//
	// Contains
	//
	// The value of Name contains the string Value. Only supported for text properties.
	//
	// A SearchExpression can include the Contains operator multiple times when
	// the value of Name is one of the following:
	//
	//    * Experiment.DisplayName
	//
	//    * Experiment.ExperimentName
	//
	//    * Experiment.Tags
	//
	//    * Trial.DisplayName
	//
	//    * Trial.TrialName
	//
	//    * Trial.Tags
	//
	//    * TrialComponent.DisplayName
	//
	//    * TrialComponent.TrialComponentName
	//
	//    * TrialComponent.Tags
	//
	//    * TrialComponent.InputArtifacts
	//
	//    * TrialComponent.OutputArtifacts
	//
	// A SearchExpression can include only one Contains operator for all other values
	// of Name. In these cases, if you include multiple Contains operators in the
	// SearchExpression, the result is the following error message: "'CONTAINS'
	// operator usage limit of 1 exceeded."
	Operator *string `type:"string" enum:"Operator"`

	// A value used with Name and Operator to determine which resources satisfy
	// the filter's condition. For numerical properties, Value must be an integer
	// or floating-point decimal. For timestamp properties, Value must be an ISO
	// 8601 date-time string of the following format: YYYY-mm-dd'T'HH:MM:SS.
	Value *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Filter) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Filter) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *Filter) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "Filter"}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.Value != nil && len(*s.Value) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetName sets the Name field's value.
func (s *Filter) SetName(v string) *Filter {
	s.Name = &v
	return s
}

// SetOperator sets the Operator field's value.
func (s *Filter) SetOperator(v string) *Filter {
	s.Operator = &v
	return s
}

// SetValue sets the Value field's value.
func (s *Filter) SetValue(v string) *Filter {
	s.Value = &v
	return s
}

// The best candidate result from an AutoML training job.
type FinalAutoMLJobObjectiveMetric struct {
	_ struct{} `type:"structure"`

	// The name of the metric with the best result. For a description of the possible
	// objective metrics, see AutoMLJobObjective$MetricName (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobObjective.html).
	//
	// MetricName is a required field
	MetricName *string `type:"string" required:"true" enum:"AutoMLMetricEnum"`

	// The name of the standard metric. For a description of the standard metrics,
	// see Autopilot candidate metrics (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-metrics-validation.html#autopilot-metrics).
	StandardMetricName *string `type:"string" enum:"AutoMLMetricEnum"`

	// The type of metric with the best result.
	Type *string `type:"string" enum:"AutoMLJobObjectiveType"`

	// The value of the metric with the best result.
	//
	// Value is a required field
	Value *float64 `type:"float" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FinalAutoMLJobObjectiveMetric) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FinalAutoMLJobObjectiveMetric) GoString() string {
	return s.String()
}

// SetMetricName sets the MetricName field's value.
func (s *FinalAutoMLJobObjectiveMetric) SetMetricName(v string) *FinalAutoMLJobObjectiveMetric {
	s.MetricName = &v
	return s
}

// SetStandardMetricName sets the StandardMetricName field's value.
func (s *FinalAutoMLJobObjectiveMetric) SetStandardMetricName(v string) *FinalAutoMLJobObjectiveMetric {
	s.StandardMetricName = &v
	return s
}

// SetType sets the Type field's value.
func (s *FinalAutoMLJobObjectiveMetric) SetType(v string) *FinalAutoMLJobObjectiveMetric {
	s.Type = &v
	return s
}

// SetValue sets the Value field's value.
func (s *FinalAutoMLJobObjectiveMetric) SetValue(v float64) *FinalAutoMLJobObjectiveMetric {
	s.Value = &v
	return s
}

// Shows the latest objective metric emitted by a training job that was launched
// by a hyperparameter tuning job. You define the objective metric in the HyperParameterTuningJobObjective
// parameter of HyperParameterTuningJobConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html).
type FinalHyperParameterTuningJobObjectiveMetric struct {
	_ struct{} `type:"structure"`

	// The name of the objective metric. For SageMaker built-in algorithms, metrics
	// are defined per algorithm. See the metrics for XGBoost (https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost-tuning.html)
	// as an example. You can also use a custom algorithm for training and define
	// your own metrics. For more information, see Define metrics and environment
	// variables (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics-variables.html).
	//
	// MetricName is a required field
	MetricName *string `min:"1" type:"string" required:"true"`

	// Select if you want to minimize or maximize the objective metric during hyperparameter
	// tuning.
	Type *string `type:"string" enum:"HyperParameterTuningJobObjectiveType"`

	// The value of the objective metric.
	//
	// Value is a required field
	Value *float64 `type:"float" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FinalHyperParameterTuningJobObjectiveMetric) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FinalHyperParameterTuningJobObjectiveMetric) GoString() string {
	return s.String()
}

// SetMetricName sets the MetricName field's value.
func (s *FinalHyperParameterTuningJobObjectiveMetric) SetMetricName(v string) *FinalHyperParameterTuningJobObjectiveMetric {
	s.MetricName = &v
	return s
}

// SetType sets the Type field's value.
func (s *FinalHyperParameterTuningJobObjectiveMetric) SetType(v string) *FinalHyperParameterTuningJobObjectiveMetric {
	s.Type = &v
	return s
}

// SetValue sets the Value field's value.
func (s *FinalHyperParameterTuningJobObjectiveMetric) SetValue(v float64) *FinalHyperParameterTuningJobObjectiveMetric {
	s.Value = &v
	return s
}

// Contains information about where human output will be stored.
type FlowDefinitionOutputConfig struct {
	_ struct{} `type:"structure"`

	// The Amazon Key Management Service (KMS) key ID for server-side encryption.
	KmsKeyId *string `type:"string"`

	// The Amazon S3 path where the object containing human output will be made
	// available.
	//
	// To learn more about the format of Amazon A2I output data, see Amazon A2I
	// Output Data (https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-output-data.html).
	//
	// S3OutputPath is a required field
	S3OutputPath *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FlowDefinitionOutputConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FlowDefinitionOutputConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *FlowDefinitionOutputConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "FlowDefinitionOutputConfig"}
	if s.S3OutputPath == nil {
		invalidParams.Add(request.NewErrParamRequired("S3OutputPath"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *FlowDefinitionOutputConfig) SetKmsKeyId(v string) *FlowDefinitionOutputConfig {
	s.KmsKeyId = &v
	return s
}

// SetS3OutputPath sets the S3OutputPath field's value.
func (s *FlowDefinitionOutputConfig) SetS3OutputPath(v string) *FlowDefinitionOutputConfig {
	s.S3OutputPath = &v
	return s
}

// Contains summary information about the flow definition.
type FlowDefinitionSummary struct {
	_ struct{} `type:"structure"`

	// The timestamp when SageMaker created the flow definition.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The reason why the flow definition creation failed. A failure reason is returned
	// only when the flow definition status is Failed.
	FailureReason *string `type:"string"`

	// The Amazon Resource Name (ARN) of the flow definition.
	//
	// FlowDefinitionArn is a required field
	FlowDefinitionArn *string `type:"string" required:"true"`

	// The name of the flow definition.
	//
	// FlowDefinitionName is a required field
	FlowDefinitionName *string `min:"1" type:"string" required:"true"`

	// The status of the flow definition. Valid values:
	//
	// FlowDefinitionStatus is a required field
	FlowDefinitionStatus *string `type:"string" required:"true" enum:"FlowDefinitionStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FlowDefinitionSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FlowDefinitionSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *FlowDefinitionSummary) SetCreationTime(v time.Time) *FlowDefinitionSummary {
	s.CreationTime = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *FlowDefinitionSummary) SetFailureReason(v string) *FlowDefinitionSummary {
	s.FailureReason = &v
	return s
}

// SetFlowDefinitionArn sets the FlowDefinitionArn field's value.
func (s *FlowDefinitionSummary) SetFlowDefinitionArn(v string) *FlowDefinitionSummary {
	s.FlowDefinitionArn = &v
	return s
}

// SetFlowDefinitionName sets the FlowDefinitionName field's value.
func (s *FlowDefinitionSummary) SetFlowDefinitionName(v string) *FlowDefinitionSummary {
	s.FlowDefinitionName = &v
	return s
}

// SetFlowDefinitionStatus sets the FlowDefinitionStatus field's value.
func (s *FlowDefinitionSummary) SetFlowDefinitionStatus(v string) *FlowDefinitionSummary {
	s.FlowDefinitionStatus = &v
	return s
}

type GetDeviceFleetReportInput struct {
	_ struct{} `type:"structure"`

	// The name of the fleet.
	//
	// DeviceFleetName is a required field
	DeviceFleetName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetDeviceFleetReportInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetDeviceFleetReportInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetDeviceFleetReportInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetDeviceFleetReportInput"}
	if s.DeviceFleetName == nil {
		invalidParams.Add(request.NewErrParamRequired("DeviceFleetName"))
	}
	if s.DeviceFleetName != nil && len(*s.DeviceFleetName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DeviceFleetName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDeviceFleetName sets the DeviceFleetName field's value.
func (s *GetDeviceFleetReportInput) SetDeviceFleetName(v string) *GetDeviceFleetReportInput {
	s.DeviceFleetName = &v
	return s
}

type GetDeviceFleetReportOutput struct {
	_ struct{} `type:"structure"`

	// The versions of Edge Manager agent deployed on the fleet.
	AgentVersions []*AgentVersion `type:"list"`

	// Description of the fleet.
	Description *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) of the device.
	//
	// DeviceFleetArn is a required field
	DeviceFleetArn *string `type:"string" required:"true"`

	// The name of the fleet.
	//
	// DeviceFleetName is a required field
	DeviceFleetName *string `min:"1" type:"string" required:"true"`

	// Status of devices.
	DeviceStats *DeviceStats `type:"structure"`

	// Status of model on device.
	ModelStats []*EdgeModelStat `type:"list"`

	// The output configuration for storing sample data collected by the fleet.
	OutputConfig *EdgeOutputConfig `type:"structure"`

	// Timestamp of when the report was generated.
	ReportGenerated *time.Time `type:"timestamp"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetDeviceFleetReportOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetDeviceFleetReportOutput) GoString() string {
	return s.String()
}

// SetAgentVersions sets the AgentVersions field's value.
func (s *GetDeviceFleetReportOutput) SetAgentVersions(v []*AgentVersion) *GetDeviceFleetReportOutput {
	s.AgentVersions = v
	return s
}

// SetDescription sets the Description field's value.
func (s *GetDeviceFleetReportOutput) SetDescription(v string) *GetDeviceFleetReportOutput {
	s.Description = &v
	return s
}

// SetDeviceFleetArn sets the DeviceFleetArn field's value.
func (s *GetDeviceFleetReportOutput) SetDeviceFleetArn(v string) *GetDeviceFleetReportOutput {
	s.DeviceFleetArn = &v
	return s
}

// SetDeviceFleetName sets the DeviceFleetName field's value.
func (s *GetDeviceFleetReportOutput) SetDeviceFleetName(v string) *GetDeviceFleetReportOutput {
	s.DeviceFleetName = &v
	return s
}

// SetDeviceStats sets the DeviceStats field's value.
func (s *GetDeviceFleetReportOutput) SetDeviceStats(v *DeviceStats) *GetDeviceFleetReportOutput {
	s.DeviceStats = v
	return s
}

// SetModelStats sets the ModelStats field's value.
func (s *GetDeviceFleetReportOutput) SetModelStats(v []*EdgeModelStat) *GetDeviceFleetReportOutput {
	s.ModelStats = v
	return s
}

// SetOutputConfig sets the OutputConfig field's value.
func (s *GetDeviceFleetReportOutput) SetOutputConfig(v *EdgeOutputConfig) *GetDeviceFleetReportOutput {
	s.OutputConfig = v
	return s
}

// SetReportGenerated sets the ReportGenerated field's value.
func (s *GetDeviceFleetReportOutput) SetReportGenerated(v time.Time) *GetDeviceFleetReportOutput {
	s.ReportGenerated = &v
	return s
}

type GetLineageGroupPolicyInput struct {
	_ struct{} `type:"structure"`

	// The name or Amazon Resource Name (ARN) of the lineage group.
	//
	// LineageGroupName is a required field
	LineageGroupName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetLineageGroupPolicyInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetLineageGroupPolicyInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetLineageGroupPolicyInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetLineageGroupPolicyInput"}
	if s.LineageGroupName == nil {
		invalidParams.Add(request.NewErrParamRequired("LineageGroupName"))
	}
	if s.LineageGroupName != nil && len(*s.LineageGroupName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("LineageGroupName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetLineageGroupName sets the LineageGroupName field's value.
func (s *GetLineageGroupPolicyInput) SetLineageGroupName(v string) *GetLineageGroupPolicyInput {
	s.LineageGroupName = &v
	return s
}

type GetLineageGroupPolicyOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the lineage group.
	LineageGroupArn *string `type:"string"`

	// The resource policy that gives access to the lineage group in another account.
	ResourcePolicy *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetLineageGroupPolicyOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetLineageGroupPolicyOutput) GoString() string {
	return s.String()
}

// SetLineageGroupArn sets the LineageGroupArn field's value.
func (s *GetLineageGroupPolicyOutput) SetLineageGroupArn(v string) *GetLineageGroupPolicyOutput {
	s.LineageGroupArn = &v
	return s
}

// SetResourcePolicy sets the ResourcePolicy field's value.
func (s *GetLineageGroupPolicyOutput) SetResourcePolicy(v string) *GetLineageGroupPolicyOutput {
	s.ResourcePolicy = &v
	return s
}

type GetModelPackageGroupPolicyInput struct {
	_ struct{} `type:"structure"`

	// The name of the model group for which to get the resource policy.
	//
	// ModelPackageGroupName is a required field
	ModelPackageGroupName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetModelPackageGroupPolicyInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetModelPackageGroupPolicyInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetModelPackageGroupPolicyInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetModelPackageGroupPolicyInput"}
	if s.ModelPackageGroupName == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelPackageGroupName"))
	}
	if s.ModelPackageGroupName != nil && len(*s.ModelPackageGroupName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelPackageGroupName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetModelPackageGroupName sets the ModelPackageGroupName field's value.
func (s *GetModelPackageGroupPolicyInput) SetModelPackageGroupName(v string) *GetModelPackageGroupPolicyInput {
	s.ModelPackageGroupName = &v
	return s
}

type GetModelPackageGroupPolicyOutput struct {
	_ struct{} `type:"structure"`

	// The resource policy for the model group.
	//
	// ResourcePolicy is a required field
	ResourcePolicy *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetModelPackageGroupPolicyOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetModelPackageGroupPolicyOutput) GoString() string {
	return s.String()
}

// SetResourcePolicy sets the ResourcePolicy field's value.
func (s *GetModelPackageGroupPolicyOutput) SetResourcePolicy(v string) *GetModelPackageGroupPolicyOutput {
	s.ResourcePolicy = &v
	return s
}

type GetSagemakerServicecatalogPortfolioStatusInput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSagemakerServicecatalogPortfolioStatusInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSagemakerServicecatalogPortfolioStatusInput) GoString() string {
	return s.String()
}

type GetSagemakerServicecatalogPortfolioStatusOutput struct {
	_ struct{} `type:"structure"`

	// Whether Service Catalog is enabled or disabled in SageMaker.
	Status *string `type:"string" enum:"SagemakerServicecatalogStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSagemakerServicecatalogPortfolioStatusOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSagemakerServicecatalogPortfolioStatusOutput) GoString() string {
	return s.String()
}

// SetStatus sets the Status field's value.
func (s *GetSagemakerServicecatalogPortfolioStatusOutput) SetStatus(v string) *GetSagemakerServicecatalogPortfolioStatusOutput {
	s.Status = &v
	return s
}

type GetScalingConfigurationRecommendationInput struct {
	_ struct{} `type:"structure"`

	// The name of an endpoint benchmarked during a previously completed inference
	// recommendation job. This name should come from one of the recommendations
	// returned by the job specified in the InferenceRecommendationsJobName field.
	//
	// Specify either this field or the RecommendationId field.
	EndpointName *string `type:"string"`

	// The name of a previously completed Inference Recommender job.
	//
	// InferenceRecommendationsJobName is a required field
	InferenceRecommendationsJobName *string `min:"1" type:"string" required:"true"`

	// The recommendation ID of a previously completed inference recommendation.
	// This ID should come from one of the recommendations returned by the job specified
	// in the InferenceRecommendationsJobName field.
	//
	// Specify either this field or the EndpointName field.
	RecommendationId *string `type:"string"`

	// An object where you specify the anticipated traffic pattern for an endpoint.
	ScalingPolicyObjective *ScalingPolicyObjective `type:"structure"`

	// The percentage of how much utilization you want an instance to use before
	// autoscaling. The default value is 50%.
	TargetCpuUtilizationPerCore *int64 `min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetScalingConfigurationRecommendationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetScalingConfigurationRecommendationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetScalingConfigurationRecommendationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetScalingConfigurationRecommendationInput"}
	if s.InferenceRecommendationsJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("InferenceRecommendationsJobName"))
	}
	if s.InferenceRecommendationsJobName != nil && len(*s.InferenceRecommendationsJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("InferenceRecommendationsJobName", 1))
	}
	if s.TargetCpuUtilizationPerCore != nil && *s.TargetCpuUtilizationPerCore < 1 {
		invalidParams.Add(request.NewErrParamMinValue("TargetCpuUtilizationPerCore", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEndpointName sets the EndpointName field's value.
func (s *GetScalingConfigurationRecommendationInput) SetEndpointName(v string) *GetScalingConfigurationRecommendationInput {
	s.EndpointName = &v
	return s
}

// SetInferenceRecommendationsJobName sets the InferenceRecommendationsJobName field's value.
func (s *GetScalingConfigurationRecommendationInput) SetInferenceRecommendationsJobName(v string) *GetScalingConfigurationRecommendationInput {
	s.InferenceRecommendationsJobName = &v
	return s
}

// SetRecommendationId sets the RecommendationId field's value.
func (s *GetScalingConfigurationRecommendationInput) SetRecommendationId(v string) *GetScalingConfigurationRecommendationInput {
	s.RecommendationId = &v
	return s
}

// SetScalingPolicyObjective sets the ScalingPolicyObjective field's value.
func (s *GetScalingConfigurationRecommendationInput) SetScalingPolicyObjective(v *ScalingPolicyObjective) *GetScalingConfigurationRecommendationInput {
	s.ScalingPolicyObjective = v
	return s
}

// SetTargetCpuUtilizationPerCore sets the TargetCpuUtilizationPerCore field's value.
func (s *GetScalingConfigurationRecommendationInput) SetTargetCpuUtilizationPerCore(v int64) *GetScalingConfigurationRecommendationInput {
	s.TargetCpuUtilizationPerCore = &v
	return s
}

type GetScalingConfigurationRecommendationOutput struct {
	_ struct{} `type:"structure"`

	// An object with the recommended values for you to specify when creating an
	// autoscaling policy.
	DynamicScalingConfiguration *DynamicScalingConfiguration `type:"structure"`

	// The name of an endpoint benchmarked during a previously completed Inference
	// Recommender job.
	EndpointName *string `type:"string"`

	// The name of a previously completed Inference Recommender job.
	InferenceRecommendationsJobName *string `min:"1" type:"string"`

	// An object with a list of metrics that were benchmarked during the previously
	// completed Inference Recommender job.
	Metric *ScalingPolicyMetric `type:"structure"`

	// The recommendation ID of a previously completed inference recommendation.
	RecommendationId *string `type:"string"`

	// An object representing the anticipated traffic pattern for an endpoint that
	// you specified in the request.
	ScalingPolicyObjective *ScalingPolicyObjective `type:"structure"`

	// The percentage of how much utilization you want an instance to use before
	// autoscaling, which you specified in the request. The default value is 50%.
	TargetCpuUtilizationPerCore *int64 `min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetScalingConfigurationRecommendationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetScalingConfigurationRecommendationOutput) GoString() string {
	return s.String()
}

// SetDynamicScalingConfiguration sets the DynamicScalingConfiguration field's value.
func (s *GetScalingConfigurationRecommendationOutput) SetDynamicScalingConfiguration(v *DynamicScalingConfiguration) *GetScalingConfigurationRecommendationOutput {
	s.DynamicScalingConfiguration = v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *GetScalingConfigurationRecommendationOutput) SetEndpointName(v string) *GetScalingConfigurationRecommendationOutput {
	s.EndpointName = &v
	return s
}

// SetInferenceRecommendationsJobName sets the InferenceRecommendationsJobName field's value.
func (s *GetScalingConfigurationRecommendationOutput) SetInferenceRecommendationsJobName(v string) *GetScalingConfigurationRecommendationOutput {
	s.InferenceRecommendationsJobName = &v
	return s
}

// SetMetric sets the Metric field's value.
func (s *GetScalingConfigurationRecommendationOutput) SetMetric(v *ScalingPolicyMetric) *GetScalingConfigurationRecommendationOutput {
	s.Metric = v
	return s
}

// SetRecommendationId sets the RecommendationId field's value.
func (s *GetScalingConfigurationRecommendationOutput) SetRecommendationId(v string) *GetScalingConfigurationRecommendationOutput {
	s.RecommendationId = &v
	return s
}

// SetScalingPolicyObjective sets the ScalingPolicyObjective field's value.
func (s *GetScalingConfigurationRecommendationOutput) SetScalingPolicyObjective(v *ScalingPolicyObjective) *GetScalingConfigurationRecommendationOutput {
	s.ScalingPolicyObjective = v
	return s
}

// SetTargetCpuUtilizationPerCore sets the TargetCpuUtilizationPerCore field's value.
func (s *GetScalingConfigurationRecommendationOutput) SetTargetCpuUtilizationPerCore(v int64) *GetScalingConfigurationRecommendationOutput {
	s.TargetCpuUtilizationPerCore = &v
	return s
}

type GetSearchSuggestionsInput struct {
	_ struct{} `type:"structure"`

	// The name of the SageMaker resource to search for.
	//
	// Resource is a required field
	Resource *string `type:"string" required:"true" enum:"ResourceType"`

	// Limits the property names that are included in the response.
	SuggestionQuery *SuggestionQuery `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSearchSuggestionsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSearchSuggestionsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetSearchSuggestionsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetSearchSuggestionsInput"}
	if s.Resource == nil {
		invalidParams.Add(request.NewErrParamRequired("Resource"))
	}
	if s.SuggestionQuery != nil {
		if err := s.SuggestionQuery.Validate(); err != nil {
			invalidParams.AddNested("SuggestionQuery", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetResource sets the Resource field's value.
func (s *GetSearchSuggestionsInput) SetResource(v string) *GetSearchSuggestionsInput {
	s.Resource = &v
	return s
}

// SetSuggestionQuery sets the SuggestionQuery field's value.
func (s *GetSearchSuggestionsInput) SetSuggestionQuery(v *SuggestionQuery) *GetSearchSuggestionsInput {
	s.SuggestionQuery = v
	return s
}

type GetSearchSuggestionsOutput struct {
	_ struct{} `type:"structure"`

	// A list of property names for a Resource that match a SuggestionQuery.
	PropertyNameSuggestions []*PropertyNameSuggestion `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSearchSuggestionsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSearchSuggestionsOutput) GoString() string {
	return s.String()
}

// SetPropertyNameSuggestions sets the PropertyNameSuggestions field's value.
func (s *GetSearchSuggestionsOutput) SetPropertyNameSuggestions(v []*PropertyNameSuggestion) *GetSearchSuggestionsOutput {
	s.PropertyNameSuggestions = v
	return s
}

// Specifies configuration details for a Git repository in your Amazon Web Services
// account.
type GitConfig struct {
	_ struct{} `type:"structure"`

	// The default branch for the Git repository.
	Branch *string `min:"1" type:"string"`

	// The URL where the Git repository is located.
	//
	// RepositoryUrl is a required field
	RepositoryUrl *string `min:"11" type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of the Amazon Web Services Secrets Manager
	// secret that contains the credentials used to access the git repository. The
	// secret must have a staging label of AWSCURRENT and must be in the following
	// format:
	//
	// {"username": UserName, "password": Password}
	SecretArn *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GitConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GitConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GitConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GitConfig"}
	if s.Branch != nil && len(*s.Branch) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Branch", 1))
	}
	if s.RepositoryUrl == nil {
		invalidParams.Add(request.NewErrParamRequired("RepositoryUrl"))
	}
	if s.RepositoryUrl != nil && len(*s.RepositoryUrl) < 11 {
		invalidParams.Add(request.NewErrParamMinLen("RepositoryUrl", 11))
	}
	if s.SecretArn != nil && len(*s.SecretArn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SecretArn", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetBranch sets the Branch field's value.
func (s *GitConfig) SetBranch(v string) *GitConfig {
	s.Branch = &v
	return s
}

// SetRepositoryUrl sets the RepositoryUrl field's value.
func (s *GitConfig) SetRepositoryUrl(v string) *GitConfig {
	s.RepositoryUrl = &v
	return s
}

// SetSecretArn sets the SecretArn field's value.
func (s *GitConfig) SetSecretArn(v string) *GitConfig {
	s.SecretArn = &v
	return s
}

// Specifies configuration details for a Git repository when the repository
// is updated.
type GitConfigForUpdate struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the Amazon Web Services Secrets Manager
	// secret that contains the credentials used to access the git repository. The
	// secret must have a staging label of AWSCURRENT and must be in the following
	// format:
	//
	// {"username": UserName, "password": Password}
	SecretArn *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GitConfigForUpdate) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GitConfigForUpdate) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GitConfigForUpdate) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GitConfigForUpdate"}
	if s.SecretArn != nil && len(*s.SecretArn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SecretArn", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSecretArn sets the SecretArn field's value.
func (s *GitConfigForUpdate) SetSecretArn(v string) *GitConfigForUpdate {
	s.SecretArn = &v
	return s
}

// Stores the holiday featurization attributes applicable to each item of time-series
// datasets during the training of a forecasting model. This allows the model
// to identify patterns associated with specific holidays.
type HolidayConfigAttributes struct {
	_ struct{} `type:"structure"`

	// The country code for the holiday calendar.
	//
	// For the list of public holiday calendars supported by AutoML job V2, see
	// Country Codes (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-timeseries-forecasting-holiday-calendars.html#holiday-country-codes).
	// Use the country code corresponding to the country of your choice.
	CountryCode *string `min:"2" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HolidayConfigAttributes) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HolidayConfigAttributes) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *HolidayConfigAttributes) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "HolidayConfigAttributes"}
	if s.CountryCode != nil && len(*s.CountryCode) < 2 {
		invalidParams.Add(request.NewErrParamMinLen("CountryCode", 2))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCountryCode sets the CountryCode field's value.
func (s *HolidayConfigAttributes) SetCountryCode(v string) *HolidayConfigAttributes {
	s.CountryCode = &v
	return s
}

// Any dependencies related to hub content, such as scripts, model artifacts,
// datasets, or notebooks.
type HubContentDependency struct {
	_ struct{} `type:"structure"`

	// The hub content dependency copy path.
	DependencyCopyPath *string `type:"string"`

	// The hub content dependency origin path.
	DependencyOriginPath *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HubContentDependency) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HubContentDependency) GoString() string {
	return s.String()
}

// SetDependencyCopyPath sets the DependencyCopyPath field's value.
func (s *HubContentDependency) SetDependencyCopyPath(v string) *HubContentDependency {
	s.DependencyCopyPath = &v
	return s
}

// SetDependencyOriginPath sets the DependencyOriginPath field's value.
func (s *HubContentDependency) SetDependencyOriginPath(v string) *HubContentDependency {
	s.DependencyOriginPath = &v
	return s
}

// Information about hub content.
type HubContentInfo struct {
	_ struct{} `type:"structure"`

	// The date and time that the hub content was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The version of the hub content document schema.
	//
	// DocumentSchemaVersion is a required field
	DocumentSchemaVersion *string `min:"5" type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of the hub content.
	//
	// HubContentArn is a required field
	HubContentArn *string `type:"string" required:"true"`

	// A description of the hub content.
	HubContentDescription *string `type:"string"`

	// The display name of the hub content.
	HubContentDisplayName *string `type:"string"`

	// The name of the hub content.
	//
	// HubContentName is a required field
	HubContentName *string `type:"string" required:"true"`

	// The searchable keywords for the hub content.
	HubContentSearchKeywords []*string `type:"list"`

	// The status of the hub content.
	//
	// HubContentStatus is a required field
	HubContentStatus *string `type:"string" required:"true" enum:"HubContentStatus"`

	// The type of hub content.
	//
	// HubContentType is a required field
	HubContentType *string `type:"string" required:"true" enum:"HubContentType"`

	// The version of the hub content.
	//
	// HubContentVersion is a required field
	HubContentVersion *string `min:"5" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HubContentInfo) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HubContentInfo) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *HubContentInfo) SetCreationTime(v time.Time) *HubContentInfo {
	s.CreationTime = &v
	return s
}

// SetDocumentSchemaVersion sets the DocumentSchemaVersion field's value.
func (s *HubContentInfo) SetDocumentSchemaVersion(v string) *HubContentInfo {
	s.DocumentSchemaVersion = &v
	return s
}

// SetHubContentArn sets the HubContentArn field's value.
func (s *HubContentInfo) SetHubContentArn(v string) *HubContentInfo {
	s.HubContentArn = &v
	return s
}

// SetHubContentDescription sets the HubContentDescription field's value.
func (s *HubContentInfo) SetHubContentDescription(v string) *HubContentInfo {
	s.HubContentDescription = &v
	return s
}

// SetHubContentDisplayName sets the HubContentDisplayName field's value.
func (s *HubContentInfo) SetHubContentDisplayName(v string) *HubContentInfo {
	s.HubContentDisplayName = &v
	return s
}

// SetHubContentName sets the HubContentName field's value.
func (s *HubContentInfo) SetHubContentName(v string) *HubContentInfo {
	s.HubContentName = &v
	return s
}

// SetHubContentSearchKeywords sets the HubContentSearchKeywords field's value.
func (s *HubContentInfo) SetHubContentSearchKeywords(v []*string) *HubContentInfo {
	s.HubContentSearchKeywords = v
	return s
}

// SetHubContentStatus sets the HubContentStatus field's value.
func (s *HubContentInfo) SetHubContentStatus(v string) *HubContentInfo {
	s.HubContentStatus = &v
	return s
}

// SetHubContentType sets the HubContentType field's value.
func (s *HubContentInfo) SetHubContentType(v string) *HubContentInfo {
	s.HubContentType = &v
	return s
}

// SetHubContentVersion sets the HubContentVersion field's value.
func (s *HubContentInfo) SetHubContentVersion(v string) *HubContentInfo {
	s.HubContentVersion = &v
	return s
}

// Information about a hub.
type HubInfo struct {
	_ struct{} `type:"structure"`

	// The date and time that the hub was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The Amazon Resource Name (ARN) of the hub.
	//
	// HubArn is a required field
	HubArn *string `type:"string" required:"true"`

	// A description of the hub.
	HubDescription *string `type:"string"`

	// The display name of the hub.
	HubDisplayName *string `type:"string"`

	// The name of the hub.
	//
	// HubName is a required field
	HubName *string `type:"string" required:"true"`

	// The searchable keywords for the hub.
	HubSearchKeywords []*string `type:"list"`

	// The status of the hub.
	//
	// HubStatus is a required field
	HubStatus *string `type:"string" required:"true" enum:"HubStatus"`

	// The date and time that the hub was last modified.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HubInfo) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HubInfo) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *HubInfo) SetCreationTime(v time.Time) *HubInfo {
	s.CreationTime = &v
	return s
}

// SetHubArn sets the HubArn field's value.
func (s *HubInfo) SetHubArn(v string) *HubInfo {
	s.HubArn = &v
	return s
}

// SetHubDescription sets the HubDescription field's value.
func (s *HubInfo) SetHubDescription(v string) *HubInfo {
	s.HubDescription = &v
	return s
}

// SetHubDisplayName sets the HubDisplayName field's value.
func (s *HubInfo) SetHubDisplayName(v string) *HubInfo {
	s.HubDisplayName = &v
	return s
}

// SetHubName sets the HubName field's value.
func (s *HubInfo) SetHubName(v string) *HubInfo {
	s.HubName = &v
	return s
}

// SetHubSearchKeywords sets the HubSearchKeywords field's value.
func (s *HubInfo) SetHubSearchKeywords(v []*string) *HubInfo {
	s.HubSearchKeywords = v
	return s
}

// SetHubStatus sets the HubStatus field's value.
func (s *HubInfo) SetHubStatus(v string) *HubInfo {
	s.HubStatus = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *HubInfo) SetLastModifiedTime(v time.Time) *HubInfo {
	s.LastModifiedTime = &v
	return s
}

// The Amazon S3 storage configuration of a hub.
type HubS3StorageConfig struct {
	_ struct{} `type:"structure"`

	// The Amazon S3 bucket prefix for hosting hub content.
	S3OutputPath *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HubS3StorageConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HubS3StorageConfig) GoString() string {
	return s.String()
}

// SetS3OutputPath sets the S3OutputPath field's value.
func (s *HubS3StorageConfig) SetS3OutputPath(v string) *HubS3StorageConfig {
	s.S3OutputPath = &v
	return s
}

// Defines under what conditions SageMaker creates a human loop. Used within
// CreateFlowDefinition (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html).
// See HumanLoopActivationConditionsConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HumanLoopActivationConditionsConfig.html)
// for the required format of activation conditions.
type HumanLoopActivationConditionsConfig struct {
	_ struct{} `type:"structure"`

	// JSON expressing use-case specific conditions declaratively. If any condition
	// is matched, atomic tasks are created against the configured work team. The
	// set of conditions is different for Rekognition and Textract. For more information
	// about how to structure the JSON, see JSON Schema for Human Loop Activation
	// Conditions in Amazon Augmented AI (https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-human-fallback-conditions-json-schema.html)
	// in the Amazon SageMaker Developer Guide.
	//
	// HumanLoopActivationConditions is a required field
	HumanLoopActivationConditions aws.JSONValue `type:"jsonvalue" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HumanLoopActivationConditionsConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HumanLoopActivationConditionsConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *HumanLoopActivationConditionsConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "HumanLoopActivationConditionsConfig"}
	if s.HumanLoopActivationConditions == nil {
		invalidParams.Add(request.NewErrParamRequired("HumanLoopActivationConditions"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetHumanLoopActivationConditions sets the HumanLoopActivationConditions field's value.
func (s *HumanLoopActivationConditionsConfig) SetHumanLoopActivationConditions(v aws.JSONValue) *HumanLoopActivationConditionsConfig {
	s.HumanLoopActivationConditions = v
	return s
}

// Provides information about how and under what conditions SageMaker creates
// a human loop. If HumanLoopActivationConfig is not given, then all requests
// go to humans.
type HumanLoopActivationConfig struct {
	_ struct{} `type:"structure"`

	// Container structure for defining under what conditions SageMaker creates
	// a human loop.
	//
	// HumanLoopActivationConditionsConfig is a required field
	HumanLoopActivationConditionsConfig *HumanLoopActivationConditionsConfig `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HumanLoopActivationConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HumanLoopActivationConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *HumanLoopActivationConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "HumanLoopActivationConfig"}
	if s.HumanLoopActivationConditionsConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("HumanLoopActivationConditionsConfig"))
	}
	if s.HumanLoopActivationConditionsConfig != nil {
		if err := s.HumanLoopActivationConditionsConfig.Validate(); err != nil {
			invalidParams.AddNested("HumanLoopActivationConditionsConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetHumanLoopActivationConditionsConfig sets the HumanLoopActivationConditionsConfig field's value.
func (s *HumanLoopActivationConfig) SetHumanLoopActivationConditionsConfig(v *HumanLoopActivationConditionsConfig) *HumanLoopActivationConfig {
	s.HumanLoopActivationConditionsConfig = v
	return s
}

// Describes the work to be performed by human workers.
type HumanLoopConfig struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the human task user interface.
	//
	// You can use standard HTML and Crowd HTML Elements to create a custom worker
	// task template. You use this template to create a human task UI.
	//
	// To learn how to create a custom HTML template, see Create Custom Worker Task
	// Template (https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-custom-templates.html).
	//
	// To learn how to create a human task UI, which is a worker task template that
	// can be used in a flow definition, see Create and Delete a Worker Task Templates
	// (https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-worker-template-console.html).
	//
	// HumanTaskUiArn is a required field
	HumanTaskUiArn *string `type:"string" required:"true"`

	// Defines the amount of money paid to an Amazon Mechanical Turk worker for
	// each task performed.
	//
	// Use one of the following prices for bounding box tasks. Prices are in US
	// dollars and should be based on the complexity of the task; the longer it
	// takes in your initial testing, the more you should offer.
	//
	//    * 0.036
	//
	//    * 0.048
	//
	//    * 0.060
	//
	//    * 0.072
	//
	//    * 0.120
	//
	//    * 0.240
	//
	//    * 0.360
	//
	//    * 0.480
	//
	//    * 0.600
	//
	//    * 0.720
	//
	//    * 0.840
	//
	//    * 0.960
	//
	//    * 1.080
	//
	//    * 1.200
	//
	// Use one of the following prices for image classification, text classification,
	// and custom tasks. Prices are in US dollars.
	//
	//    * 0.012
	//
	//    * 0.024
	//
	//    * 0.036
	//
	//    * 0.048
	//
	//    * 0.060
	//
	//    * 0.072
	//
	//    * 0.120
	//
	//    * 0.240
	//
	//    * 0.360
	//
	//    * 0.480
	//
	//    * 0.600
	//
	//    * 0.720
	//
	//    * 0.840
	//
	//    * 0.960
	//
	//    * 1.080
	//
	//    * 1.200
	//
	// Use one of the following prices for semantic segmentation tasks. Prices are
	// in US dollars.
	//
	//    * 0.840
	//
	//    * 0.960
	//
	//    * 1.080
	//
	//    * 1.200
	//
	// Use one of the following prices for Textract AnalyzeDocument Important Form
	// Key Amazon Augmented AI review tasks. Prices are in US dollars.
	//
	//    * 2.400
	//
	//    * 2.280
	//
	//    * 2.160
	//
	//    * 2.040
	//
	//    * 1.920
	//
	//    * 1.800
	//
	//    * 1.680
	//
	//    * 1.560
	//
	//    * 1.440
	//
	//    * 1.320
	//
	//    * 1.200
	//
	//    * 1.080
	//
	//    * 0.960
	//
	//    * 0.840
	//
	//    * 0.720
	//
	//    * 0.600
	//
	//    * 0.480
	//
	//    * 0.360
	//
	//    * 0.240
	//
	//    * 0.120
	//
	//    * 0.072
	//
	//    * 0.060
	//
	//    * 0.048
	//
	//    * 0.036
	//
	//    * 0.024
	//
	//    * 0.012
	//
	// Use one of the following prices for Rekognition DetectModerationLabels Amazon
	// Augmented AI review tasks. Prices are in US dollars.
	//
	//    * 1.200
	//
	//    * 1.080
	//
	//    * 0.960
	//
	//    * 0.840
	//
	//    * 0.720
	//
	//    * 0.600
	//
	//    * 0.480
	//
	//    * 0.360
	//
	//    * 0.240
	//
	//    * 0.120
	//
	//    * 0.072
	//
	//    * 0.060
	//
	//    * 0.048
	//
	//    * 0.036
	//
	//    * 0.024
	//
	//    * 0.012
	//
	// Use one of the following prices for Amazon Augmented AI custom human review
	// tasks. Prices are in US dollars.
	//
	//    * 1.200
	//
	//    * 1.080
	//
	//    * 0.960
	//
	//    * 0.840
	//
	//    * 0.720
	//
	//    * 0.600
	//
	//    * 0.480
	//
	//    * 0.360
	//
	//    * 0.240
	//
	//    * 0.120
	//
	//    * 0.072
	//
	//    * 0.060
	//
	//    * 0.048
	//
	//    * 0.036
	//
	//    * 0.024
	//
	//    * 0.012
	PublicWorkforceTaskPrice *PublicWorkforceTaskPrice `type:"structure"`

	// The length of time that a task remains available for review by human workers.
	TaskAvailabilityLifetimeInSeconds *int64 `min:"1" type:"integer"`

	// The number of distinct workers who will perform the same task on each object.
	// For example, if TaskCount is set to 3 for an image classification labeling
	// job, three workers will classify each input image. Increasing TaskCount can
	// improve label accuracy.
	//
	// TaskCount is a required field
	TaskCount *int64 `min:"1" type:"integer" required:"true"`

	// A description for the human worker task.
	//
	// TaskDescription is a required field
	TaskDescription *string `min:"1" type:"string" required:"true"`

	// Keywords used to describe the task so that workers can discover the task.
	TaskKeywords []*string `min:"1" type:"list"`

	// The amount of time that a worker has to complete a task. The default value
	// is 3,600 seconds (1 hour).
	TaskTimeLimitInSeconds *int64 `min:"30" type:"integer"`

	// A title for the human worker task.
	//
	// TaskTitle is a required field
	TaskTitle *string `min:"1" type:"string" required:"true"`

	// Amazon Resource Name (ARN) of a team of workers. To learn more about the
	// types of workforces and work teams you can create and use with Amazon A2I,
	// see Create and Manage Workforces (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-management.html).
	//
	// WorkteamArn is a required field
	WorkteamArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HumanLoopConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HumanLoopConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *HumanLoopConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "HumanLoopConfig"}
	if s.HumanTaskUiArn == nil {
		invalidParams.Add(request.NewErrParamRequired("HumanTaskUiArn"))
	}
	if s.TaskAvailabilityLifetimeInSeconds != nil && *s.TaskAvailabilityLifetimeInSeconds < 1 {
		invalidParams.Add(request.NewErrParamMinValue("TaskAvailabilityLifetimeInSeconds", 1))
	}
	if s.TaskCount == nil {
		invalidParams.Add(request.NewErrParamRequired("TaskCount"))
	}
	if s.TaskCount != nil && *s.TaskCount < 1 {
		invalidParams.Add(request.NewErrParamMinValue("TaskCount", 1))
	}
	if s.TaskDescription == nil {
		invalidParams.Add(request.NewErrParamRequired("TaskDescription"))
	}
	if s.TaskDescription != nil && len(*s.TaskDescription) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TaskDescription", 1))
	}
	if s.TaskKeywords != nil && len(s.TaskKeywords) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TaskKeywords", 1))
	}
	if s.TaskTimeLimitInSeconds != nil && *s.TaskTimeLimitInSeconds < 30 {
		invalidParams.Add(request.NewErrParamMinValue("TaskTimeLimitInSeconds", 30))
	}
	if s.TaskTitle == nil {
		invalidParams.Add(request.NewErrParamRequired("TaskTitle"))
	}
	if s.TaskTitle != nil && len(*s.TaskTitle) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TaskTitle", 1))
	}
	if s.WorkteamArn == nil {
		invalidParams.Add(request.NewErrParamRequired("WorkteamArn"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetHumanTaskUiArn sets the HumanTaskUiArn field's value.
func (s *HumanLoopConfig) SetHumanTaskUiArn(v string) *HumanLoopConfig {
	s.HumanTaskUiArn = &v
	return s
}

// SetPublicWorkforceTaskPrice sets the PublicWorkforceTaskPrice field's value.
func (s *HumanLoopConfig) SetPublicWorkforceTaskPrice(v *PublicWorkforceTaskPrice) *HumanLoopConfig {
	s.PublicWorkforceTaskPrice = v
	return s
}

// SetTaskAvailabilityLifetimeInSeconds sets the TaskAvailabilityLifetimeInSeconds field's value.
func (s *HumanLoopConfig) SetTaskAvailabilityLifetimeInSeconds(v int64) *HumanLoopConfig {
	s.TaskAvailabilityLifetimeInSeconds = &v
	return s
}

// SetTaskCount sets the TaskCount field's value.
func (s *HumanLoopConfig) SetTaskCount(v int64) *HumanLoopConfig {
	s.TaskCount = &v
	return s
}

// SetTaskDescription sets the TaskDescription field's value.
func (s *HumanLoopConfig) SetTaskDescription(v string) *HumanLoopConfig {
	s.TaskDescription = &v
	return s
}

// SetTaskKeywords sets the TaskKeywords field's value.
func (s *HumanLoopConfig) SetTaskKeywords(v []*string) *HumanLoopConfig {
	s.TaskKeywords = v
	return s
}

// SetTaskTimeLimitInSeconds sets the TaskTimeLimitInSeconds field's value.
func (s *HumanLoopConfig) SetTaskTimeLimitInSeconds(v int64) *HumanLoopConfig {
	s.TaskTimeLimitInSeconds = &v
	return s
}

// SetTaskTitle sets the TaskTitle field's value.
func (s *HumanLoopConfig) SetTaskTitle(v string) *HumanLoopConfig {
	s.TaskTitle = &v
	return s
}

// SetWorkteamArn sets the WorkteamArn field's value.
func (s *HumanLoopConfig) SetWorkteamArn(v string) *HumanLoopConfig {
	s.WorkteamArn = &v
	return s
}

// Container for configuring the source of human task requests.
type HumanLoopRequestSource struct {
	_ struct{} `type:"structure"`

	// Specifies whether Amazon Rekognition or Amazon Textract are used as the integration
	// source. The default field settings and JSON parsing rules are different based
	// on the integration source. Valid values:
	//
	// AwsManagedHumanLoopRequestSource is a required field
	AwsManagedHumanLoopRequestSource *string `type:"string" required:"true" enum:"AwsManagedHumanLoopRequestSource"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HumanLoopRequestSource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HumanLoopRequestSource) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *HumanLoopRequestSource) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "HumanLoopRequestSource"}
	if s.AwsManagedHumanLoopRequestSource == nil {
		invalidParams.Add(request.NewErrParamRequired("AwsManagedHumanLoopRequestSource"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAwsManagedHumanLoopRequestSource sets the AwsManagedHumanLoopRequestSource field's value.
func (s *HumanLoopRequestSource) SetAwsManagedHumanLoopRequestSource(v string) *HumanLoopRequestSource {
	s.AwsManagedHumanLoopRequestSource = &v
	return s
}

// Information required for human workers to complete a labeling task.
type HumanTaskConfig struct {
	_ struct{} `type:"structure"`

	// Configures how labels are consolidated across human workers.
	//
	// AnnotationConsolidationConfig is a required field
	AnnotationConsolidationConfig *AnnotationConsolidationConfig `type:"structure" required:"true"`

	// Defines the maximum number of data objects that can be labeled by human workers
	// at the same time. Also referred to as batch size. Each object may have more
	// than one worker at one time. The default value is 1000 objects. To increase
	// the maximum value to 5000 objects, contact Amazon Web Services Support.
	MaxConcurrentTaskCount *int64 `min:"1" type:"integer"`

	// The number of human workers that will label an object.
	//
	// NumberOfHumanWorkersPerDataObject is a required field
	NumberOfHumanWorkersPerDataObject *int64 `min:"1" type:"integer" required:"true"`

	// The Amazon Resource Name (ARN) of a Lambda function that is run before a
	// data object is sent to a human worker. Use this function to provide input
	// to a custom labeling job.
	//
	// For built-in task types (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html),
	// use one of the following Amazon SageMaker Ground Truth Lambda function ARNs
	// for PreHumanTaskLambdaArn. For custom labeling workflows, see Pre-annotation
	// Lambda (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-custom-templates-step3.html#sms-custom-templates-step3-prelambda).
	//
	// Bounding box - Finds the most similar boxes from different workers based
	// on the Jaccard index of the boxes.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:PRE-BoundingBox
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:PRE-BoundingBox
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:PRE-BoundingBox
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:PRE-BoundingBox
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:PRE-BoundingBox
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:PRE-BoundingBox
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:PRE-BoundingBox
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-BoundingBox
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-BoundingBox
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:PRE-BoundingBox
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-BoundingBox
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-BoundingBox
	//
	// Image classification - Uses a variant of the Expectation Maximization approach
	// to estimate the true class of an image based on annotations from individual
	// workers.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:PRE-ImageMultiClass
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:PRE-ImageMultiClass
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:PRE-ImageMultiClass
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:PRE-ImageMultiClass
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:PRE-ImageMultiClass
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:PRE-ImageMultiClass
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:PRE-ImageMultiClass
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-ImageMultiClass
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-ImageMultiClass
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:PRE-ImageMultiClass
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-ImageMultiClass
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-ImageMultiClass
	//
	// Multi-label image classification - Uses a variant of the Expectation Maximization
	// approach to estimate the true classes of an image based on annotations from
	// individual workers.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:PRE-ImageMultiClassMultiLabel
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:PRE-ImageMultiClassMultiLabel
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:PRE-ImageMultiClassMultiLabel
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:PRE-ImageMultiClassMultiLabel
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:PRE-ImageMultiClassMultiLabel
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:PRE-ImageMultiClassMultiLabel
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:PRE-ImageMultiClassMultiLabel
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-ImageMultiClassMultiLabel
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-ImageMultiClassMultiLabel
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:PRE-ImageMultiClassMultiLabel
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-ImageMultiClassMultiLabel
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-ImageMultiClassMultiLabel
	//
	// Semantic segmentation - Treats each pixel in an image as a multi-class classification
	// and treats pixel annotations from workers as "votes" for the correct label.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:PRE-SemanticSegmentation
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:PRE-SemanticSegmentation
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:PRE-SemanticSegmentation
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:PRE-SemanticSegmentation
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:PRE-SemanticSegmentation
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:PRE-SemanticSegmentation
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:PRE-SemanticSegmentation
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-SemanticSegmentation
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-SemanticSegmentation
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:PRE-SemanticSegmentation
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-SemanticSegmentation
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-SemanticSegmentation
	//
	// Text classification - Uses a variant of the Expectation Maximization approach
	// to estimate the true class of text based on annotations from individual workers.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:PRE-TextMultiClass
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:PRE-TextMultiClass
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:PRE-TextMultiClass
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:PRE-TextMultiClass
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:PRE-TextMultiClass
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:PRE-TextMultiClass
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:PRE-TextMultiClass
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-TextMultiClass
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-TextMultiClass
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:PRE-TextMultiClass
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-TextMultiClass
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-TextMultiClass
	//
	// Multi-label text classification - Uses a variant of the Expectation Maximization
	// approach to estimate the true classes of text based on annotations from individual
	// workers.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:PRE-TextMultiClassMultiLabel
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:PRE-TextMultiClassMultiLabel
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:PRE-TextMultiClassMultiLabel
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:PRE-TextMultiClassMultiLabel
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:PRE-TextMultiClassMultiLabel
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:PRE-TextMultiClassMultiLabel
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:PRE-TextMultiClassMultiLabel
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-TextMultiClassMultiLabel
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-TextMultiClassMultiLabel
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:PRE-TextMultiClassMultiLabel
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-TextMultiClassMultiLabel
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-TextMultiClassMultiLabel
	//
	// Named entity recognition - Groups similar selections and calculates aggregate
	// boundaries, resolving to most-assigned label.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:PRE-NamedEntityRecognition
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:PRE-NamedEntityRecognition
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:PRE-NamedEntityRecognition
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:PRE-NamedEntityRecognition
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:PRE-NamedEntityRecognition
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:PRE-NamedEntityRecognition
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:PRE-NamedEntityRecognition
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-NamedEntityRecognition
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-NamedEntityRecognition
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:PRE-NamedEntityRecognition
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-NamedEntityRecognition
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-NamedEntityRecognition
	//
	// Video Classification - Use this task type when you need workers to classify
	// videos using predefined labels that you specify. Workers are shown videos
	// and are asked to choose one label for each video.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoMultiClass
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoMultiClass
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoMultiClass
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoMultiClass
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoMultiClass
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoMultiClass
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoMultiClass
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoMultiClass
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoMultiClass
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoMultiClass
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoMultiClass
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoMultiClass
	//
	// Video Frame Object Detection - Use this task type to have workers identify
	// and locate objects in a sequence of video frames (images extracted from a
	// video) using bounding boxes. For example, you can use this task to ask workers
	// to identify and localize various objects in a series of video frames, such
	// as cars, bikes, and pedestrians.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoObjectDetection
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoObjectDetection
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoObjectDetection
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoObjectDetection
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoObjectDetection
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoObjectDetection
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoObjectDetection
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoObjectDetection
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoObjectDetection
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoObjectDetection
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoObjectDetection
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoObjectDetection
	//
	// Video Frame Object Tracking - Use this task type to have workers track the
	// movement of objects in a sequence of video frames (images extracted from
	// a video) using bounding boxes. For example, you can use this task to ask
	// workers to track the movement of objects, such as cars, bikes, and pedestrians.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoObjectTracking
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoObjectTracking
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoObjectTracking
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoObjectTracking
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoObjectTracking
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoObjectTracking
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoObjectTracking
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoObjectTracking
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoObjectTracking
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoObjectTracking
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoObjectTracking
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoObjectTracking
	//
	// 3D Point Cloud Modalities
	//
	// Use the following pre-annotation lambdas for 3D point cloud labeling modality
	// tasks. See 3D Point Cloud Task types (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-point-cloud-task-types.html)
	// to learn more.
	//
	// 3D Point Cloud Object Detection - Use this task type when you want workers
	// to classify objects in a 3D point cloud by drawing 3D cuboids around objects.
	// For example, you can use this task type to ask workers to identify different
	// types of objects in a point cloud, such as cars, bikes, and pedestrians.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudObjectDetection
	//
	// 3D Point Cloud Object Tracking - Use this task type when you want workers
	// to draw 3D cuboids around objects that appear in a sequence of 3D point cloud
	// frames. For example, you can use this task type to ask workers to track the
	// movement of vehicles across multiple point cloud frames.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudObjectTracking
	//
	// 3D Point Cloud Semantic Segmentation - Use this task type when you want workers
	// to create a point-level semantic segmentation masks by painting objects in
	// a 3D point cloud using different colors where each color is assigned to one
	// of the classes you specify.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudSemanticSegmentation
	//
	// Use the following ARNs for Label Verification and Adjustment Jobs
	//
	// Use label verification and adjustment jobs to review and adjust labels. To
	// learn more, see Verify and Adjust Labels (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-verification-data.html).
	//
	// Bounding box verification - Uses a variant of the Expectation Maximization
	// approach to estimate the true class of verification judgement for bounding
	// box labels based on annotations from individual workers.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:PRE-VerificationBoundingBox
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:PRE-VerificationBoundingBox
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:PRE-VerificationBoundingBox
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:PRE-VerificationBoundingBox
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VerificationBoundingBox
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VerificationBoundingBox
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:PRE-VerificationBoundingBox
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:PRE-VerificationBoundingBox
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VerificationBoundingBox
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:PRE-VerificationBoundingBox
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VerificationBoundingBox
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:PRE-VerificationBoundingBox
	//
	// Bounding box adjustment - Finds the most similar boxes from different workers
	// based on the Jaccard index of the adjusted annotations.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentBoundingBox
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentBoundingBox
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentBoundingBox
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentBoundingBox
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentBoundingBox
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentBoundingBox
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentBoundingBox
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentBoundingBox
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentBoundingBox
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentBoundingBox
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentBoundingBox
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentBoundingBox
	//
	// Semantic segmentation verification - Uses a variant of the Expectation Maximization
	// approach to estimate the true class of verification judgment for semantic
	// segmentation labels based on annotations from individual workers.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:PRE-VerificationSemanticSegmentation
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:PRE-VerificationSemanticSegmentation
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:PRE-VerificationSemanticSegmentation
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:PRE-VerificationSemanticSegmentation
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:PRE-VerificationSemanticSegmentation
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:PRE-VerificationSemanticSegmentation
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:PRE-VerificationSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VerificationSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VerificationSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:PRE-VerificationSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VerificationSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VerificationSemanticSegmentation
	//
	// Semantic segmentation adjustment - Treats each pixel in an image as a multi-class
	// classification and treats pixel adjusted annotations from workers as "votes"
	// for the correct label.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentSemanticSegmentation
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentSemanticSegmentation
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentSemanticSegmentation
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentSemanticSegmentation
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentSemanticSegmentation
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentSemanticSegmentation
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentSemanticSegmentation
	//
	// Video Frame Object Detection Adjustment - Use this task type when you want
	// workers to adjust bounding boxes that workers have added to video frames
	// to classify and localize objects in a sequence of video frames.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentVideoObjectDetection
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentVideoObjectDetection
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentVideoObjectDetection
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentVideoObjectDetection
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentVideoObjectDetection
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentVideoObjectDetection
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentVideoObjectDetection
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentVideoObjectDetection
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentVideoObjectDetection
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentVideoObjectDetection
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentVideoObjectDetection
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentVideoObjectDetection
	//
	// Video Frame Object Tracking Adjustment - Use this task type when you want
	// workers to adjust bounding boxes that workers have added to video frames
	// to track object movement across a sequence of video frames.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentVideoObjectTracking
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentVideoObjectTracking
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentVideoObjectTracking
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentVideoObjectTracking
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentVideoObjectTracking
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentVideoObjectTracking
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentVideoObjectTracking
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentVideoObjectTracking
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentVideoObjectTracking
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentVideoObjectTracking
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentVideoObjectTracking
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentVideoObjectTracking
	//
	// 3D point cloud object detection adjustment - Adjust 3D cuboids in a point
	// cloud frame.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudObjectDetection
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudObjectDetection
	//
	// 3D point cloud object tracking adjustment - Adjust 3D cuboids across a sequence
	// of point cloud frames.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudObjectTracking
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudObjectTracking
	//
	// 3D point cloud semantic segmentation adjustment - Adjust semantic segmentation
	// masks in a 3D point cloud.
	//
	//    * arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudSemanticSegmentation
	//
	//    * arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudSemanticSegmentation
	//
	// PreHumanTaskLambdaArn is a required field
	PreHumanTaskLambdaArn *string `type:"string" required:"true"`

	// The price that you pay for each task performed by an Amazon Mechanical Turk
	// worker.
	PublicWorkforceTaskPrice *PublicWorkforceTaskPrice `type:"structure"`

	// The length of time that a task remains available for labeling by human workers.
	// The default and maximum values for this parameter depend on the type of workforce
	// you use.
	//
	//    * If you choose the Amazon Mechanical Turk workforce, the maximum is 12
	//    hours (43,200 seconds). The default is 6 hours (21,600 seconds).
	//
	//    * If you choose a private or vendor workforce, the default value is 30
	//    days (2592,000 seconds) for non-AL mode. For most users, the maximum is
	//    also 30 days.
	TaskAvailabilityLifetimeInSeconds *int64 `min:"60" type:"integer"`

	// A description of the task for your human workers.
	//
	// TaskDescription is a required field
	TaskDescription *string `min:"1" type:"string" required:"true"`

	// Keywords used to describe the task so that workers on Amazon Mechanical Turk
	// can discover the task.
	TaskKeywords []*string `min:"1" type:"list"`

	// The amount of time that a worker has to complete a task.
	//
	// If you create a custom labeling job, the maximum value for this parameter
	// is 8 hours (28,800 seconds).
	//
	// If you create a labeling job using a built-in task type (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html)
	// the maximum for this parameter depends on the task type you use:
	//
	//    * For image (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-label-images.html)
	//    and text (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-label-text.html)
	//    labeling jobs, the maximum is 8 hours (28,800 seconds).
	//
	//    * For 3D point cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-point-cloud.html)
	//    and video frame (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-video.html)
	//    labeling jobs, the maximum is 30 days (2952,000 seconds) for non-AL mode.
	//    For most users, the maximum is also 30 days.
	//
	// TaskTimeLimitInSeconds is a required field
	TaskTimeLimitInSeconds *int64 `min:"30" type:"integer" required:"true"`

	// A title for the task for your human workers.
	//
	// TaskTitle is a required field
	TaskTitle *string `min:"1" type:"string" required:"true"`

	// Information about the user interface that workers use to complete the labeling
	// task.
	//
	// UiConfig is a required field
	UiConfig *UiConfig `type:"structure" required:"true"`

	// The Amazon Resource Name (ARN) of the work team assigned to complete the
	// tasks.
	//
	// WorkteamArn is a required field
	WorkteamArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HumanTaskConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HumanTaskConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *HumanTaskConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "HumanTaskConfig"}
	if s.AnnotationConsolidationConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("AnnotationConsolidationConfig"))
	}
	if s.MaxConcurrentTaskCount != nil && *s.MaxConcurrentTaskCount < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxConcurrentTaskCount", 1))
	}
	if s.NumberOfHumanWorkersPerDataObject == nil {
		invalidParams.Add(request.NewErrParamRequired("NumberOfHumanWorkersPerDataObject"))
	}
	if s.NumberOfHumanWorkersPerDataObject != nil && *s.NumberOfHumanWorkersPerDataObject < 1 {
		invalidParams.Add(request.NewErrParamMinValue("NumberOfHumanWorkersPerDataObject", 1))
	}
	if s.PreHumanTaskLambdaArn == nil {
		invalidParams.Add(request.NewErrParamRequired("PreHumanTaskLambdaArn"))
	}
	if s.TaskAvailabilityLifetimeInSeconds != nil && *s.TaskAvailabilityLifetimeInSeconds < 60 {
		invalidParams.Add(request.NewErrParamMinValue("TaskAvailabilityLifetimeInSeconds", 60))
	}
	if s.TaskDescription == nil {
		invalidParams.Add(request.NewErrParamRequired("TaskDescription"))
	}
	if s.TaskDescription != nil && len(*s.TaskDescription) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TaskDescription", 1))
	}
	if s.TaskKeywords != nil && len(s.TaskKeywords) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TaskKeywords", 1))
	}
	if s.TaskTimeLimitInSeconds == nil {
		invalidParams.Add(request.NewErrParamRequired("TaskTimeLimitInSeconds"))
	}
	if s.TaskTimeLimitInSeconds != nil && *s.TaskTimeLimitInSeconds < 30 {
		invalidParams.Add(request.NewErrParamMinValue("TaskTimeLimitInSeconds", 30))
	}
	if s.TaskTitle == nil {
		invalidParams.Add(request.NewErrParamRequired("TaskTitle"))
	}
	if s.TaskTitle != nil && len(*s.TaskTitle) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TaskTitle", 1))
	}
	if s.UiConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("UiConfig"))
	}
	if s.WorkteamArn == nil {
		invalidParams.Add(request.NewErrParamRequired("WorkteamArn"))
	}
	if s.AnnotationConsolidationConfig != nil {
		if err := s.AnnotationConsolidationConfig.Validate(); err != nil {
			invalidParams.AddNested("AnnotationConsolidationConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAnnotationConsolidationConfig sets the AnnotationConsolidationConfig field's value.
func (s *HumanTaskConfig) SetAnnotationConsolidationConfig(v *AnnotationConsolidationConfig) *HumanTaskConfig {
	s.AnnotationConsolidationConfig = v
	return s
}

// SetMaxConcurrentTaskCount sets the MaxConcurrentTaskCount field's value.
func (s *HumanTaskConfig) SetMaxConcurrentTaskCount(v int64) *HumanTaskConfig {
	s.MaxConcurrentTaskCount = &v
	return s
}

// SetNumberOfHumanWorkersPerDataObject sets the NumberOfHumanWorkersPerDataObject field's value.
func (s *HumanTaskConfig) SetNumberOfHumanWorkersPerDataObject(v int64) *HumanTaskConfig {
	s.NumberOfHumanWorkersPerDataObject = &v
	return s
}

// SetPreHumanTaskLambdaArn sets the PreHumanTaskLambdaArn field's value.
func (s *HumanTaskConfig) SetPreHumanTaskLambdaArn(v string) *HumanTaskConfig {
	s.PreHumanTaskLambdaArn = &v
	return s
}

// SetPublicWorkforceTaskPrice sets the PublicWorkforceTaskPrice field's value.
func (s *HumanTaskConfig) SetPublicWorkforceTaskPrice(v *PublicWorkforceTaskPrice) *HumanTaskConfig {
	s.PublicWorkforceTaskPrice = v
	return s
}

// SetTaskAvailabilityLifetimeInSeconds sets the TaskAvailabilityLifetimeInSeconds field's value.
func (s *HumanTaskConfig) SetTaskAvailabilityLifetimeInSeconds(v int64) *HumanTaskConfig {
	s.TaskAvailabilityLifetimeInSeconds = &v
	return s
}

// SetTaskDescription sets the TaskDescription field's value.
func (s *HumanTaskConfig) SetTaskDescription(v string) *HumanTaskConfig {
	s.TaskDescription = &v
	return s
}

// SetTaskKeywords sets the TaskKeywords field's value.
func (s *HumanTaskConfig) SetTaskKeywords(v []*string) *HumanTaskConfig {
	s.TaskKeywords = v
	return s
}

// SetTaskTimeLimitInSeconds sets the TaskTimeLimitInSeconds field's value.
func (s *HumanTaskConfig) SetTaskTimeLimitInSeconds(v int64) *HumanTaskConfig {
	s.TaskTimeLimitInSeconds = &v
	return s
}

// SetTaskTitle sets the TaskTitle field's value.
func (s *HumanTaskConfig) SetTaskTitle(v string) *HumanTaskConfig {
	s.TaskTitle = &v
	return s
}

// SetUiConfig sets the UiConfig field's value.
func (s *HumanTaskConfig) SetUiConfig(v *UiConfig) *HumanTaskConfig {
	s.UiConfig = v
	return s
}

// SetWorkteamArn sets the WorkteamArn field's value.
func (s *HumanTaskConfig) SetWorkteamArn(v string) *HumanTaskConfig {
	s.WorkteamArn = &v
	return s
}

// Container for human task user interface information.
type HumanTaskUiSummary struct {
	_ struct{} `type:"structure"`

	// A timestamp when SageMaker created the human task user interface.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The Amazon Resource Name (ARN) of the human task user interface.
	//
	// HumanTaskUiArn is a required field
	HumanTaskUiArn *string `type:"string" required:"true"`

	// The name of the human task user interface.
	//
	// HumanTaskUiName is a required field
	HumanTaskUiName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HumanTaskUiSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HumanTaskUiSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *HumanTaskUiSummary) SetCreationTime(v time.Time) *HumanTaskUiSummary {
	s.CreationTime = &v
	return s
}

// SetHumanTaskUiArn sets the HumanTaskUiArn field's value.
func (s *HumanTaskUiSummary) SetHumanTaskUiArn(v string) *HumanTaskUiSummary {
	s.HumanTaskUiArn = &v
	return s
}

// SetHumanTaskUiName sets the HumanTaskUiName field's value.
func (s *HumanTaskUiSummary) SetHumanTaskUiName(v string) *HumanTaskUiSummary {
	s.HumanTaskUiName = &v
	return s
}

// Specifies which training algorithm to use for training jobs that a hyperparameter
// tuning job launches and the metrics to monitor.
type HyperParameterAlgorithmSpecification struct {
	_ struct{} `type:"structure"`

	// The name of the resource algorithm to use for the hyperparameter tuning job.
	// If you specify a value for this parameter, do not specify a value for TrainingImage.
	AlgorithmName *string `min:"1" type:"string"`

	// An array of MetricDefinition (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_MetricDefinition.html)
	// objects that specify the metrics that the algorithm emits.
	MetricDefinitions []*MetricDefinition `type:"list"`

	// The registry path of the Docker image that contains the training algorithm.
	// For information about Docker registry paths for built-in algorithms, see
	// Algorithms Provided by Amazon SageMaker: Common Parameters (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html).
	// SageMaker supports both registry/repository[:tag] and registry/repository[@digest]
	// image path formats. For more information, see Using Your Own Algorithms with
	// Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html).
	TrainingImage *string `type:"string"`

	// The training input mode that the algorithm supports. For more information
	// about input modes, see Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html).
	//
	// Pipe mode
	//
	// If an algorithm supports Pipe mode, Amazon SageMaker streams data directly
	// from Amazon S3 to the container.
	//
	// File mode
	//
	// If an algorithm supports File mode, SageMaker downloads the training data
	// from S3 to the provisioned ML storage volume, and mounts the directory to
	// the Docker volume for the training container.
	//
	// You must provision the ML storage volume with sufficient capacity to accommodate
	// the data downloaded from S3. In addition to the training data, the ML storage
	// volume also stores the output model. The algorithm container uses the ML
	// storage volume to also store intermediate information, if any.
	//
	// For distributed algorithms, training data is distributed uniformly. Your
	// training duration is predictable if the input data objects sizes are approximately
	// the same. SageMaker does not split the files any further for model training.
	// If the object sizes are skewed, training won't be optimal as the data distribution
	// is also skewed when one host in a training cluster is overloaded, thus becoming
	// a bottleneck in training.
	//
	// FastFile mode
	//
	// If an algorithm supports FastFile mode, SageMaker streams data directly from
	// S3 to the container with no code changes, and provides file system access
	// to the data. Users can author their training script to interact with these
	// files as if they were stored on disk.
	//
	// FastFile mode works best when the data is read sequentially. Augmented manifest
	// files aren't supported. The startup time is lower when there are fewer files
	// in the S3 bucket provided.
	//
	// TrainingInputMode is a required field
	TrainingInputMode *string `type:"string" required:"true" enum:"TrainingInputMode"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterAlgorithmSpecification) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterAlgorithmSpecification) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *HyperParameterAlgorithmSpecification) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "HyperParameterAlgorithmSpecification"}
	if s.AlgorithmName != nil && len(*s.AlgorithmName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AlgorithmName", 1))
	}
	if s.TrainingInputMode == nil {
		invalidParams.Add(request.NewErrParamRequired("TrainingInputMode"))
	}
	if s.MetricDefinitions != nil {
		for i, v := range s.MetricDefinitions {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MetricDefinitions", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAlgorithmName sets the AlgorithmName field's value.
func (s *HyperParameterAlgorithmSpecification) SetAlgorithmName(v string) *HyperParameterAlgorithmSpecification {
	s.AlgorithmName = &v
	return s
}

// SetMetricDefinitions sets the MetricDefinitions field's value.
func (s *HyperParameterAlgorithmSpecification) SetMetricDefinitions(v []*MetricDefinition) *HyperParameterAlgorithmSpecification {
	s.MetricDefinitions = v
	return s
}

// SetTrainingImage sets the TrainingImage field's value.
func (s *HyperParameterAlgorithmSpecification) SetTrainingImage(v string) *HyperParameterAlgorithmSpecification {
	s.TrainingImage = &v
	return s
}

// SetTrainingInputMode sets the TrainingInputMode field's value.
func (s *HyperParameterAlgorithmSpecification) SetTrainingInputMode(v string) *HyperParameterAlgorithmSpecification {
	s.TrainingInputMode = &v
	return s
}

// Defines a hyperparameter to be used by an algorithm.
type HyperParameterSpecification struct {
	_ struct{} `type:"structure"`

	// The default value for this hyperparameter. If a default value is specified,
	// a hyperparameter cannot be required.
	DefaultValue *string `type:"string"`

	// A brief description of the hyperparameter.
	Description *string `type:"string"`

	// Indicates whether this hyperparameter is required.
	IsRequired *bool `type:"boolean"`

	// Indicates whether this hyperparameter is tunable in a hyperparameter tuning
	// job.
	IsTunable *bool `type:"boolean"`

	// The name of this hyperparameter. The name must be unique.
	//
	// Name is a required field
	Name *string `type:"string" required:"true"`

	// The allowed range for this hyperparameter.
	Range *ParameterRange `type:"structure"`

	// The type of this hyperparameter. The valid types are Integer, Continuous,
	// Categorical, and FreeText.
	//
	// Type is a required field
	Type *string `type:"string" required:"true" enum:"ParameterType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterSpecification) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterSpecification) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *HyperParameterSpecification) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "HyperParameterSpecification"}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Type == nil {
		invalidParams.Add(request.NewErrParamRequired("Type"))
	}
	if s.Range != nil {
		if err := s.Range.Validate(); err != nil {
			invalidParams.AddNested("Range", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDefaultValue sets the DefaultValue field's value.
func (s *HyperParameterSpecification) SetDefaultValue(v string) *HyperParameterSpecification {
	s.DefaultValue = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *HyperParameterSpecification) SetDescription(v string) *HyperParameterSpecification {
	s.Description = &v
	return s
}

// SetIsRequired sets the IsRequired field's value.
func (s *HyperParameterSpecification) SetIsRequired(v bool) *HyperParameterSpecification {
	s.IsRequired = &v
	return s
}

// SetIsTunable sets the IsTunable field's value.
func (s *HyperParameterSpecification) SetIsTunable(v bool) *HyperParameterSpecification {
	s.IsTunable = &v
	return s
}

// SetName sets the Name field's value.
func (s *HyperParameterSpecification) SetName(v string) *HyperParameterSpecification {
	s.Name = &v
	return s
}

// SetRange sets the Range field's value.
func (s *HyperParameterSpecification) SetRange(v *ParameterRange) *HyperParameterSpecification {
	s.Range = v
	return s
}

// SetType sets the Type field's value.
func (s *HyperParameterSpecification) SetType(v string) *HyperParameterSpecification {
	s.Type = &v
	return s
}

// Defines the training jobs launched by a hyperparameter tuning job.
type HyperParameterTrainingJobDefinition struct {
	_ struct{} `type:"structure"`

	// The HyperParameterAlgorithmSpecification (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterAlgorithmSpecification.html)
	// object that specifies the resource algorithm to use for the training jobs
	// that the tuning job launches.
	//
	// AlgorithmSpecification is a required field
	AlgorithmSpecification *HyperParameterAlgorithmSpecification `type:"structure" required:"true"`

	// Contains information about the output location for managed spot training
	// checkpoint data.
	CheckpointConfig *CheckpointConfig `type:"structure"`

	// The job definition name.
	DefinitionName *string `min:"1" type:"string"`

	// To encrypt all communications between ML compute instances in distributed
	// training, choose True. Encryption provides greater security for distributed
	// training, but training might take longer. How long it takes depends on the
	// amount of communication between compute instances, especially if you use
	// a deep learning algorithm in distributed training.
	EnableInterContainerTrafficEncryption *bool `type:"boolean"`

	// A Boolean indicating whether managed spot training is enabled (True) or not
	// (False).
	EnableManagedSpotTraining *bool `type:"boolean"`

	// Isolates the training container. No inbound or outbound network calls can
	// be made, except for calls between peers within a training cluster for distributed
	// training. If network isolation is used for training jobs that are configured
	// to use a VPC, SageMaker downloads and uploads customer data and model artifacts
	// through the specified VPC, but the training container does not have network
	// access.
	EnableNetworkIsolation *bool `type:"boolean"`

	// An environment variable that you can pass into the SageMaker CreateTrainingJob
	// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)
	// API. You can use an existing environment variable from the training container
	// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html#sagemaker-CreateTrainingJob-request-Environment)
	// or use your own. See Define metrics and variables (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics-variables.html)
	// for more information.
	//
	// The maximum number of items specified for Map Entries refers to the maximum
	// number of environment variables for each TrainingJobDefinition and also the
	// maximum for the hyperparameter tuning job itself. That is, the sum of the
	// number of environment variables for all the training job definitions can't
	// exceed the maximum number specified.
	Environment map[string]*string `type:"map"`

	// Specifies ranges of integer, continuous, and categorical hyperparameters
	// that a hyperparameter tuning job searches. The hyperparameter tuning job
	// launches training jobs with hyperparameter values within these ranges to
	// find the combination of values that result in the training job with the best
	// performance as measured by the objective metric of the hyperparameter tuning
	// job.
	//
	// The maximum number of items specified for Array Members refers to the maximum
	// number of hyperparameters for each range and also the maximum for the hyperparameter
	// tuning job itself. That is, the sum of the number of hyperparameters for
	// all the ranges can't exceed the maximum number specified.
	HyperParameterRanges *ParameterRanges `type:"structure"`

	// The configuration for the hyperparameter tuning resources, including the
	// compute instances and storage volumes, used for training jobs launched by
	// the tuning job. By default, storage volumes hold model artifacts and incremental
	// states. Choose File for TrainingInputMode in the AlgorithmSpecification parameter
	// to additionally store training data in the storage volume (optional).
	HyperParameterTuningResourceConfig *HyperParameterTuningResourceConfig `type:"structure"`

	// An array of Channel (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Channel.html)
	// objects that specify the input for the training jobs that the tuning job
	// launches.
	InputDataConfig []*Channel `min:"1" type:"list"`

	// Specifies the path to the Amazon S3 bucket where you store model artifacts
	// from the training jobs that the tuning job launches.
	//
	// OutputDataConfig is a required field
	OutputDataConfig *OutputDataConfig `type:"structure" required:"true"`

	// The resources, including the compute instances and storage volumes, to use
	// for the training jobs that the tuning job launches.
	//
	// Storage volumes store model artifacts and incremental states. Training algorithms
	// might also use storage volumes for scratch space. If you want SageMaker to
	// use the storage volume to store the training data, choose File as the TrainingInputMode
	// in the algorithm specification. For distributed training algorithms, specify
	// an instance count greater than 1.
	//
	// If you want to use hyperparameter optimization with instance type flexibility,
	// use HyperParameterTuningResourceConfig instead.
	ResourceConfig *ResourceConfig `type:"structure"`

	// The number of times to retry the job when the job fails due to an InternalServerError.
	RetryStrategy *RetryStrategy `type:"structure"`

	// The Amazon Resource Name (ARN) of the IAM role associated with the training
	// jobs that the tuning job launches.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// Specifies the values of hyperparameters that do not change for the tuning
	// job.
	StaticHyperParameters map[string]*string `type:"map"`

	// Specifies a limit to how long a model hyperparameter training job can run.
	// It also specifies how long a managed spot training job has to complete. When
	// the job reaches the time limit, SageMaker ends the training job. Use this
	// API to cap model training costs.
	//
	// StoppingCondition is a required field
	StoppingCondition *StoppingCondition `type:"structure" required:"true"`

	// Defines the objective metric for a hyperparameter tuning job. Hyperparameter
	// tuning uses the value of this metric to evaluate the training jobs it launches,
	// and returns the training job that results in either the highest or lowest
	// value for this metric, depending on the value you specify for the Type parameter.
	// If you want to define a custom objective metric, see Define metrics and environment
	// variables (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics-variables.html).
	TuningObjective *HyperParameterTuningJobObjective `type:"structure"`

	// The VpcConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html)
	// object that specifies the VPC that you want the training jobs that this hyperparameter
	// tuning job launches to connect to. Control access to and from your training
	// container by configuring the VPC. For more information, see Protect Training
	// Jobs by Using an Amazon Virtual Private Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html).
	VpcConfig *VpcConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterTrainingJobDefinition) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterTrainingJobDefinition) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *HyperParameterTrainingJobDefinition) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "HyperParameterTrainingJobDefinition"}
	if s.AlgorithmSpecification == nil {
		invalidParams.Add(request.NewErrParamRequired("AlgorithmSpecification"))
	}
	if s.DefinitionName != nil && len(*s.DefinitionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DefinitionName", 1))
	}
	if s.InputDataConfig != nil && len(s.InputDataConfig) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("InputDataConfig", 1))
	}
	if s.OutputDataConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("OutputDataConfig"))
	}
	if s.RoleArn == nil {
		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.StoppingCondition == nil {
		invalidParams.Add(request.NewErrParamRequired("StoppingCondition"))
	}
	if s.AlgorithmSpecification != nil {
		if err := s.AlgorithmSpecification.Validate(); err != nil {
			invalidParams.AddNested("AlgorithmSpecification", err.(request.ErrInvalidParams))
		}
	}
	if s.CheckpointConfig != nil {
		if err := s.CheckpointConfig.Validate(); err != nil {
			invalidParams.AddNested("CheckpointConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.HyperParameterRanges != nil {
		if err := s.HyperParameterRanges.Validate(); err != nil {
			invalidParams.AddNested("HyperParameterRanges", err.(request.ErrInvalidParams))
		}
	}
	if s.HyperParameterTuningResourceConfig != nil {
		if err := s.HyperParameterTuningResourceConfig.Validate(); err != nil {
			invalidParams.AddNested("HyperParameterTuningResourceConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.InputDataConfig != nil {
		for i, v := range s.InputDataConfig {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InputDataConfig", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.OutputDataConfig != nil {
		if err := s.OutputDataConfig.Validate(); err != nil {
			invalidParams.AddNested("OutputDataConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.ResourceConfig != nil {
		if err := s.ResourceConfig.Validate(); err != nil {
			invalidParams.AddNested("ResourceConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.RetryStrategy != nil {
		if err := s.RetryStrategy.Validate(); err != nil {
			invalidParams.AddNested("RetryStrategy", err.(request.ErrInvalidParams))
		}
	}
	if s.StoppingCondition != nil {
		if err := s.StoppingCondition.Validate(); err != nil {
			invalidParams.AddNested("StoppingCondition", err.(request.ErrInvalidParams))
		}
	}
	if s.TuningObjective != nil {
		if err := s.TuningObjective.Validate(); err != nil {
			invalidParams.AddNested("TuningObjective", err.(request.ErrInvalidParams))
		}
	}
	if s.VpcConfig != nil {
		if err := s.VpcConfig.Validate(); err != nil {
			invalidParams.AddNested("VpcConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAlgorithmSpecification sets the AlgorithmSpecification field's value.
func (s *HyperParameterTrainingJobDefinition) SetAlgorithmSpecification(v *HyperParameterAlgorithmSpecification) *HyperParameterTrainingJobDefinition {
	s.AlgorithmSpecification = v
	return s
}

// SetCheckpointConfig sets the CheckpointConfig field's value.
func (s *HyperParameterTrainingJobDefinition) SetCheckpointConfig(v *CheckpointConfig) *HyperParameterTrainingJobDefinition {
	s.CheckpointConfig = v
	return s
}

// SetDefinitionName sets the DefinitionName field's value.
func (s *HyperParameterTrainingJobDefinition) SetDefinitionName(v string) *HyperParameterTrainingJobDefinition {
	s.DefinitionName = &v
	return s
}

// SetEnableInterContainerTrafficEncryption sets the EnableInterContainerTrafficEncryption field's value.
func (s *HyperParameterTrainingJobDefinition) SetEnableInterContainerTrafficEncryption(v bool) *HyperParameterTrainingJobDefinition {
	s.EnableInterContainerTrafficEncryption = &v
	return s
}

// SetEnableManagedSpotTraining sets the EnableManagedSpotTraining field's value.
func (s *HyperParameterTrainingJobDefinition) SetEnableManagedSpotTraining(v bool) *HyperParameterTrainingJobDefinition {
	s.EnableManagedSpotTraining = &v
	return s
}

// SetEnableNetworkIsolation sets the EnableNetworkIsolation field's value.
func (s *HyperParameterTrainingJobDefinition) SetEnableNetworkIsolation(v bool) *HyperParameterTrainingJobDefinition {
	s.EnableNetworkIsolation = &v
	return s
}

// SetEnvironment sets the Environment field's value.
func (s *HyperParameterTrainingJobDefinition) SetEnvironment(v map[string]*string) *HyperParameterTrainingJobDefinition {
	s.Environment = v
	return s
}

// SetHyperParameterRanges sets the HyperParameterRanges field's value.
func (s *HyperParameterTrainingJobDefinition) SetHyperParameterRanges(v *ParameterRanges) *HyperParameterTrainingJobDefinition {
	s.HyperParameterRanges = v
	return s
}

// SetHyperParameterTuningResourceConfig sets the HyperParameterTuningResourceConfig field's value.
func (s *HyperParameterTrainingJobDefinition) SetHyperParameterTuningResourceConfig(v *HyperParameterTuningResourceConfig) *HyperParameterTrainingJobDefinition {
	s.HyperParameterTuningResourceConfig = v
	return s
}

// SetInputDataConfig sets the InputDataConfig field's value.
func (s *HyperParameterTrainingJobDefinition) SetInputDataConfig(v []*Channel) *HyperParameterTrainingJobDefinition {
	s.InputDataConfig = v
	return s
}

// SetOutputDataConfig sets the OutputDataConfig field's value.
func (s *HyperParameterTrainingJobDefinition) SetOutputDataConfig(v *OutputDataConfig) *HyperParameterTrainingJobDefinition {
	s.OutputDataConfig = v
	return s
}

// SetResourceConfig sets the ResourceConfig field's value.
func (s *HyperParameterTrainingJobDefinition) SetResourceConfig(v *ResourceConfig) *HyperParameterTrainingJobDefinition {
	s.ResourceConfig = v
	return s
}

// SetRetryStrategy sets the RetryStrategy field's value.
func (s *HyperParameterTrainingJobDefinition) SetRetryStrategy(v *RetryStrategy) *HyperParameterTrainingJobDefinition {
	s.RetryStrategy = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *HyperParameterTrainingJobDefinition) SetRoleArn(v string) *HyperParameterTrainingJobDefinition {
	s.RoleArn = &v
	return s
}

// SetStaticHyperParameters sets the StaticHyperParameters field's value.
func (s *HyperParameterTrainingJobDefinition) SetStaticHyperParameters(v map[string]*string) *HyperParameterTrainingJobDefinition {
	s.StaticHyperParameters = v
	return s
}

// SetStoppingCondition sets the StoppingCondition field's value.
func (s *HyperParameterTrainingJobDefinition) SetStoppingCondition(v *StoppingCondition) *HyperParameterTrainingJobDefinition {
	s.StoppingCondition = v
	return s
}

// SetTuningObjective sets the TuningObjective field's value.
func (s *HyperParameterTrainingJobDefinition) SetTuningObjective(v *HyperParameterTuningJobObjective) *HyperParameterTrainingJobDefinition {
	s.TuningObjective = v
	return s
}

// SetVpcConfig sets the VpcConfig field's value.
func (s *HyperParameterTrainingJobDefinition) SetVpcConfig(v *VpcConfig) *HyperParameterTrainingJobDefinition {
	s.VpcConfig = v
	return s
}

// The container for the summary information about a training job.
type HyperParameterTrainingJobSummary struct {
	_ struct{} `type:"structure"`

	// The date and time that the training job was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The reason that the training job failed.
	FailureReason *string `type:"string"`

	// The FinalHyperParameterTuningJobObjectiveMetric (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_FinalHyperParameterTuningJobObjectiveMetric.html)
	// object that specifies the value of the objective metric of the tuning job
	// that launched this training job.
	FinalHyperParameterTuningJobObjectiveMetric *FinalHyperParameterTuningJobObjectiveMetric `type:"structure"`

	// The status of the objective metric for the training job:
	//
	//    * Succeeded: The final objective metric for the training job was evaluated
	//    by the hyperparameter tuning job and used in the hyperparameter tuning
	//    process.
	//
	//    * Pending: The training job is in progress and evaluation of its final
	//    objective metric is pending.
	//
	//    * Failed: The final objective metric for the training job was not evaluated,
	//    and was not used in the hyperparameter tuning process. This typically
	//    occurs when the training job failed or did not emit an objective metric.
	ObjectiveStatus *string `type:"string" enum:"ObjectiveStatus"`

	// Specifies the time when the training job ends on training instances. You
	// are billed for the time interval between the value of TrainingStartTime and
	// this time. For successful jobs and stopped jobs, this is the time after model
	// artifacts are uploaded. For failed jobs, this is the time when SageMaker
	// detects a job failure.
	TrainingEndTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the training job.
	//
	// TrainingJobArn is a required field
	TrainingJobArn *string `type:"string" required:"true"`

	// The training job definition name.
	TrainingJobDefinitionName *string `min:"1" type:"string"`

	// The name of the training job.
	//
	// TrainingJobName is a required field
	TrainingJobName *string `min:"1" type:"string" required:"true"`

	// The status of the training job.
	//
	// TrainingJobStatus is a required field
	TrainingJobStatus *string `type:"string" required:"true" enum:"TrainingJobStatus"`

	// The date and time that the training job started.
	TrainingStartTime *time.Time `type:"timestamp"`

	// A list of the hyperparameters for which you specified ranges to search.
	//
	// TunedHyperParameters is a required field
	TunedHyperParameters map[string]*string `type:"map" required:"true"`

	// The HyperParameter tuning job that launched the training job.
	TuningJobName *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterTrainingJobSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterTrainingJobSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *HyperParameterTrainingJobSummary) SetCreationTime(v time.Time) *HyperParameterTrainingJobSummary {
	s.CreationTime = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *HyperParameterTrainingJobSummary) SetFailureReason(v string) *HyperParameterTrainingJobSummary {
	s.FailureReason = &v
	return s
}

// SetFinalHyperParameterTuningJobObjectiveMetric sets the FinalHyperParameterTuningJobObjectiveMetric field's value.
func (s *HyperParameterTrainingJobSummary) SetFinalHyperParameterTuningJobObjectiveMetric(v *FinalHyperParameterTuningJobObjectiveMetric) *HyperParameterTrainingJobSummary {
	s.FinalHyperParameterTuningJobObjectiveMetric = v
	return s
}

// SetObjectiveStatus sets the ObjectiveStatus field's value.
func (s *HyperParameterTrainingJobSummary) SetObjectiveStatus(v string) *HyperParameterTrainingJobSummary {
	s.ObjectiveStatus = &v
	return s
}

// SetTrainingEndTime sets the TrainingEndTime field's value.
func (s *HyperParameterTrainingJobSummary) SetTrainingEndTime(v time.Time) *HyperParameterTrainingJobSummary {
	s.TrainingEndTime = &v
	return s
}

// SetTrainingJobArn sets the TrainingJobArn field's value.
func (s *HyperParameterTrainingJobSummary) SetTrainingJobArn(v string) *HyperParameterTrainingJobSummary {
	s.TrainingJobArn = &v
	return s
}

// SetTrainingJobDefinitionName sets the TrainingJobDefinitionName field's value.
func (s *HyperParameterTrainingJobSummary) SetTrainingJobDefinitionName(v string) *HyperParameterTrainingJobSummary {
	s.TrainingJobDefinitionName = &v
	return s
}

// SetTrainingJobName sets the TrainingJobName field's value.
func (s *HyperParameterTrainingJobSummary) SetTrainingJobName(v string) *HyperParameterTrainingJobSummary {
	s.TrainingJobName = &v
	return s
}

// SetTrainingJobStatus sets the TrainingJobStatus field's value.
func (s *HyperParameterTrainingJobSummary) SetTrainingJobStatus(v string) *HyperParameterTrainingJobSummary {
	s.TrainingJobStatus = &v
	return s
}

// SetTrainingStartTime sets the TrainingStartTime field's value.
func (s *HyperParameterTrainingJobSummary) SetTrainingStartTime(v time.Time) *HyperParameterTrainingJobSummary {
	s.TrainingStartTime = &v
	return s
}

// SetTunedHyperParameters sets the TunedHyperParameters field's value.
func (s *HyperParameterTrainingJobSummary) SetTunedHyperParameters(v map[string]*string) *HyperParameterTrainingJobSummary {
	s.TunedHyperParameters = v
	return s
}

// SetTuningJobName sets the TuningJobName field's value.
func (s *HyperParameterTrainingJobSummary) SetTuningJobName(v string) *HyperParameterTrainingJobSummary {
	s.TuningJobName = &v
	return s
}

// The configuration for hyperparameter tuning resources for use in training
// jobs launched by the tuning job. These resources include compute instances
// and storage volumes. Specify one or more compute instance configurations
// and allocation strategies to select resources (optional).
type HyperParameterTuningInstanceConfig struct {
	_ struct{} `type:"structure"`

	// The number of instances of the type specified by InstanceType. Choose an
	// instance count larger than 1 for distributed training algorithms. See Step
	// 2: Launch a SageMaker Distributed Training Job Using the SageMaker Python
	// SDK (https://docs.aws.amazon.com/sagemaker/latest/dg/data-parallel-use-api.html)
	// for more information.
	//
	// InstanceCount is a required field
	InstanceCount *int64 `type:"integer" required:"true"`

	// The instance type used for processing of hyperparameter optimization jobs.
	// Choose from general purpose (no GPUs) instance types: ml.m5.xlarge, ml.m5.2xlarge,
	// and ml.m5.4xlarge or compute optimized (no GPUs) instance types: ml.c5.xlarge
	// and ml.c5.2xlarge. For more information about instance types, see instance
	// type descriptions (https://docs.aws.amazon.com/sagemaker/latest/dg/notebooks-available-instance-types.html).
	//
	// InstanceType is a required field
	InstanceType *string `type:"string" required:"true" enum:"TrainingInstanceType"`

	// The volume size in GB of the data to be processed for hyperparameter optimization
	// (optional).
	//
	// VolumeSizeInGB is a required field
	VolumeSizeInGB *int64 `min:"1" type:"integer" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterTuningInstanceConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterTuningInstanceConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *HyperParameterTuningInstanceConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "HyperParameterTuningInstanceConfig"}
	if s.InstanceCount == nil {
		invalidParams.Add(request.NewErrParamRequired("InstanceCount"))
	}
	if s.InstanceType == nil {
		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
	}
	if s.VolumeSizeInGB == nil {
		invalidParams.Add(request.NewErrParamRequired("VolumeSizeInGB"))
	}
	if s.VolumeSizeInGB != nil && *s.VolumeSizeInGB < 1 {
		invalidParams.Add(request.NewErrParamMinValue("VolumeSizeInGB", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetInstanceCount sets the InstanceCount field's value.
func (s *HyperParameterTuningInstanceConfig) SetInstanceCount(v int64) *HyperParameterTuningInstanceConfig {
	s.InstanceCount = &v
	return s
}

// SetInstanceType sets the InstanceType field's value.
func (s *HyperParameterTuningInstanceConfig) SetInstanceType(v string) *HyperParameterTuningInstanceConfig {
	s.InstanceType = &v
	return s
}

// SetVolumeSizeInGB sets the VolumeSizeInGB field's value.
func (s *HyperParameterTuningInstanceConfig) SetVolumeSizeInGB(v int64) *HyperParameterTuningInstanceConfig {
	s.VolumeSizeInGB = &v
	return s
}

// A structure that contains runtime information about both current and completed
// hyperparameter tuning jobs.
type HyperParameterTuningJobCompletionDetails struct {
	_ struct{} `type:"structure"`

	// The time in timestamp format that AMT detected model convergence, as defined
	// by a lack of significant improvement over time based on criteria developed
	// over a wide range of diverse benchmarking tests.
	ConvergenceDetectedTime *time.Time `type:"timestamp"`

	// The number of training jobs launched by a tuning job that are not improving
	// (1% or less) as measured by model performance evaluated against an objective
	// function.
	NumberOfTrainingJobsObjectiveNotImproving *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterTuningJobCompletionDetails) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterTuningJobCompletionDetails) GoString() string {
	return s.String()
}

// SetConvergenceDetectedTime sets the ConvergenceDetectedTime field's value.
func (s *HyperParameterTuningJobCompletionDetails) SetConvergenceDetectedTime(v time.Time) *HyperParameterTuningJobCompletionDetails {
	s.ConvergenceDetectedTime = &v
	return s
}

// SetNumberOfTrainingJobsObjectiveNotImproving sets the NumberOfTrainingJobsObjectiveNotImproving field's value.
func (s *HyperParameterTuningJobCompletionDetails) SetNumberOfTrainingJobsObjectiveNotImproving(v int64) *HyperParameterTuningJobCompletionDetails {
	s.NumberOfTrainingJobsObjectiveNotImproving = &v
	return s
}

// Configures a hyperparameter tuning job.
type HyperParameterTuningJobConfig struct {
	_ struct{} `type:"structure"`

	// The HyperParameterTuningJobObjective (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobObjective.html)
	// specifies the objective metric used to evaluate the performance of training
	// jobs launched by this tuning job.
	HyperParameterTuningJobObjective *HyperParameterTuningJobObjective `type:"structure"`

	// The ParameterRanges (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ParameterRanges.html)
	// object that specifies the ranges of hyperparameters that this tuning job
	// searches over to find the optimal configuration for the highest model performance
	// against your chosen objective metric.
	ParameterRanges *ParameterRanges `type:"structure"`

	// A value used to initialize a pseudo-random number generator. Setting a random
	// seed and using the same seed later for the same tuning job will allow hyperparameter
	// optimization to find more a consistent hyperparameter configuration between
	// the two runs.
	RandomSeed *int64 `type:"integer"`

	// The ResourceLimits (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html)
	// object that specifies the maximum number of training and parallel training
	// jobs that can be used for this hyperparameter tuning job.
	//
	// ResourceLimits is a required field
	ResourceLimits *ResourceLimits `type:"structure" required:"true"`

	// Specifies how hyperparameter tuning chooses the combinations of hyperparameter
	// values to use for the training job it launches. For information about search
	// strategies, see How Hyperparameter Tuning Works (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-how-it-works.html).
	//
	// Strategy is a required field
	Strategy *string `type:"string" required:"true" enum:"HyperParameterTuningJobStrategyType"`

	// The configuration for the Hyperband optimization strategy. This parameter
	// should be provided only if Hyperband is selected as the strategy for HyperParameterTuningJobConfig.
	StrategyConfig *HyperParameterTuningJobStrategyConfig `type:"structure"`

	// Specifies whether to use early stopping for training jobs launched by the
	// hyperparameter tuning job. Because the Hyperband strategy has its own advanced
	// internal early stopping mechanism, TrainingJobEarlyStoppingType must be OFF
	// to use Hyperband. This parameter can take on one of the following values
	// (the default value is OFF):
	//
	// OFF
	//
	// Training jobs launched by the hyperparameter tuning job do not use early
	// stopping.
	//
	// AUTO
	//
	// SageMaker stops training jobs launched by the hyperparameter tuning job when
	// they are unlikely to perform better than previously completed training jobs.
	// For more information, see Stop Training Jobs Early (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-early-stopping.html).
	TrainingJobEarlyStoppingType *string `type:"string" enum:"TrainingJobEarlyStoppingType"`

	// The tuning job's completion criteria.
	TuningJobCompletionCriteria *TuningJobCompletionCriteria `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterTuningJobConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterTuningJobConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *HyperParameterTuningJobConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "HyperParameterTuningJobConfig"}
	if s.ResourceLimits == nil {
		invalidParams.Add(request.NewErrParamRequired("ResourceLimits"))
	}
	if s.Strategy == nil {
		invalidParams.Add(request.NewErrParamRequired("Strategy"))
	}
	if s.HyperParameterTuningJobObjective != nil {
		if err := s.HyperParameterTuningJobObjective.Validate(); err != nil {
			invalidParams.AddNested("HyperParameterTuningJobObjective", err.(request.ErrInvalidParams))
		}
	}
	if s.ParameterRanges != nil {
		if err := s.ParameterRanges.Validate(); err != nil {
			invalidParams.AddNested("ParameterRanges", err.(request.ErrInvalidParams))
		}
	}
	if s.ResourceLimits != nil {
		if err := s.ResourceLimits.Validate(); err != nil {
			invalidParams.AddNested("ResourceLimits", err.(request.ErrInvalidParams))
		}
	}
	if s.StrategyConfig != nil {
		if err := s.StrategyConfig.Validate(); err != nil {
			invalidParams.AddNested("StrategyConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.TuningJobCompletionCriteria != nil {
		if err := s.TuningJobCompletionCriteria.Validate(); err != nil {
			invalidParams.AddNested("TuningJobCompletionCriteria", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetHyperParameterTuningJobObjective sets the HyperParameterTuningJobObjective field's value.
func (s *HyperParameterTuningJobConfig) SetHyperParameterTuningJobObjective(v *HyperParameterTuningJobObjective) *HyperParameterTuningJobConfig {
	s.HyperParameterTuningJobObjective = v
	return s
}

// SetParameterRanges sets the ParameterRanges field's value.
func (s *HyperParameterTuningJobConfig) SetParameterRanges(v *ParameterRanges) *HyperParameterTuningJobConfig {
	s.ParameterRanges = v
	return s
}

// SetRandomSeed sets the RandomSeed field's value.
func (s *HyperParameterTuningJobConfig) SetRandomSeed(v int64) *HyperParameterTuningJobConfig {
	s.RandomSeed = &v
	return s
}

// SetResourceLimits sets the ResourceLimits field's value.
func (s *HyperParameterTuningJobConfig) SetResourceLimits(v *ResourceLimits) *HyperParameterTuningJobConfig {
	s.ResourceLimits = v
	return s
}

// SetStrategy sets the Strategy field's value.
func (s *HyperParameterTuningJobConfig) SetStrategy(v string) *HyperParameterTuningJobConfig {
	s.Strategy = &v
	return s
}

// SetStrategyConfig sets the StrategyConfig field's value.
func (s *HyperParameterTuningJobConfig) SetStrategyConfig(v *HyperParameterTuningJobStrategyConfig) *HyperParameterTuningJobConfig {
	s.StrategyConfig = v
	return s
}

// SetTrainingJobEarlyStoppingType sets the TrainingJobEarlyStoppingType field's value.
func (s *HyperParameterTuningJobConfig) SetTrainingJobEarlyStoppingType(v string) *HyperParameterTuningJobConfig {
	s.TrainingJobEarlyStoppingType = &v
	return s
}

// SetTuningJobCompletionCriteria sets the TuningJobCompletionCriteria field's value.
func (s *HyperParameterTuningJobConfig) SetTuningJobCompletionCriteria(v *TuningJobCompletionCriteria) *HyperParameterTuningJobConfig {
	s.TuningJobCompletionCriteria = v
	return s
}

// The total resources consumed by your hyperparameter tuning job.
type HyperParameterTuningJobConsumedResources struct {
	_ struct{} `type:"structure"`

	// The wall clock runtime in seconds used by your hyperparameter tuning job.
	RuntimeInSeconds *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterTuningJobConsumedResources) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterTuningJobConsumedResources) GoString() string {
	return s.String()
}

// SetRuntimeInSeconds sets the RuntimeInSeconds field's value.
func (s *HyperParameterTuningJobConsumedResources) SetRuntimeInSeconds(v int64) *HyperParameterTuningJobConsumedResources {
	s.RuntimeInSeconds = &v
	return s
}

// Defines the objective metric for a hyperparameter tuning job. Hyperparameter
// tuning uses the value of this metric to evaluate the training jobs it launches,
// and returns the training job that results in either the highest or lowest
// value for this metric, depending on the value you specify for the Type parameter.
// If you want to define a custom objective metric, see Define metrics and environment
// variables (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics-variables.html).
type HyperParameterTuningJobObjective struct {
	_ struct{} `type:"structure"`

	// The name of the metric to use for the objective metric.
	//
	// MetricName is a required field
	MetricName *string `min:"1" type:"string" required:"true"`

	// Whether to minimize or maximize the objective metric.
	//
	// Type is a required field
	Type *string `type:"string" required:"true" enum:"HyperParameterTuningJobObjectiveType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterTuningJobObjective) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterTuningJobObjective) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *HyperParameterTuningJobObjective) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "HyperParameterTuningJobObjective"}
	if s.MetricName == nil {
		invalidParams.Add(request.NewErrParamRequired("MetricName"))
	}
	if s.MetricName != nil && len(*s.MetricName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
	}
	if s.Type == nil {
		invalidParams.Add(request.NewErrParamRequired("Type"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMetricName sets the MetricName field's value.
func (s *HyperParameterTuningJobObjective) SetMetricName(v string) *HyperParameterTuningJobObjective {
	s.MetricName = &v
	return s
}

// SetType sets the Type field's value.
func (s *HyperParameterTuningJobObjective) SetType(v string) *HyperParameterTuningJobObjective {
	s.Type = &v
	return s
}

// An entity returned by the SearchRecord (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SearchRecord.html)
// API containing the properties of a hyperparameter tuning job.
type HyperParameterTuningJobSearchEntity struct {
	_ struct{} `type:"structure"`

	// The container for the summary information about a training job.
	BestTrainingJob *HyperParameterTrainingJobSummary `type:"structure"`

	// The total amount of resources consumed by a hyperparameter tuning job.
	ConsumedResources *HyperParameterTuningJobConsumedResources `type:"structure"`

	// The time that a hyperparameter tuning job was created.
	CreationTime *time.Time `type:"timestamp"`

	// The error that was created when a hyperparameter tuning job failed.
	FailureReason *string `type:"string"`

	// The time that a hyperparameter tuning job ended.
	HyperParameterTuningEndTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of a hyperparameter tuning job.
	HyperParameterTuningJobArn *string `type:"string"`

	// Configures a hyperparameter tuning job.
	HyperParameterTuningJobConfig *HyperParameterTuningJobConfig `type:"structure"`

	// The name of a hyperparameter tuning job.
	HyperParameterTuningJobName *string `min:"1" type:"string"`

	// The status of a hyperparameter tuning job.
	HyperParameterTuningJobStatus *string `type:"string" enum:"HyperParameterTuningJobStatus"`

	// The time that a hyperparameter tuning job was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// Specifies the number of training jobs that this hyperparameter tuning job
	// launched, categorized by the status of their objective metric. The objective
	// metric status shows whether the final objective metric for the training job
	// has been evaluated by the tuning job and used in the hyperparameter tuning
	// process.
	ObjectiveStatusCounters *ObjectiveStatusCounters `type:"structure"`

	// The container for the summary information about a training job.
	OverallBestTrainingJob *HyperParameterTrainingJobSummary `type:"structure"`

	// The tags associated with a hyperparameter tuning job. For more information
	// see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
	Tags []*Tag `type:"list"`

	// Defines the training jobs launched by a hyperparameter tuning job.
	TrainingJobDefinition *HyperParameterTrainingJobDefinition `type:"structure"`

	// The job definitions included in a hyperparameter tuning job.
	TrainingJobDefinitions []*HyperParameterTrainingJobDefinition `min:"1" type:"list"`

	// The numbers of training jobs launched by a hyperparameter tuning job, categorized
	// by status.
	TrainingJobStatusCounters *TrainingJobStatusCounters `type:"structure"`

	// Information about either a current or completed hyperparameter tuning job.
	TuningJobCompletionDetails *HyperParameterTuningJobCompletionDetails `type:"structure"`

	// Specifies the configuration for a hyperparameter tuning job that uses one
	// or more previous hyperparameter tuning jobs as a starting point. The results
	// of previous tuning jobs are used to inform which combinations of hyperparameters
	// to search over in the new tuning job.
	//
	// All training jobs launched by the new hyperparameter tuning job are evaluated
	// by using the objective metric, and the training job that performs the best
	// is compared to the best training jobs from the parent tuning jobs. From these,
	// the training job that performs the best as measured by the objective metric
	// is returned as the overall best training job.
	//
	// All training jobs launched by parent hyperparameter tuning jobs and the new
	// hyperparameter tuning jobs count against the limit of training jobs for the
	// tuning job.
	WarmStartConfig *HyperParameterTuningJobWarmStartConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterTuningJobSearchEntity) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterTuningJobSearchEntity) GoString() string {
	return s.String()
}

// SetBestTrainingJob sets the BestTrainingJob field's value.
func (s *HyperParameterTuningJobSearchEntity) SetBestTrainingJob(v *HyperParameterTrainingJobSummary) *HyperParameterTuningJobSearchEntity {
	s.BestTrainingJob = v
	return s
}

// SetConsumedResources sets the ConsumedResources field's value.
func (s *HyperParameterTuningJobSearchEntity) SetConsumedResources(v *HyperParameterTuningJobConsumedResources) *HyperParameterTuningJobSearchEntity {
	s.ConsumedResources = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *HyperParameterTuningJobSearchEntity) SetCreationTime(v time.Time) *HyperParameterTuningJobSearchEntity {
	s.CreationTime = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *HyperParameterTuningJobSearchEntity) SetFailureReason(v string) *HyperParameterTuningJobSearchEntity {
	s.FailureReason = &v
	return s
}

// SetHyperParameterTuningEndTime sets the HyperParameterTuningEndTime field's value.
func (s *HyperParameterTuningJobSearchEntity) SetHyperParameterTuningEndTime(v time.Time) *HyperParameterTuningJobSearchEntity {
	s.HyperParameterTuningEndTime = &v
	return s
}

// SetHyperParameterTuningJobArn sets the HyperParameterTuningJobArn field's value.
func (s *HyperParameterTuningJobSearchEntity) SetHyperParameterTuningJobArn(v string) *HyperParameterTuningJobSearchEntity {
	s.HyperParameterTuningJobArn = &v
	return s
}

// SetHyperParameterTuningJobConfig sets the HyperParameterTuningJobConfig field's value.
func (s *HyperParameterTuningJobSearchEntity) SetHyperParameterTuningJobConfig(v *HyperParameterTuningJobConfig) *HyperParameterTuningJobSearchEntity {
	s.HyperParameterTuningJobConfig = v
	return s
}

// SetHyperParameterTuningJobName sets the HyperParameterTuningJobName field's value.
func (s *HyperParameterTuningJobSearchEntity) SetHyperParameterTuningJobName(v string) *HyperParameterTuningJobSearchEntity {
	s.HyperParameterTuningJobName = &v
	return s
}

// SetHyperParameterTuningJobStatus sets the HyperParameterTuningJobStatus field's value.
func (s *HyperParameterTuningJobSearchEntity) SetHyperParameterTuningJobStatus(v string) *HyperParameterTuningJobSearchEntity {
	s.HyperParameterTuningJobStatus = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *HyperParameterTuningJobSearchEntity) SetLastModifiedTime(v time.Time) *HyperParameterTuningJobSearchEntity {
	s.LastModifiedTime = &v
	return s
}

// SetObjectiveStatusCounters sets the ObjectiveStatusCounters field's value.
func (s *HyperParameterTuningJobSearchEntity) SetObjectiveStatusCounters(v *ObjectiveStatusCounters) *HyperParameterTuningJobSearchEntity {
	s.ObjectiveStatusCounters = v
	return s
}

// SetOverallBestTrainingJob sets the OverallBestTrainingJob field's value.
func (s *HyperParameterTuningJobSearchEntity) SetOverallBestTrainingJob(v *HyperParameterTrainingJobSummary) *HyperParameterTuningJobSearchEntity {
	s.OverallBestTrainingJob = v
	return s
}

// SetTags sets the Tags field's value.
func (s *HyperParameterTuningJobSearchEntity) SetTags(v []*Tag) *HyperParameterTuningJobSearchEntity {
	s.Tags = v
	return s
}

// SetTrainingJobDefinition sets the TrainingJobDefinition field's value.
func (s *HyperParameterTuningJobSearchEntity) SetTrainingJobDefinition(v *HyperParameterTrainingJobDefinition) *HyperParameterTuningJobSearchEntity {
	s.TrainingJobDefinition = v
	return s
}

// SetTrainingJobDefinitions sets the TrainingJobDefinitions field's value.
func (s *HyperParameterTuningJobSearchEntity) SetTrainingJobDefinitions(v []*HyperParameterTrainingJobDefinition) *HyperParameterTuningJobSearchEntity {
	s.TrainingJobDefinitions = v
	return s
}

// SetTrainingJobStatusCounters sets the TrainingJobStatusCounters field's value.
func (s *HyperParameterTuningJobSearchEntity) SetTrainingJobStatusCounters(v *TrainingJobStatusCounters) *HyperParameterTuningJobSearchEntity {
	s.TrainingJobStatusCounters = v
	return s
}

// SetTuningJobCompletionDetails sets the TuningJobCompletionDetails field's value.
func (s *HyperParameterTuningJobSearchEntity) SetTuningJobCompletionDetails(v *HyperParameterTuningJobCompletionDetails) *HyperParameterTuningJobSearchEntity {
	s.TuningJobCompletionDetails = v
	return s
}

// SetWarmStartConfig sets the WarmStartConfig field's value.
func (s *HyperParameterTuningJobSearchEntity) SetWarmStartConfig(v *HyperParameterTuningJobWarmStartConfig) *HyperParameterTuningJobSearchEntity {
	s.WarmStartConfig = v
	return s
}

// The configuration for a training job launched by a hyperparameter tuning
// job. Choose Bayesian for Bayesian optimization, and Random for random search
// optimization. For more advanced use cases, use Hyperband, which evaluates
// objective metrics for training jobs after every epoch. For more information
// about strategies, see How Hyperparameter Tuning Works (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-how-it-works.html).
type HyperParameterTuningJobStrategyConfig struct {
	_ struct{} `type:"structure"`

	// The configuration for the object that specifies the Hyperband strategy. This
	// parameter is only supported for the Hyperband selection for Strategy within
	// the HyperParameterTuningJobConfig API.
	HyperbandStrategyConfig *HyperbandStrategyConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterTuningJobStrategyConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterTuningJobStrategyConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *HyperParameterTuningJobStrategyConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "HyperParameterTuningJobStrategyConfig"}
	if s.HyperbandStrategyConfig != nil {
		if err := s.HyperbandStrategyConfig.Validate(); err != nil {
			invalidParams.AddNested("HyperbandStrategyConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetHyperbandStrategyConfig sets the HyperbandStrategyConfig field's value.
func (s *HyperParameterTuningJobStrategyConfig) SetHyperbandStrategyConfig(v *HyperbandStrategyConfig) *HyperParameterTuningJobStrategyConfig {
	s.HyperbandStrategyConfig = v
	return s
}

// Provides summary information about a hyperparameter tuning job.
type HyperParameterTuningJobSummary struct {
	_ struct{} `type:"structure"`

	// The date and time that the tuning job was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The date and time that the tuning job ended.
	HyperParameterTuningEndTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the tuning job.
	//
	// HyperParameterTuningJobArn is a required field
	HyperParameterTuningJobArn *string `type:"string" required:"true"`

	// The name of the tuning job.
	//
	// HyperParameterTuningJobName is a required field
	HyperParameterTuningJobName *string `min:"1" type:"string" required:"true"`

	// The status of the tuning job.
	//
	// HyperParameterTuningJobStatus is a required field
	HyperParameterTuningJobStatus *string `type:"string" required:"true" enum:"HyperParameterTuningJobStatus"`

	// The date and time that the tuning job was modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The ObjectiveStatusCounters (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ObjectiveStatusCounters.html)
	// object that specifies the numbers of training jobs, categorized by objective
	// metric status, that this tuning job launched.
	//
	// ObjectiveStatusCounters is a required field
	ObjectiveStatusCounters *ObjectiveStatusCounters `type:"structure" required:"true"`

	// The ResourceLimits (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html)
	// object that specifies the maximum number of training jobs and parallel training
	// jobs allowed for this tuning job.
	ResourceLimits *ResourceLimits `type:"structure"`

	// Specifies the search strategy hyperparameter tuning uses to choose which
	// hyperparameters to evaluate at each iteration.
	//
	// Strategy is a required field
	Strategy *string `type:"string" required:"true" enum:"HyperParameterTuningJobStrategyType"`

	// The TrainingJobStatusCounters (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobStatusCounters.html)
	// object that specifies the numbers of training jobs, categorized by status,
	// that this tuning job launched.
	//
	// TrainingJobStatusCounters is a required field
	TrainingJobStatusCounters *TrainingJobStatusCounters `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterTuningJobSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterTuningJobSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *HyperParameterTuningJobSummary) SetCreationTime(v time.Time) *HyperParameterTuningJobSummary {
	s.CreationTime = &v
	return s
}

// SetHyperParameterTuningEndTime sets the HyperParameterTuningEndTime field's value.
func (s *HyperParameterTuningJobSummary) SetHyperParameterTuningEndTime(v time.Time) *HyperParameterTuningJobSummary {
	s.HyperParameterTuningEndTime = &v
	return s
}

// SetHyperParameterTuningJobArn sets the HyperParameterTuningJobArn field's value.
func (s *HyperParameterTuningJobSummary) SetHyperParameterTuningJobArn(v string) *HyperParameterTuningJobSummary {
	s.HyperParameterTuningJobArn = &v
	return s
}

// SetHyperParameterTuningJobName sets the HyperParameterTuningJobName field's value.
func (s *HyperParameterTuningJobSummary) SetHyperParameterTuningJobName(v string) *HyperParameterTuningJobSummary {
	s.HyperParameterTuningJobName = &v
	return s
}

// SetHyperParameterTuningJobStatus sets the HyperParameterTuningJobStatus field's value.
func (s *HyperParameterTuningJobSummary) SetHyperParameterTuningJobStatus(v string) *HyperParameterTuningJobSummary {
	s.HyperParameterTuningJobStatus = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *HyperParameterTuningJobSummary) SetLastModifiedTime(v time.Time) *HyperParameterTuningJobSummary {
	s.LastModifiedTime = &v
	return s
}

// SetObjectiveStatusCounters sets the ObjectiveStatusCounters field's value.
func (s *HyperParameterTuningJobSummary) SetObjectiveStatusCounters(v *ObjectiveStatusCounters) *HyperParameterTuningJobSummary {
	s.ObjectiveStatusCounters = v
	return s
}

// SetResourceLimits sets the ResourceLimits field's value.
func (s *HyperParameterTuningJobSummary) SetResourceLimits(v *ResourceLimits) *HyperParameterTuningJobSummary {
	s.ResourceLimits = v
	return s
}

// SetStrategy sets the Strategy field's value.
func (s *HyperParameterTuningJobSummary) SetStrategy(v string) *HyperParameterTuningJobSummary {
	s.Strategy = &v
	return s
}

// SetTrainingJobStatusCounters sets the TrainingJobStatusCounters field's value.
func (s *HyperParameterTuningJobSummary) SetTrainingJobStatusCounters(v *TrainingJobStatusCounters) *HyperParameterTuningJobSummary {
	s.TrainingJobStatusCounters = v
	return s
}

// Specifies the configuration for a hyperparameter tuning job that uses one
// or more previous hyperparameter tuning jobs as a starting point. The results
// of previous tuning jobs are used to inform which combinations of hyperparameters
// to search over in the new tuning job.
//
// All training jobs launched by the new hyperparameter tuning job are evaluated
// by using the objective metric, and the training job that performs the best
// is compared to the best training jobs from the parent tuning jobs. From these,
// the training job that performs the best as measured by the objective metric
// is returned as the overall best training job.
//
// All training jobs launched by parent hyperparameter tuning jobs and the new
// hyperparameter tuning jobs count against the limit of training jobs for the
// tuning job.
type HyperParameterTuningJobWarmStartConfig struct {
	_ struct{} `type:"structure"`

	// An array of hyperparameter tuning jobs that are used as the starting point
	// for the new hyperparameter tuning job. For more information about warm starting
	// a hyperparameter tuning job, see Using a Previous Hyperparameter Tuning Job
	// as a Starting Point (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-warm-start.html).
	//
	// Hyperparameter tuning jobs created before October 1, 2018 cannot be used
	// as parent jobs for warm start tuning jobs.
	//
	// ParentHyperParameterTuningJobs is a required field
	ParentHyperParameterTuningJobs []*ParentHyperParameterTuningJob `min:"1" type:"list" required:"true"`

	// Specifies one of the following:
	//
	// IDENTICAL_DATA_AND_ALGORITHM
	//
	// The new hyperparameter tuning job uses the same input data and training image
	// as the parent tuning jobs. You can change the hyperparameter ranges to search
	// and the maximum number of training jobs that the hyperparameter tuning job
	// launches. You cannot use a new version of the training algorithm, unless
	// the changes in the new version do not affect the algorithm itself. For example,
	// changes that improve logging or adding support for a different data format
	// are allowed. You can also change hyperparameters from tunable to static,
	// and from static to tunable, but the total number of static plus tunable hyperparameters
	// must remain the same as it is in all parent jobs. The objective metric for
	// the new tuning job must be the same as for all parent jobs.
	//
	// TRANSFER_LEARNING
	//
	// The new hyperparameter tuning job can include input data, hyperparameter
	// ranges, maximum number of concurrent training jobs, and maximum number of
	// training jobs that are different than those of its parent hyperparameter
	// tuning jobs. The training image can also be a different version from the
	// version used in the parent hyperparameter tuning job. You can also change
	// hyperparameters from tunable to static, and from static to tunable, but the
	// total number of static plus tunable hyperparameters must remain the same
	// as it is in all parent jobs. The objective metric for the new tuning job
	// must be the same as for all parent jobs.
	//
	// WarmStartType is a required field
	WarmStartType *string `type:"string" required:"true" enum:"HyperParameterTuningJobWarmStartType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterTuningJobWarmStartConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterTuningJobWarmStartConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *HyperParameterTuningJobWarmStartConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "HyperParameterTuningJobWarmStartConfig"}
	if s.ParentHyperParameterTuningJobs == nil {
		invalidParams.Add(request.NewErrParamRequired("ParentHyperParameterTuningJobs"))
	}
	if s.ParentHyperParameterTuningJobs != nil && len(s.ParentHyperParameterTuningJobs) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ParentHyperParameterTuningJobs", 1))
	}
	if s.WarmStartType == nil {
		invalidParams.Add(request.NewErrParamRequired("WarmStartType"))
	}
	if s.ParentHyperParameterTuningJobs != nil {
		for i, v := range s.ParentHyperParameterTuningJobs {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ParentHyperParameterTuningJobs", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetParentHyperParameterTuningJobs sets the ParentHyperParameterTuningJobs field's value.
func (s *HyperParameterTuningJobWarmStartConfig) SetParentHyperParameterTuningJobs(v []*ParentHyperParameterTuningJob) *HyperParameterTuningJobWarmStartConfig {
	s.ParentHyperParameterTuningJobs = v
	return s
}

// SetWarmStartType sets the WarmStartType field's value.
func (s *HyperParameterTuningJobWarmStartConfig) SetWarmStartType(v string) *HyperParameterTuningJobWarmStartConfig {
	s.WarmStartType = &v
	return s
}

// The configuration of resources, including compute instances and storage volumes
// for use in training jobs launched by hyperparameter tuning jobs. HyperParameterTuningResourceConfig
// is similar to ResourceConfig, but has the additional InstanceConfigs and
// AllocationStrategy fields to allow for flexible instance management. Specify
// one or more instance types, count, and the allocation strategy for instance
// selection.
//
// HyperParameterTuningResourceConfig supports the capabilities of ResourceConfig
// with the exception of KeepAlivePeriodInSeconds. Hyperparameter tuning jobs
// use warm pools by default, which reuse clusters between training jobs.
type HyperParameterTuningResourceConfig struct {
	_ struct{} `type:"structure"`

	// The strategy that determines the order of preference for resources specified
	// in InstanceConfigs used in hyperparameter optimization.
	AllocationStrategy *string `type:"string" enum:"HyperParameterTuningAllocationStrategy"`

	// A list containing the configuration(s) for one or more resources for processing
	// hyperparameter jobs. These resources include compute instances and storage
	// volumes to use in model training jobs launched by hyperparameter tuning jobs.
	// The AllocationStrategy controls the order in which multiple configurations
	// provided in InstanceConfigs are used.
	//
	// If you only want to use a single instance configuration inside the HyperParameterTuningResourceConfig
	// API, do not provide a value for InstanceConfigs. Instead, use InstanceType,
	// VolumeSizeInGB and InstanceCount. If you use InstanceConfigs, do not provide
	// values for InstanceType, VolumeSizeInGB or InstanceCount.
	InstanceConfigs []*HyperParameterTuningInstanceConfig `min:"1" type:"list"`

	// The number of compute instances of type InstanceType to use. For distributed
	// training (https://docs.aws.amazon.com/sagemaker/latest/dg/data-parallel-use-api.html),
	// select a value greater than 1.
	InstanceCount *int64 `type:"integer"`

	// The instance type used to run hyperparameter optimization tuning jobs. See
	// descriptions of instance types (https://docs.aws.amazon.com/sagemaker/latest/dg/notebooks-available-instance-types.html)
	// for more information.
	InstanceType *string `type:"string" enum:"TrainingInstanceType"`

	// A key used by Amazon Web Services Key Management Service to encrypt data
	// on the storage volume attached to the compute instances used to run the training
	// job. You can use either of the following formats to specify a key.
	//
	// KMS Key ID:
	//
	// "1234abcd-12ab-34cd-56ef-1234567890ab"
	//
	// Amazon Resource Name (ARN) of a KMS key:
	//
	// "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
	//
	// Some instances use local storage, which use a hardware module to encrypt
	// (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html)
	// storage volumes. If you choose one of these instance types, you cannot request
	// a VolumeKmsKeyId. For a list of instance types that use local storage, see
	// instance store volumes (http://aws.amazon.com/releasenotes/host-instance-storage-volumes-table/).
	// For more information about Amazon Web Services Key Management Service, see
	// KMS encryption (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-security-kms-permissions.html)
	// for more information.
	VolumeKmsKeyId *string `type:"string"`

	// The volume size in GB for the storage volume to be used in processing hyperparameter
	// optimization jobs (optional). These volumes store model artifacts, incremental
	// states and optionally, scratch space for training algorithms. Do not provide
	// a value for this parameter if a value for InstanceConfigs is also specified.
	//
	// Some instance types have a fixed total local storage size. If you select
	// one of these instances for training, VolumeSizeInGB cannot be greater than
	// this total size. For a list of instance types with local instance storage
	// and their sizes, see instance store volumes (http://aws.amazon.com/releasenotes/host-instance-storage-volumes-table/).
	//
	// SageMaker supports only the General Purpose SSD (gp2) (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html)
	// storage volume type.
	VolumeSizeInGB *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterTuningResourceConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperParameterTuningResourceConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *HyperParameterTuningResourceConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "HyperParameterTuningResourceConfig"}
	if s.InstanceConfigs != nil && len(s.InstanceConfigs) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("InstanceConfigs", 1))
	}
	if s.InstanceConfigs != nil {
		for i, v := range s.InstanceConfigs {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceConfigs", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAllocationStrategy sets the AllocationStrategy field's value.
func (s *HyperParameterTuningResourceConfig) SetAllocationStrategy(v string) *HyperParameterTuningResourceConfig {
	s.AllocationStrategy = &v
	return s
}

// SetInstanceConfigs sets the InstanceConfigs field's value.
func (s *HyperParameterTuningResourceConfig) SetInstanceConfigs(v []*HyperParameterTuningInstanceConfig) *HyperParameterTuningResourceConfig {
	s.InstanceConfigs = v
	return s
}

// SetInstanceCount sets the InstanceCount field's value.
func (s *HyperParameterTuningResourceConfig) SetInstanceCount(v int64) *HyperParameterTuningResourceConfig {
	s.InstanceCount = &v
	return s
}

// SetInstanceType sets the InstanceType field's value.
func (s *HyperParameterTuningResourceConfig) SetInstanceType(v string) *HyperParameterTuningResourceConfig {
	s.InstanceType = &v
	return s
}

// SetVolumeKmsKeyId sets the VolumeKmsKeyId field's value.
func (s *HyperParameterTuningResourceConfig) SetVolumeKmsKeyId(v string) *HyperParameterTuningResourceConfig {
	s.VolumeKmsKeyId = &v
	return s
}

// SetVolumeSizeInGB sets the VolumeSizeInGB field's value.
func (s *HyperParameterTuningResourceConfig) SetVolumeSizeInGB(v int64) *HyperParameterTuningResourceConfig {
	s.VolumeSizeInGB = &v
	return s
}

// The configuration for Hyperband, a multi-fidelity based hyperparameter tuning
// strategy. Hyperband uses the final and intermediate results of a training
// job to dynamically allocate resources to utilized hyperparameter configurations
// while automatically stopping under-performing configurations. This parameter
// should be provided only if Hyperband is selected as the StrategyConfig under
// the HyperParameterTuningJobConfig API.
type HyperbandStrategyConfig struct {
	_ struct{} `type:"structure"`

	// The maximum number of resources (such as epochs) that can be used by a training
	// job launched by a hyperparameter tuning job. Once a job reaches the MaxResource
	// value, it is stopped. If a value for MaxResource is not provided, and Hyperband
	// is selected as the hyperparameter tuning strategy, HyperbandTrainingJ attempts
	// to infer MaxResource from the following keys (if present) in StaticsHyperParameters
	// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html#sagemaker-Type-HyperParameterTrainingJobDefinition-StaticHyperParameters):
	//
	//    * epochs
	//
	//    * numepochs
	//
	//    * n-epochs
	//
	//    * n_epochs
	//
	//    * num_epochs
	//
	// If HyperbandStrategyConfig is unable to infer a value for MaxResource, it
	// generates a validation error. The maximum value is 20,000 epochs. All metrics
	// that correspond to an objective metric are used to derive early stopping
	// decisions (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-early-stopping.html).
	// For distributive (https://docs.aws.amazon.com/sagemaker/latest/dg/distributed-training.html)
	// training jobs, ensure that duplicate metrics are not printed in the logs
	// across the individual nodes in a training job. If multiple nodes are publishing
	// duplicate or incorrect metrics, training jobs may make an incorrect stopping
	// decision and stop the job prematurely.
	MaxResource *int64 `min:"1" type:"integer"`

	// The minimum number of resources (such as epochs) that can be used by a training
	// job launched by a hyperparameter tuning job. If the value for MinResource
	// has not been reached, the training job is not stopped by Hyperband.
	MinResource *int64 `min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperbandStrategyConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HyperbandStrategyConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *HyperbandStrategyConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "HyperbandStrategyConfig"}
	if s.MaxResource != nil && *s.MaxResource < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResource", 1))
	}
	if s.MinResource != nil && *s.MinResource < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MinResource", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxResource sets the MaxResource field's value.
func (s *HyperbandStrategyConfig) SetMaxResource(v int64) *HyperbandStrategyConfig {
	s.MaxResource = &v
	return s
}

// SetMinResource sets the MinResource field's value.
func (s *HyperbandStrategyConfig) SetMinResource(v int64) *HyperbandStrategyConfig {
	s.MinResource = &v
	return s
}

// The IAM Identity details associated with the user. These details are associated
// with model package groups, model packages and project entities only.
type IamIdentity struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the IAM identity.
	Arn *string `type:"string"`

	// The ID of the principal that assumes the IAM identity.
	PrincipalId *string `type:"string"`

	// The person or application which assumes the IAM identity.
	SourceIdentity *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s IamIdentity) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s IamIdentity) GoString() string {
	return s.String()
}

// SetArn sets the Arn field's value.
func (s *IamIdentity) SetArn(v string) *IamIdentity {
	s.Arn = &v
	return s
}

// SetPrincipalId sets the PrincipalId field's value.
func (s *IamIdentity) SetPrincipalId(v string) *IamIdentity {
	s.PrincipalId = &v
	return s
}

// SetSourceIdentity sets the SourceIdentity field's value.
func (s *IamIdentity) SetSourceIdentity(v string) *IamIdentity {
	s.SourceIdentity = &v
	return s
}

// The Amazon SageMaker Canvas application setting where you configure OAuth
// for connecting to an external data source, such as Snowflake.
type IdentityProviderOAuthSetting struct {
	_ struct{} `type:"structure"`

	// The name of the data source that you're connecting to. Canvas currently supports
	// OAuth for Snowflake and Salesforce Data Cloud.
	DataSourceName *string `type:"string" enum:"DataSourceName"`

	// The ARN of an Amazon Web Services Secrets Manager secret that stores the
	// credentials from your identity provider, such as the client ID and secret,
	// authorization URL, and token URL.
	SecretArn *string `min:"1" type:"string"`

	// Describes whether OAuth for a data source is enabled or disabled in the Canvas
	// application.
	Status *string `type:"string" enum:"FeatureStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s IdentityProviderOAuthSetting) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s IdentityProviderOAuthSetting) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *IdentityProviderOAuthSetting) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "IdentityProviderOAuthSetting"}
	if s.SecretArn != nil && len(*s.SecretArn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SecretArn", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDataSourceName sets the DataSourceName field's value.
func (s *IdentityProviderOAuthSetting) SetDataSourceName(v string) *IdentityProviderOAuthSetting {
	s.DataSourceName = &v
	return s
}

// SetSecretArn sets the SecretArn field's value.
func (s *IdentityProviderOAuthSetting) SetSecretArn(v string) *IdentityProviderOAuthSetting {
	s.SecretArn = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *IdentityProviderOAuthSetting) SetStatus(v string) *IdentityProviderOAuthSetting {
	s.Status = &v
	return s
}

// A SageMaker image. A SageMaker image represents a set of container images
// that are derived from a common base container image. Each of these container
// images is represented by a SageMaker ImageVersion.
type Image struct {
	_ struct{} `type:"structure"`

	// When the image was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The description of the image.
	Description *string `min:"1" type:"string"`

	// The name of the image as displayed.
	DisplayName *string `min:"1" type:"string"`

	// When a create, update, or delete operation fails, the reason for the failure.
	FailureReason *string `type:"string"`

	// The ARN of the image.
	//
	// ImageArn is a required field
	ImageArn *string `type:"string" required:"true"`

	// The name of the image.
	//
	// ImageName is a required field
	ImageName *string `min:"1" type:"string" required:"true"`

	// The status of the image.
	//
	// ImageStatus is a required field
	ImageStatus *string `type:"string" required:"true" enum:"ImageStatus"`

	// When the image was last modified.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Image) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Image) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *Image) SetCreationTime(v time.Time) *Image {
	s.CreationTime = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *Image) SetDescription(v string) *Image {
	s.Description = &v
	return s
}

// SetDisplayName sets the DisplayName field's value.
func (s *Image) SetDisplayName(v string) *Image {
	s.DisplayName = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *Image) SetFailureReason(v string) *Image {
	s.FailureReason = &v
	return s
}

// SetImageArn sets the ImageArn field's value.
func (s *Image) SetImageArn(v string) *Image {
	s.ImageArn = &v
	return s
}

// SetImageName sets the ImageName field's value.
func (s *Image) SetImageName(v string) *Image {
	s.ImageName = &v
	return s
}

// SetImageStatus sets the ImageStatus field's value.
func (s *Image) SetImageStatus(v string) *Image {
	s.ImageStatus = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *Image) SetLastModifiedTime(v time.Time) *Image {
	s.LastModifiedTime = &v
	return s
}

// The collection of settings used by an AutoML job V2 for the image classification
// problem type.
type ImageClassificationJobConfig struct {
	_ struct{} `type:"structure"`

	// How long a job is allowed to run, or how many candidates a job is allowed
	// to generate.
	CompletionCriteria *AutoMLJobCompletionCriteria `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ImageClassificationJobConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ImageClassificationJobConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ImageClassificationJobConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ImageClassificationJobConfig"}
	if s.CompletionCriteria != nil {
		if err := s.CompletionCriteria.Validate(); err != nil {
			invalidParams.AddNested("CompletionCriteria", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCompletionCriteria sets the CompletionCriteria field's value.
func (s *ImageClassificationJobConfig) SetCompletionCriteria(v *AutoMLJobCompletionCriteria) *ImageClassificationJobConfig {
	s.CompletionCriteria = v
	return s
}

// Specifies whether the model container is in Amazon ECR or a private Docker
// registry accessible from your Amazon Virtual Private Cloud (VPC).
type ImageConfig struct {
	_ struct{} `type:"structure"`

	// Set this to one of the following values:
	//
	//    * Platform - The model image is hosted in Amazon ECR.
	//
	//    * Vpc - The model image is hosted in a private Docker registry in your
	//    VPC.
	//
	// RepositoryAccessMode is a required field
	RepositoryAccessMode *string `type:"string" required:"true" enum:"RepositoryAccessMode"`

	// (Optional) Specifies an authentication configuration for the private docker
	// registry where your model image is hosted. Specify a value for this property
	// only if you specified Vpc as the value for the RepositoryAccessMode field,
	// and the private Docker registry where the model image is hosted requires
	// authentication.
	RepositoryAuthConfig *RepositoryAuthConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ImageConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ImageConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ImageConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ImageConfig"}
	if s.RepositoryAccessMode == nil {
		invalidParams.Add(request.NewErrParamRequired("RepositoryAccessMode"))
	}
	if s.RepositoryAuthConfig != nil {
		if err := s.RepositoryAuthConfig.Validate(); err != nil {
			invalidParams.AddNested("RepositoryAuthConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetRepositoryAccessMode sets the RepositoryAccessMode field's value.
func (s *ImageConfig) SetRepositoryAccessMode(v string) *ImageConfig {
	s.RepositoryAccessMode = &v
	return s
}

// SetRepositoryAuthConfig sets the RepositoryAuthConfig field's value.
func (s *ImageConfig) SetRepositoryAuthConfig(v *RepositoryAuthConfig) *ImageConfig {
	s.RepositoryAuthConfig = v
	return s
}

// A version of a SageMaker Image. A version represents an existing container
// image.
type ImageVersion struct {
	_ struct{} `type:"structure"`

	// When the version was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// When a create or delete operation fails, the reason for the failure.
	FailureReason *string `type:"string"`

	// The ARN of the image the version is based on.
	//
	// ImageArn is a required field
	ImageArn *string `type:"string" required:"true"`

	// The ARN of the version.
	//
	// ImageVersionArn is a required field
	ImageVersionArn *string `type:"string" required:"true"`

	// The status of the version.
	//
	// ImageVersionStatus is a required field
	ImageVersionStatus *string `type:"string" required:"true" enum:"ImageVersionStatus"`

	// When the version was last modified.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`

	// The version number.
	//
	// Version is a required field
	Version *int64 `type:"integer" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ImageVersion) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ImageVersion) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *ImageVersion) SetCreationTime(v time.Time) *ImageVersion {
	s.CreationTime = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *ImageVersion) SetFailureReason(v string) *ImageVersion {
	s.FailureReason = &v
	return s
}

// SetImageArn sets the ImageArn field's value.
func (s *ImageVersion) SetImageArn(v string) *ImageVersion {
	s.ImageArn = &v
	return s
}

// SetImageVersionArn sets the ImageVersionArn field's value.
func (s *ImageVersion) SetImageVersionArn(v string) *ImageVersion {
	s.ImageVersionArn = &v
	return s
}

// SetImageVersionStatus sets the ImageVersionStatus field's value.
func (s *ImageVersion) SetImageVersionStatus(v string) *ImageVersion {
	s.ImageVersionStatus = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *ImageVersion) SetLastModifiedTime(v time.Time) *ImageVersion {
	s.LastModifiedTime = &v
	return s
}

// SetVersion sets the Version field's value.
func (s *ImageVersion) SetVersion(v int64) *ImageVersion {
	s.Version = &v
	return s
}

type ImportHubContentInput struct {
	_ struct{} `type:"structure"`

	// The version of the hub content schema to import.
	//
	// DocumentSchemaVersion is a required field
	DocumentSchemaVersion *string `min:"5" type:"string" required:"true"`

	// A description of the hub content to import.
	HubContentDescription *string `type:"string"`

	// The display name of the hub content to import.
	HubContentDisplayName *string `type:"string"`

	// The hub content document that describes information about the hub content
	// such as type, associated containers, scripts, and more.
	//
	// HubContentDocument is a required field
	HubContentDocument *string `type:"string" required:"true"`

	// A string that provides a description of the hub content. This string can
	// include links, tables, and standard markdown formating.
	HubContentMarkdown *string `type:"string"`

	// The name of the hub content to import.
	//
	// HubContentName is a required field
	HubContentName *string `type:"string" required:"true"`

	// The searchable keywords of the hub content.
	HubContentSearchKeywords []*string `type:"list"`

	// The type of hub content to import.
	//
	// HubContentType is a required field
	HubContentType *string `type:"string" required:"true" enum:"HubContentType"`

	// The version of the hub content to import.
	HubContentVersion *string `min:"5" type:"string"`

	// The name of the hub to import content into.
	//
	// HubName is a required field
	HubName *string `type:"string" required:"true"`

	// Any tags associated with the hub content.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ImportHubContentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ImportHubContentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ImportHubContentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ImportHubContentInput"}
	if s.DocumentSchemaVersion == nil {
		invalidParams.Add(request.NewErrParamRequired("DocumentSchemaVersion"))
	}
	if s.DocumentSchemaVersion != nil && len(*s.DocumentSchemaVersion) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("DocumentSchemaVersion", 5))
	}
	if s.HubContentDocument == nil {
		invalidParams.Add(request.NewErrParamRequired("HubContentDocument"))
	}
	if s.HubContentName == nil {
		invalidParams.Add(request.NewErrParamRequired("HubContentName"))
	}
	if s.HubContentType == nil {
		invalidParams.Add(request.NewErrParamRequired("HubContentType"))
	}
	if s.HubContentVersion != nil && len(*s.HubContentVersion) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("HubContentVersion", 5))
	}
	if s.HubName == nil {
		invalidParams.Add(request.NewErrParamRequired("HubName"))
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDocumentSchemaVersion sets the DocumentSchemaVersion field's value.
func (s *ImportHubContentInput) SetDocumentSchemaVersion(v string) *ImportHubContentInput {
	s.DocumentSchemaVersion = &v
	return s
}

// SetHubContentDescription sets the HubContentDescription field's value.
func (s *ImportHubContentInput) SetHubContentDescription(v string) *ImportHubContentInput {
	s.HubContentDescription = &v
	return s
}

// SetHubContentDisplayName sets the HubContentDisplayName field's value.
func (s *ImportHubContentInput) SetHubContentDisplayName(v string) *ImportHubContentInput {
	s.HubContentDisplayName = &v
	return s
}

// SetHubContentDocument sets the HubContentDocument field's value.
func (s *ImportHubContentInput) SetHubContentDocument(v string) *ImportHubContentInput {
	s.HubContentDocument = &v
	return s
}

// SetHubContentMarkdown sets the HubContentMarkdown field's value.
func (s *ImportHubContentInput) SetHubContentMarkdown(v string) *ImportHubContentInput {
	s.HubContentMarkdown = &v
	return s
}

// SetHubContentName sets the HubContentName field's value.
func (s *ImportHubContentInput) SetHubContentName(v string) *ImportHubContentInput {
	s.HubContentName = &v
	return s
}

// SetHubContentSearchKeywords sets the HubContentSearchKeywords field's value.
func (s *ImportHubContentInput) SetHubContentSearchKeywords(v []*string) *ImportHubContentInput {
	s.HubContentSearchKeywords = v
	return s
}

// SetHubContentType sets the HubContentType field's value.
func (s *ImportHubContentInput) SetHubContentType(v string) *ImportHubContentInput {
	s.HubContentType = &v
	return s
}

// SetHubContentVersion sets the HubContentVersion field's value.
func (s *ImportHubContentInput) SetHubContentVersion(v string) *ImportHubContentInput {
	s.HubContentVersion = &v
	return s
}

// SetHubName sets the HubName field's value.
func (s *ImportHubContentInput) SetHubName(v string) *ImportHubContentInput {
	s.HubName = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *ImportHubContentInput) SetTags(v []*Tag) *ImportHubContentInput {
	s.Tags = v
	return s
}

type ImportHubContentOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the hub that the content was imported into.
	//
	// HubArn is a required field
	HubArn *string `type:"string" required:"true"`

	// The ARN of the hub content that was imported.
	//
	// HubContentArn is a required field
	HubContentArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ImportHubContentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ImportHubContentOutput) GoString() string {
	return s.String()
}

// SetHubArn sets the HubArn field's value.
func (s *ImportHubContentOutput) SetHubArn(v string) *ImportHubContentOutput {
	s.HubArn = &v
	return s
}

// SetHubContentArn sets the HubContentArn field's value.
func (s *ImportHubContentOutput) SetHubContentArn(v string) *ImportHubContentOutput {
	s.HubContentArn = &v
	return s
}

// Defines the compute resources to allocate to run a model that you assign
// to an inference component. These resources include CPU cores, accelerators,
// and memory.
type InferenceComponentComputeResourceRequirements struct {
	_ struct{} `type:"structure"`

	// The maximum MB of memory to allocate to run a model that you assign to an
	// inference component.
	MaxMemoryRequiredInMb *int64 `min:"128" type:"integer"`

	// The minimum MB of memory to allocate to run a model that you assign to an
	// inference component.
	//
	// MinMemoryRequiredInMb is a required field
	MinMemoryRequiredInMb *int64 `min:"128" type:"integer" required:"true"`

	// The number of accelerators to allocate to run a model that you assign to
	// an inference component. Accelerators include GPUs and Amazon Web Services
	// Inferentia.
	NumberOfAcceleratorDevicesRequired *float64 `min:"1" type:"float"`

	// The number of CPU cores to allocate to run a model that you assign to an
	// inference component.
	NumberOfCpuCoresRequired *float64 `min:"0.25" type:"float"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceComponentComputeResourceRequirements) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceComponentComputeResourceRequirements) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *InferenceComponentComputeResourceRequirements) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "InferenceComponentComputeResourceRequirements"}
	if s.MaxMemoryRequiredInMb != nil && *s.MaxMemoryRequiredInMb < 128 {
		invalidParams.Add(request.NewErrParamMinValue("MaxMemoryRequiredInMb", 128))
	}
	if s.MinMemoryRequiredInMb == nil {
		invalidParams.Add(request.NewErrParamRequired("MinMemoryRequiredInMb"))
	}
	if s.MinMemoryRequiredInMb != nil && *s.MinMemoryRequiredInMb < 128 {
		invalidParams.Add(request.NewErrParamMinValue("MinMemoryRequiredInMb", 128))
	}
	if s.NumberOfAcceleratorDevicesRequired != nil && *s.NumberOfAcceleratorDevicesRequired < 1 {
		invalidParams.Add(request.NewErrParamMinValue("NumberOfAcceleratorDevicesRequired", 1))
	}
	if s.NumberOfCpuCoresRequired != nil && *s.NumberOfCpuCoresRequired < 0.25 {
		invalidParams.Add(request.NewErrParamMinValue("NumberOfCpuCoresRequired", 0.25))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxMemoryRequiredInMb sets the MaxMemoryRequiredInMb field's value.
func (s *InferenceComponentComputeResourceRequirements) SetMaxMemoryRequiredInMb(v int64) *InferenceComponentComputeResourceRequirements {
	s.MaxMemoryRequiredInMb = &v
	return s
}

// SetMinMemoryRequiredInMb sets the MinMemoryRequiredInMb field's value.
func (s *InferenceComponentComputeResourceRequirements) SetMinMemoryRequiredInMb(v int64) *InferenceComponentComputeResourceRequirements {
	s.MinMemoryRequiredInMb = &v
	return s
}

// SetNumberOfAcceleratorDevicesRequired sets the NumberOfAcceleratorDevicesRequired field's value.
func (s *InferenceComponentComputeResourceRequirements) SetNumberOfAcceleratorDevicesRequired(v float64) *InferenceComponentComputeResourceRequirements {
	s.NumberOfAcceleratorDevicesRequired = &v
	return s
}

// SetNumberOfCpuCoresRequired sets the NumberOfCpuCoresRequired field's value.
func (s *InferenceComponentComputeResourceRequirements) SetNumberOfCpuCoresRequired(v float64) *InferenceComponentComputeResourceRequirements {
	s.NumberOfCpuCoresRequired = &v
	return s
}

// Defines a container that provides the runtime environment for a model that
// you deploy with an inference component.
type InferenceComponentContainerSpecification struct {
	_ struct{} `type:"structure"`

	// The Amazon S3 path where the model artifacts, which result from model training,
	// are stored. This path must point to a single gzip compressed tar archive
	// (.tar.gz suffix).
	ArtifactUrl *string `type:"string"`

	// The environment variables to set in the Docker container. Each key and value
	// in the Environment string-to-string map can have length of up to 1024. We
	// support up to 16 entries in the map.
	Environment map[string]*string `type:"map"`

	// The Amazon Elastic Container Registry (Amazon ECR) path where the Docker
	// image for the model is stored.
	Image *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceComponentContainerSpecification) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceComponentContainerSpecification) GoString() string {
	return s.String()
}

// SetArtifactUrl sets the ArtifactUrl field's value.
func (s *InferenceComponentContainerSpecification) SetArtifactUrl(v string) *InferenceComponentContainerSpecification {
	s.ArtifactUrl = &v
	return s
}

// SetEnvironment sets the Environment field's value.
func (s *InferenceComponentContainerSpecification) SetEnvironment(v map[string]*string) *InferenceComponentContainerSpecification {
	s.Environment = v
	return s
}

// SetImage sets the Image field's value.
func (s *InferenceComponentContainerSpecification) SetImage(v string) *InferenceComponentContainerSpecification {
	s.Image = &v
	return s
}

// Details about the resources that are deployed with this inference component.
type InferenceComponentContainerSpecificationSummary struct {
	_ struct{} `type:"structure"`

	// The Amazon S3 path where the model artifacts are stored.
	ArtifactUrl *string `type:"string"`

	// Gets the Amazon EC2 Container Registry path of the docker image of the model
	// that is hosted in this ProductionVariant (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariant.html).
	//
	// If you used the registry/repository[:tag] form to specify the image path
	// of the primary container when you created the model hosted in this ProductionVariant,
	// the path resolves to a path of the form registry/repository[@digest]. A digest
	// is a hash value that identifies a specific version of an image. For information
	// about Amazon ECR paths, see Pulling an Image (https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-pull-ecr-image.html)
	// in the Amazon ECR User Guide.
	DeployedImage *DeployedImage `type:"structure"`

	// The environment variables to set in the Docker container.
	Environment map[string]*string `type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceComponentContainerSpecificationSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceComponentContainerSpecificationSummary) GoString() string {
	return s.String()
}

// SetArtifactUrl sets the ArtifactUrl field's value.
func (s *InferenceComponentContainerSpecificationSummary) SetArtifactUrl(v string) *InferenceComponentContainerSpecificationSummary {
	s.ArtifactUrl = &v
	return s
}

// SetDeployedImage sets the DeployedImage field's value.
func (s *InferenceComponentContainerSpecificationSummary) SetDeployedImage(v *DeployedImage) *InferenceComponentContainerSpecificationSummary {
	s.DeployedImage = v
	return s
}

// SetEnvironment sets the Environment field's value.
func (s *InferenceComponentContainerSpecificationSummary) SetEnvironment(v map[string]*string) *InferenceComponentContainerSpecificationSummary {
	s.Environment = v
	return s
}

// Runtime settings for a model that is deployed with an inference component.
type InferenceComponentRuntimeConfig struct {
	_ struct{} `type:"structure"`

	// The number of runtime copies of the model container to deploy with the inference
	// component. Each copy can serve inference requests.
	//
	// CopyCount is a required field
	CopyCount *int64 `type:"integer" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceComponentRuntimeConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceComponentRuntimeConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *InferenceComponentRuntimeConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "InferenceComponentRuntimeConfig"}
	if s.CopyCount == nil {
		invalidParams.Add(request.NewErrParamRequired("CopyCount"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCopyCount sets the CopyCount field's value.
func (s *InferenceComponentRuntimeConfig) SetCopyCount(v int64) *InferenceComponentRuntimeConfig {
	s.CopyCount = &v
	return s
}

// Details about the runtime settings for the model that is deployed with the
// inference component.
type InferenceComponentRuntimeConfigSummary struct {
	_ struct{} `type:"structure"`

	// The number of runtime copies of the model container that are currently deployed.
	CurrentCopyCount *int64 `type:"integer"`

	// The number of runtime copies of the model container that you requested to
	// deploy with the inference component.
	DesiredCopyCount *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceComponentRuntimeConfigSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceComponentRuntimeConfigSummary) GoString() string {
	return s.String()
}

// SetCurrentCopyCount sets the CurrentCopyCount field's value.
func (s *InferenceComponentRuntimeConfigSummary) SetCurrentCopyCount(v int64) *InferenceComponentRuntimeConfigSummary {
	s.CurrentCopyCount = &v
	return s
}

// SetDesiredCopyCount sets the DesiredCopyCount field's value.
func (s *InferenceComponentRuntimeConfigSummary) SetDesiredCopyCount(v int64) *InferenceComponentRuntimeConfigSummary {
	s.DesiredCopyCount = &v
	return s
}

// Details about the resources to deploy with this inference component, including
// the model, container, and compute resources.
type InferenceComponentSpecification struct {
	_ struct{} `type:"structure"`

	// The compute resources allocated to run the model assigned to the inference
	// component.
	//
	// ComputeResourceRequirements is a required field
	ComputeResourceRequirements *InferenceComponentComputeResourceRequirements `type:"structure" required:"true"`

	// Defines a container that provides the runtime environment for a model that
	// you deploy with an inference component.
	Container *InferenceComponentContainerSpecification `type:"structure"`

	// The name of an existing SageMaker model object in your account that you want
	// to deploy with the inference component.
	ModelName *string `type:"string"`

	// Settings that take effect while the model container starts up.
	StartupParameters *InferenceComponentStartupParameters `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceComponentSpecification) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceComponentSpecification) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *InferenceComponentSpecification) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "InferenceComponentSpecification"}
	if s.ComputeResourceRequirements == nil {
		invalidParams.Add(request.NewErrParamRequired("ComputeResourceRequirements"))
	}
	if s.ComputeResourceRequirements != nil {
		if err := s.ComputeResourceRequirements.Validate(); err != nil {
			invalidParams.AddNested("ComputeResourceRequirements", err.(request.ErrInvalidParams))
		}
	}
	if s.StartupParameters != nil {
		if err := s.StartupParameters.Validate(); err != nil {
			invalidParams.AddNested("StartupParameters", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetComputeResourceRequirements sets the ComputeResourceRequirements field's value.
func (s *InferenceComponentSpecification) SetComputeResourceRequirements(v *InferenceComponentComputeResourceRequirements) *InferenceComponentSpecification {
	s.ComputeResourceRequirements = v
	return s
}

// SetContainer sets the Container field's value.
func (s *InferenceComponentSpecification) SetContainer(v *InferenceComponentContainerSpecification) *InferenceComponentSpecification {
	s.Container = v
	return s
}

// SetModelName sets the ModelName field's value.
func (s *InferenceComponentSpecification) SetModelName(v string) *InferenceComponentSpecification {
	s.ModelName = &v
	return s
}

// SetStartupParameters sets the StartupParameters field's value.
func (s *InferenceComponentSpecification) SetStartupParameters(v *InferenceComponentStartupParameters) *InferenceComponentSpecification {
	s.StartupParameters = v
	return s
}

// Details about the resources that are deployed with this inference component.
type InferenceComponentSpecificationSummary struct {
	_ struct{} `type:"structure"`

	// The compute resources allocated to run the model assigned to the inference
	// component.
	ComputeResourceRequirements *InferenceComponentComputeResourceRequirements `type:"structure"`

	// Details about the container that provides the runtime environment for the
	// model that is deployed with the inference component.
	Container *InferenceComponentContainerSpecificationSummary `type:"structure"`

	// The name of the SageMaker model object that is deployed with the inference
	// component.
	ModelName *string `type:"string"`

	// Settings that take effect while the model container starts up.
	StartupParameters *InferenceComponentStartupParameters `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceComponentSpecificationSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceComponentSpecificationSummary) GoString() string {
	return s.String()
}

// SetComputeResourceRequirements sets the ComputeResourceRequirements field's value.
func (s *InferenceComponentSpecificationSummary) SetComputeResourceRequirements(v *InferenceComponentComputeResourceRequirements) *InferenceComponentSpecificationSummary {
	s.ComputeResourceRequirements = v
	return s
}

// SetContainer sets the Container field's value.
func (s *InferenceComponentSpecificationSummary) SetContainer(v *InferenceComponentContainerSpecificationSummary) *InferenceComponentSpecificationSummary {
	s.Container = v
	return s
}

// SetModelName sets the ModelName field's value.
func (s *InferenceComponentSpecificationSummary) SetModelName(v string) *InferenceComponentSpecificationSummary {
	s.ModelName = &v
	return s
}

// SetStartupParameters sets the StartupParameters field's value.
func (s *InferenceComponentSpecificationSummary) SetStartupParameters(v *InferenceComponentStartupParameters) *InferenceComponentSpecificationSummary {
	s.StartupParameters = v
	return s
}

// Settings that take effect while the model container starts up.
type InferenceComponentStartupParameters struct {
	_ struct{} `type:"structure"`

	// The timeout value, in seconds, for your inference container to pass health
	// check by Amazon S3 Hosting. For more information about health check, see
	// How Your Container Should Respond to Health Check (Ping) Requests (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-inference-code.html#your-algorithms-inference-algo-ping-requests).
	ContainerStartupHealthCheckTimeoutInSeconds *int64 `min:"60" type:"integer"`

	// The timeout value, in seconds, to download and extract the model that you
	// want to host from Amazon S3 to the individual inference instance associated
	// with this inference component.
	ModelDataDownloadTimeoutInSeconds *int64 `min:"60" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceComponentStartupParameters) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceComponentStartupParameters) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *InferenceComponentStartupParameters) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "InferenceComponentStartupParameters"}
	if s.ContainerStartupHealthCheckTimeoutInSeconds != nil && *s.ContainerStartupHealthCheckTimeoutInSeconds < 60 {
		invalidParams.Add(request.NewErrParamMinValue("ContainerStartupHealthCheckTimeoutInSeconds", 60))
	}
	if s.ModelDataDownloadTimeoutInSeconds != nil && *s.ModelDataDownloadTimeoutInSeconds < 60 {
		invalidParams.Add(request.NewErrParamMinValue("ModelDataDownloadTimeoutInSeconds", 60))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContainerStartupHealthCheckTimeoutInSeconds sets the ContainerStartupHealthCheckTimeoutInSeconds field's value.
func (s *InferenceComponentStartupParameters) SetContainerStartupHealthCheckTimeoutInSeconds(v int64) *InferenceComponentStartupParameters {
	s.ContainerStartupHealthCheckTimeoutInSeconds = &v
	return s
}

// SetModelDataDownloadTimeoutInSeconds sets the ModelDataDownloadTimeoutInSeconds field's value.
func (s *InferenceComponentStartupParameters) SetModelDataDownloadTimeoutInSeconds(v int64) *InferenceComponentStartupParameters {
	s.ModelDataDownloadTimeoutInSeconds = &v
	return s
}

// A summary of the properties of an inference component.
type InferenceComponentSummary struct {
	_ struct{} `type:"structure"`

	// The time when the inference component was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The Amazon Resource Name (ARN) of the endpoint that hosts the inference component.
	//
	// EndpointArn is a required field
	EndpointArn *string `min:"20" type:"string" required:"true"`

	// The name of the endpoint that hosts the inference component.
	//
	// EndpointName is a required field
	EndpointName *string `type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of the inference component.
	//
	// InferenceComponentArn is a required field
	InferenceComponentArn *string `min:"20" type:"string" required:"true"`

	// The name of the inference component.
	//
	// InferenceComponentName is a required field
	InferenceComponentName *string `type:"string" required:"true"`

	// The status of the inference component.
	InferenceComponentStatus *string `type:"string" enum:"InferenceComponentStatus"`

	// The time when the inference component was last updated.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`

	// The name of the production variant that hosts the inference component.
	//
	// VariantName is a required field
	VariantName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceComponentSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceComponentSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *InferenceComponentSummary) SetCreationTime(v time.Time) *InferenceComponentSummary {
	s.CreationTime = &v
	return s
}

// SetEndpointArn sets the EndpointArn field's value.
func (s *InferenceComponentSummary) SetEndpointArn(v string) *InferenceComponentSummary {
	s.EndpointArn = &v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *InferenceComponentSummary) SetEndpointName(v string) *InferenceComponentSummary {
	s.EndpointName = &v
	return s
}

// SetInferenceComponentArn sets the InferenceComponentArn field's value.
func (s *InferenceComponentSummary) SetInferenceComponentArn(v string) *InferenceComponentSummary {
	s.InferenceComponentArn = &v
	return s
}

// SetInferenceComponentName sets the InferenceComponentName field's value.
func (s *InferenceComponentSummary) SetInferenceComponentName(v string) *InferenceComponentSummary {
	s.InferenceComponentName = &v
	return s
}

// SetInferenceComponentStatus sets the InferenceComponentStatus field's value.
func (s *InferenceComponentSummary) SetInferenceComponentStatus(v string) *InferenceComponentSummary {
	s.InferenceComponentStatus = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *InferenceComponentSummary) SetLastModifiedTime(v time.Time) *InferenceComponentSummary {
	s.LastModifiedTime = &v
	return s
}

// SetVariantName sets the VariantName field's value.
func (s *InferenceComponentSummary) SetVariantName(v string) *InferenceComponentSummary {
	s.VariantName = &v
	return s
}

// Specifies details about how containers in a multi-container endpoint are
// run.
type InferenceExecutionConfig struct {
	_ struct{} `type:"structure"`

	// How containers in a multi-container are run. The following values are valid.
	//
	//    * SERIAL - Containers run as a serial pipeline.
	//
	//    * DIRECT - Only the individual container that you specify is run.
	//
	// Mode is a required field
	Mode *string `type:"string" required:"true" enum:"InferenceExecutionMode"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceExecutionConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceExecutionConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *InferenceExecutionConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "InferenceExecutionConfig"}
	if s.Mode == nil {
		invalidParams.Add(request.NewErrParamRequired("Mode"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMode sets the Mode field's value.
func (s *InferenceExecutionConfig) SetMode(v string) *InferenceExecutionConfig {
	s.Mode = &v
	return s
}

// The Amazon S3 location and configuration for storing inference request and
// response data.
type InferenceExperimentDataStorageConfig struct {
	_ struct{} `type:"structure"`

	// Configuration specifying how to treat different headers. If no headers are
	// specified Amazon SageMaker will by default base64 encode when capturing the
	// data.
	ContentType *CaptureContentTypeHeader `type:"structure"`

	// The Amazon S3 bucket where the inference request and response data is stored.
	//
	// Destination is a required field
	Destination *string `type:"string" required:"true"`

	// The Amazon Web Services Key Management Service key that Amazon SageMaker
	// uses to encrypt captured data at rest using Amazon S3 server-side encryption.
	KmsKey *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceExperimentDataStorageConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceExperimentDataStorageConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *InferenceExperimentDataStorageConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "InferenceExperimentDataStorageConfig"}
	if s.Destination == nil {
		invalidParams.Add(request.NewErrParamRequired("Destination"))
	}
	if s.ContentType != nil {
		if err := s.ContentType.Validate(); err != nil {
			invalidParams.AddNested("ContentType", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContentType sets the ContentType field's value.
func (s *InferenceExperimentDataStorageConfig) SetContentType(v *CaptureContentTypeHeader) *InferenceExperimentDataStorageConfig {
	s.ContentType = v
	return s
}

// SetDestination sets the Destination field's value.
func (s *InferenceExperimentDataStorageConfig) SetDestination(v string) *InferenceExperimentDataStorageConfig {
	s.Destination = &v
	return s
}

// SetKmsKey sets the KmsKey field's value.
func (s *InferenceExperimentDataStorageConfig) SetKmsKey(v string) *InferenceExperimentDataStorageConfig {
	s.KmsKey = &v
	return s
}

// The start and end times of an inference experiment.
//
// The maximum duration that you can set for an inference experiment is 30 days.
type InferenceExperimentSchedule struct {
	_ struct{} `type:"structure"`

	// The timestamp at which the inference experiment ended or will end.
	EndTime *time.Time `type:"timestamp"`

	// The timestamp at which the inference experiment started or will start.
	StartTime *time.Time `type:"timestamp"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceExperimentSchedule) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceExperimentSchedule) GoString() string {
	return s.String()
}

// SetEndTime sets the EndTime field's value.
func (s *InferenceExperimentSchedule) SetEndTime(v time.Time) *InferenceExperimentSchedule {
	s.EndTime = &v
	return s
}

// SetStartTime sets the StartTime field's value.
func (s *InferenceExperimentSchedule) SetStartTime(v time.Time) *InferenceExperimentSchedule {
	s.StartTime = &v
	return s
}

// Lists a summary of properties of an inference experiment.
type InferenceExperimentSummary struct {
	_ struct{} `type:"structure"`

	// The timestamp at which the inference experiment was completed.
	CompletionTime *time.Time `type:"timestamp"`

	// The timestamp at which the inference experiment was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The description of the inference experiment.
	Description *string `type:"string"`

	// The timestamp when you last modified the inference experiment.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`

	// The name of the inference experiment.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// The ARN of the IAM role that Amazon SageMaker can assume to access model
	// artifacts and container images, and manage Amazon SageMaker Inference endpoints
	// for model deployment.
	RoleArn *string `min:"20" type:"string"`

	// The duration for which the inference experiment ran or will run.
	//
	// The maximum duration that you can set for an inference experiment is 30 days.
	Schedule *InferenceExperimentSchedule `type:"structure"`

	// The status of the inference experiment.
	//
	// Status is a required field
	Status *string `type:"string" required:"true" enum:"InferenceExperimentStatus"`

	// The error message for the inference experiment status result.
	StatusReason *string `type:"string"`

	// The type of the inference experiment.
	//
	// Type is a required field
	Type *string `type:"string" required:"true" enum:"InferenceExperimentType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceExperimentSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceExperimentSummary) GoString() string {
	return s.String()
}

// SetCompletionTime sets the CompletionTime field's value.
func (s *InferenceExperimentSummary) SetCompletionTime(v time.Time) *InferenceExperimentSummary {
	s.CompletionTime = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *InferenceExperimentSummary) SetCreationTime(v time.Time) *InferenceExperimentSummary {
	s.CreationTime = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *InferenceExperimentSummary) SetDescription(v string) *InferenceExperimentSummary {
	s.Description = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *InferenceExperimentSummary) SetLastModifiedTime(v time.Time) *InferenceExperimentSummary {
	s.LastModifiedTime = &v
	return s
}

// SetName sets the Name field's value.
func (s *InferenceExperimentSummary) SetName(v string) *InferenceExperimentSummary {
	s.Name = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *InferenceExperimentSummary) SetRoleArn(v string) *InferenceExperimentSummary {
	s.RoleArn = &v
	return s
}

// SetSchedule sets the Schedule field's value.
func (s *InferenceExperimentSummary) SetSchedule(v *InferenceExperimentSchedule) *InferenceExperimentSummary {
	s.Schedule = v
	return s
}

// SetStatus sets the Status field's value.
func (s *InferenceExperimentSummary) SetStatus(v string) *InferenceExperimentSummary {
	s.Status = &v
	return s
}

// SetStatusReason sets the StatusReason field's value.
func (s *InferenceExperimentSummary) SetStatusReason(v string) *InferenceExperimentSummary {
	s.StatusReason = &v
	return s
}

// SetType sets the Type field's value.
func (s *InferenceExperimentSummary) SetType(v string) *InferenceExperimentSummary {
	s.Type = &v
	return s
}

// The metrics for an existing endpoint compared in an Inference Recommender
// job.
type InferenceMetrics struct {
	_ struct{} `type:"structure"`

	// The expected maximum number of requests per minute for the instance.
	//
	// MaxInvocations is a required field
	MaxInvocations *int64 `type:"integer" required:"true"`

	// The expected model latency at maximum invocations per minute for the instance.
	//
	// ModelLatency is a required field
	ModelLatency *int64 `type:"integer" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceMetrics) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceMetrics) GoString() string {
	return s.String()
}

// SetMaxInvocations sets the MaxInvocations field's value.
func (s *InferenceMetrics) SetMaxInvocations(v int64) *InferenceMetrics {
	s.MaxInvocations = &v
	return s
}

// SetModelLatency sets the ModelLatency field's value.
func (s *InferenceMetrics) SetModelLatency(v int64) *InferenceMetrics {
	s.ModelLatency = &v
	return s
}

// A list of recommendations made by Amazon SageMaker Inference Recommender.
type InferenceRecommendation struct {
	_ struct{} `type:"structure"`

	// Defines the endpoint configuration parameters.
	//
	// EndpointConfiguration is a required field
	EndpointConfiguration *EndpointOutputConfiguration `type:"structure" required:"true"`

	// A timestamp that shows when the benchmark completed.
	InvocationEndTime *time.Time `type:"timestamp"`

	// A timestamp that shows when the benchmark started.
	InvocationStartTime *time.Time `type:"timestamp"`

	// The metrics used to decide what recommendation to make.
	//
	// Metrics is a required field
	Metrics *RecommendationMetrics `type:"structure" required:"true"`

	// Defines the model configuration.
	//
	// ModelConfiguration is a required field
	ModelConfiguration *ModelConfiguration `type:"structure" required:"true"`

	// The recommendation ID which uniquely identifies each recommendation.
	RecommendationId *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceRecommendation) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceRecommendation) GoString() string {
	return s.String()
}

// SetEndpointConfiguration sets the EndpointConfiguration field's value.
func (s *InferenceRecommendation) SetEndpointConfiguration(v *EndpointOutputConfiguration) *InferenceRecommendation {
	s.EndpointConfiguration = v
	return s
}

// SetInvocationEndTime sets the InvocationEndTime field's value.
func (s *InferenceRecommendation) SetInvocationEndTime(v time.Time) *InferenceRecommendation {
	s.InvocationEndTime = &v
	return s
}

// SetInvocationStartTime sets the InvocationStartTime field's value.
func (s *InferenceRecommendation) SetInvocationStartTime(v time.Time) *InferenceRecommendation {
	s.InvocationStartTime = &v
	return s
}

// SetMetrics sets the Metrics field's value.
func (s *InferenceRecommendation) SetMetrics(v *RecommendationMetrics) *InferenceRecommendation {
	s.Metrics = v
	return s
}

// SetModelConfiguration sets the ModelConfiguration field's value.
func (s *InferenceRecommendation) SetModelConfiguration(v *ModelConfiguration) *InferenceRecommendation {
	s.ModelConfiguration = v
	return s
}

// SetRecommendationId sets the RecommendationId field's value.
func (s *InferenceRecommendation) SetRecommendationId(v string) *InferenceRecommendation {
	s.RecommendationId = &v
	return s
}

// A structure that contains a list of recommendation jobs.
type InferenceRecommendationsJob struct {
	_ struct{} `type:"structure"`

	// A timestamp that shows when the job completed.
	CompletionTime *time.Time `type:"timestamp"`

	// A timestamp that shows when the job was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// If the job fails, provides information why the job failed.
	FailureReason *string `type:"string"`

	// The Amazon Resource Name (ARN) of the recommendation job.
	//
	// JobArn is a required field
	JobArn *string `type:"string" required:"true"`

	// The job description.
	//
	// JobDescription is a required field
	JobDescription *string `type:"string" required:"true"`

	// The name of the job.
	//
	// JobName is a required field
	JobName *string `min:"1" type:"string" required:"true"`

	// The recommendation job type.
	//
	// JobType is a required field
	JobType *string `type:"string" required:"true" enum:"RecommendationJobType"`

	// A timestamp that shows when the job was last modified.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`

	// The name of the created model.
	ModelName *string `type:"string"`

	// The Amazon Resource Name (ARN) of a versioned model package.
	ModelPackageVersionArn *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker
	// to perform tasks on your behalf.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// The Amazon Simple Storage Service (Amazon S3) path where the sample payload
	// is stored. This path must point to a single gzip compressed tar archive (.tar.gz
	// suffix).
	SamplePayloadUrl *string `type:"string"`

	// The status of the job.
	//
	// Status is a required field
	Status *string `type:"string" required:"true" enum:"RecommendationJobStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceRecommendationsJob) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceRecommendationsJob) GoString() string {
	return s.String()
}

// SetCompletionTime sets the CompletionTime field's value.
func (s *InferenceRecommendationsJob) SetCompletionTime(v time.Time) *InferenceRecommendationsJob {
	s.CompletionTime = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *InferenceRecommendationsJob) SetCreationTime(v time.Time) *InferenceRecommendationsJob {
	s.CreationTime = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *InferenceRecommendationsJob) SetFailureReason(v string) *InferenceRecommendationsJob {
	s.FailureReason = &v
	return s
}

// SetJobArn sets the JobArn field's value.
func (s *InferenceRecommendationsJob) SetJobArn(v string) *InferenceRecommendationsJob {
	s.JobArn = &v
	return s
}

// SetJobDescription sets the JobDescription field's value.
func (s *InferenceRecommendationsJob) SetJobDescription(v string) *InferenceRecommendationsJob {
	s.JobDescription = &v
	return s
}

// SetJobName sets the JobName field's value.
func (s *InferenceRecommendationsJob) SetJobName(v string) *InferenceRecommendationsJob {
	s.JobName = &v
	return s
}

// SetJobType sets the JobType field's value.
func (s *InferenceRecommendationsJob) SetJobType(v string) *InferenceRecommendationsJob {
	s.JobType = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *InferenceRecommendationsJob) SetLastModifiedTime(v time.Time) *InferenceRecommendationsJob {
	s.LastModifiedTime = &v
	return s
}

// SetModelName sets the ModelName field's value.
func (s *InferenceRecommendationsJob) SetModelName(v string) *InferenceRecommendationsJob {
	s.ModelName = &v
	return s
}

// SetModelPackageVersionArn sets the ModelPackageVersionArn field's value.
func (s *InferenceRecommendationsJob) SetModelPackageVersionArn(v string) *InferenceRecommendationsJob {
	s.ModelPackageVersionArn = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *InferenceRecommendationsJob) SetRoleArn(v string) *InferenceRecommendationsJob {
	s.RoleArn = &v
	return s
}

// SetSamplePayloadUrl sets the SamplePayloadUrl field's value.
func (s *InferenceRecommendationsJob) SetSamplePayloadUrl(v string) *InferenceRecommendationsJob {
	s.SamplePayloadUrl = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *InferenceRecommendationsJob) SetStatus(v string) *InferenceRecommendationsJob {
	s.Status = &v
	return s
}

// A returned array object for the Steps response field in the ListInferenceRecommendationsJobSteps
// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListInferenceRecommendationsJobSteps.html)
// API command.
type InferenceRecommendationsJobStep struct {
	_ struct{} `type:"structure"`

	// The details for a specific benchmark.
	InferenceBenchmark *RecommendationJobInferenceBenchmark `type:"structure"`

	// The name of the Inference Recommender job.
	//
	// JobName is a required field
	JobName *string `min:"1" type:"string" required:"true"`

	// The current status of the benchmark.
	//
	// Status is a required field
	Status *string `type:"string" required:"true" enum:"RecommendationJobStatus"`

	// The type of the subtask.
	//
	// BENCHMARK: Evaluate the performance of your model on different instance types.
	//
	// StepType is a required field
	StepType *string `type:"string" required:"true" enum:"RecommendationStepType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceRecommendationsJobStep) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceRecommendationsJobStep) GoString() string {
	return s.String()
}

// SetInferenceBenchmark sets the InferenceBenchmark field's value.
func (s *InferenceRecommendationsJobStep) SetInferenceBenchmark(v *RecommendationJobInferenceBenchmark) *InferenceRecommendationsJobStep {
	s.InferenceBenchmark = v
	return s
}

// SetJobName sets the JobName field's value.
func (s *InferenceRecommendationsJobStep) SetJobName(v string) *InferenceRecommendationsJobStep {
	s.JobName = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *InferenceRecommendationsJobStep) SetStatus(v string) *InferenceRecommendationsJobStep {
	s.Status = &v
	return s
}

// SetStepType sets the StepType field's value.
func (s *InferenceRecommendationsJobStep) SetStepType(v string) *InferenceRecommendationsJobStep {
	s.StepType = &v
	return s
}

// Defines how to perform inference generation after a training job is run.
type InferenceSpecification struct {
	_ struct{} `type:"structure"`

	// The Amazon ECR registry path of the Docker image that contains the inference
	// code.
	//
	// Containers is a required field
	Containers []*ModelPackageContainerDefinition `min:"1" type:"list" required:"true"`

	// The supported MIME types for the input data.
	SupportedContentTypes []*string `type:"list"`

	// A list of the instance types that are used to generate inferences in real-time.
	//
	// This parameter is required for unversioned models, and optional for versioned
	// models.
	SupportedRealtimeInferenceInstanceTypes []*string `type:"list" enum:"ProductionVariantInstanceType"`

	// The supported MIME types for the output data.
	SupportedResponseMIMETypes []*string `type:"list"`

	// A list of the instance types on which a transformation job can be run or
	// on which an endpoint can be deployed.
	//
	// This parameter is required for unversioned models, and optional for versioned
	// models.
	SupportedTransformInstanceTypes []*string `min:"1" type:"list" enum:"TransformInstanceType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceSpecification) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InferenceSpecification) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *InferenceSpecification) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "InferenceSpecification"}
	if s.Containers == nil {
		invalidParams.Add(request.NewErrParamRequired("Containers"))
	}
	if s.Containers != nil && len(s.Containers) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Containers", 1))
	}
	if s.SupportedTransformInstanceTypes != nil && len(s.SupportedTransformInstanceTypes) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SupportedTransformInstanceTypes", 1))
	}
	if s.Containers != nil {
		for i, v := range s.Containers {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Containers", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContainers sets the Containers field's value.
func (s *InferenceSpecification) SetContainers(v []*ModelPackageContainerDefinition) *InferenceSpecification {
	s.Containers = v
	return s
}

// SetSupportedContentTypes sets the SupportedContentTypes field's value.
func (s *InferenceSpecification) SetSupportedContentTypes(v []*string) *InferenceSpecification {
	s.SupportedContentTypes = v
	return s
}

// SetSupportedRealtimeInferenceInstanceTypes sets the SupportedRealtimeInferenceInstanceTypes field's value.
func (s *InferenceSpecification) SetSupportedRealtimeInferenceInstanceTypes(v []*string) *InferenceSpecification {
	s.SupportedRealtimeInferenceInstanceTypes = v
	return s
}

// SetSupportedResponseMIMETypes sets the SupportedResponseMIMETypes field's value.
func (s *InferenceSpecification) SetSupportedResponseMIMETypes(v []*string) *InferenceSpecification {
	s.SupportedResponseMIMETypes = v
	return s
}

// SetSupportedTransformInstanceTypes sets the SupportedTransformInstanceTypes field's value.
func (s *InferenceSpecification) SetSupportedTransformInstanceTypes(v []*string) *InferenceSpecification {
	s.SupportedTransformInstanceTypes = v
	return s
}

// Configuration information for the infrastructure health check of a training
// job. A SageMaker-provided health check tests the health of instance hardware
// and cluster network connectivity.
type InfraCheckConfig struct {
	_ struct{} `type:"structure"`

	// Enables an infrastructure health check.
	EnableInfraCheck *bool `type:"boolean"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InfraCheckConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InfraCheckConfig) GoString() string {
	return s.String()
}

// SetEnableInfraCheck sets the EnableInfraCheck field's value.
func (s *InfraCheckConfig) SetEnableInfraCheck(v bool) *InfraCheckConfig {
	s.EnableInfraCheck = &v
	return s
}

// Contains information about the location of input model artifacts, the name
// and shape of the expected data inputs, and the framework in which the model
// was trained.
type InputConfig struct {
	_ struct{} `type:"structure"`

	// Specifies the name and shape of the expected data inputs for your trained
	// model with a JSON dictionary form. The data inputs are Framework specific.
	//
	//    * TensorFlow: You must specify the name and shape (NHWC format) of the
	//    expected data inputs using a dictionary format for your trained model.
	//    The dictionary formats required for the console and CLI are different.
	//    Examples for one input: If using the console, {"input":[1,1024,1024,3]}
	//    If using the CLI, {\"input\":[1,1024,1024,3]} Examples for two inputs:
	//    If using the console, {"data1": [1,28,28,1], "data2":[1,28,28,1]} If using
	//    the CLI, {\"data1\": [1,28,28,1], \"data2\":[1,28,28,1]}
	//
	//    * KERAS: You must specify the name and shape (NCHW format) of expected
	//    data inputs using a dictionary format for your trained model. Note that
	//    while Keras model artifacts should be uploaded in NHWC (channel-last)
	//    format, DataInputConfig should be specified in NCHW (channel-first) format.
	//    The dictionary formats required for the console and CLI are different.
	//    Examples for one input: If using the console, {"input_1":[1,3,224,224]}
	//    If using the CLI, {\"input_1\":[1,3,224,224]} Examples for two inputs:
	//    If using the console, {"input_1": [1,3,224,224], "input_2":[1,3,224,224]}
	//    If using the CLI, {\"input_1\": [1,3,224,224], \"input_2\":[1,3,224,224]}
	//
	//    * MXNET/ONNX/DARKNET: You must specify the name and shape (NCHW format)
	//    of the expected data inputs in order using a dictionary format for your
	//    trained model. The dictionary formats required for the console and CLI
	//    are different. Examples for one input: If using the console, {"data":[1,3,1024,1024]}
	//    If using the CLI, {\"data\":[1,3,1024,1024]} Examples for two inputs:
	//    If using the console, {"var1": [1,1,28,28], "var2":[1,1,28,28]} If using
	//    the CLI, {\"var1\": [1,1,28,28], \"var2\":[1,1,28,28]}
	//
	//    * PyTorch: You can either specify the name and shape (NCHW format) of
	//    expected data inputs in order using a dictionary format for your trained
	//    model or you can specify the shape only using a list format. The dictionary
	//    formats required for the console and CLI are different. The list formats
	//    for the console and CLI are the same. Examples for one input in dictionary
	//    format: If using the console, {"input0":[1,3,224,224]} If using the CLI,
	//    {\"input0\":[1,3,224,224]} Example for one input in list format: [[1,3,224,224]]
	//    Examples for two inputs in dictionary format: If using the console, {"input0":[1,3,224,224],
	//    "input1":[1,3,224,224]} If using the CLI, {\"input0\":[1,3,224,224], \"input1\":[1,3,224,224]}
	//    Example for two inputs in list format: [[1,3,224,224], [1,3,224,224]]
	//
	//    * XGBOOST: input data name and shape are not needed.
	//
	// DataInputConfig supports the following parameters for CoreML TargetDevice
	// (ML Model format):
	//
	//    * shape: Input shape, for example {"input_1": {"shape": [1,224,224,3]}}.
	//    In addition to static input shapes, CoreML converter supports Flexible
	//    input shapes: Range Dimension. You can use the Range Dimension feature
	//    if you know the input shape will be within some specific interval in that
	//    dimension, for example: {"input_1": {"shape": ["1..10", 224, 224, 3]}}
	//    Enumerated shapes. Sometimes, the models are trained to work only on a
	//    select set of inputs. You can enumerate all supported input shapes, for
	//    example: {"input_1": {"shape": [[1, 224, 224, 3], [1, 160, 160, 3]]}}
	//
	//    * default_shape: Default input shape. You can set a default shape during
	//    conversion for both Range Dimension and Enumerated Shapes. For example
	//    {"input_1": {"shape": ["1..10", 224, 224, 3], "default_shape": [1, 224,
	//    224, 3]}}
	//
	//    * type: Input type. Allowed values: Image and Tensor. By default, the
	//    converter generates an ML Model with inputs of type Tensor (MultiArray).
	//    User can set input type to be Image. Image input type requires additional
	//    input parameters such as bias and scale.
	//
	//    * bias: If the input type is an Image, you need to provide the bias vector.
	//
	//    * scale: If the input type is an Image, you need to provide a scale factor.
	//
	// CoreML ClassifierConfig parameters can be specified using OutputConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputConfig.html)
	// CompilerOptions. CoreML converter supports Tensorflow and PyTorch models.
	// CoreML conversion examples:
	//
	//    * Tensor type input: "DataInputConfig": {"input_1": {"shape": [[1,224,224,3],
	//    [1,160,160,3]], "default_shape": [1,224,224,3]}}
	//
	//    * Tensor type input without input name (PyTorch): "DataInputConfig": [{"shape":
	//    [[1,3,224,224], [1,3,160,160]], "default_shape": [1,3,224,224]}]
	//
	//    * Image type input: "DataInputConfig": {"input_1": {"shape": [[1,224,224,3],
	//    [1,160,160,3]], "default_shape": [1,224,224,3], "type": "Image", "bias":
	//    [-1,-1,-1], "scale": 0.007843137255}} "CompilerOptions": {"class_labels":
	//    "imagenet_labels_1000.txt"}
	//
	//    * Image type input without input name (PyTorch): "DataInputConfig": [{"shape":
	//    [[1,3,224,224], [1,3,160,160]], "default_shape": [1,3,224,224], "type":
	//    "Image", "bias": [-1,-1,-1], "scale": 0.007843137255}] "CompilerOptions":
	//    {"class_labels": "imagenet_labels_1000.txt"}
	//
	// Depending on the model format, DataInputConfig requires the following parameters
	// for ml_eia2 OutputConfig:TargetDevice (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputConfig.html#sagemaker-Type-OutputConfig-TargetDevice).
	//
	//    * For TensorFlow models saved in the SavedModel format, specify the input
	//    names from signature_def_key and the input model shapes for DataInputConfig.
	//    Specify the signature_def_key in OutputConfig:CompilerOptions (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputConfig.html#sagemaker-Type-OutputConfig-CompilerOptions)
	//    if the model does not use TensorFlow's default signature def key. For
	//    example: "DataInputConfig": {"inputs": [1, 224, 224, 3]} "CompilerOptions":
	//    {"signature_def_key": "serving_custom"}
	//
	//    * For TensorFlow models saved as a frozen graph, specify the input tensor
	//    names and shapes in DataInputConfig and the output tensor names for output_names
	//    in OutputConfig:CompilerOptions (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputConfig.html#sagemaker-Type-OutputConfig-CompilerOptions).
	//    For example: "DataInputConfig": {"input_tensor:0": [1, 224, 224, 3]} "CompilerOptions":
	//    {"output_names": ["output_tensor:0"]}
	DataInputConfig *string `min:"1" type:"string"`

	// Identifies the framework in which the model was trained. For example: TENSORFLOW.
	//
	// Framework is a required field
	Framework *string `type:"string" required:"true" enum:"Framework"`

	// Specifies the framework version to use. This API field is only supported
	// for the MXNet, PyTorch, TensorFlow and TensorFlow Lite frameworks.
	//
	// For information about framework versions supported for cloud targets and
	// edge devices, see Cloud Supported Instance Types and Frameworks (https://docs.aws.amazon.com/sagemaker/latest/dg/neo-supported-cloud.html)
	// and Edge Supported Frameworks (https://docs.aws.amazon.com/sagemaker/latest/dg/neo-supported-devices-edge-frameworks.html).
	FrameworkVersion *string `min:"3" type:"string"`

	// The S3 path where the model artifacts, which result from model training,
	// are stored. This path must point to a single gzip compressed tar archive
	// (.tar.gz suffix).
	//
	// S3Uri is a required field
	S3Uri *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InputConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InputConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *InputConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "InputConfig"}
	if s.DataInputConfig != nil && len(*s.DataInputConfig) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DataInputConfig", 1))
	}
	if s.Framework == nil {
		invalidParams.Add(request.NewErrParamRequired("Framework"))
	}
	if s.FrameworkVersion != nil && len(*s.FrameworkVersion) < 3 {
		invalidParams.Add(request.NewErrParamMinLen("FrameworkVersion", 3))
	}
	if s.S3Uri == nil {
		invalidParams.Add(request.NewErrParamRequired("S3Uri"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDataInputConfig sets the DataInputConfig field's value.
func (s *InputConfig) SetDataInputConfig(v string) *InputConfig {
	s.DataInputConfig = &v
	return s
}

// SetFramework sets the Framework field's value.
func (s *InputConfig) SetFramework(v string) *InputConfig {
	s.Framework = &v
	return s
}

// SetFrameworkVersion sets the FrameworkVersion field's value.
func (s *InputConfig) SetFrameworkVersion(v string) *InputConfig {
	s.FrameworkVersion = &v
	return s
}

// SetS3Uri sets the S3Uri field's value.
func (s *InputConfig) SetS3Uri(v string) *InputConfig {
	s.S3Uri = &v
	return s
}

// Defines an instance group for heterogeneous cluster training. When requesting
// a training job using the CreateTrainingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)
// API, you can configure multiple instance groups .
type InstanceGroup struct {
	_ struct{} `type:"structure"`

	// Specifies the number of instances of the instance group.
	//
	// InstanceCount is a required field
	InstanceCount *int64 `type:"integer" required:"true"`

	// Specifies the name of the instance group.
	//
	// InstanceGroupName is a required field
	InstanceGroupName *string `min:"1" type:"string" required:"true"`

	// Specifies the instance type of the instance group.
	//
	// InstanceType is a required field
	InstanceType *string `type:"string" required:"true" enum:"TrainingInstanceType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InstanceGroup) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InstanceGroup) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *InstanceGroup) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "InstanceGroup"}
	if s.InstanceCount == nil {
		invalidParams.Add(request.NewErrParamRequired("InstanceCount"))
	}
	if s.InstanceGroupName == nil {
		invalidParams.Add(request.NewErrParamRequired("InstanceGroupName"))
	}
	if s.InstanceGroupName != nil && len(*s.InstanceGroupName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("InstanceGroupName", 1))
	}
	if s.InstanceType == nil {
		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetInstanceCount sets the InstanceCount field's value.
func (s *InstanceGroup) SetInstanceCount(v int64) *InstanceGroup {
	s.InstanceCount = &v
	return s
}

// SetInstanceGroupName sets the InstanceGroupName field's value.
func (s *InstanceGroup) SetInstanceGroupName(v string) *InstanceGroup {
	s.InstanceGroupName = &v
	return s
}

// SetInstanceType sets the InstanceType field's value.
func (s *InstanceGroup) SetInstanceType(v string) *InstanceGroup {
	s.InstanceType = &v
	return s
}

// Information on the IMDS configuration of the notebook instance
type InstanceMetadataServiceConfiguration struct {
	_ struct{} `type:"structure"`

	// Indicates the minimum IMDS version that the notebook instance supports. When
	// passed as part of CreateNotebookInstance, if no value is selected, then it
	// defaults to IMDSv1. This means that both IMDSv1 and IMDSv2 are supported.
	// If passed as part of UpdateNotebookInstance, there is no default.
	//
	// MinimumInstanceMetadataServiceVersion is a required field
	MinimumInstanceMetadataServiceVersion *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InstanceMetadataServiceConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InstanceMetadataServiceConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *InstanceMetadataServiceConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "InstanceMetadataServiceConfiguration"}
	if s.MinimumInstanceMetadataServiceVersion == nil {
		invalidParams.Add(request.NewErrParamRequired("MinimumInstanceMetadataServiceVersion"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMinimumInstanceMetadataServiceVersion sets the MinimumInstanceMetadataServiceVersion field's value.
func (s *InstanceMetadataServiceConfiguration) SetMinimumInstanceMetadataServiceVersion(v string) *InstanceMetadataServiceConfiguration {
	s.MinimumInstanceMetadataServiceVersion = &v
	return s
}

// For a hyperparameter of the integer type, specifies the range that a hyperparameter
// tuning job searches.
type IntegerParameterRange struct {
	_ struct{} `type:"structure"`

	// The maximum value of the hyperparameter to search.
	//
	// MaxValue is a required field
	MaxValue *string `type:"string" required:"true"`

	// The minimum value of the hyperparameter to search.
	//
	// MinValue is a required field
	MinValue *string `type:"string" required:"true"`

	// The name of the hyperparameter to search.
	//
	// Name is a required field
	Name *string `type:"string" required:"true"`

	// The scale that hyperparameter tuning uses to search the hyperparameter range.
	// For information about choosing a hyperparameter scale, see Hyperparameter
	// Scaling (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html#scaling-type).
	// One of the following values:
	//
	// Auto
	//
	// SageMaker hyperparameter tuning chooses the best scale for the hyperparameter.
	//
	// Linear
	//
	// Hyperparameter tuning searches the values in the hyperparameter range by
	// using a linear scale.
	//
	// Logarithmic
	//
	// Hyperparameter tuning searches the values in the hyperparameter range by
	// using a logarithmic scale.
	//
	// Logarithmic scaling works only for ranges that have only values greater than
	// 0.
	ScalingType *string `type:"string" enum:"HyperParameterScalingType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s IntegerParameterRange) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s IntegerParameterRange) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *IntegerParameterRange) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "IntegerParameterRange"}
	if s.MaxValue == nil {
		invalidParams.Add(request.NewErrParamRequired("MaxValue"))
	}
	if s.MinValue == nil {
		invalidParams.Add(request.NewErrParamRequired("MinValue"))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxValue sets the MaxValue field's value.
func (s *IntegerParameterRange) SetMaxValue(v string) *IntegerParameterRange {
	s.MaxValue = &v
	return s
}

// SetMinValue sets the MinValue field's value.
func (s *IntegerParameterRange) SetMinValue(v string) *IntegerParameterRange {
	s.MinValue = &v
	return s
}

// SetName sets the Name field's value.
func (s *IntegerParameterRange) SetName(v string) *IntegerParameterRange {
	s.Name = &v
	return s
}

// SetScalingType sets the ScalingType field's value.
func (s *IntegerParameterRange) SetScalingType(v string) *IntegerParameterRange {
	s.ScalingType = &v
	return s
}

// Defines the possible values for an integer hyperparameter.
type IntegerParameterRangeSpecification struct {
	_ struct{} `type:"structure"`

	// The maximum integer value allowed.
	//
	// MaxValue is a required field
	MaxValue *string `type:"string" required:"true"`

	// The minimum integer value allowed.
	//
	// MinValue is a required field
	MinValue *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s IntegerParameterRangeSpecification) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s IntegerParameterRangeSpecification) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *IntegerParameterRangeSpecification) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "IntegerParameterRangeSpecification"}
	if s.MaxValue == nil {
		invalidParams.Add(request.NewErrParamRequired("MaxValue"))
	}
	if s.MinValue == nil {
		invalidParams.Add(request.NewErrParamRequired("MinValue"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxValue sets the MaxValue field's value.
func (s *IntegerParameterRangeSpecification) SetMaxValue(v string) *IntegerParameterRangeSpecification {
	s.MaxValue = &v
	return s
}

// SetMinValue sets the MinValue field's value.
func (s *IntegerParameterRangeSpecification) SetMinValue(v string) *IntegerParameterRangeSpecification {
	s.MinValue = &v
	return s
}

// The configuration for the file system and kernels in a SageMaker image running
// as a JupyterLab app.
type JupyterLabAppImageConfig struct {
	_ struct{} `type:"structure"`

	// The configuration used to run the application image container.
	ContainerConfig *ContainerConfig `type:"structure"`

	// The Amazon Elastic File System (EFS) storage configuration for a SageMaker
	// image.
	FileSystemConfig *FileSystemConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s JupyterLabAppImageConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s JupyterLabAppImageConfig) GoString() string {
	return s.String()
}

// SetContainerConfig sets the ContainerConfig field's value.
func (s *JupyterLabAppImageConfig) SetContainerConfig(v *ContainerConfig) *JupyterLabAppImageConfig {
	s.ContainerConfig = v
	return s
}

// SetFileSystemConfig sets the FileSystemConfig field's value.
func (s *JupyterLabAppImageConfig) SetFileSystemConfig(v *FileSystemConfig) *JupyterLabAppImageConfig {
	s.FileSystemConfig = v
	return s
}

// The settings for the JupyterLab application.
type JupyterLabAppSettings struct {
	_ struct{} `type:"structure"`

	// A list of Git repositories that SageMaker automatically displays to users
	// for cloning in the JupyterLab application.
	CodeRepositories []*CodeRepository `type:"list"`

	// A list of custom SageMaker images that are configured to run as a JupyterLab
	// app.
	CustomImages []*CustomImage `type:"list"`

	// Specifies the ARN's of a SageMaker image and SageMaker image version, and
	// the instance type that the version runs on.
	DefaultResourceSpec *ResourceSpec `type:"structure"`

	// The Amazon Resource Name (ARN) of the lifecycle configurations attached to
	// the user profile or domain. To remove a lifecycle config, you must set LifecycleConfigArns
	// to an empty list.
	LifecycleConfigArns []*string `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s JupyterLabAppSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s JupyterLabAppSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *JupyterLabAppSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "JupyterLabAppSettings"}
	if s.CodeRepositories != nil {
		for i, v := range s.CodeRepositories {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CodeRepositories", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.CustomImages != nil {
		for i, v := range s.CustomImages {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CustomImages", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.DefaultResourceSpec != nil {
		if err := s.DefaultResourceSpec.Validate(); err != nil {
			invalidParams.AddNested("DefaultResourceSpec", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCodeRepositories sets the CodeRepositories field's value.
func (s *JupyterLabAppSettings) SetCodeRepositories(v []*CodeRepository) *JupyterLabAppSettings {
	s.CodeRepositories = v
	return s
}

// SetCustomImages sets the CustomImages field's value.
func (s *JupyterLabAppSettings) SetCustomImages(v []*CustomImage) *JupyterLabAppSettings {
	s.CustomImages = v
	return s
}

// SetDefaultResourceSpec sets the DefaultResourceSpec field's value.
func (s *JupyterLabAppSettings) SetDefaultResourceSpec(v *ResourceSpec) *JupyterLabAppSettings {
	s.DefaultResourceSpec = v
	return s
}

// SetLifecycleConfigArns sets the LifecycleConfigArns field's value.
func (s *JupyterLabAppSettings) SetLifecycleConfigArns(v []*string) *JupyterLabAppSettings {
	s.LifecycleConfigArns = v
	return s
}

// The JupyterServer app settings.
type JupyterServerAppSettings struct {
	_ struct{} `type:"structure"`

	// A list of Git repositories that SageMaker automatically displays to users
	// for cloning in the JupyterServer application.
	CodeRepositories []*CodeRepository `type:"list"`

	// The default instance type and the Amazon Resource Name (ARN) of the default
	// SageMaker image used by the JupyterServer app. If you use the LifecycleConfigArns
	// parameter, then this parameter is also required.
	DefaultResourceSpec *ResourceSpec `type:"structure"`

	// The Amazon Resource Name (ARN) of the Lifecycle Configurations attached to
	// the JupyterServerApp. If you use this parameter, the DefaultResourceSpec
	// parameter is also required.
	//
	// To remove a Lifecycle Config, you must set LifecycleConfigArns to an empty
	// list.
	LifecycleConfigArns []*string `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s JupyterServerAppSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s JupyterServerAppSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *JupyterServerAppSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "JupyterServerAppSettings"}
	if s.CodeRepositories != nil {
		for i, v := range s.CodeRepositories {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CodeRepositories", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.DefaultResourceSpec != nil {
		if err := s.DefaultResourceSpec.Validate(); err != nil {
			invalidParams.AddNested("DefaultResourceSpec", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCodeRepositories sets the CodeRepositories field's value.
func (s *JupyterServerAppSettings) SetCodeRepositories(v []*CodeRepository) *JupyterServerAppSettings {
	s.CodeRepositories = v
	return s
}

// SetDefaultResourceSpec sets the DefaultResourceSpec field's value.
func (s *JupyterServerAppSettings) SetDefaultResourceSpec(v *ResourceSpec) *JupyterServerAppSettings {
	s.DefaultResourceSpec = v
	return s
}

// SetLifecycleConfigArns sets the LifecycleConfigArns field's value.
func (s *JupyterServerAppSettings) SetLifecycleConfigArns(v []*string) *JupyterServerAppSettings {
	s.LifecycleConfigArns = v
	return s
}

// The Amazon SageMaker Canvas application setting where you configure document
// querying.
type KendraSettings struct {
	_ struct{} `type:"structure"`

	// Describes whether the document querying feature is enabled or disabled in
	// the Canvas application.
	Status *string `type:"string" enum:"FeatureStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s KendraSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s KendraSettings) GoString() string {
	return s.String()
}

// SetStatus sets the Status field's value.
func (s *KendraSettings) SetStatus(v string) *KendraSettings {
	s.Status = &v
	return s
}

// The KernelGateway app settings.
type KernelGatewayAppSettings struct {
	_ struct{} `type:"structure"`

	// A list of custom SageMaker images that are configured to run as a KernelGateway
	// app.
	CustomImages []*CustomImage `type:"list"`

	// The default instance type and the Amazon Resource Name (ARN) of the default
	// SageMaker image used by the KernelGateway app.
	//
	// The Amazon SageMaker Studio UI does not use the default instance type value
	// set here. The default instance type set here is used when Apps are created
	// using the Amazon Web Services Command Line Interface or Amazon Web Services
	// CloudFormation and the instance type parameter value is not passed.
	DefaultResourceSpec *ResourceSpec `type:"structure"`

	// The Amazon Resource Name (ARN) of the Lifecycle Configurations attached to
	// the the user profile or domain.
	//
	// To remove a Lifecycle Config, you must set LifecycleConfigArns to an empty
	// list.
	LifecycleConfigArns []*string `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s KernelGatewayAppSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s KernelGatewayAppSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *KernelGatewayAppSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "KernelGatewayAppSettings"}
	if s.CustomImages != nil {
		for i, v := range s.CustomImages {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CustomImages", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.DefaultResourceSpec != nil {
		if err := s.DefaultResourceSpec.Validate(); err != nil {
			invalidParams.AddNested("DefaultResourceSpec", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCustomImages sets the CustomImages field's value.
func (s *KernelGatewayAppSettings) SetCustomImages(v []*CustomImage) *KernelGatewayAppSettings {
	s.CustomImages = v
	return s
}

// SetDefaultResourceSpec sets the DefaultResourceSpec field's value.
func (s *KernelGatewayAppSettings) SetDefaultResourceSpec(v *ResourceSpec) *KernelGatewayAppSettings {
	s.DefaultResourceSpec = v
	return s
}

// SetLifecycleConfigArns sets the LifecycleConfigArns field's value.
func (s *KernelGatewayAppSettings) SetLifecycleConfigArns(v []*string) *KernelGatewayAppSettings {
	s.LifecycleConfigArns = v
	return s
}

// The configuration for the file system and kernels in a SageMaker image running
// as a KernelGateway app.
type KernelGatewayImageConfig struct {
	_ struct{} `type:"structure"`

	// The Amazon Elastic File System (EFS) storage configuration for a SageMaker
	// image.
	FileSystemConfig *FileSystemConfig `type:"structure"`

	// The specification of the Jupyter kernels in the image.
	//
	// KernelSpecs is a required field
	KernelSpecs []*KernelSpec `min:"1" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s KernelGatewayImageConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s KernelGatewayImageConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *KernelGatewayImageConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "KernelGatewayImageConfig"}
	if s.KernelSpecs == nil {
		invalidParams.Add(request.NewErrParamRequired("KernelSpecs"))
	}
	if s.KernelSpecs != nil && len(s.KernelSpecs) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("KernelSpecs", 1))
	}
	if s.KernelSpecs != nil {
		for i, v := range s.KernelSpecs {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "KernelSpecs", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFileSystemConfig sets the FileSystemConfig field's value.
func (s *KernelGatewayImageConfig) SetFileSystemConfig(v *FileSystemConfig) *KernelGatewayImageConfig {
	s.FileSystemConfig = v
	return s
}

// SetKernelSpecs sets the KernelSpecs field's value.
func (s *KernelGatewayImageConfig) SetKernelSpecs(v []*KernelSpec) *KernelGatewayImageConfig {
	s.KernelSpecs = v
	return s
}

// The specification of a Jupyter kernel.
type KernelSpec struct {
	_ struct{} `type:"structure"`

	// The display name of the kernel.
	DisplayName *string `type:"string"`

	// The name of the Jupyter kernel in the image. This value is case sensitive.
	//
	// Name is a required field
	Name *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s KernelSpec) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s KernelSpec) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *KernelSpec) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "KernelSpec"}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDisplayName sets the DisplayName field's value.
func (s *KernelSpec) SetDisplayName(v string) *KernelSpec {
	s.DisplayName = &v
	return s
}

// SetName sets the Name field's value.
func (s *KernelSpec) SetName(v string) *KernelSpec {
	s.Name = &v
	return s
}

// Provides a breakdown of the number of objects labeled.
type LabelCounters struct {
	_ struct{} `type:"structure"`

	// The total number of objects that could not be labeled due to an error.
	FailedNonRetryableError *int64 `type:"integer"`

	// The total number of objects labeled by a human worker.
	HumanLabeled *int64 `type:"integer"`

	// The total number of objects labeled by automated data labeling.
	MachineLabeled *int64 `type:"integer"`

	// The total number of objects labeled.
	TotalLabeled *int64 `type:"integer"`

	// The total number of objects not yet labeled.
	Unlabeled *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelCounters) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelCounters) GoString() string {
	return s.String()
}

// SetFailedNonRetryableError sets the FailedNonRetryableError field's value.
func (s *LabelCounters) SetFailedNonRetryableError(v int64) *LabelCounters {
	s.FailedNonRetryableError = &v
	return s
}

// SetHumanLabeled sets the HumanLabeled field's value.
func (s *LabelCounters) SetHumanLabeled(v int64) *LabelCounters {
	s.HumanLabeled = &v
	return s
}

// SetMachineLabeled sets the MachineLabeled field's value.
func (s *LabelCounters) SetMachineLabeled(v int64) *LabelCounters {
	s.MachineLabeled = &v
	return s
}

// SetTotalLabeled sets the TotalLabeled field's value.
func (s *LabelCounters) SetTotalLabeled(v int64) *LabelCounters {
	s.TotalLabeled = &v
	return s
}

// SetUnlabeled sets the Unlabeled field's value.
func (s *LabelCounters) SetUnlabeled(v int64) *LabelCounters {
	s.Unlabeled = &v
	return s
}

// Provides counts for human-labeled tasks in the labeling job.
type LabelCountersForWorkteam struct {
	_ struct{} `type:"structure"`

	// The total number of data objects labeled by a human worker.
	HumanLabeled *int64 `type:"integer"`

	// The total number of data objects that need to be labeled by a human worker.
	PendingHuman *int64 `type:"integer"`

	// The total number of tasks in the labeling job.
	Total *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelCountersForWorkteam) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelCountersForWorkteam) GoString() string {
	return s.String()
}

// SetHumanLabeled sets the HumanLabeled field's value.
func (s *LabelCountersForWorkteam) SetHumanLabeled(v int64) *LabelCountersForWorkteam {
	s.HumanLabeled = &v
	return s
}

// SetPendingHuman sets the PendingHuman field's value.
func (s *LabelCountersForWorkteam) SetPendingHuman(v int64) *LabelCountersForWorkteam {
	s.PendingHuman = &v
	return s
}

// SetTotal sets the Total field's value.
func (s *LabelCountersForWorkteam) SetTotal(v int64) *LabelCountersForWorkteam {
	s.Total = &v
	return s
}

// Provides configuration information for auto-labeling of your data objects.
// A LabelingJobAlgorithmsConfig object must be supplied in order to use auto-labeling.
type LabelingJobAlgorithmsConfig struct {
	_ struct{} `type:"structure"`

	// At the end of an auto-label job Ground Truth sends the Amazon Resource Name
	// (ARN) of the final model used for auto-labeling. You can use this model as
	// the starting point for subsequent similar jobs by providing the ARN of the
	// model here.
	InitialActiveLearningModelArn *string `min:"20" type:"string"`

	// Specifies the Amazon Resource Name (ARN) of the algorithm used for auto-labeling.
	// You must select one of the following ARNs:
	//
	//    * Image classification arn:aws:sagemaker:region:027400017018:labeling-job-algorithm-specification/image-classification
	//
	//    * Text classification arn:aws:sagemaker:region:027400017018:labeling-job-algorithm-specification/text-classification
	//
	//    * Object detection arn:aws:sagemaker:region:027400017018:labeling-job-algorithm-specification/object-detection
	//
	//    * Semantic Segmentation arn:aws:sagemaker:region:027400017018:labeling-job-algorithm-specification/semantic-segmentation
	//
	// LabelingJobAlgorithmSpecificationArn is a required field
	LabelingJobAlgorithmSpecificationArn *string `type:"string" required:"true"`

	// Provides configuration information for a labeling job.
	LabelingJobResourceConfig *LabelingJobResourceConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelingJobAlgorithmsConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelingJobAlgorithmsConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *LabelingJobAlgorithmsConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "LabelingJobAlgorithmsConfig"}
	if s.InitialActiveLearningModelArn != nil && len(*s.InitialActiveLearningModelArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("InitialActiveLearningModelArn", 20))
	}
	if s.LabelingJobAlgorithmSpecificationArn == nil {
		invalidParams.Add(request.NewErrParamRequired("LabelingJobAlgorithmSpecificationArn"))
	}
	if s.LabelingJobResourceConfig != nil {
		if err := s.LabelingJobResourceConfig.Validate(); err != nil {
			invalidParams.AddNested("LabelingJobResourceConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetInitialActiveLearningModelArn sets the InitialActiveLearningModelArn field's value.
func (s *LabelingJobAlgorithmsConfig) SetInitialActiveLearningModelArn(v string) *LabelingJobAlgorithmsConfig {
	s.InitialActiveLearningModelArn = &v
	return s
}

// SetLabelingJobAlgorithmSpecificationArn sets the LabelingJobAlgorithmSpecificationArn field's value.
func (s *LabelingJobAlgorithmsConfig) SetLabelingJobAlgorithmSpecificationArn(v string) *LabelingJobAlgorithmsConfig {
	s.LabelingJobAlgorithmSpecificationArn = &v
	return s
}

// SetLabelingJobResourceConfig sets the LabelingJobResourceConfig field's value.
func (s *LabelingJobAlgorithmsConfig) SetLabelingJobResourceConfig(v *LabelingJobResourceConfig) *LabelingJobAlgorithmsConfig {
	s.LabelingJobResourceConfig = v
	return s
}

// Attributes of the data specified by the customer. Use these to describe the
// data to be labeled.
type LabelingJobDataAttributes struct {
	_ struct{} `type:"structure"`

	// Declares that your content is free of personally identifiable information
	// or adult content. SageMaker may restrict the Amazon Mechanical Turk workers
	// that can view your task based on this information.
	ContentClassifiers []*string `type:"list" enum:"ContentClassifier"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelingJobDataAttributes) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelingJobDataAttributes) GoString() string {
	return s.String()
}

// SetContentClassifiers sets the ContentClassifiers field's value.
func (s *LabelingJobDataAttributes) SetContentClassifiers(v []*string) *LabelingJobDataAttributes {
	s.ContentClassifiers = v
	return s
}

// Provides information about the location of input data.
//
// You must specify at least one of the following: S3DataSource or SnsDataSource.
//
// Use SnsDataSource to specify an SNS input topic for a streaming labeling
// job. If you do not specify and SNS input topic ARN, Ground Truth will create
// a one-time labeling job.
//
// Use S3DataSource to specify an input manifest file for both streaming and
// one-time labeling jobs. Adding an S3DataSource is optional if you use SnsDataSource
// to create a streaming labeling job.
type LabelingJobDataSource struct {
	_ struct{} `type:"structure"`

	// The Amazon S3 location of the input data objects.
	S3DataSource *LabelingJobS3DataSource `type:"structure"`

	// An Amazon SNS data source used for streaming labeling jobs. To learn more,
	// see Send Data to a Streaming Labeling Job (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-streaming-labeling-job.html#sms-streaming-how-it-works-send-data).
	SnsDataSource *LabelingJobSnsDataSource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelingJobDataSource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelingJobDataSource) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *LabelingJobDataSource) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "LabelingJobDataSource"}
	if s.S3DataSource != nil {
		if err := s.S3DataSource.Validate(); err != nil {
			invalidParams.AddNested("S3DataSource", err.(request.ErrInvalidParams))
		}
	}
	if s.SnsDataSource != nil {
		if err := s.SnsDataSource.Validate(); err != nil {
			invalidParams.AddNested("SnsDataSource", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetS3DataSource sets the S3DataSource field's value.
func (s *LabelingJobDataSource) SetS3DataSource(v *LabelingJobS3DataSource) *LabelingJobDataSource {
	s.S3DataSource = v
	return s
}

// SetSnsDataSource sets the SnsDataSource field's value.
func (s *LabelingJobDataSource) SetSnsDataSource(v *LabelingJobSnsDataSource) *LabelingJobDataSource {
	s.SnsDataSource = v
	return s
}

// Provides summary information for a work team.
type LabelingJobForWorkteamSummary struct {
	_ struct{} `type:"structure"`

	// The date and time that the labeling job was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// A unique identifier for a labeling job. You can use this to refer to a specific
	// labeling job.
	//
	// JobReferenceCode is a required field
	JobReferenceCode *string `min:"1" type:"string" required:"true"`

	// Provides information about the progress of a labeling job.
	LabelCounters *LabelCountersForWorkteam `type:"structure"`

	// The name of the labeling job that the work team is assigned to.
	LabelingJobName *string `min:"1" type:"string"`

	// The configured number of workers per data object.
	NumberOfHumanWorkersPerDataObject *int64 `min:"1" type:"integer"`

	// The Amazon Web Services account ID of the account used to start the labeling
	// job.
	//
	// WorkRequesterAccountId is a required field
	WorkRequesterAccountId *string `min:"12" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelingJobForWorkteamSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelingJobForWorkteamSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *LabelingJobForWorkteamSummary) SetCreationTime(v time.Time) *LabelingJobForWorkteamSummary {
	s.CreationTime = &v
	return s
}

// SetJobReferenceCode sets the JobReferenceCode field's value.
func (s *LabelingJobForWorkteamSummary) SetJobReferenceCode(v string) *LabelingJobForWorkteamSummary {
	s.JobReferenceCode = &v
	return s
}

// SetLabelCounters sets the LabelCounters field's value.
func (s *LabelingJobForWorkteamSummary) SetLabelCounters(v *LabelCountersForWorkteam) *LabelingJobForWorkteamSummary {
	s.LabelCounters = v
	return s
}

// SetLabelingJobName sets the LabelingJobName field's value.
func (s *LabelingJobForWorkteamSummary) SetLabelingJobName(v string) *LabelingJobForWorkteamSummary {
	s.LabelingJobName = &v
	return s
}

// SetNumberOfHumanWorkersPerDataObject sets the NumberOfHumanWorkersPerDataObject field's value.
func (s *LabelingJobForWorkteamSummary) SetNumberOfHumanWorkersPerDataObject(v int64) *LabelingJobForWorkteamSummary {
	s.NumberOfHumanWorkersPerDataObject = &v
	return s
}

// SetWorkRequesterAccountId sets the WorkRequesterAccountId field's value.
func (s *LabelingJobForWorkteamSummary) SetWorkRequesterAccountId(v string) *LabelingJobForWorkteamSummary {
	s.WorkRequesterAccountId = &v
	return s
}

// Input configuration information for a labeling job.
type LabelingJobInputConfig struct {
	_ struct{} `type:"structure"`

	// Attributes of the data specified by the customer.
	DataAttributes *LabelingJobDataAttributes `type:"structure"`

	// The location of the input data.
	//
	// DataSource is a required field
	DataSource *LabelingJobDataSource `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelingJobInputConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelingJobInputConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *LabelingJobInputConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "LabelingJobInputConfig"}
	if s.DataSource == nil {
		invalidParams.Add(request.NewErrParamRequired("DataSource"))
	}
	if s.DataSource != nil {
		if err := s.DataSource.Validate(); err != nil {
			invalidParams.AddNested("DataSource", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDataAttributes sets the DataAttributes field's value.
func (s *LabelingJobInputConfig) SetDataAttributes(v *LabelingJobDataAttributes) *LabelingJobInputConfig {
	s.DataAttributes = v
	return s
}

// SetDataSource sets the DataSource field's value.
func (s *LabelingJobInputConfig) SetDataSource(v *LabelingJobDataSource) *LabelingJobInputConfig {
	s.DataSource = v
	return s
}

// Specifies the location of the output produced by the labeling job.
type LabelingJobOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) for the most recent SageMaker model trained
	// as part of automated data labeling.
	FinalActiveLearningModelArn *string `min:"20" type:"string"`

	// The Amazon S3 bucket location of the manifest file for labeled data.
	//
	// OutputDatasetS3Uri is a required field
	OutputDatasetS3Uri *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelingJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelingJobOutput) GoString() string {
	return s.String()
}

// SetFinalActiveLearningModelArn sets the FinalActiveLearningModelArn field's value.
func (s *LabelingJobOutput) SetFinalActiveLearningModelArn(v string) *LabelingJobOutput {
	s.FinalActiveLearningModelArn = &v
	return s
}

// SetOutputDatasetS3Uri sets the OutputDatasetS3Uri field's value.
func (s *LabelingJobOutput) SetOutputDatasetS3Uri(v string) *LabelingJobOutput {
	s.OutputDatasetS3Uri = &v
	return s
}

// Output configuration information for a labeling job.
type LabelingJobOutputConfig struct {
	_ struct{} `type:"structure"`

	// The Amazon Web Services Key Management Service ID of the key used to encrypt
	// the output data, if any.
	//
	// If you provide your own KMS key ID, you must add the required permissions
	// to your KMS key described in Encrypt Output Data and Storage Volume with
	// Amazon Web Services KMS (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-security-permission.html#sms-security-kms-permissions).
	//
	// If you don't provide a KMS key ID, Amazon SageMaker uses the default Amazon
	// Web Services KMS key for Amazon S3 for your role's account to encrypt your
	// output data.
	//
	// If you use a bucket policy with an s3:PutObject permission that only allows
	// objects with server-side encryption, set the condition key of s3:x-amz-server-side-encryption
	// to "aws:kms". For more information, see KMS-Managed Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html)
	// in the Amazon Simple Storage Service Developer Guide.
	KmsKeyId *string `type:"string"`

	// The Amazon S3 location to write output data.
	//
	// S3OutputPath is a required field
	S3OutputPath *string `type:"string" required:"true"`

	// An Amazon Simple Notification Service (Amazon SNS) output topic ARN. Provide
	// a SnsTopicArn if you want to do real time chaining to another streaming job
	// and receive an Amazon SNS notifications each time a data object is submitted
	// by a worker.
	//
	// If you provide an SnsTopicArn in OutputConfig, when workers complete labeling
	// tasks, Ground Truth will send labeling task output data to the SNS output
	// topic you specify here.
	//
	// To learn more, see Receive Output Data from a Streaming Labeling Job (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-streaming-labeling-job.html#sms-streaming-how-it-works-output-data).
	SnsTopicArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelingJobOutputConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelingJobOutputConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *LabelingJobOutputConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "LabelingJobOutputConfig"}
	if s.S3OutputPath == nil {
		invalidParams.Add(request.NewErrParamRequired("S3OutputPath"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *LabelingJobOutputConfig) SetKmsKeyId(v string) *LabelingJobOutputConfig {
	s.KmsKeyId = &v
	return s
}

// SetS3OutputPath sets the S3OutputPath field's value.
func (s *LabelingJobOutputConfig) SetS3OutputPath(v string) *LabelingJobOutputConfig {
	s.S3OutputPath = &v
	return s
}

// SetSnsTopicArn sets the SnsTopicArn field's value.
func (s *LabelingJobOutputConfig) SetSnsTopicArn(v string) *LabelingJobOutputConfig {
	s.SnsTopicArn = &v
	return s
}

// Configure encryption on the storage volume attached to the ML compute instance
// used to run automated data labeling model training and inference.
type LabelingJobResourceConfig struct {
	_ struct{} `type:"structure"`

	// The Amazon Web Services Key Management Service (Amazon Web Services KMS)
	// key that Amazon SageMaker uses to encrypt data on the storage volume attached
	// to the ML compute instance(s) that run the training and inference jobs used
	// for automated data labeling.
	//
	// You can only specify a VolumeKmsKeyId when you create a labeling job with
	// automated data labeling enabled using the API operation CreateLabelingJob.
	// You cannot specify an Amazon Web Services KMS key to encrypt the storage
	// volume used for automated data labeling model training and inference when
	// you create a labeling job using the console. To learn more, see Output Data
	// and Storage Volume Encryption (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-security.html).
	//
	// The VolumeKmsKeyId can be any of the following formats:
	//
	//    * KMS Key ID "1234abcd-12ab-34cd-56ef-1234567890ab"
	//
	//    * Amazon Resource Name (ARN) of a KMS Key "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
	VolumeKmsKeyId *string `type:"string"`

	// Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs,
	// hosted models, and compute resources have access to. You can control access
	// to and from your resources by configuring a VPC. For more information, see
	// Give SageMaker Access to Resources in your Amazon VPC (https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html).
	VpcConfig *VpcConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelingJobResourceConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelingJobResourceConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *LabelingJobResourceConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "LabelingJobResourceConfig"}
	if s.VpcConfig != nil {
		if err := s.VpcConfig.Validate(); err != nil {
			invalidParams.AddNested("VpcConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetVolumeKmsKeyId sets the VolumeKmsKeyId field's value.
func (s *LabelingJobResourceConfig) SetVolumeKmsKeyId(v string) *LabelingJobResourceConfig {
	s.VolumeKmsKeyId = &v
	return s
}

// SetVpcConfig sets the VpcConfig field's value.
func (s *LabelingJobResourceConfig) SetVpcConfig(v *VpcConfig) *LabelingJobResourceConfig {
	s.VpcConfig = v
	return s
}

// The Amazon S3 location of the input data objects.
type LabelingJobS3DataSource struct {
	_ struct{} `type:"structure"`

	// The Amazon S3 location of the manifest file that describes the input data
	// objects.
	//
	// The input manifest file referenced in ManifestS3Uri must contain one of the
	// following keys: source-ref or source. The value of the keys are interpreted
	// as follows:
	//
	//    * source-ref: The source of the object is the Amazon S3 object specified
	//    in the value. Use this value when the object is a binary object, such
	//    as an image.
	//
	//    * source: The source of the object is the value. Use this value when the
	//    object is a text value.
	//
	// If you are a new user of Ground Truth, it is recommended you review Use an
	// Input Manifest File (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-input-data-input-manifest.html)
	// in the Amazon SageMaker Developer Guide to learn how to create an input manifest
	// file.
	//
	// ManifestS3Uri is a required field
	ManifestS3Uri *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelingJobS3DataSource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelingJobS3DataSource) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *LabelingJobS3DataSource) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "LabelingJobS3DataSource"}
	if s.ManifestS3Uri == nil {
		invalidParams.Add(request.NewErrParamRequired("ManifestS3Uri"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetManifestS3Uri sets the ManifestS3Uri field's value.
func (s *LabelingJobS3DataSource) SetManifestS3Uri(v string) *LabelingJobS3DataSource {
	s.ManifestS3Uri = &v
	return s
}

// An Amazon SNS data source used for streaming labeling jobs.
type LabelingJobSnsDataSource struct {
	_ struct{} `type:"structure"`

	// The Amazon SNS input topic Amazon Resource Name (ARN). Specify the ARN of
	// the input topic you will use to send new data objects to a streaming labeling
	// job.
	//
	// SnsTopicArn is a required field
	SnsTopicArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelingJobSnsDataSource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelingJobSnsDataSource) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *LabelingJobSnsDataSource) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "LabelingJobSnsDataSource"}
	if s.SnsTopicArn == nil {
		invalidParams.Add(request.NewErrParamRequired("SnsTopicArn"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSnsTopicArn sets the SnsTopicArn field's value.
func (s *LabelingJobSnsDataSource) SetSnsTopicArn(v string) *LabelingJobSnsDataSource {
	s.SnsTopicArn = &v
	return s
}

// A set of conditions for stopping a labeling job. If any of the conditions
// are met, the job is automatically stopped. You can use these conditions to
// control the cost of data labeling.
//
// Labeling jobs fail after 30 days with an appropriate client error message.
type LabelingJobStoppingConditions struct {
	_ struct{} `type:"structure"`

	// The maximum number of objects that can be labeled by human workers.
	MaxHumanLabeledObjectCount *int64 `min:"1" type:"integer"`

	// The maximum number of input data objects that should be labeled.
	MaxPercentageOfInputDatasetLabeled *int64 `min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelingJobStoppingConditions) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelingJobStoppingConditions) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *LabelingJobStoppingConditions) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "LabelingJobStoppingConditions"}
	if s.MaxHumanLabeledObjectCount != nil && *s.MaxHumanLabeledObjectCount < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxHumanLabeledObjectCount", 1))
	}
	if s.MaxPercentageOfInputDatasetLabeled != nil && *s.MaxPercentageOfInputDatasetLabeled < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxPercentageOfInputDatasetLabeled", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxHumanLabeledObjectCount sets the MaxHumanLabeledObjectCount field's value.
func (s *LabelingJobStoppingConditions) SetMaxHumanLabeledObjectCount(v int64) *LabelingJobStoppingConditions {
	s.MaxHumanLabeledObjectCount = &v
	return s
}

// SetMaxPercentageOfInputDatasetLabeled sets the MaxPercentageOfInputDatasetLabeled field's value.
func (s *LabelingJobStoppingConditions) SetMaxPercentageOfInputDatasetLabeled(v int64) *LabelingJobStoppingConditions {
	s.MaxPercentageOfInputDatasetLabeled = &v
	return s
}

// Provides summary information about a labeling job.
type LabelingJobSummary struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the Lambda function used to consolidate
	// the annotations from individual workers into a label for a data object. For
	// more information, see Annotation Consolidation (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-annotation-consolidation.html).
	AnnotationConsolidationLambdaArn *string `type:"string"`

	// The date and time that the job was created (timestamp).
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// If the LabelingJobStatus field is Failed, this field contains a description
	// of the error.
	FailureReason *string `type:"string"`

	// Input configuration for the labeling job.
	InputConfig *LabelingJobInputConfig `type:"structure"`

	// Counts showing the progress of the labeling job.
	//
	// LabelCounters is a required field
	LabelCounters *LabelCounters `type:"structure" required:"true"`

	// The Amazon Resource Name (ARN) assigned to the labeling job when it was created.
	//
	// LabelingJobArn is a required field
	LabelingJobArn *string `type:"string" required:"true"`

	// The name of the labeling job.
	//
	// LabelingJobName is a required field
	LabelingJobName *string `min:"1" type:"string" required:"true"`

	// The location of the output produced by the labeling job.
	LabelingJobOutput *LabelingJobOutput `type:"structure"`

	// The current status of the labeling job.
	//
	// LabelingJobStatus is a required field
	LabelingJobStatus *string `type:"string" required:"true" enum:"LabelingJobStatus"`

	// The date and time that the job was last modified (timestamp).
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`

	// The Amazon Resource Name (ARN) of a Lambda function. The function is run
	// before each data object is sent to a worker.
	//
	// PreHumanTaskLambdaArn is a required field
	PreHumanTaskLambdaArn *string `type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of the work team assigned to the job.
	//
	// WorkteamArn is a required field
	WorkteamArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelingJobSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LabelingJobSummary) GoString() string {
	return s.String()
}

// SetAnnotationConsolidationLambdaArn sets the AnnotationConsolidationLambdaArn field's value.
func (s *LabelingJobSummary) SetAnnotationConsolidationLambdaArn(v string) *LabelingJobSummary {
	s.AnnotationConsolidationLambdaArn = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *LabelingJobSummary) SetCreationTime(v time.Time) *LabelingJobSummary {
	s.CreationTime = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *LabelingJobSummary) SetFailureReason(v string) *LabelingJobSummary {
	s.FailureReason = &v
	return s
}

// SetInputConfig sets the InputConfig field's value.
func (s *LabelingJobSummary) SetInputConfig(v *LabelingJobInputConfig) *LabelingJobSummary {
	s.InputConfig = v
	return s
}

// SetLabelCounters sets the LabelCounters field's value.
func (s *LabelingJobSummary) SetLabelCounters(v *LabelCounters) *LabelingJobSummary {
	s.LabelCounters = v
	return s
}

// SetLabelingJobArn sets the LabelingJobArn field's value.
func (s *LabelingJobSummary) SetLabelingJobArn(v string) *LabelingJobSummary {
	s.LabelingJobArn = &v
	return s
}

// SetLabelingJobName sets the LabelingJobName field's value.
func (s *LabelingJobSummary) SetLabelingJobName(v string) *LabelingJobSummary {
	s.LabelingJobName = &v
	return s
}

// SetLabelingJobOutput sets the LabelingJobOutput field's value.
func (s *LabelingJobSummary) SetLabelingJobOutput(v *LabelingJobOutput) *LabelingJobSummary {
	s.LabelingJobOutput = v
	return s
}

// SetLabelingJobStatus sets the LabelingJobStatus field's value.
func (s *LabelingJobSummary) SetLabelingJobStatus(v string) *LabelingJobSummary {
	s.LabelingJobStatus = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *LabelingJobSummary) SetLastModifiedTime(v time.Time) *LabelingJobSummary {
	s.LastModifiedTime = &v
	return s
}

// SetPreHumanTaskLambdaArn sets the PreHumanTaskLambdaArn field's value.
func (s *LabelingJobSummary) SetPreHumanTaskLambdaArn(v string) *LabelingJobSummary {
	s.PreHumanTaskLambdaArn = &v
	return s
}

// SetWorkteamArn sets the WorkteamArn field's value.
func (s *LabelingJobSummary) SetWorkteamArn(v string) *LabelingJobSummary {
	s.WorkteamArn = &v
	return s
}

// Metadata for a Lambda step.
type LambdaStepMetadata struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the Lambda function that was run by this
	// step execution.
	Arn *string `type:"string"`

	// A list of the output parameters of the Lambda step.
	OutputParameters []*OutputParameter `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LambdaStepMetadata) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LambdaStepMetadata) GoString() string {
	return s.String()
}

// SetArn sets the Arn field's value.
func (s *LambdaStepMetadata) SetArn(v string) *LambdaStepMetadata {
	s.Arn = &v
	return s
}

// SetOutputParameters sets the OutputParameters field's value.
func (s *LambdaStepMetadata) SetOutputParameters(v []*OutputParameter) *LambdaStepMetadata {
	s.OutputParameters = v
	return s
}

// A value that indicates whether the update was successful.
type LastUpdateStatus struct {
	_ struct{} `type:"structure"`

	// If the update wasn't successful, indicates the reason why it failed.
	FailureReason *string `type:"string"`

	// A value that indicates whether the update was made successful.
	//
	// Status is a required field
	Status *string `type:"string" required:"true" enum:"LastUpdateStatusValue"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LastUpdateStatus) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LastUpdateStatus) GoString() string {
	return s.String()
}

// SetFailureReason sets the FailureReason field's value.
func (s *LastUpdateStatus) SetFailureReason(v string) *LastUpdateStatus {
	s.FailureReason = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *LastUpdateStatus) SetStatus(v string) *LastUpdateStatus {
	s.Status = &v
	return s
}

// Lists a summary of the properties of a lineage group. A lineage group provides
// a group of shareable lineage entity resources.
type LineageGroupSummary struct {
	_ struct{} `type:"structure"`

	// The creation time of the lineage group summary.
	CreationTime *time.Time `type:"timestamp"`

	// The display name of the lineage group summary.
	DisplayName *string `min:"1" type:"string"`

	// The last modified time of the lineage group summary.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the lineage group resource.
	LineageGroupArn *string `type:"string"`

	// The name or Amazon Resource Name (ARN) of the lineage group.
	LineageGroupName *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LineageGroupSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LineageGroupSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *LineageGroupSummary) SetCreationTime(v time.Time) *LineageGroupSummary {
	s.CreationTime = &v
	return s
}

// SetDisplayName sets the DisplayName field's value.
func (s *LineageGroupSummary) SetDisplayName(v string) *LineageGroupSummary {
	s.DisplayName = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *LineageGroupSummary) SetLastModifiedTime(v time.Time) *LineageGroupSummary {
	s.LastModifiedTime = &v
	return s
}

// SetLineageGroupArn sets the LineageGroupArn field's value.
func (s *LineageGroupSummary) SetLineageGroupArn(v string) *LineageGroupSummary {
	s.LineageGroupArn = &v
	return s
}

// SetLineageGroupName sets the LineageGroupName field's value.
func (s *LineageGroupSummary) SetLineageGroupName(v string) *LineageGroupSummary {
	s.LineageGroupName = &v
	return s
}

type ListActionsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only actions of the specified type.
	ActionType *string `type:"string"`

	// A filter that returns only actions created on or after the specified time.
	CreatedAfter *time.Time `type:"timestamp"`

	// A filter that returns only actions created on or before the specified time.
	CreatedBefore *time.Time `type:"timestamp"`

	// The maximum number of actions to return in the response. The default value
	// is 10.
	MaxResults *int64 `min:"1" type:"integer"`

	// If the previous call to ListActions didn't return the full set of actions,
	// the call returns a token for getting the next set of actions.
	NextToken *string `type:"string"`

	// The property used to sort results. The default value is CreationTime.
	SortBy *string `type:"string" enum:"SortActionsBy"`

	// The sort order. The default value is Descending.
	SortOrder *string `type:"string" enum:"SortOrder"`

	// A filter that returns only actions with the specified source URI.
	SourceUri *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListActionsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListActionsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListActionsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListActionsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.SourceUri != nil && len(*s.SourceUri) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SourceUri", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetActionType sets the ActionType field's value.
func (s *ListActionsInput) SetActionType(v string) *ListActionsInput {
	s.ActionType = &v
	return s
}

// SetCreatedAfter sets the CreatedAfter field's value.
func (s *ListActionsInput) SetCreatedAfter(v time.Time) *ListActionsInput {
	s.CreatedAfter = &v
	return s
}

// SetCreatedBefore sets the CreatedBefore field's value.
func (s *ListActionsInput) SetCreatedBefore(v time.Time) *ListActionsInput {
	s.CreatedBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListActionsInput) SetMaxResults(v int64) *ListActionsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListActionsInput) SetNextToken(v string) *ListActionsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListActionsInput) SetSortBy(v string) *ListActionsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListActionsInput) SetSortOrder(v string) *ListActionsInput {
	s.SortOrder = &v
	return s
}

// SetSourceUri sets the SourceUri field's value.
func (s *ListActionsInput) SetSourceUri(v string) *ListActionsInput {
	s.SourceUri = &v
	return s
}

type ListActionsOutput struct {
	_ struct{} `type:"structure"`

	// A list of actions and their properties.
	ActionSummaries []*ActionSummary `type:"list"`

	// A token for getting the next set of actions, if there are any.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListActionsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListActionsOutput) GoString() string {
	return s.String()
}

// SetActionSummaries sets the ActionSummaries field's value.
func (s *ListActionsOutput) SetActionSummaries(v []*ActionSummary) *ListActionsOutput {
	s.ActionSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListActionsOutput) SetNextToken(v string) *ListActionsOutput {
	s.NextToken = &v
	return s
}

type ListAlgorithmsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only algorithms created after the specified time (timestamp).
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only algorithms created before the specified time (timestamp).
	CreationTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of algorithms to return in the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// A string in the algorithm name. This filter returns only algorithms whose
	// name contains the specified string.
	NameContains *string `type:"string"`

	// If the response to a previous ListAlgorithms request was truncated, the response
	// includes a NextToken. To retrieve the next set of algorithms, use the token
	// in the next request.
	NextToken *string `type:"string"`

	// The parameter by which to sort the results. The default is CreationTime.
	SortBy *string `type:"string" enum:"AlgorithmSortBy"`

	// The sort order for the results. The default is Ascending.
	SortOrder *string `type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAlgorithmsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAlgorithmsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListAlgorithmsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListAlgorithmsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListAlgorithmsInput) SetCreationTimeAfter(v time.Time) *ListAlgorithmsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListAlgorithmsInput) SetCreationTimeBefore(v time.Time) *ListAlgorithmsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListAlgorithmsInput) SetMaxResults(v int64) *ListAlgorithmsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListAlgorithmsInput) SetNameContains(v string) *ListAlgorithmsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAlgorithmsInput) SetNextToken(v string) *ListAlgorithmsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListAlgorithmsInput) SetSortBy(v string) *ListAlgorithmsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListAlgorithmsInput) SetSortOrder(v string) *ListAlgorithmsInput {
	s.SortOrder = &v
	return s
}

type ListAlgorithmsOutput struct {
	_ struct{} `type:"structure"`

	// >An array of AlgorithmSummary objects, each of which lists an algorithm.
	//
	// AlgorithmSummaryList is a required field
	AlgorithmSummaryList []*AlgorithmSummary `type:"list" required:"true"`

	// If the response is truncated, SageMaker returns this token. To retrieve the
	// next set of algorithms, use it in the subsequent request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAlgorithmsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAlgorithmsOutput) GoString() string {
	return s.String()
}

// SetAlgorithmSummaryList sets the AlgorithmSummaryList field's value.
func (s *ListAlgorithmsOutput) SetAlgorithmSummaryList(v []*AlgorithmSummary) *ListAlgorithmsOutput {
	s.AlgorithmSummaryList = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAlgorithmsOutput) SetNextToken(v string) *ListAlgorithmsOutput {
	s.NextToken = &v
	return s
}

type ListAliasesInput struct {
	_ struct{} `type:"structure"`

	// The alias of the image version.
	Alias *string `min:"1" type:"string"`

	// The name of the image.
	//
	// ImageName is a required field
	ImageName *string `min:"1" type:"string" required:"true"`

	// The maximum number of aliases to return.
	MaxResults *int64 `min:"1" type:"integer"`

	// If the previous call to ListAliases didn't return the full set of aliases,
	// the call returns a token for retrieving the next set of aliases.
	NextToken *string `type:"string"`

	// The version of the image. If image version is not specified, the aliases
	// of all versions of the image are listed.
	Version *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAliasesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAliasesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListAliasesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListAliasesInput"}
	if s.Alias != nil && len(*s.Alias) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Alias", 1))
	}
	if s.ImageName == nil {
		invalidParams.Add(request.NewErrParamRequired("ImageName"))
	}
	if s.ImageName != nil && len(*s.ImageName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ImageName", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAlias sets the Alias field's value.
func (s *ListAliasesInput) SetAlias(v string) *ListAliasesInput {
	s.Alias = &v
	return s
}

// SetImageName sets the ImageName field's value.
func (s *ListAliasesInput) SetImageName(v string) *ListAliasesInput {
	s.ImageName = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListAliasesInput) SetMaxResults(v int64) *ListAliasesInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAliasesInput) SetNextToken(v string) *ListAliasesInput {
	s.NextToken = &v
	return s
}

// SetVersion sets the Version field's value.
func (s *ListAliasesInput) SetVersion(v int64) *ListAliasesInput {
	s.Version = &v
	return s
}

type ListAliasesOutput struct {
	_ struct{} `type:"structure"`

	// A token for getting the next set of aliases, if more aliases exist.
	NextToken *string `type:"string"`

	// A list of SageMaker image version aliases.
	SageMakerImageVersionAliases []*string `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAliasesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAliasesOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListAliasesOutput) SetNextToken(v string) *ListAliasesOutput {
	s.NextToken = &v
	return s
}

// SetSageMakerImageVersionAliases sets the SageMakerImageVersionAliases field's value.
func (s *ListAliasesOutput) SetSageMakerImageVersionAliases(v []*string) *ListAliasesOutput {
	s.SageMakerImageVersionAliases = v
	return s
}

type ListAppImageConfigsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only AppImageConfigs created on or after the specified
	// time.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only AppImageConfigs created on or before the specified
	// time.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// The total number of items to return in the response. If the total number
	// of items available is more than the value specified, a NextToken is provided
	// in the response. To resume pagination, provide the NextToken value in the
	// as part of a subsequent call. The default value is 10.
	MaxResults *int64 `min:"1" type:"integer"`

	// A filter that returns only AppImageConfigs modified on or after the specified
	// time.
	ModifiedTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only AppImageConfigs modified on or before the specified
	// time.
	ModifiedTimeBefore *time.Time `type:"timestamp"`

	// A filter that returns only AppImageConfigs whose name contains the specified
	// string.
	NameContains *string `type:"string"`

	// If the previous call to ListImages didn't return the full set of AppImageConfigs,
	// the call returns a token for getting the next set of AppImageConfigs.
	NextToken *string `type:"string"`

	// The property used to sort results. The default value is CreationTime.
	SortBy *string `type:"string" enum:"AppImageConfigSortKey"`

	// The sort order. The default value is Descending.
	SortOrder *string `type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAppImageConfigsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAppImageConfigsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListAppImageConfigsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListAppImageConfigsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListAppImageConfigsInput) SetCreationTimeAfter(v time.Time) *ListAppImageConfigsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListAppImageConfigsInput) SetCreationTimeBefore(v time.Time) *ListAppImageConfigsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListAppImageConfigsInput) SetMaxResults(v int64) *ListAppImageConfigsInput {
	s.MaxResults = &v
	return s
}

// SetModifiedTimeAfter sets the ModifiedTimeAfter field's value.
func (s *ListAppImageConfigsInput) SetModifiedTimeAfter(v time.Time) *ListAppImageConfigsInput {
	s.ModifiedTimeAfter = &v
	return s
}

// SetModifiedTimeBefore sets the ModifiedTimeBefore field's value.
func (s *ListAppImageConfigsInput) SetModifiedTimeBefore(v time.Time) *ListAppImageConfigsInput {
	s.ModifiedTimeBefore = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListAppImageConfigsInput) SetNameContains(v string) *ListAppImageConfigsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAppImageConfigsInput) SetNextToken(v string) *ListAppImageConfigsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListAppImageConfigsInput) SetSortBy(v string) *ListAppImageConfigsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListAppImageConfigsInput) SetSortOrder(v string) *ListAppImageConfigsInput {
	s.SortOrder = &v
	return s
}

type ListAppImageConfigsOutput struct {
	_ struct{} `type:"structure"`

	// A list of AppImageConfigs and their properties.
	AppImageConfigs []*AppImageConfigDetails `type:"list"`

	// A token for getting the next set of AppImageConfigs, if there are any.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAppImageConfigsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAppImageConfigsOutput) GoString() string {
	return s.String()
}

// SetAppImageConfigs sets the AppImageConfigs field's value.
func (s *ListAppImageConfigsOutput) SetAppImageConfigs(v []*AppImageConfigDetails) *ListAppImageConfigsOutput {
	s.AppImageConfigs = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAppImageConfigsOutput) SetNextToken(v string) *ListAppImageConfigsOutput {
	s.NextToken = &v
	return s
}

type ListAppsInput struct {
	_ struct{} `type:"structure"`

	// A parameter to search for the domain ID.
	DomainIdEquals *string `type:"string"`

	// The total number of items to return in the response. If the total number
	// of items available is more than the value specified, a NextToken is provided
	// in the response. To resume pagination, provide the NextToken value in the
	// as part of a subsequent call. The default value is 10.
	MaxResults *int64 `min:"1" type:"integer"`

	// If the previous response was truncated, you will receive this token. Use
	// it in your next request to receive the next set of results.
	NextToken *string `type:"string"`

	// The parameter by which to sort the results. The default is CreationTime.
	SortBy *string `type:"string" enum:"AppSortKey"`

	// The sort order for the results. The default is Ascending.
	SortOrder *string `type:"string" enum:"SortOrder"`

	// A parameter to search by space name. If UserProfileNameEquals is set, then
	// this value cannot be set.
	SpaceNameEquals *string `type:"string"`

	// A parameter to search by user profile name. If SpaceNameEquals is set, then
	// this value cannot be set.
	UserProfileNameEquals *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAppsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAppsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListAppsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListAppsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdEquals sets the DomainIdEquals field's value.
func (s *ListAppsInput) SetDomainIdEquals(v string) *ListAppsInput {
	s.DomainIdEquals = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListAppsInput) SetMaxResults(v int64) *ListAppsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAppsInput) SetNextToken(v string) *ListAppsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListAppsInput) SetSortBy(v string) *ListAppsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListAppsInput) SetSortOrder(v string) *ListAppsInput {
	s.SortOrder = &v
	return s
}

// SetSpaceNameEquals sets the SpaceNameEquals field's value.
func (s *ListAppsInput) SetSpaceNameEquals(v string) *ListAppsInput {
	s.SpaceNameEquals = &v
	return s
}

// SetUserProfileNameEquals sets the UserProfileNameEquals field's value.
func (s *ListAppsInput) SetUserProfileNameEquals(v string) *ListAppsInput {
	s.UserProfileNameEquals = &v
	return s
}

type ListAppsOutput struct {
	_ struct{} `type:"structure"`

	// The list of apps.
	Apps []*AppDetails `type:"list"`

	// If the previous response was truncated, you will receive this token. Use
	// it in your next request to receive the next set of results.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAppsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAppsOutput) GoString() string {
	return s.String()
}

// SetApps sets the Apps field's value.
func (s *ListAppsOutput) SetApps(v []*AppDetails) *ListAppsOutput {
	s.Apps = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAppsOutput) SetNextToken(v string) *ListAppsOutput {
	s.NextToken = &v
	return s
}

type ListArtifactsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only artifacts of the specified type.
	ArtifactType *string `type:"string"`

	// A filter that returns only artifacts created on or after the specified time.
	CreatedAfter *time.Time `type:"timestamp"`

	// A filter that returns only artifacts created on or before the specified time.
	CreatedBefore *time.Time `type:"timestamp"`

	// The maximum number of artifacts to return in the response. The default value
	// is 10.
	MaxResults *int64 `min:"1" type:"integer"`

	// If the previous call to ListArtifacts didn't return the full set of artifacts,
	// the call returns a token for getting the next set of artifacts.
	NextToken *string `type:"string"`

	// The property used to sort results. The default value is CreationTime.
	SortBy *string `type:"string" enum:"SortArtifactsBy"`

	// The sort order. The default value is Descending.
	SortOrder *string `type:"string" enum:"SortOrder"`

	// A filter that returns only artifacts with the specified source URI.
	SourceUri *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListArtifactsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListArtifactsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListArtifactsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListArtifactsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.SourceUri != nil && len(*s.SourceUri) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SourceUri", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetArtifactType sets the ArtifactType field's value.
func (s *ListArtifactsInput) SetArtifactType(v string) *ListArtifactsInput {
	s.ArtifactType = &v
	return s
}

// SetCreatedAfter sets the CreatedAfter field's value.
func (s *ListArtifactsInput) SetCreatedAfter(v time.Time) *ListArtifactsInput {
	s.CreatedAfter = &v
	return s
}

// SetCreatedBefore sets the CreatedBefore field's value.
func (s *ListArtifactsInput) SetCreatedBefore(v time.Time) *ListArtifactsInput {
	s.CreatedBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListArtifactsInput) SetMaxResults(v int64) *ListArtifactsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListArtifactsInput) SetNextToken(v string) *ListArtifactsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListArtifactsInput) SetSortBy(v string) *ListArtifactsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListArtifactsInput) SetSortOrder(v string) *ListArtifactsInput {
	s.SortOrder = &v
	return s
}

// SetSourceUri sets the SourceUri field's value.
func (s *ListArtifactsInput) SetSourceUri(v string) *ListArtifactsInput {
	s.SourceUri = &v
	return s
}

type ListArtifactsOutput struct {
	_ struct{} `type:"structure"`

	// A list of artifacts and their properties.
	ArtifactSummaries []*ArtifactSummary `type:"list"`

	// A token for getting the next set of artifacts, if there are any.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListArtifactsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListArtifactsOutput) GoString() string {
	return s.String()
}

// SetArtifactSummaries sets the ArtifactSummaries field's value.
func (s *ListArtifactsOutput) SetArtifactSummaries(v []*ArtifactSummary) *ListArtifactsOutput {
	s.ArtifactSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListArtifactsOutput) SetNextToken(v string) *ListArtifactsOutput {
	s.NextToken = &v
	return s
}

type ListAssociationsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only associations of the specified type.
	AssociationType *string `type:"string" enum:"AssociationEdgeType"`

	// A filter that returns only associations created on or after the specified
	// time.
	CreatedAfter *time.Time `type:"timestamp"`

	// A filter that returns only associations created on or before the specified
	// time.
	CreatedBefore *time.Time `type:"timestamp"`

	// A filter that returns only associations with the specified destination Amazon
	// Resource Name (ARN).
	DestinationArn *string `type:"string"`

	// A filter that returns only associations with the specified destination type.
	DestinationType *string `type:"string"`

	// The maximum number of associations to return in the response. The default
	// value is 10.
	MaxResults *int64 `min:"1" type:"integer"`

	// If the previous call to ListAssociations didn't return the full set of associations,
	// the call returns a token for getting the next set of associations.
	NextToken *string `type:"string"`

	// The property used to sort results. The default value is CreationTime.
	SortBy *string `type:"string" enum:"SortAssociationsBy"`

	// The sort order. The default value is Descending.
	SortOrder *string `type:"string" enum:"SortOrder"`

	// A filter that returns only associations with the specified source ARN.
	SourceArn *string `type:"string"`

	// A filter that returns only associations with the specified source type.
	SourceType *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAssociationsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAssociationsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListAssociationsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListAssociationsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAssociationType sets the AssociationType field's value.
func (s *ListAssociationsInput) SetAssociationType(v string) *ListAssociationsInput {
	s.AssociationType = &v
	return s
}

// SetCreatedAfter sets the CreatedAfter field's value.
func (s *ListAssociationsInput) SetCreatedAfter(v time.Time) *ListAssociationsInput {
	s.CreatedAfter = &v
	return s
}

// SetCreatedBefore sets the CreatedBefore field's value.
func (s *ListAssociationsInput) SetCreatedBefore(v time.Time) *ListAssociationsInput {
	s.CreatedBefore = &v
	return s
}

// SetDestinationArn sets the DestinationArn field's value.
func (s *ListAssociationsInput) SetDestinationArn(v string) *ListAssociationsInput {
	s.DestinationArn = &v
	return s
}

// SetDestinationType sets the DestinationType field's value.
func (s *ListAssociationsInput) SetDestinationType(v string) *ListAssociationsInput {
	s.DestinationType = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListAssociationsInput) SetMaxResults(v int64) *ListAssociationsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAssociationsInput) SetNextToken(v string) *ListAssociationsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListAssociationsInput) SetSortBy(v string) *ListAssociationsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListAssociationsInput) SetSortOrder(v string) *ListAssociationsInput {
	s.SortOrder = &v
	return s
}

// SetSourceArn sets the SourceArn field's value.
func (s *ListAssociationsInput) SetSourceArn(v string) *ListAssociationsInput {
	s.SourceArn = &v
	return s
}

// SetSourceType sets the SourceType field's value.
func (s *ListAssociationsInput) SetSourceType(v string) *ListAssociationsInput {
	s.SourceType = &v
	return s
}

type ListAssociationsOutput struct {
	_ struct{} `type:"structure"`

	// A list of associations and their properties.
	AssociationSummaries []*AssociationSummary `type:"list"`

	// A token for getting the next set of associations, if there are any.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAssociationsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAssociationsOutput) GoString() string {
	return s.String()
}

// SetAssociationSummaries sets the AssociationSummaries field's value.
func (s *ListAssociationsOutput) SetAssociationSummaries(v []*AssociationSummary) *ListAssociationsOutput {
	s.AssociationSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAssociationsOutput) SetNextToken(v string) *ListAssociationsOutput {
	s.NextToken = &v
	return s
}

type ListAutoMLJobsInput struct {
	_ struct{} `type:"structure"`

	// Request a list of jobs, using a filter for time.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// Request a list of jobs, using a filter for time.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// Request a list of jobs, using a filter for time.
	LastModifiedTimeAfter *time.Time `type:"timestamp"`

	// Request a list of jobs, using a filter for time.
	LastModifiedTimeBefore *time.Time `type:"timestamp"`

	// Request a list of jobs up to a specified limit.
	MaxResults *int64 `min:"1" type:"integer"`

	// Request a list of jobs, using a search filter for name.
	NameContains *string `type:"string"`

	// If the previous response was truncated, you receive this token. Use it in
	// your next request to receive the next set of results.
	NextToken *string `type:"string"`

	// The parameter by which to sort the results. The default is Name.
	SortBy *string `type:"string" enum:"AutoMLSortBy"`

	// The sort order for the results. The default is Descending.
	SortOrder *string `type:"string" enum:"AutoMLSortOrder"`

	// Request a list of jobs, using a filter for status.
	StatusEquals *string `type:"string" enum:"AutoMLJobStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAutoMLJobsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAutoMLJobsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListAutoMLJobsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListAutoMLJobsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListAutoMLJobsInput) SetCreationTimeAfter(v time.Time) *ListAutoMLJobsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListAutoMLJobsInput) SetCreationTimeBefore(v time.Time) *ListAutoMLJobsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetLastModifiedTimeAfter sets the LastModifiedTimeAfter field's value.
func (s *ListAutoMLJobsInput) SetLastModifiedTimeAfter(v time.Time) *ListAutoMLJobsInput {
	s.LastModifiedTimeAfter = &v
	return s
}

// SetLastModifiedTimeBefore sets the LastModifiedTimeBefore field's value.
func (s *ListAutoMLJobsInput) SetLastModifiedTimeBefore(v time.Time) *ListAutoMLJobsInput {
	s.LastModifiedTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListAutoMLJobsInput) SetMaxResults(v int64) *ListAutoMLJobsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListAutoMLJobsInput) SetNameContains(v string) *ListAutoMLJobsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAutoMLJobsInput) SetNextToken(v string) *ListAutoMLJobsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListAutoMLJobsInput) SetSortBy(v string) *ListAutoMLJobsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListAutoMLJobsInput) SetSortOrder(v string) *ListAutoMLJobsInput {
	s.SortOrder = &v
	return s
}

// SetStatusEquals sets the StatusEquals field's value.
func (s *ListAutoMLJobsInput) SetStatusEquals(v string) *ListAutoMLJobsInput {
	s.StatusEquals = &v
	return s
}

type ListAutoMLJobsOutput struct {
	_ struct{} `type:"structure"`

	// Returns a summary list of jobs.
	//
	// AutoMLJobSummaries is a required field
	AutoMLJobSummaries []*AutoMLJobSummary `type:"list" required:"true"`

	// If the previous response was truncated, you receive this token. Use it in
	// your next request to receive the next set of results.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAutoMLJobsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAutoMLJobsOutput) GoString() string {
	return s.String()
}

// SetAutoMLJobSummaries sets the AutoMLJobSummaries field's value.
func (s *ListAutoMLJobsOutput) SetAutoMLJobSummaries(v []*AutoMLJobSummary) *ListAutoMLJobsOutput {
	s.AutoMLJobSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAutoMLJobsOutput) SetNextToken(v string) *ListAutoMLJobsOutput {
	s.NextToken = &v
	return s
}

type ListCandidatesForAutoMLJobInput struct {
	_ struct{} `type:"structure"`

	// List the candidates created for the job by providing the job's name.
	//
	// AutoMLJobName is a required field
	AutoMLJobName *string `min:"1" type:"string" required:"true"`

	// List the candidates for the job and filter by candidate name.
	CandidateNameEquals *string `min:"1" type:"string"`

	// List the job's candidates up to a specified limit.
	MaxResults *int64 `min:"1" type:"integer"`

	// If the previous response was truncated, you receive this token. Use it in
	// your next request to receive the next set of results.
	NextToken *string `type:"string"`

	// The parameter by which to sort the results. The default is Descending.
	SortBy *string `type:"string" enum:"CandidateSortBy"`

	// The sort order for the results. The default is Ascending.
	SortOrder *string `type:"string" enum:"AutoMLSortOrder"`

	// List the candidates for the job and filter by status.
	StatusEquals *string `type:"string" enum:"CandidateStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListCandidatesForAutoMLJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListCandidatesForAutoMLJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListCandidatesForAutoMLJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListCandidatesForAutoMLJobInput"}
	if s.AutoMLJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("AutoMLJobName"))
	}
	if s.AutoMLJobName != nil && len(*s.AutoMLJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AutoMLJobName", 1))
	}
	if s.CandidateNameEquals != nil && len(*s.CandidateNameEquals) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("CandidateNameEquals", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAutoMLJobName sets the AutoMLJobName field's value.
func (s *ListCandidatesForAutoMLJobInput) SetAutoMLJobName(v string) *ListCandidatesForAutoMLJobInput {
	s.AutoMLJobName = &v
	return s
}

// SetCandidateNameEquals sets the CandidateNameEquals field's value.
func (s *ListCandidatesForAutoMLJobInput) SetCandidateNameEquals(v string) *ListCandidatesForAutoMLJobInput {
	s.CandidateNameEquals = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListCandidatesForAutoMLJobInput) SetMaxResults(v int64) *ListCandidatesForAutoMLJobInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListCandidatesForAutoMLJobInput) SetNextToken(v string) *ListCandidatesForAutoMLJobInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListCandidatesForAutoMLJobInput) SetSortBy(v string) *ListCandidatesForAutoMLJobInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListCandidatesForAutoMLJobInput) SetSortOrder(v string) *ListCandidatesForAutoMLJobInput {
	s.SortOrder = &v
	return s
}

// SetStatusEquals sets the StatusEquals field's value.
func (s *ListCandidatesForAutoMLJobInput) SetStatusEquals(v string) *ListCandidatesForAutoMLJobInput {
	s.StatusEquals = &v
	return s
}

type ListCandidatesForAutoMLJobOutput struct {
	_ struct{} `type:"structure"`

	// Summaries about the AutoMLCandidates.
	//
	// Candidates is a required field
	Candidates []*AutoMLCandidate `type:"list" required:"true"`

	// If the previous response was truncated, you receive this token. Use it in
	// your next request to receive the next set of results.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListCandidatesForAutoMLJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListCandidatesForAutoMLJobOutput) GoString() string {
	return s.String()
}

// SetCandidates sets the Candidates field's value.
func (s *ListCandidatesForAutoMLJobOutput) SetCandidates(v []*AutoMLCandidate) *ListCandidatesForAutoMLJobOutput {
	s.Candidates = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListCandidatesForAutoMLJobOutput) SetNextToken(v string) *ListCandidatesForAutoMLJobOutput {
	s.NextToken = &v
	return s
}

type ListClusterNodesInput struct {
	_ struct{} `type:"structure"`

	// The string name or the Amazon Resource Name (ARN) of the SageMaker HyperPod
	// cluster in which you want to retrieve the list of nodes.
	//
	// ClusterName is a required field
	ClusterName *string `type:"string" required:"true"`

	// A filter that returns nodes in a SageMaker HyperPod cluster created after
	// the specified time. Timestamps are formatted according to the ISO 8601 standard.
	//
	// Acceptable formats include:
	//
	//    * YYYY-MM-DDThh:mm:ss.sssTZD (UTC), for example, 2014-10-01T20:30:00.000Z
	//
	//    * YYYY-MM-DDThh:mm:ss.sssTZD (with offset), for example, 2014-10-01T12:30:00.000-08:00
	//
	//    * YYYY-MM-DD, for example, 2014-10-01
	//
	//    * Unix time in seconds, for example, 1412195400. This is also referred
	//    to as Unix Epoch time and represents the number of seconds since midnight,
	//    January 1, 1970 UTC.
	//
	// For more information about the timestamp format, see Timestamp (https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-types.html#parameter-type-timestamp)
	// in the Amazon Web Services Command Line Interface User Guide.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns nodes in a SageMaker HyperPod cluster created before
	// the specified time. The acceptable formats are the same as the timestamp
	// formats for CreationTimeAfter. For more information about the timestamp format,
	// see Timestamp (https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-types.html#parameter-type-timestamp)
	// in the Amazon Web Services Command Line Interface User Guide.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// A filter that returns the instance groups whose name contain a specified
	// string.
	InstanceGroupNameContains *string `min:"1" type:"string"`

	// The maximum number of nodes to return in the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// If the result of the previous ListClusterNodes request was truncated, the
	// response includes a NextToken. To retrieve the next set of cluster nodes,
	// use the token in the next request.
	NextToken *string `type:"string"`

	// The field by which to sort results. The default value is CREATION_TIME.
	SortBy *string `type:"string" enum:"ClusterSortBy"`

	// The sort order for results. The default value is Ascending.
	SortOrder *string `type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListClusterNodesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListClusterNodesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListClusterNodesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListClusterNodesInput"}
	if s.ClusterName == nil {
		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
	}
	if s.InstanceGroupNameContains != nil && len(*s.InstanceGroupNameContains) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("InstanceGroupNameContains", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClusterName sets the ClusterName field's value.
func (s *ListClusterNodesInput) SetClusterName(v string) *ListClusterNodesInput {
	s.ClusterName = &v
	return s
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListClusterNodesInput) SetCreationTimeAfter(v time.Time) *ListClusterNodesInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListClusterNodesInput) SetCreationTimeBefore(v time.Time) *ListClusterNodesInput {
	s.CreationTimeBefore = &v
	return s
}

// SetInstanceGroupNameContains sets the InstanceGroupNameContains field's value.
func (s *ListClusterNodesInput) SetInstanceGroupNameContains(v string) *ListClusterNodesInput {
	s.InstanceGroupNameContains = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListClusterNodesInput) SetMaxResults(v int64) *ListClusterNodesInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListClusterNodesInput) SetNextToken(v string) *ListClusterNodesInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListClusterNodesInput) SetSortBy(v string) *ListClusterNodesInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListClusterNodesInput) SetSortOrder(v string) *ListClusterNodesInput {
	s.SortOrder = &v
	return s
}

type ListClusterNodesOutput struct {
	_ struct{} `type:"structure"`

	// The summaries of listed instances in a SageMaker HyperPod cluster
	//
	// ClusterNodeSummaries is a required field
	ClusterNodeSummaries []*ClusterNodeSummary `type:"list" required:"true"`

	// The next token specified for listing instances in a SageMaker HyperPod cluster.
	//
	// NextToken is a required field
	NextToken *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListClusterNodesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListClusterNodesOutput) GoString() string {
	return s.String()
}

// SetClusterNodeSummaries sets the ClusterNodeSummaries field's value.
func (s *ListClusterNodesOutput) SetClusterNodeSummaries(v []*ClusterNodeSummary) *ListClusterNodesOutput {
	s.ClusterNodeSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListClusterNodesOutput) SetNextToken(v string) *ListClusterNodesOutput {
	s.NextToken = &v
	return s
}

type ListClustersInput struct {
	_ struct{} `type:"structure"`

	// Set a start time for the time range during which you want to list SageMaker
	// HyperPod clusters. Timestamps are formatted according to the ISO 8601 standard.
	//
	// Acceptable formats include:
	//
	//    * YYYY-MM-DDThh:mm:ss.sssTZD (UTC), for example, 2014-10-01T20:30:00.000Z
	//
	//    * YYYY-MM-DDThh:mm:ss.sssTZD (with offset), for example, 2014-10-01T12:30:00.000-08:00
	//
	//    * YYYY-MM-DD, for example, 2014-10-01
	//
	//    * Unix time in seconds, for example, 1412195400. This is also referred
	//    to as Unix Epoch time and represents the number of seconds since midnight,
	//    January 1, 1970 UTC.
	//
	// For more information about the timestamp format, see Timestamp (https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-types.html#parameter-type-timestamp)
	// in the Amazon Web Services Command Line Interface User Guide.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// Set an end time for the time range during which you want to list SageMaker
	// HyperPod clusters. A filter that returns nodes in a SageMaker HyperPod cluster
	// created before the specified time. The acceptable formats are the same as
	// the timestamp formats for CreationTimeAfter. For more information about the
	// timestamp format, see Timestamp (https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-types.html#parameter-type-timestamp)
	// in the Amazon Web Services Command Line Interface User Guide.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// Set the maximum number of SageMaker HyperPod clusters to list.
	MaxResults *int64 `min:"1" type:"integer"`

	// Set the maximum number of instances to print in the list.
	NameContains *string `type:"string"`

	// Set the next token to retrieve the list of SageMaker HyperPod clusters.
	NextToken *string `type:"string"`

	// The field by which to sort results. The default value is CREATION_TIME.
	SortBy *string `type:"string" enum:"ClusterSortBy"`

	// The sort order for results. The default value is Ascending.
	SortOrder *string `type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListClustersInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListClustersInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListClustersInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListClustersInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListClustersInput) SetCreationTimeAfter(v time.Time) *ListClustersInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListClustersInput) SetCreationTimeBefore(v time.Time) *ListClustersInput {
	s.CreationTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListClustersInput) SetMaxResults(v int64) *ListClustersInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListClustersInput) SetNameContains(v string) *ListClustersInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListClustersInput) SetNextToken(v string) *ListClustersInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListClustersInput) SetSortBy(v string) *ListClustersInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListClustersInput) SetSortOrder(v string) *ListClustersInput {
	s.SortOrder = &v
	return s
}

type ListClustersOutput struct {
	_ struct{} `type:"structure"`

	// The summaries of listed SageMaker HyperPod clusters.
	//
	// ClusterSummaries is a required field
	ClusterSummaries []*ClusterSummary `type:"list" required:"true"`

	// If the result of the previous ListClusters request was truncated, the response
	// includes a NextToken. To retrieve the next set of clusters, use the token
	// in the next request.
	//
	// NextToken is a required field
	NextToken *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListClustersOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListClustersOutput) GoString() string {
	return s.String()
}

// SetClusterSummaries sets the ClusterSummaries field's value.
func (s *ListClustersOutput) SetClusterSummaries(v []*ClusterSummary) *ListClustersOutput {
	s.ClusterSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListClustersOutput) SetNextToken(v string) *ListClustersOutput {
	s.NextToken = &v
	return s
}

type ListCodeRepositoriesInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only Git repositories that were created after the specified
	// time.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only Git repositories that were created before the
	// specified time.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// A filter that returns only Git repositories that were last modified after
	// the specified time.
	LastModifiedTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only Git repositories that were last modified before
	// the specified time.
	LastModifiedTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of Git repositories to return in the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// A string in the Git repositories name. This filter returns only repositories
	// whose name contains the specified string.
	NameContains *string `type:"string"`

	// If the result of a ListCodeRepositoriesOutput request was truncated, the
	// response includes a NextToken. To get the next set of Git repositories, use
	// the token in the next request.
	NextToken *string `type:"string"`

	// The field to sort results by. The default is Name.
	SortBy *string `type:"string" enum:"CodeRepositorySortBy"`

	// The sort order for results. The default is Ascending.
	SortOrder *string `type:"string" enum:"CodeRepositorySortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListCodeRepositoriesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListCodeRepositoriesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListCodeRepositoriesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListCodeRepositoriesInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListCodeRepositoriesInput) SetCreationTimeAfter(v time.Time) *ListCodeRepositoriesInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListCodeRepositoriesInput) SetCreationTimeBefore(v time.Time) *ListCodeRepositoriesInput {
	s.CreationTimeBefore = &v
	return s
}

// SetLastModifiedTimeAfter sets the LastModifiedTimeAfter field's value.
func (s *ListCodeRepositoriesInput) SetLastModifiedTimeAfter(v time.Time) *ListCodeRepositoriesInput {
	s.LastModifiedTimeAfter = &v
	return s
}

// SetLastModifiedTimeBefore sets the LastModifiedTimeBefore field's value.
func (s *ListCodeRepositoriesInput) SetLastModifiedTimeBefore(v time.Time) *ListCodeRepositoriesInput {
	s.LastModifiedTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListCodeRepositoriesInput) SetMaxResults(v int64) *ListCodeRepositoriesInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListCodeRepositoriesInput) SetNameContains(v string) *ListCodeRepositoriesInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListCodeRepositoriesInput) SetNextToken(v string) *ListCodeRepositoriesInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListCodeRepositoriesInput) SetSortBy(v string) *ListCodeRepositoriesInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListCodeRepositoriesInput) SetSortOrder(v string) *ListCodeRepositoriesInput {
	s.SortOrder = &v
	return s
}

type ListCodeRepositoriesOutput struct {
	_ struct{} `type:"structure"`

	// Gets a list of summaries of the Git repositories. Each summary specifies
	// the following values for the repository:
	//
	//    * Name
	//
	//    * Amazon Resource Name (ARN)
	//
	//    * Creation time
	//
	//    * Last modified time
	//
	//    * Configuration information, including the URL location of the repository
	//    and the ARN of the Amazon Web Services Secrets Manager secret that contains
	//    the credentials used to access the repository.
	//
	// CodeRepositorySummaryList is a required field
	CodeRepositorySummaryList []*CodeRepositorySummary `type:"list" required:"true"`

	// If the result of a ListCodeRepositoriesOutput request was truncated, the
	// response includes a NextToken. To get the next set of Git repositories, use
	// the token in the next request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListCodeRepositoriesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListCodeRepositoriesOutput) GoString() string {
	return s.String()
}

// SetCodeRepositorySummaryList sets the CodeRepositorySummaryList field's value.
func (s *ListCodeRepositoriesOutput) SetCodeRepositorySummaryList(v []*CodeRepositorySummary) *ListCodeRepositoriesOutput {
	s.CodeRepositorySummaryList = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListCodeRepositoriesOutput) SetNextToken(v string) *ListCodeRepositoriesOutput {
	s.NextToken = &v
	return s
}

type ListCompilationJobsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns the model compilation jobs that were created after
	// a specified time.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns the model compilation jobs that were created before
	// a specified time.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// A filter that returns the model compilation jobs that were modified after
	// a specified time.
	LastModifiedTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns the model compilation jobs that were modified before
	// a specified time.
	LastModifiedTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of model compilation jobs to return in the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// A filter that returns the model compilation jobs whose name contains a specified
	// string.
	NameContains *string `type:"string"`

	// If the result of the previous ListCompilationJobs request was truncated,
	// the response includes a NextToken. To retrieve the next set of model compilation
	// jobs, use the token in the next request.
	NextToken *string `type:"string"`

	// The field by which to sort results. The default is CreationTime.
	SortBy *string `type:"string" enum:"ListCompilationJobsSortBy"`

	// The sort order for results. The default is Ascending.
	SortOrder *string `type:"string" enum:"SortOrder"`

	// A filter that retrieves model compilation jobs with a specific CompilationJobStatus
	// status.
	StatusEquals *string `type:"string" enum:"CompilationJobStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListCompilationJobsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListCompilationJobsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListCompilationJobsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListCompilationJobsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListCompilationJobsInput) SetCreationTimeAfter(v time.Time) *ListCompilationJobsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListCompilationJobsInput) SetCreationTimeBefore(v time.Time) *ListCompilationJobsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetLastModifiedTimeAfter sets the LastModifiedTimeAfter field's value.
func (s *ListCompilationJobsInput) SetLastModifiedTimeAfter(v time.Time) *ListCompilationJobsInput {
	s.LastModifiedTimeAfter = &v
	return s
}

// SetLastModifiedTimeBefore sets the LastModifiedTimeBefore field's value.
func (s *ListCompilationJobsInput) SetLastModifiedTimeBefore(v time.Time) *ListCompilationJobsInput {
	s.LastModifiedTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListCompilationJobsInput) SetMaxResults(v int64) *ListCompilationJobsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListCompilationJobsInput) SetNameContains(v string) *ListCompilationJobsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListCompilationJobsInput) SetNextToken(v string) *ListCompilationJobsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListCompilationJobsInput) SetSortBy(v string) *ListCompilationJobsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListCompilationJobsInput) SetSortOrder(v string) *ListCompilationJobsInput {
	s.SortOrder = &v
	return s
}

// SetStatusEquals sets the StatusEquals field's value.
func (s *ListCompilationJobsInput) SetStatusEquals(v string) *ListCompilationJobsInput {
	s.StatusEquals = &v
	return s
}

type ListCompilationJobsOutput struct {
	_ struct{} `type:"structure"`

	// An array of CompilationJobSummary (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CompilationJobSummary.html)
	// objects, each describing a model compilation job.
	//
	// CompilationJobSummaries is a required field
	CompilationJobSummaries []*CompilationJobSummary `type:"list" required:"true"`

	// If the response is truncated, Amazon SageMaker returns this NextToken. To
	// retrieve the next set of model compilation jobs, use this token in the next
	// request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListCompilationJobsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListCompilationJobsOutput) GoString() string {
	return s.String()
}

// SetCompilationJobSummaries sets the CompilationJobSummaries field's value.
func (s *ListCompilationJobsOutput) SetCompilationJobSummaries(v []*CompilationJobSummary) *ListCompilationJobsOutput {
	s.CompilationJobSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListCompilationJobsOutput) SetNextToken(v string) *ListCompilationJobsOutput {
	s.NextToken = &v
	return s
}

type ListContextsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only contexts of the specified type.
	ContextType *string `type:"string"`

	// A filter that returns only contexts created on or after the specified time.
	CreatedAfter *time.Time `type:"timestamp"`

	// A filter that returns only contexts created on or before the specified time.
	CreatedBefore *time.Time `type:"timestamp"`

	// The maximum number of contexts to return in the response. The default value
	// is 10.
	MaxResults *int64 `min:"1" type:"integer"`

	// If the previous call to ListContexts didn't return the full set of contexts,
	// the call returns a token for getting the next set of contexts.
	NextToken *string `type:"string"`

	// The property used to sort results. The default value is CreationTime.
	SortBy *string `type:"string" enum:"SortContextsBy"`

	// The sort order. The default value is Descending.
	SortOrder *string `type:"string" enum:"SortOrder"`

	// A filter that returns only contexts with the specified source URI.
	SourceUri *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListContextsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListContextsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListContextsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListContextsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.SourceUri != nil && len(*s.SourceUri) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SourceUri", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContextType sets the ContextType field's value.
func (s *ListContextsInput) SetContextType(v string) *ListContextsInput {
	s.ContextType = &v
	return s
}

// SetCreatedAfter sets the CreatedAfter field's value.
func (s *ListContextsInput) SetCreatedAfter(v time.Time) *ListContextsInput {
	s.CreatedAfter = &v
	return s
}

// SetCreatedBefore sets the CreatedBefore field's value.
func (s *ListContextsInput) SetCreatedBefore(v time.Time) *ListContextsInput {
	s.CreatedBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListContextsInput) SetMaxResults(v int64) *ListContextsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListContextsInput) SetNextToken(v string) *ListContextsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListContextsInput) SetSortBy(v string) *ListContextsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListContextsInput) SetSortOrder(v string) *ListContextsInput {
	s.SortOrder = &v
	return s
}

// SetSourceUri sets the SourceUri field's value.
func (s *ListContextsInput) SetSourceUri(v string) *ListContextsInput {
	s.SourceUri = &v
	return s
}

type ListContextsOutput struct {
	_ struct{} `type:"structure"`

	// A list of contexts and their properties.
	ContextSummaries []*ContextSummary `type:"list"`

	// A token for getting the next set of contexts, if there are any.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListContextsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListContextsOutput) GoString() string {
	return s.String()
}

// SetContextSummaries sets the ContextSummaries field's value.
func (s *ListContextsOutput) SetContextSummaries(v []*ContextSummary) *ListContextsOutput {
	s.ContextSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListContextsOutput) SetNextToken(v string) *ListContextsOutput {
	s.NextToken = &v
	return s
}

type ListDataQualityJobDefinitionsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only data quality monitoring job definitions created
	// after the specified time.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only data quality monitoring job definitions created
	// before the specified time.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// A filter that lists the data quality job definitions associated with the
	// specified endpoint.
	EndpointName *string `type:"string"`

	// The maximum number of data quality monitoring job definitions to return in
	// the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// A string in the data quality monitoring job definition name. This filter
	// returns only data quality monitoring job definitions whose name contains
	// the specified string.
	NameContains *string `type:"string"`

	// If the result of the previous ListDataQualityJobDefinitions request was truncated,
	// the response includes a NextToken. To retrieve the next set of transform
	// jobs, use the token in the next request.>
	NextToken *string `type:"string"`

	// The field to sort results by. The default is CreationTime.
	SortBy *string `type:"string" enum:"MonitoringJobDefinitionSortKey"`

	// Whether to sort the results in Ascending or Descending order. The default
	// is Descending.
	SortOrder *string `type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDataQualityJobDefinitionsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDataQualityJobDefinitionsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListDataQualityJobDefinitionsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListDataQualityJobDefinitionsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListDataQualityJobDefinitionsInput) SetCreationTimeAfter(v time.Time) *ListDataQualityJobDefinitionsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListDataQualityJobDefinitionsInput) SetCreationTimeBefore(v time.Time) *ListDataQualityJobDefinitionsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *ListDataQualityJobDefinitionsInput) SetEndpointName(v string) *ListDataQualityJobDefinitionsInput {
	s.EndpointName = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListDataQualityJobDefinitionsInput) SetMaxResults(v int64) *ListDataQualityJobDefinitionsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListDataQualityJobDefinitionsInput) SetNameContains(v string) *ListDataQualityJobDefinitionsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListDataQualityJobDefinitionsInput) SetNextToken(v string) *ListDataQualityJobDefinitionsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListDataQualityJobDefinitionsInput) SetSortBy(v string) *ListDataQualityJobDefinitionsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListDataQualityJobDefinitionsInput) SetSortOrder(v string) *ListDataQualityJobDefinitionsInput {
	s.SortOrder = &v
	return s
}

type ListDataQualityJobDefinitionsOutput struct {
	_ struct{} `type:"structure"`

	// A list of data quality monitoring job definitions.
	//
	// JobDefinitionSummaries is a required field
	JobDefinitionSummaries []*MonitoringJobDefinitionSummary `type:"list" required:"true"`

	// If the result of the previous ListDataQualityJobDefinitions request was truncated,
	// the response includes a NextToken. To retrieve the next set of data quality
	// monitoring job definitions, use the token in the next request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDataQualityJobDefinitionsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDataQualityJobDefinitionsOutput) GoString() string {
	return s.String()
}

// SetJobDefinitionSummaries sets the JobDefinitionSummaries field's value.
func (s *ListDataQualityJobDefinitionsOutput) SetJobDefinitionSummaries(v []*MonitoringJobDefinitionSummary) *ListDataQualityJobDefinitionsOutput {
	s.JobDefinitionSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListDataQualityJobDefinitionsOutput) SetNextToken(v string) *ListDataQualityJobDefinitionsOutput {
	s.NextToken = &v
	return s
}

type ListDeviceFleetsInput struct {
	_ struct{} `type:"structure"`

	// Filter fleets where packaging job was created after specified time.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// Filter fleets where the edge packaging job was created before specified time.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// Select fleets where the job was updated after X
	LastModifiedTimeAfter *time.Time `type:"timestamp"`

	// Select fleets where the job was updated before X
	LastModifiedTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of results to select.
	MaxResults *int64 `type:"integer"`

	// Filter for fleets containing this name in their fleet device name.
	NameContains *string `type:"string"`

	// The response from the last list when returning a list large enough to need
	// tokening.
	NextToken *string `type:"string"`

	// The column to sort by.
	SortBy *string `type:"string" enum:"ListDeviceFleetsSortBy"`

	// What direction to sort in.
	SortOrder *string `type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDeviceFleetsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDeviceFleetsInput) GoString() string {
	return s.String()
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListDeviceFleetsInput) SetCreationTimeAfter(v time.Time) *ListDeviceFleetsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListDeviceFleetsInput) SetCreationTimeBefore(v time.Time) *ListDeviceFleetsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetLastModifiedTimeAfter sets the LastModifiedTimeAfter field's value.
func (s *ListDeviceFleetsInput) SetLastModifiedTimeAfter(v time.Time) *ListDeviceFleetsInput {
	s.LastModifiedTimeAfter = &v
	return s
}

// SetLastModifiedTimeBefore sets the LastModifiedTimeBefore field's value.
func (s *ListDeviceFleetsInput) SetLastModifiedTimeBefore(v time.Time) *ListDeviceFleetsInput {
	s.LastModifiedTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListDeviceFleetsInput) SetMaxResults(v int64) *ListDeviceFleetsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListDeviceFleetsInput) SetNameContains(v string) *ListDeviceFleetsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListDeviceFleetsInput) SetNextToken(v string) *ListDeviceFleetsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListDeviceFleetsInput) SetSortBy(v string) *ListDeviceFleetsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListDeviceFleetsInput) SetSortOrder(v string) *ListDeviceFleetsInput {
	s.SortOrder = &v
	return s
}

type ListDeviceFleetsOutput struct {
	_ struct{} `type:"structure"`

	// Summary of the device fleet.
	//
	// DeviceFleetSummaries is a required field
	DeviceFleetSummaries []*DeviceFleetSummary `type:"list" required:"true"`

	// The response from the last list when returning a list large enough to need
	// tokening.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDeviceFleetsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDeviceFleetsOutput) GoString() string {
	return s.String()
}

// SetDeviceFleetSummaries sets the DeviceFleetSummaries field's value.
func (s *ListDeviceFleetsOutput) SetDeviceFleetSummaries(v []*DeviceFleetSummary) *ListDeviceFleetsOutput {
	s.DeviceFleetSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListDeviceFleetsOutput) SetNextToken(v string) *ListDeviceFleetsOutput {
	s.NextToken = &v
	return s
}

type ListDevicesInput struct {
	_ struct{} `type:"structure"`

	// Filter for fleets containing this name in their device fleet name.
	DeviceFleetName *string `min:"1" type:"string"`

	// Select fleets where the job was updated after X
	LatestHeartbeatAfter *time.Time `type:"timestamp"`

	// Maximum number of results to select.
	MaxResults *int64 `type:"integer"`

	// A filter that searches devices that contains this name in any of their models.
	ModelName *string `min:"1" type:"string"`

	// The response from the last list when returning a list large enough to need
	// tokening.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDevicesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDevicesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListDevicesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListDevicesInput"}
	if s.DeviceFleetName != nil && len(*s.DeviceFleetName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DeviceFleetName", 1))
	}
	if s.ModelName != nil && len(*s.ModelName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDeviceFleetName sets the DeviceFleetName field's value.
func (s *ListDevicesInput) SetDeviceFleetName(v string) *ListDevicesInput {
	s.DeviceFleetName = &v
	return s
}

// SetLatestHeartbeatAfter sets the LatestHeartbeatAfter field's value.
func (s *ListDevicesInput) SetLatestHeartbeatAfter(v time.Time) *ListDevicesInput {
	s.LatestHeartbeatAfter = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListDevicesInput) SetMaxResults(v int64) *ListDevicesInput {
	s.MaxResults = &v
	return s
}

// SetModelName sets the ModelName field's value.
func (s *ListDevicesInput) SetModelName(v string) *ListDevicesInput {
	s.ModelName = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListDevicesInput) SetNextToken(v string) *ListDevicesInput {
	s.NextToken = &v
	return s
}

type ListDevicesOutput struct {
	_ struct{} `type:"structure"`

	// Summary of devices.
	//
	// DeviceSummaries is a required field
	DeviceSummaries []*DeviceSummary `type:"list" required:"true"`

	// The response from the last list when returning a list large enough to need
	// tokening.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDevicesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDevicesOutput) GoString() string {
	return s.String()
}

// SetDeviceSummaries sets the DeviceSummaries field's value.
func (s *ListDevicesOutput) SetDeviceSummaries(v []*DeviceSummary) *ListDevicesOutput {
	s.DeviceSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListDevicesOutput) SetNextToken(v string) *ListDevicesOutput {
	s.NextToken = &v
	return s
}

type ListDomainsInput struct {
	_ struct{} `type:"structure"`

	// The total number of items to return in the response. If the total number
	// of items available is more than the value specified, a NextToken is provided
	// in the response. To resume pagination, provide the NextToken value in the
	// as part of a subsequent call. The default value is 10.
	MaxResults *int64 `min:"1" type:"integer"`

	// If the previous response was truncated, you will receive this token. Use
	// it in your next request to receive the next set of results.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDomainsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDomainsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListDomainsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListDomainsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListDomainsInput) SetMaxResults(v int64) *ListDomainsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListDomainsInput) SetNextToken(v string) *ListDomainsInput {
	s.NextToken = &v
	return s
}

type ListDomainsOutput struct {
	_ struct{} `type:"structure"`

	// The list of domains.
	Domains []*DomainDetails `type:"list"`

	// If the previous response was truncated, you will receive this token. Use
	// it in your next request to receive the next set of results.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDomainsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDomainsOutput) GoString() string {
	return s.String()
}

// SetDomains sets the Domains field's value.
func (s *ListDomainsOutput) SetDomains(v []*DomainDetails) *ListDomainsOutput {
	s.Domains = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListDomainsOutput) SetNextToken(v string) *ListDomainsOutput {
	s.NextToken = &v
	return s
}

type ListEdgeDeploymentPlansInput struct {
	_ struct{} `type:"structure"`

	// Selects edge deployment plans created after this time.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// Selects edge deployment plans created before this time.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// Selects edge deployment plans with a device fleet name containing this name.
	DeviceFleetNameContains *string `type:"string"`

	// Selects edge deployment plans that were last updated after this time.
	LastModifiedTimeAfter *time.Time `type:"timestamp"`

	// Selects edge deployment plans that were last updated before this time.
	LastModifiedTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of results to select (50 by default).
	MaxResults *int64 `type:"integer"`

	// Selects edge deployment plans with names containing this name.
	NameContains *string `type:"string"`

	// The response from the last list when returning a list large enough to need
	// tokening.
	NextToken *string `type:"string"`

	// The column by which to sort the edge deployment plans. Can be one of NAME,
	// DEVICEFLEETNAME, CREATIONTIME, LASTMODIFIEDTIME.
	SortBy *string `type:"string" enum:"ListEdgeDeploymentPlansSortBy"`

	// The direction of the sorting (ascending or descending).
	SortOrder *string `type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEdgeDeploymentPlansInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEdgeDeploymentPlansInput) GoString() string {
	return s.String()
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListEdgeDeploymentPlansInput) SetCreationTimeAfter(v time.Time) *ListEdgeDeploymentPlansInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListEdgeDeploymentPlansInput) SetCreationTimeBefore(v time.Time) *ListEdgeDeploymentPlansInput {
	s.CreationTimeBefore = &v
	return s
}

// SetDeviceFleetNameContains sets the DeviceFleetNameContains field's value.
func (s *ListEdgeDeploymentPlansInput) SetDeviceFleetNameContains(v string) *ListEdgeDeploymentPlansInput {
	s.DeviceFleetNameContains = &v
	return s
}

// SetLastModifiedTimeAfter sets the LastModifiedTimeAfter field's value.
func (s *ListEdgeDeploymentPlansInput) SetLastModifiedTimeAfter(v time.Time) *ListEdgeDeploymentPlansInput {
	s.LastModifiedTimeAfter = &v
	return s
}

// SetLastModifiedTimeBefore sets the LastModifiedTimeBefore field's value.
func (s *ListEdgeDeploymentPlansInput) SetLastModifiedTimeBefore(v time.Time) *ListEdgeDeploymentPlansInput {
	s.LastModifiedTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListEdgeDeploymentPlansInput) SetMaxResults(v int64) *ListEdgeDeploymentPlansInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListEdgeDeploymentPlansInput) SetNameContains(v string) *ListEdgeDeploymentPlansInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListEdgeDeploymentPlansInput) SetNextToken(v string) *ListEdgeDeploymentPlansInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListEdgeDeploymentPlansInput) SetSortBy(v string) *ListEdgeDeploymentPlansInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListEdgeDeploymentPlansInput) SetSortOrder(v string) *ListEdgeDeploymentPlansInput {
	s.SortOrder = &v
	return s
}

type ListEdgeDeploymentPlansOutput struct {
	_ struct{} `type:"structure"`

	// List of summaries of edge deployment plans.
	//
	// EdgeDeploymentPlanSummaries is a required field
	EdgeDeploymentPlanSummaries []*EdgeDeploymentPlanSummary `type:"list" required:"true"`

	// The token to use when calling the next page of results.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEdgeDeploymentPlansOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEdgeDeploymentPlansOutput) GoString() string {
	return s.String()
}

// SetEdgeDeploymentPlanSummaries sets the EdgeDeploymentPlanSummaries field's value.
func (s *ListEdgeDeploymentPlansOutput) SetEdgeDeploymentPlanSummaries(v []*EdgeDeploymentPlanSummary) *ListEdgeDeploymentPlansOutput {
	s.EdgeDeploymentPlanSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListEdgeDeploymentPlansOutput) SetNextToken(v string) *ListEdgeDeploymentPlansOutput {
	s.NextToken = &v
	return s
}

type ListEdgePackagingJobsInput struct {
	_ struct{} `type:"structure"`

	// Select jobs where the job was created after specified time.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// Select jobs where the job was created before specified time.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// Select jobs where the job was updated after specified time.
	LastModifiedTimeAfter *time.Time `type:"timestamp"`

	// Select jobs where the job was updated before specified time.
	LastModifiedTimeBefore *time.Time `type:"timestamp"`

	// Maximum number of results to select.
	MaxResults *int64 `type:"integer"`

	// Filter for jobs where the model name contains this string.
	ModelNameContains *string `type:"string"`

	// Filter for jobs containing this name in their packaging job name.
	NameContains *string `type:"string"`

	// The response from the last list when returning a list large enough to need
	// tokening.
	NextToken *string `type:"string"`

	// Use to specify what column to sort by.
	SortBy *string `type:"string" enum:"ListEdgePackagingJobsSortBy"`

	// What direction to sort by.
	SortOrder *string `type:"string" enum:"SortOrder"`

	// The job status to filter for.
	StatusEquals *string `type:"string" enum:"EdgePackagingJobStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEdgePackagingJobsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEdgePackagingJobsInput) GoString() string {
	return s.String()
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListEdgePackagingJobsInput) SetCreationTimeAfter(v time.Time) *ListEdgePackagingJobsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListEdgePackagingJobsInput) SetCreationTimeBefore(v time.Time) *ListEdgePackagingJobsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetLastModifiedTimeAfter sets the LastModifiedTimeAfter field's value.
func (s *ListEdgePackagingJobsInput) SetLastModifiedTimeAfter(v time.Time) *ListEdgePackagingJobsInput {
	s.LastModifiedTimeAfter = &v
	return s
}

// SetLastModifiedTimeBefore sets the LastModifiedTimeBefore field's value.
func (s *ListEdgePackagingJobsInput) SetLastModifiedTimeBefore(v time.Time) *ListEdgePackagingJobsInput {
	s.LastModifiedTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListEdgePackagingJobsInput) SetMaxResults(v int64) *ListEdgePackagingJobsInput {
	s.MaxResults = &v
	return s
}

// SetModelNameContains sets the ModelNameContains field's value.
func (s *ListEdgePackagingJobsInput) SetModelNameContains(v string) *ListEdgePackagingJobsInput {
	s.ModelNameContains = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListEdgePackagingJobsInput) SetNameContains(v string) *ListEdgePackagingJobsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListEdgePackagingJobsInput) SetNextToken(v string) *ListEdgePackagingJobsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListEdgePackagingJobsInput) SetSortBy(v string) *ListEdgePackagingJobsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListEdgePackagingJobsInput) SetSortOrder(v string) *ListEdgePackagingJobsInput {
	s.SortOrder = &v
	return s
}

// SetStatusEquals sets the StatusEquals field's value.
func (s *ListEdgePackagingJobsInput) SetStatusEquals(v string) *ListEdgePackagingJobsInput {
	s.StatusEquals = &v
	return s
}

type ListEdgePackagingJobsOutput struct {
	_ struct{} `type:"structure"`

	// Summaries of edge packaging jobs.
	//
	// EdgePackagingJobSummaries is a required field
	EdgePackagingJobSummaries []*EdgePackagingJobSummary `type:"list" required:"true"`

	// Token to use when calling the next page of results.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEdgePackagingJobsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEdgePackagingJobsOutput) GoString() string {
	return s.String()
}

// SetEdgePackagingJobSummaries sets the EdgePackagingJobSummaries field's value.
func (s *ListEdgePackagingJobsOutput) SetEdgePackagingJobSummaries(v []*EdgePackagingJobSummary) *ListEdgePackagingJobsOutput {
	s.EdgePackagingJobSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListEdgePackagingJobsOutput) SetNextToken(v string) *ListEdgePackagingJobsOutput {
	s.NextToken = &v
	return s
}

type ListEndpointConfigsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only endpoint configurations with a creation time greater
	// than or equal to the specified time (timestamp).
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only endpoint configurations created before the specified
	// time (timestamp).
	CreationTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of training jobs to return in the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// A string in the endpoint configuration name. This filter returns only endpoint
	// configurations whose name contains the specified string.
	NameContains *string `type:"string"`

	// If the result of the previous ListEndpointConfig request was truncated, the
	// response includes a NextToken. To retrieve the next set of endpoint configurations,
	// use the token in the next request.
	NextToken *string `type:"string"`

	// The field to sort results by. The default is CreationTime.
	SortBy *string `type:"string" enum:"EndpointConfigSortKey"`

	// The sort order for results. The default is Descending.
	SortOrder *string `type:"string" enum:"OrderKey"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEndpointConfigsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEndpointConfigsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListEndpointConfigsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListEndpointConfigsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListEndpointConfigsInput) SetCreationTimeAfter(v time.Time) *ListEndpointConfigsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListEndpointConfigsInput) SetCreationTimeBefore(v time.Time) *ListEndpointConfigsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListEndpointConfigsInput) SetMaxResults(v int64) *ListEndpointConfigsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListEndpointConfigsInput) SetNameContains(v string) *ListEndpointConfigsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListEndpointConfigsInput) SetNextToken(v string) *ListEndpointConfigsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListEndpointConfigsInput) SetSortBy(v string) *ListEndpointConfigsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListEndpointConfigsInput) SetSortOrder(v string) *ListEndpointConfigsInput {
	s.SortOrder = &v
	return s
}

type ListEndpointConfigsOutput struct {
	_ struct{} `type:"structure"`

	// An array of endpoint configurations.
	//
	// EndpointConfigs is a required field
	EndpointConfigs []*EndpointConfigSummary `type:"list" required:"true"`

	// If the response is truncated, SageMaker returns this token. To retrieve the
	// next set of endpoint configurations, use it in the subsequent request
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEndpointConfigsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEndpointConfigsOutput) GoString() string {
	return s.String()
}

// SetEndpointConfigs sets the EndpointConfigs field's value.
func (s *ListEndpointConfigsOutput) SetEndpointConfigs(v []*EndpointConfigSummary) *ListEndpointConfigsOutput {
	s.EndpointConfigs = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListEndpointConfigsOutput) SetNextToken(v string) *ListEndpointConfigsOutput {
	s.NextToken = &v
	return s
}

type ListEndpointsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only endpoints with a creation time greater than or
	// equal to the specified time (timestamp).
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only endpoints that were created before the specified
	// time (timestamp).
	CreationTimeBefore *time.Time `type:"timestamp"`

	// A filter that returns only endpoints that were modified after the specified
	// timestamp.
	LastModifiedTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only endpoints that were modified before the specified
	// timestamp.
	LastModifiedTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of endpoints to return in the response. This value defaults
	// to 10.
	MaxResults *int64 `min:"1" type:"integer"`

	// A string in endpoint names. This filter returns only endpoints whose name
	// contains the specified string.
	NameContains *string `type:"string"`

	// If the result of a ListEndpoints request was truncated, the response includes
	// a NextToken. To retrieve the next set of endpoints, use the token in the
	// next request.
	NextToken *string `type:"string"`

	// Sorts the list of results. The default is CreationTime.
	SortBy *string `type:"string" enum:"EndpointSortKey"`

	// The sort order for results. The default is Descending.
	SortOrder *string `type:"string" enum:"OrderKey"`

	// A filter that returns only endpoints with the specified status.
	StatusEquals *string `type:"string" enum:"EndpointStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEndpointsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEndpointsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListEndpointsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListEndpointsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListEndpointsInput) SetCreationTimeAfter(v time.Time) *ListEndpointsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListEndpointsInput) SetCreationTimeBefore(v time.Time) *ListEndpointsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetLastModifiedTimeAfter sets the LastModifiedTimeAfter field's value.
func (s *ListEndpointsInput) SetLastModifiedTimeAfter(v time.Time) *ListEndpointsInput {
	s.LastModifiedTimeAfter = &v
	return s
}

// SetLastModifiedTimeBefore sets the LastModifiedTimeBefore field's value.
func (s *ListEndpointsInput) SetLastModifiedTimeBefore(v time.Time) *ListEndpointsInput {
	s.LastModifiedTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListEndpointsInput) SetMaxResults(v int64) *ListEndpointsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListEndpointsInput) SetNameContains(v string) *ListEndpointsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListEndpointsInput) SetNextToken(v string) *ListEndpointsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListEndpointsInput) SetSortBy(v string) *ListEndpointsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListEndpointsInput) SetSortOrder(v string) *ListEndpointsInput {
	s.SortOrder = &v
	return s
}

// SetStatusEquals sets the StatusEquals field's value.
func (s *ListEndpointsInput) SetStatusEquals(v string) *ListEndpointsInput {
	s.StatusEquals = &v
	return s
}

type ListEndpointsOutput struct {
	_ struct{} `type:"structure"`

	// An array or endpoint objects.
	//
	// Endpoints is a required field
	Endpoints []*EndpointSummary `type:"list" required:"true"`

	// If the response is truncated, SageMaker returns this token. To retrieve the
	// next set of training jobs, use it in the subsequent request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEndpointsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEndpointsOutput) GoString() string {
	return s.String()
}

// SetEndpoints sets the Endpoints field's value.
func (s *ListEndpointsOutput) SetEndpoints(v []*EndpointSummary) *ListEndpointsOutput {
	s.Endpoints = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListEndpointsOutput) SetNextToken(v string) *ListEndpointsOutput {
	s.NextToken = &v
	return s
}

type ListExperimentsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only experiments created after the specified time.
	CreatedAfter *time.Time `type:"timestamp"`

	// A filter that returns only experiments created before the specified time.
	CreatedBefore *time.Time `type:"timestamp"`

	// The maximum number of experiments to return in the response. The default
	// value is 10.
	MaxResults *int64 `min:"1" type:"integer"`

	// If the previous call to ListExperiments didn't return the full set of experiments,
	// the call returns a token for getting the next set of experiments.
	NextToken *string `type:"string"`

	// The property used to sort results. The default value is CreationTime.
	SortBy *string `type:"string" enum:"SortExperimentsBy"`

	// The sort order. The default value is Descending.
	SortOrder *string `type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListExperimentsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListExperimentsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListExperimentsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListExperimentsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreatedAfter sets the CreatedAfter field's value.
func (s *ListExperimentsInput) SetCreatedAfter(v time.Time) *ListExperimentsInput {
	s.CreatedAfter = &v
	return s
}

// SetCreatedBefore sets the CreatedBefore field's value.
func (s *ListExperimentsInput) SetCreatedBefore(v time.Time) *ListExperimentsInput {
	s.CreatedBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListExperimentsInput) SetMaxResults(v int64) *ListExperimentsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListExperimentsInput) SetNextToken(v string) *ListExperimentsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListExperimentsInput) SetSortBy(v string) *ListExperimentsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListExperimentsInput) SetSortOrder(v string) *ListExperimentsInput {
	s.SortOrder = &v
	return s
}

type ListExperimentsOutput struct {
	_ struct{} `type:"structure"`

	// A list of the summaries of your experiments.
	ExperimentSummaries []*ExperimentSummary `type:"list"`

	// A token for getting the next set of experiments, if there are any.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListExperimentsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListExperimentsOutput) GoString() string {
	return s.String()
}

// SetExperimentSummaries sets the ExperimentSummaries field's value.
func (s *ListExperimentsOutput) SetExperimentSummaries(v []*ExperimentSummary) *ListExperimentsOutput {
	s.ExperimentSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListExperimentsOutput) SetNextToken(v string) *ListExperimentsOutput {
	s.NextToken = &v
	return s
}

type ListFeatureGroupsInput struct {
	_ struct{} `type:"structure"`

	// Use this parameter to search for FeatureGroupss created after a specific
	// date and time.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// Use this parameter to search for FeatureGroupss created before a specific
	// date and time.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// A FeatureGroup status. Filters by FeatureGroup status.
	FeatureGroupStatusEquals *string `type:"string" enum:"FeatureGroupStatus"`

	// The maximum number of results returned by ListFeatureGroups.
	MaxResults *int64 `min:"1" type:"integer"`

	// A string that partially matches one or more FeatureGroups names. Filters
	// FeatureGroups by name.
	NameContains *string `min:"1" type:"string"`

	// A token to resume pagination of ListFeatureGroups results.
	NextToken *string `type:"string"`

	// An OfflineStore status. Filters by OfflineStore status.
	OfflineStoreStatusEquals *string `type:"string" enum:"OfflineStoreStatusValue"`

	// The value on which the feature group list is sorted.
	SortBy *string `type:"string" enum:"FeatureGroupSortBy"`

	// The order in which feature groups are listed.
	SortOrder *string `type:"string" enum:"FeatureGroupSortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListFeatureGroupsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListFeatureGroupsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListFeatureGroupsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListFeatureGroupsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NameContains != nil && len(*s.NameContains) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NameContains", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListFeatureGroupsInput) SetCreationTimeAfter(v time.Time) *ListFeatureGroupsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListFeatureGroupsInput) SetCreationTimeBefore(v time.Time) *ListFeatureGroupsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetFeatureGroupStatusEquals sets the FeatureGroupStatusEquals field's value.
func (s *ListFeatureGroupsInput) SetFeatureGroupStatusEquals(v string) *ListFeatureGroupsInput {
	s.FeatureGroupStatusEquals = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListFeatureGroupsInput) SetMaxResults(v int64) *ListFeatureGroupsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListFeatureGroupsInput) SetNameContains(v string) *ListFeatureGroupsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListFeatureGroupsInput) SetNextToken(v string) *ListFeatureGroupsInput {
	s.NextToken = &v
	return s
}

// SetOfflineStoreStatusEquals sets the OfflineStoreStatusEquals field's value.
func (s *ListFeatureGroupsInput) SetOfflineStoreStatusEquals(v string) *ListFeatureGroupsInput {
	s.OfflineStoreStatusEquals = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListFeatureGroupsInput) SetSortBy(v string) *ListFeatureGroupsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListFeatureGroupsInput) SetSortOrder(v string) *ListFeatureGroupsInput {
	s.SortOrder = &v
	return s
}

type ListFeatureGroupsOutput struct {
	_ struct{} `type:"structure"`

	// A summary of feature groups.
	//
	// FeatureGroupSummaries is a required field
	FeatureGroupSummaries []*FeatureGroupSummary `type:"list" required:"true"`

	// A token to resume pagination of ListFeatureGroups results.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListFeatureGroupsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListFeatureGroupsOutput) GoString() string {
	return s.String()
}

// SetFeatureGroupSummaries sets the FeatureGroupSummaries field's value.
func (s *ListFeatureGroupsOutput) SetFeatureGroupSummaries(v []*FeatureGroupSummary) *ListFeatureGroupsOutput {
	s.FeatureGroupSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListFeatureGroupsOutput) SetNextToken(v string) *ListFeatureGroupsOutput {
	s.NextToken = &v
	return s
}

type ListFlowDefinitionsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only flow definitions with a creation time greater
	// than or equal to the specified timestamp.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only flow definitions that were created before the
	// specified timestamp.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// The total number of items to return. If the total number of available items
	// is more than the value specified in MaxResults, then a NextToken will be
	// provided in the output that you can use to resume pagination.
	MaxResults *int64 `min:"1" type:"integer"`

	// A token to resume pagination.
	NextToken *string `type:"string"`

	// An optional value that specifies whether you want the results sorted in Ascending
	// or Descending order.
	SortOrder *string `type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListFlowDefinitionsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListFlowDefinitionsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListFlowDefinitionsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListFlowDefinitionsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListFlowDefinitionsInput) SetCreationTimeAfter(v time.Time) *ListFlowDefinitionsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListFlowDefinitionsInput) SetCreationTimeBefore(v time.Time) *ListFlowDefinitionsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListFlowDefinitionsInput) SetMaxResults(v int64) *ListFlowDefinitionsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListFlowDefinitionsInput) SetNextToken(v string) *ListFlowDefinitionsInput {
	s.NextToken = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListFlowDefinitionsInput) SetSortOrder(v string) *ListFlowDefinitionsInput {
	s.SortOrder = &v
	return s
}

type ListFlowDefinitionsOutput struct {
	_ struct{} `type:"structure"`

	// An array of objects describing the flow definitions.
	//
	// FlowDefinitionSummaries is a required field
	FlowDefinitionSummaries []*FlowDefinitionSummary `type:"list" required:"true"`

	// A token to resume pagination.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListFlowDefinitionsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListFlowDefinitionsOutput) GoString() string {
	return s.String()
}

// SetFlowDefinitionSummaries sets the FlowDefinitionSummaries field's value.
func (s *ListFlowDefinitionsOutput) SetFlowDefinitionSummaries(v []*FlowDefinitionSummary) *ListFlowDefinitionsOutput {
	s.FlowDefinitionSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListFlowDefinitionsOutput) SetNextToken(v string) *ListFlowDefinitionsOutput {
	s.NextToken = &v
	return s
}

type ListHubContentVersionsInput struct {
	_ struct{} `type:"structure"`

	// Only list hub content versions that were created after the time specified.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// Only list hub content versions that were created before the time specified.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// The name of the hub content.
	//
	// HubContentName is a required field
	HubContentName *string `type:"string" required:"true"`

	// The type of hub content to list versions of.
	//
	// HubContentType is a required field
	HubContentType *string `type:"string" required:"true" enum:"HubContentType"`

	// The name of the hub to list the content versions of.
	//
	// HubName is a required field
	HubName *string `type:"string" required:"true"`

	// The maximum number of hub content versions to list.
	MaxResults *int64 `min:"1" type:"integer"`

	// The upper bound of the hub content schema version.
	MaxSchemaVersion *string `min:"5" type:"string"`

	// The lower bound of the hub content versions to list.
	MinVersion *string `min:"5" type:"string"`

	// If the response to a previous ListHubContentVersions request was truncated,
	// the response includes a NextToken. To retrieve the next set of hub content
	// versions, use the token in the next request.
	NextToken *string `type:"string"`

	// Sort hub content versions by either name or creation time.
	SortBy *string `type:"string" enum:"HubContentSortBy"`

	// Sort hub content versions by ascending or descending order.
	SortOrder *string `type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListHubContentVersionsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListHubContentVersionsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListHubContentVersionsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListHubContentVersionsInput"}
	if s.HubContentName == nil {
		invalidParams.Add(request.NewErrParamRequired("HubContentName"))
	}
	if s.HubContentType == nil {
		invalidParams.Add(request.NewErrParamRequired("HubContentType"))
	}
	if s.HubName == nil {
		invalidParams.Add(request.NewErrParamRequired("HubName"))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.MaxSchemaVersion != nil && len(*s.MaxSchemaVersion) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("MaxSchemaVersion", 5))
	}
	if s.MinVersion != nil && len(*s.MinVersion) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("MinVersion", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListHubContentVersionsInput) SetCreationTimeAfter(v time.Time) *ListHubContentVersionsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListHubContentVersionsInput) SetCreationTimeBefore(v time.Time) *ListHubContentVersionsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetHubContentName sets the HubContentName field's value.
func (s *ListHubContentVersionsInput) SetHubContentName(v string) *ListHubContentVersionsInput {
	s.HubContentName = &v
	return s
}

// SetHubContentType sets the HubContentType field's value.
func (s *ListHubContentVersionsInput) SetHubContentType(v string) *ListHubContentVersionsInput {
	s.HubContentType = &v
	return s
}

// SetHubName sets the HubName field's value.
func (s *ListHubContentVersionsInput) SetHubName(v string) *ListHubContentVersionsInput {
	s.HubName = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListHubContentVersionsInput) SetMaxResults(v int64) *ListHubContentVersionsInput {
	s.MaxResults = &v
	return s
}

// SetMaxSchemaVersion sets the MaxSchemaVersion field's value.
func (s *ListHubContentVersionsInput) SetMaxSchemaVersion(v string) *ListHubContentVersionsInput {
	s.MaxSchemaVersion = &v
	return s
}

// SetMinVersion sets the MinVersion field's value.
func (s *ListHubContentVersionsInput) SetMinVersion(v string) *ListHubContentVersionsInput {
	s.MinVersion = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListHubContentVersionsInput) SetNextToken(v string) *ListHubContentVersionsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListHubContentVersionsInput) SetSortBy(v string) *ListHubContentVersionsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListHubContentVersionsInput) SetSortOrder(v string) *ListHubContentVersionsInput {
	s.SortOrder = &v
	return s
}

type ListHubContentVersionsOutput struct {
	_ struct{} `type:"structure"`

	// The summaries of the listed hub content versions.
	//
	// HubContentSummaries is a required field
	HubContentSummaries []*HubContentInfo `type:"list" required:"true"`

	// If the response is truncated, SageMaker returns this token. To retrieve the
	// next set of hub content versions, use it in the subsequent request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListHubContentVersionsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListHubContentVersionsOutput) GoString() string {
	return s.String()
}

// SetHubContentSummaries sets the HubContentSummaries field's value.
func (s *ListHubContentVersionsOutput) SetHubContentSummaries(v []*HubContentInfo) *ListHubContentVersionsOutput {
	s.HubContentSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListHubContentVersionsOutput) SetNextToken(v string) *ListHubContentVersionsOutput {
	s.NextToken = &v
	return s
}

type ListHubContentsInput struct {
	_ struct{} `type:"structure"`

	// Only list hub content that was created after the time specified.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// Only list hub content that was created before the time specified.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// The type of hub content to list.
	//
	// HubContentType is a required field
	HubContentType *string `type:"string" required:"true" enum:"HubContentType"`

	// The name of the hub to list the contents of.
	//
	// HubName is a required field
	HubName *string `type:"string" required:"true"`

	// The maximum amount of hub content to list.
	MaxResults *int64 `min:"1" type:"integer"`

	// The upper bound of the hub content schema verion.
	MaxSchemaVersion *string `min:"5" type:"string"`

	// Only list hub content if the name contains the specified string.
	NameContains *string `type:"string"`

	// If the response to a previous ListHubContents request was truncated, the
	// response includes a NextToken. To retrieve the next set of hub content, use
	// the token in the next request.
	NextToken *string `type:"string"`

	// Sort hub content versions by either name or creation time.
	SortBy *string `type:"string" enum:"HubContentSortBy"`

	// Sort hubs by ascending or descending order.
	SortOrder *string `type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListHubContentsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListHubContentsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListHubContentsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListHubContentsInput"}
	if s.HubContentType == nil {
		invalidParams.Add(request.NewErrParamRequired("HubContentType"))
	}
	if s.HubName == nil {
		invalidParams.Add(request.NewErrParamRequired("HubName"))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.MaxSchemaVersion != nil && len(*s.MaxSchemaVersion) < 5 {
		invalidParams.Add(request.NewErrParamMinLen("MaxSchemaVersion", 5))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListHubContentsInput) SetCreationTimeAfter(v time.Time) *ListHubContentsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListHubContentsInput) SetCreationTimeBefore(v time.Time) *ListHubContentsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetHubContentType sets the HubContentType field's value.
func (s *ListHubContentsInput) SetHubContentType(v string) *ListHubContentsInput {
	s.HubContentType = &v
	return s
}

// SetHubName sets the HubName field's value.
func (s *ListHubContentsInput) SetHubName(v string) *ListHubContentsInput {
	s.HubName = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListHubContentsInput) SetMaxResults(v int64) *ListHubContentsInput {
	s.MaxResults = &v
	return s
}

// SetMaxSchemaVersion sets the MaxSchemaVersion field's value.
func (s *ListHubContentsInput) SetMaxSchemaVersion(v string) *ListHubContentsInput {
	s.MaxSchemaVersion = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListHubContentsInput) SetNameContains(v string) *ListHubContentsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListHubContentsInput) SetNextToken(v string) *ListHubContentsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListHubContentsInput) SetSortBy(v string) *ListHubContentsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListHubContentsInput) SetSortOrder(v string) *ListHubContentsInput {
	s.SortOrder = &v
	return s
}

type ListHubContentsOutput struct {
	_ struct{} `type:"structure"`

	// The summaries of the listed hub content.
	//
	// HubContentSummaries is a required field
	HubContentSummaries []*HubContentInfo `type:"list" required:"true"`

	// If the response is truncated, SageMaker returns this token. To retrieve the
	// next set of hub content, use it in the subsequent request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListHubContentsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListHubContentsOutput) GoString() string {
	return s.String()
}

// SetHubContentSummaries sets the HubContentSummaries field's value.
func (s *ListHubContentsOutput) SetHubContentSummaries(v []*HubContentInfo) *ListHubContentsOutput {
	s.HubContentSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListHubContentsOutput) SetNextToken(v string) *ListHubContentsOutput {
	s.NextToken = &v
	return s
}

type ListHubsInput struct {
	_ struct{} `type:"structure"`

	// Only list hubs that were created after the time specified.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// Only list hubs that were created before the time specified.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// Only list hubs that were last modified after the time specified.
	LastModifiedTimeAfter *time.Time `type:"timestamp"`

	// Only list hubs that were last modified before the time specified.
	LastModifiedTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of hubs to list.
	MaxResults *int64 `min:"1" type:"integer"`

	// Only list hubs with names that contain the specified string.
	NameContains *string `type:"string"`

	// If the response to a previous ListHubs request was truncated, the response
	// includes a NextToken. To retrieve the next set of hubs, use the token in
	// the next request.
	NextToken *string `type:"string"`

	// Sort hubs by either name or creation time.
	SortBy *string `type:"string" enum:"HubSortBy"`

	// Sort hubs by ascending or descending order.
	SortOrder *string `type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListHubsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListHubsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListHubsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListHubsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListHubsInput) SetCreationTimeAfter(v time.Time) *ListHubsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListHubsInput) SetCreationTimeBefore(v time.Time) *ListHubsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetLastModifiedTimeAfter sets the LastModifiedTimeAfter field's value.
func (s *ListHubsInput) SetLastModifiedTimeAfter(v time.Time) *ListHubsInput {
	s.LastModifiedTimeAfter = &v
	return s
}

// SetLastModifiedTimeBefore sets the LastModifiedTimeBefore field's value.
func (s *ListHubsInput) SetLastModifiedTimeBefore(v time.Time) *ListHubsInput {
	s.LastModifiedTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListHubsInput) SetMaxResults(v int64) *ListHubsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListHubsInput) SetNameContains(v string) *ListHubsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListHubsInput) SetNextToken(v string) *ListHubsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListHubsInput) SetSortBy(v string) *ListHubsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListHubsInput) SetSortOrder(v string) *ListHubsInput {
	s.SortOrder = &v
	return s
}

type ListHubsOutput struct {
	_ struct{} `type:"structure"`

	// The summaries of the listed hubs.
	//
	// HubSummaries is a required field
	HubSummaries []*HubInfo `type:"list" required:"true"`

	// If the response is truncated, SageMaker returns this token. To retrieve the
	// next set of hubs, use it in the subsequent request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListHubsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListHubsOutput) GoString() string {
	return s.String()
}

// SetHubSummaries sets the HubSummaries field's value.
func (s *ListHubsOutput) SetHubSummaries(v []*HubInfo) *ListHubsOutput {
	s.HubSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListHubsOutput) SetNextToken(v string) *ListHubsOutput {
	s.NextToken = &v
	return s
}

type ListHumanTaskUisInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only human task user interfaces with a creation time
	// greater than or equal to the specified timestamp.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only human task user interfaces that were created before
	// the specified timestamp.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// The total number of items to return. If the total number of available items
	// is more than the value specified in MaxResults, then a NextToken will be
	// provided in the output that you can use to resume pagination.
	MaxResults *int64 `min:"1" type:"integer"`

	// A token to resume pagination.
	NextToken *string `type:"string"`

	// An optional value that specifies whether you want the results sorted in Ascending
	// or Descending order.
	SortOrder *string `type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListHumanTaskUisInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListHumanTaskUisInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListHumanTaskUisInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListHumanTaskUisInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListHumanTaskUisInput) SetCreationTimeAfter(v time.Time) *ListHumanTaskUisInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListHumanTaskUisInput) SetCreationTimeBefore(v time.Time) *ListHumanTaskUisInput {
	s.CreationTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListHumanTaskUisInput) SetMaxResults(v int64) *ListHumanTaskUisInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListHumanTaskUisInput) SetNextToken(v string) *ListHumanTaskUisInput {
	s.NextToken = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListHumanTaskUisInput) SetSortOrder(v string) *ListHumanTaskUisInput {
	s.SortOrder = &v
	return s
}

type ListHumanTaskUisOutput struct {
	_ struct{} `type:"structure"`

	// An array of objects describing the human task user interfaces.
	//
	// HumanTaskUiSummaries is a required field
	HumanTaskUiSummaries []*HumanTaskUiSummary `type:"list" required:"true"`

	// A token to resume pagination.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListHumanTaskUisOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListHumanTaskUisOutput) GoString() string {
	return s.String()
}

// SetHumanTaskUiSummaries sets the HumanTaskUiSummaries field's value.
func (s *ListHumanTaskUisOutput) SetHumanTaskUiSummaries(v []*HumanTaskUiSummary) *ListHumanTaskUisOutput {
	s.HumanTaskUiSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListHumanTaskUisOutput) SetNextToken(v string) *ListHumanTaskUisOutput {
	s.NextToken = &v
	return s
}

type ListHyperParameterTuningJobsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only tuning jobs that were created after the specified
	// time.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only tuning jobs that were created before the specified
	// time.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// A filter that returns only tuning jobs that were modified after the specified
	// time.
	LastModifiedTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only tuning jobs that were modified before the specified
	// time.
	LastModifiedTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of tuning jobs to return. The default value is 10.
	MaxResults *int64 `min:"1" type:"integer"`

	// A string in the tuning job name. This filter returns only tuning jobs whose
	// name contains the specified string.
	NameContains *string `type:"string"`

	// If the result of the previous ListHyperParameterTuningJobs request was truncated,
	// the response includes a NextToken. To retrieve the next set of tuning jobs,
	// use the token in the next request.
	NextToken *string `type:"string"`

	// The field to sort results by. The default is Name.
	SortBy *string `type:"string" enum:"HyperParameterTuningJobSortByOptions"`

	// The sort order for results. The default is Ascending.
	SortOrder *string `type:"string" enum:"SortOrder"`

	// A filter that returns only tuning jobs with the specified status.
	StatusEquals *string `type:"string" enum:"HyperParameterTuningJobStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListHyperParameterTuningJobsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListHyperParameterTuningJobsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListHyperParameterTuningJobsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListHyperParameterTuningJobsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListHyperParameterTuningJobsInput) SetCreationTimeAfter(v time.Time) *ListHyperParameterTuningJobsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListHyperParameterTuningJobsInput) SetCreationTimeBefore(v time.Time) *ListHyperParameterTuningJobsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetLastModifiedTimeAfter sets the LastModifiedTimeAfter field's value.
func (s *ListHyperParameterTuningJobsInput) SetLastModifiedTimeAfter(v time.Time) *ListHyperParameterTuningJobsInput {
	s.LastModifiedTimeAfter = &v
	return s
}

// SetLastModifiedTimeBefore sets the LastModifiedTimeBefore field's value.
func (s *ListHyperParameterTuningJobsInput) SetLastModifiedTimeBefore(v time.Time) *ListHyperParameterTuningJobsInput {
	s.LastModifiedTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListHyperParameterTuningJobsInput) SetMaxResults(v int64) *ListHyperParameterTuningJobsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListHyperParameterTuningJobsInput) SetNameContains(v string) *ListHyperParameterTuningJobsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListHyperParameterTuningJobsInput) SetNextToken(v string) *ListHyperParameterTuningJobsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListHyperParameterTuningJobsInput) SetSortBy(v string) *ListHyperParameterTuningJobsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListHyperParameterTuningJobsInput) SetSortOrder(v string) *ListHyperParameterTuningJobsInput {
	s.SortOrder = &v
	return s
}

// SetStatusEquals sets the StatusEquals field's value.
func (s *ListHyperParameterTuningJobsInput) SetStatusEquals(v string) *ListHyperParameterTuningJobsInput {
	s.StatusEquals = &v
	return s
}

type ListHyperParameterTuningJobsOutput struct {
	_ struct{} `type:"structure"`

	// A list of HyperParameterTuningJobSummary (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobSummary.html)
	// objects that describe the tuning jobs that the ListHyperParameterTuningJobs
	// request returned.
	//
	// HyperParameterTuningJobSummaries is a required field
	HyperParameterTuningJobSummaries []*HyperParameterTuningJobSummary `type:"list" required:"true"`

	// If the result of this ListHyperParameterTuningJobs request was truncated,
	// the response includes a NextToken. To retrieve the next set of tuning jobs,
	// use the token in the next request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListHyperParameterTuningJobsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListHyperParameterTuningJobsOutput) GoString() string {
	return s.String()
}

// SetHyperParameterTuningJobSummaries sets the HyperParameterTuningJobSummaries field's value.
func (s *ListHyperParameterTuningJobsOutput) SetHyperParameterTuningJobSummaries(v []*HyperParameterTuningJobSummary) *ListHyperParameterTuningJobsOutput {
	s.HyperParameterTuningJobSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListHyperParameterTuningJobsOutput) SetNextToken(v string) *ListHyperParameterTuningJobsOutput {
	s.NextToken = &v
	return s
}

type ListImageVersionsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only versions created on or after the specified time.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only versions created on or before the specified time.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// The name of the image to list the versions of.
	//
	// ImageName is a required field
	ImageName *string `min:"1" type:"string" required:"true"`

	// A filter that returns only versions modified on or after the specified time.
	LastModifiedTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only versions modified on or before the specified time.
	LastModifiedTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of versions to return in the response. The default value
	// is 10.
	MaxResults *int64 `min:"1" type:"integer"`

	// If the previous call to ListImageVersions didn't return the full set of versions,
	// the call returns a token for getting the next set of versions.
	NextToken *string `type:"string"`

	// The property used to sort results. The default value is CREATION_TIME.
	SortBy *string `type:"string" enum:"ImageVersionSortBy"`

	// The sort order. The default value is DESCENDING.
	SortOrder *string `type:"string" enum:"ImageVersionSortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListImageVersionsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListImageVersionsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListImageVersionsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListImageVersionsInput"}
	if s.ImageName == nil {
		invalidParams.Add(request.NewErrParamRequired("ImageName"))
	}
	if s.ImageName != nil && len(*s.ImageName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ImageName", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListImageVersionsInput) SetCreationTimeAfter(v time.Time) *ListImageVersionsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListImageVersionsInput) SetCreationTimeBefore(v time.Time) *ListImageVersionsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetImageName sets the ImageName field's value.
func (s *ListImageVersionsInput) SetImageName(v string) *ListImageVersionsInput {
	s.ImageName = &v
	return s
}

// SetLastModifiedTimeAfter sets the LastModifiedTimeAfter field's value.
func (s *ListImageVersionsInput) SetLastModifiedTimeAfter(v time.Time) *ListImageVersionsInput {
	s.LastModifiedTimeAfter = &v
	return s
}

// SetLastModifiedTimeBefore sets the LastModifiedTimeBefore field's value.
func (s *ListImageVersionsInput) SetLastModifiedTimeBefore(v time.Time) *ListImageVersionsInput {
	s.LastModifiedTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListImageVersionsInput) SetMaxResults(v int64) *ListImageVersionsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListImageVersionsInput) SetNextToken(v string) *ListImageVersionsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListImageVersionsInput) SetSortBy(v string) *ListImageVersionsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListImageVersionsInput) SetSortOrder(v string) *ListImageVersionsInput {
	s.SortOrder = &v
	return s
}

type ListImageVersionsOutput struct {
	_ struct{} `type:"structure"`

	// A list of versions and their properties.
	ImageVersions []*ImageVersion `type:"list"`

	// A token for getting the next set of versions, if there are any.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListImageVersionsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListImageVersionsOutput) GoString() string {
	return s.String()
}

// SetImageVersions sets the ImageVersions field's value.
func (s *ListImageVersionsOutput) SetImageVersions(v []*ImageVersion) *ListImageVersionsOutput {
	s.ImageVersions = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListImageVersionsOutput) SetNextToken(v string) *ListImageVersionsOutput {
	s.NextToken = &v
	return s
}

type ListImagesInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only images created on or after the specified time.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only images created on or before the specified time.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// A filter that returns only images modified on or after the specified time.
	LastModifiedTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only images modified on or before the specified time.
	LastModifiedTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of images to return in the response. The default value
	// is 10.
	MaxResults *int64 `min:"1" type:"integer"`

	// A filter that returns only images whose name contains the specified string.
	NameContains *string `type:"string"`

	// If the previous call to ListImages didn't return the full set of images,
	// the call returns a token for getting the next set of images.
	NextToken *string `type:"string"`

	// The property used to sort results. The default value is CREATION_TIME.
	SortBy *string `type:"string" enum:"ImageSortBy"`

	// The sort order. The default value is DESCENDING.
	SortOrder *string `type:"string" enum:"ImageSortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListImagesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListImagesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListImagesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListImagesInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListImagesInput) SetCreationTimeAfter(v time.Time) *ListImagesInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListImagesInput) SetCreationTimeBefore(v time.Time) *ListImagesInput {
	s.CreationTimeBefore = &v
	return s
}

// SetLastModifiedTimeAfter sets the LastModifiedTimeAfter field's value.
func (s *ListImagesInput) SetLastModifiedTimeAfter(v time.Time) *ListImagesInput {
	s.LastModifiedTimeAfter = &v
	return s
}

// SetLastModifiedTimeBefore sets the LastModifiedTimeBefore field's value.
func (s *ListImagesInput) SetLastModifiedTimeBefore(v time.Time) *ListImagesInput {
	s.LastModifiedTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListImagesInput) SetMaxResults(v int64) *ListImagesInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListImagesInput) SetNameContains(v string) *ListImagesInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListImagesInput) SetNextToken(v string) *ListImagesInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListImagesInput) SetSortBy(v string) *ListImagesInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListImagesInput) SetSortOrder(v string) *ListImagesInput {
	s.SortOrder = &v
	return s
}

type ListImagesOutput struct {
	_ struct{} `type:"structure"`

	// A list of images and their properties.
	Images []*Image `type:"list"`

	// A token for getting the next set of images, if there are any.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListImagesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListImagesOutput) GoString() string {
	return s.String()
}

// SetImages sets the Images field's value.
func (s *ListImagesOutput) SetImages(v []*Image) *ListImagesOutput {
	s.Images = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListImagesOutput) SetNextToken(v string) *ListImagesOutput {
	s.NextToken = &v
	return s
}

type ListInferenceComponentsInput struct {
	_ struct{} `type:"structure"`

	// Filters the results to only those inference components that were created
	// after the specified time.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// Filters the results to only those inference components that were created
	// before the specified time.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// An endpoint name to filter the listed inference components. The response
	// includes only those inference components that are hosted at the specified
	// endpoint.
	EndpointNameEquals *string `type:"string"`

	// Filters the results to only those inference components that were updated
	// after the specified time.
	LastModifiedTimeAfter *time.Time `type:"timestamp"`

	// Filters the results to only those inference components that were updated
	// before the specified time.
	LastModifiedTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of inference components to return in the response. This
	// value defaults to 10.
	MaxResults *int64 `min:"1" type:"integer"`

	// Filters the results to only those inference components with a name that contains
	// the specified string.
	NameContains *string `type:"string"`

	// A token that you use to get the next set of results following a truncated
	// response. If the response to the previous request was truncated, that response
	// provides the value for this token.
	NextToken *string `type:"string"`

	// The field by which to sort the inference components in the response. The
	// default is CreationTime.
	SortBy *string `type:"string" enum:"InferenceComponentSortKey"`

	// The sort order for results. The default is Descending.
	SortOrder *string `type:"string" enum:"OrderKey"`

	// Filters the results to only those inference components with the specified
	// status.
	StatusEquals *string `type:"string" enum:"InferenceComponentStatus"`

	// A production variant name to filter the listed inference components. The
	// response includes only those inference components that are hosted at the
	// specified variant.
	VariantNameEquals *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListInferenceComponentsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListInferenceComponentsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListInferenceComponentsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListInferenceComponentsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListInferenceComponentsInput) SetCreationTimeAfter(v time.Time) *ListInferenceComponentsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListInferenceComponentsInput) SetCreationTimeBefore(v time.Time) *ListInferenceComponentsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetEndpointNameEquals sets the EndpointNameEquals field's value.
func (s *ListInferenceComponentsInput) SetEndpointNameEquals(v string) *ListInferenceComponentsInput {
	s.EndpointNameEquals = &v
	return s
}

// SetLastModifiedTimeAfter sets the LastModifiedTimeAfter field's value.
func (s *ListInferenceComponentsInput) SetLastModifiedTimeAfter(v time.Time) *ListInferenceComponentsInput {
	s.LastModifiedTimeAfter = &v
	return s
}

// SetLastModifiedTimeBefore sets the LastModifiedTimeBefore field's value.
func (s *ListInferenceComponentsInput) SetLastModifiedTimeBefore(v time.Time) *ListInferenceComponentsInput {
	s.LastModifiedTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListInferenceComponentsInput) SetMaxResults(v int64) *ListInferenceComponentsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListInferenceComponentsInput) SetNameContains(v string) *ListInferenceComponentsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListInferenceComponentsInput) SetNextToken(v string) *ListInferenceComponentsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListInferenceComponentsInput) SetSortBy(v string) *ListInferenceComponentsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListInferenceComponentsInput) SetSortOrder(v string) *ListInferenceComponentsInput {
	s.SortOrder = &v
	return s
}

// SetStatusEquals sets the StatusEquals field's value.
func (s *ListInferenceComponentsInput) SetStatusEquals(v string) *ListInferenceComponentsInput {
	s.StatusEquals = &v
	return s
}

// SetVariantNameEquals sets the VariantNameEquals field's value.
func (s *ListInferenceComponentsInput) SetVariantNameEquals(v string) *ListInferenceComponentsInput {
	s.VariantNameEquals = &v
	return s
}

type ListInferenceComponentsOutput struct {
	_ struct{} `type:"structure"`

	// A list of inference components and their properties that matches any of the
	// filters you specified in the request.
	//
	// InferenceComponents is a required field
	InferenceComponents []*InferenceComponentSummary `type:"list" required:"true"`

	// The token to use in a subsequent request to get the next set of results following
	// a truncated response.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListInferenceComponentsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListInferenceComponentsOutput) GoString() string {
	return s.String()
}

// SetInferenceComponents sets the InferenceComponents field's value.
func (s *ListInferenceComponentsOutput) SetInferenceComponents(v []*InferenceComponentSummary) *ListInferenceComponentsOutput {
	s.InferenceComponents = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListInferenceComponentsOutput) SetNextToken(v string) *ListInferenceComponentsOutput {
	s.NextToken = &v
	return s
}

type ListInferenceExperimentsInput struct {
	_ struct{} `type:"structure"`

	// Selects inference experiments which were created after this timestamp.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// Selects inference experiments which were created before this timestamp.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// Selects inference experiments which were last modified after this timestamp.
	LastModifiedTimeAfter *time.Time `type:"timestamp"`

	// Selects inference experiments which were last modified before this timestamp.
	LastModifiedTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of results to select.
	MaxResults *int64 `min:"1" type:"integer"`

	// Selects inference experiments whose names contain this name.
	NameContains *string `type:"string"`

	// The response from the last list when returning a list large enough to need
	// tokening.
	NextToken *string `type:"string"`

	// The column by which to sort the listed inference experiments.
	SortBy *string `type:"string" enum:"SortInferenceExperimentsBy"`

	// The direction of sorting (ascending or descending).
	SortOrder *string `type:"string" enum:"SortOrder"`

	// Selects inference experiments which are in this status. For the possible
	// statuses, see DescribeInferenceExperiment (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeInferenceExperiment.html).
	StatusEquals *string `type:"string" enum:"InferenceExperimentStatus"`

	// Selects inference experiments of this type. For the possible types of inference
	// experiments, see CreateInferenceExperiment (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateInferenceExperiment.html).
	Type *string `type:"string" enum:"InferenceExperimentType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListInferenceExperimentsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListInferenceExperimentsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListInferenceExperimentsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListInferenceExperimentsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListInferenceExperimentsInput) SetCreationTimeAfter(v time.Time) *ListInferenceExperimentsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListInferenceExperimentsInput) SetCreationTimeBefore(v time.Time) *ListInferenceExperimentsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetLastModifiedTimeAfter sets the LastModifiedTimeAfter field's value.
func (s *ListInferenceExperimentsInput) SetLastModifiedTimeAfter(v time.Time) *ListInferenceExperimentsInput {
	s.LastModifiedTimeAfter = &v
	return s
}

// SetLastModifiedTimeBefore sets the LastModifiedTimeBefore field's value.
func (s *ListInferenceExperimentsInput) SetLastModifiedTimeBefore(v time.Time) *ListInferenceExperimentsInput {
	s.LastModifiedTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListInferenceExperimentsInput) SetMaxResults(v int64) *ListInferenceExperimentsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListInferenceExperimentsInput) SetNameContains(v string) *ListInferenceExperimentsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListInferenceExperimentsInput) SetNextToken(v string) *ListInferenceExperimentsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListInferenceExperimentsInput) SetSortBy(v string) *ListInferenceExperimentsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListInferenceExperimentsInput) SetSortOrder(v string) *ListInferenceExperimentsInput {
	s.SortOrder = &v
	return s
}

// SetStatusEquals sets the StatusEquals field's value.
func (s *ListInferenceExperimentsInput) SetStatusEquals(v string) *ListInferenceExperimentsInput {
	s.StatusEquals = &v
	return s
}

// SetType sets the Type field's value.
func (s *ListInferenceExperimentsInput) SetType(v string) *ListInferenceExperimentsInput {
	s.Type = &v
	return s
}

type ListInferenceExperimentsOutput struct {
	_ struct{} `type:"structure"`

	// List of inference experiments.
	InferenceExperiments []*InferenceExperimentSummary `type:"list"`

	// The token to use when calling the next page of results.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListInferenceExperimentsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListInferenceExperimentsOutput) GoString() string {
	return s.String()
}

// SetInferenceExperiments sets the InferenceExperiments field's value.
func (s *ListInferenceExperimentsOutput) SetInferenceExperiments(v []*InferenceExperimentSummary) *ListInferenceExperimentsOutput {
	s.InferenceExperiments = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListInferenceExperimentsOutput) SetNextToken(v string) *ListInferenceExperimentsOutput {
	s.NextToken = &v
	return s
}

type ListInferenceRecommendationsJobStepsInput struct {
	_ struct{} `type:"structure"`

	// The name for the Inference Recommender job.
	//
	// JobName is a required field
	JobName *string `min:"1" type:"string" required:"true"`

	// The maximum number of results to return.
	MaxResults *int64 `min:"1" type:"integer"`

	// A token that you can specify to return more results from the list. Specify
	// this field if you have a token that was returned from a previous request.
	NextToken *string `type:"string"`

	// A filter to return benchmarks of a specified status. If this field is left
	// empty, then all benchmarks are returned.
	Status *string `type:"string" enum:"RecommendationJobStatus"`

	// A filter to return details about the specified type of subtask.
	//
	// BENCHMARK: Evaluate the performance of your model on different instance types.
	StepType *string `type:"string" enum:"RecommendationStepType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListInferenceRecommendationsJobStepsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListInferenceRecommendationsJobStepsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListInferenceRecommendationsJobStepsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListInferenceRecommendationsJobStepsInput"}
	if s.JobName == nil {
		invalidParams.Add(request.NewErrParamRequired("JobName"))
	}
	if s.JobName != nil && len(*s.JobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("JobName", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetJobName sets the JobName field's value.
func (s *ListInferenceRecommendationsJobStepsInput) SetJobName(v string) *ListInferenceRecommendationsJobStepsInput {
	s.JobName = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListInferenceRecommendationsJobStepsInput) SetMaxResults(v int64) *ListInferenceRecommendationsJobStepsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListInferenceRecommendationsJobStepsInput) SetNextToken(v string) *ListInferenceRecommendationsJobStepsInput {
	s.NextToken = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *ListInferenceRecommendationsJobStepsInput) SetStatus(v string) *ListInferenceRecommendationsJobStepsInput {
	s.Status = &v
	return s
}

// SetStepType sets the StepType field's value.
func (s *ListInferenceRecommendationsJobStepsInput) SetStepType(v string) *ListInferenceRecommendationsJobStepsInput {
	s.StepType = &v
	return s
}

type ListInferenceRecommendationsJobStepsOutput struct {
	_ struct{} `type:"structure"`

	// A token that you can specify in your next request to return more results
	// from the list.
	NextToken *string `type:"string"`

	// A list of all subtask details in Inference Recommender.
	Steps []*InferenceRecommendationsJobStep `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListInferenceRecommendationsJobStepsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListInferenceRecommendationsJobStepsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListInferenceRecommendationsJobStepsOutput) SetNextToken(v string) *ListInferenceRecommendationsJobStepsOutput {
	s.NextToken = &v
	return s
}

// SetSteps sets the Steps field's value.
func (s *ListInferenceRecommendationsJobStepsOutput) SetSteps(v []*InferenceRecommendationsJobStep) *ListInferenceRecommendationsJobStepsOutput {
	s.Steps = v
	return s
}

type ListInferenceRecommendationsJobsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only jobs created after the specified time (timestamp).
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only jobs created before the specified time (timestamp).
	CreationTimeBefore *time.Time `type:"timestamp"`

	// A filter that returns only jobs that were last modified after the specified
	// time (timestamp).
	LastModifiedTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only jobs that were last modified before the specified
	// time (timestamp).
	LastModifiedTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of recommendations to return in the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// A filter that returns only jobs that were created for this model.
	ModelNameEquals *string `type:"string"`

	// A filter that returns only jobs that were created for this versioned model
	// package.
	ModelPackageVersionArnEquals *string `min:"1" type:"string"`

	// A string in the job name. This filter returns only recommendations whose
	// name contains the specified string.
	NameContains *string `type:"string"`

	// If the response to a previous ListInferenceRecommendationsJobsRequest request
	// was truncated, the response includes a NextToken. To retrieve the next set
	// of recommendations, use the token in the next request.
	NextToken *string `type:"string"`

	// The parameter by which to sort the results.
	SortBy *string `type:"string" enum:"ListInferenceRecommendationsJobsSortBy"`

	// The sort order for the results.
	SortOrder *string `type:"string" enum:"SortOrder"`

	// A filter that retrieves only inference recommendations jobs with a specific
	// status.
	StatusEquals *string `type:"string" enum:"RecommendationJobStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListInferenceRecommendationsJobsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListInferenceRecommendationsJobsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListInferenceRecommendationsJobsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListInferenceRecommendationsJobsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.ModelPackageVersionArnEquals != nil && len(*s.ModelPackageVersionArnEquals) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelPackageVersionArnEquals", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListInferenceRecommendationsJobsInput) SetCreationTimeAfter(v time.Time) *ListInferenceRecommendationsJobsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListInferenceRecommendationsJobsInput) SetCreationTimeBefore(v time.Time) *ListInferenceRecommendationsJobsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetLastModifiedTimeAfter sets the LastModifiedTimeAfter field's value.
func (s *ListInferenceRecommendationsJobsInput) SetLastModifiedTimeAfter(v time.Time) *ListInferenceRecommendationsJobsInput {
	s.LastModifiedTimeAfter = &v
	return s
}

// SetLastModifiedTimeBefore sets the LastModifiedTimeBefore field's value.
func (s *ListInferenceRecommendationsJobsInput) SetLastModifiedTimeBefore(v time.Time) *ListInferenceRecommendationsJobsInput {
	s.LastModifiedTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListInferenceRecommendationsJobsInput) SetMaxResults(v int64) *ListInferenceRecommendationsJobsInput {
	s.MaxResults = &v
	return s
}

// SetModelNameEquals sets the ModelNameEquals field's value.
func (s *ListInferenceRecommendationsJobsInput) SetModelNameEquals(v string) *ListInferenceRecommendationsJobsInput {
	s.ModelNameEquals = &v
	return s
}

// SetModelPackageVersionArnEquals sets the ModelPackageVersionArnEquals field's value.
func (s *ListInferenceRecommendationsJobsInput) SetModelPackageVersionArnEquals(v string) *ListInferenceRecommendationsJobsInput {
	s.ModelPackageVersionArnEquals = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListInferenceRecommendationsJobsInput) SetNameContains(v string) *ListInferenceRecommendationsJobsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListInferenceRecommendationsJobsInput) SetNextToken(v string) *ListInferenceRecommendationsJobsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListInferenceRecommendationsJobsInput) SetSortBy(v string) *ListInferenceRecommendationsJobsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListInferenceRecommendationsJobsInput) SetSortOrder(v string) *ListInferenceRecommendationsJobsInput {
	s.SortOrder = &v
	return s
}

// SetStatusEquals sets the StatusEquals field's value.
func (s *ListInferenceRecommendationsJobsInput) SetStatusEquals(v string) *ListInferenceRecommendationsJobsInput {
	s.StatusEquals = &v
	return s
}

type ListInferenceRecommendationsJobsOutput struct {
	_ struct{} `type:"structure"`

	// The recommendations created from the Amazon SageMaker Inference Recommender
	// job.
	//
	// InferenceRecommendationsJobs is a required field
	InferenceRecommendationsJobs []*InferenceRecommendationsJob `type:"list" required:"true"`

	// A token for getting the next set of recommendations, if there are any.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListInferenceRecommendationsJobsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListInferenceRecommendationsJobsOutput) GoString() string {
	return s.String()
}

// SetInferenceRecommendationsJobs sets the InferenceRecommendationsJobs field's value.
func (s *ListInferenceRecommendationsJobsOutput) SetInferenceRecommendationsJobs(v []*InferenceRecommendationsJob) *ListInferenceRecommendationsJobsOutput {
	s.InferenceRecommendationsJobs = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListInferenceRecommendationsJobsOutput) SetNextToken(v string) *ListInferenceRecommendationsJobsOutput {
	s.NextToken = &v
	return s
}

type ListLabelingJobsForWorkteamInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only labeling jobs created after the specified time
	// (timestamp).
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only labeling jobs created before the specified time
	// (timestamp).
	CreationTimeBefore *time.Time `type:"timestamp"`

	// A filter the limits jobs to only the ones whose job reference code contains
	// the specified string.
	JobReferenceCodeContains *string `min:"1" type:"string"`

	// The maximum number of labeling jobs to return in each page of the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// If the result of the previous ListLabelingJobsForWorkteam request was truncated,
	// the response includes a NextToken. To retrieve the next set of labeling jobs,
	// use the token in the next request.
	NextToken *string `type:"string"`

	// The field to sort results by. The default is CreationTime.
	SortBy *string `type:"string" enum:"ListLabelingJobsForWorkteamSortByOptions"`

	// The sort order for results. The default is Ascending.
	SortOrder *string `type:"string" enum:"SortOrder"`

	// The Amazon Resource Name (ARN) of the work team for which you want to see
	// labeling jobs for.
	//
	// WorkteamArn is a required field
	WorkteamArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListLabelingJobsForWorkteamInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListLabelingJobsForWorkteamInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListLabelingJobsForWorkteamInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListLabelingJobsForWorkteamInput"}
	if s.JobReferenceCodeContains != nil && len(*s.JobReferenceCodeContains) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("JobReferenceCodeContains", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.WorkteamArn == nil {
		invalidParams.Add(request.NewErrParamRequired("WorkteamArn"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListLabelingJobsForWorkteamInput) SetCreationTimeAfter(v time.Time) *ListLabelingJobsForWorkteamInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListLabelingJobsForWorkteamInput) SetCreationTimeBefore(v time.Time) *ListLabelingJobsForWorkteamInput {
	s.CreationTimeBefore = &v
	return s
}

// SetJobReferenceCodeContains sets the JobReferenceCodeContains field's value.
func (s *ListLabelingJobsForWorkteamInput) SetJobReferenceCodeContains(v string) *ListLabelingJobsForWorkteamInput {
	s.JobReferenceCodeContains = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListLabelingJobsForWorkteamInput) SetMaxResults(v int64) *ListLabelingJobsForWorkteamInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListLabelingJobsForWorkteamInput) SetNextToken(v string) *ListLabelingJobsForWorkteamInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListLabelingJobsForWorkteamInput) SetSortBy(v string) *ListLabelingJobsForWorkteamInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListLabelingJobsForWorkteamInput) SetSortOrder(v string) *ListLabelingJobsForWorkteamInput {
	s.SortOrder = &v
	return s
}

// SetWorkteamArn sets the WorkteamArn field's value.
func (s *ListLabelingJobsForWorkteamInput) SetWorkteamArn(v string) *ListLabelingJobsForWorkteamInput {
	s.WorkteamArn = &v
	return s
}

type ListLabelingJobsForWorkteamOutput struct {
	_ struct{} `type:"structure"`

	// An array of LabelingJobSummary objects, each describing a labeling job.
	//
	// LabelingJobSummaryList is a required field
	LabelingJobSummaryList []*LabelingJobForWorkteamSummary `type:"list" required:"true"`

	// If the response is truncated, SageMaker returns this token. To retrieve the
	// next set of labeling jobs, use it in the subsequent request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListLabelingJobsForWorkteamOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListLabelingJobsForWorkteamOutput) GoString() string {
	return s.String()
}

// SetLabelingJobSummaryList sets the LabelingJobSummaryList field's value.
func (s *ListLabelingJobsForWorkteamOutput) SetLabelingJobSummaryList(v []*LabelingJobForWorkteamSummary) *ListLabelingJobsForWorkteamOutput {
	s.LabelingJobSummaryList = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListLabelingJobsForWorkteamOutput) SetNextToken(v string) *ListLabelingJobsForWorkteamOutput {
	s.NextToken = &v
	return s
}

type ListLabelingJobsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only labeling jobs created after the specified time
	// (timestamp).
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only labeling jobs created before the specified time
	// (timestamp).
	CreationTimeBefore *time.Time `type:"timestamp"`

	// A filter that returns only labeling jobs modified after the specified time
	// (timestamp).
	LastModifiedTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only labeling jobs modified before the specified time
	// (timestamp).
	LastModifiedTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of labeling jobs to return in each page of the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// A string in the labeling job name. This filter returns only labeling jobs
	// whose name contains the specified string.
	NameContains *string `type:"string"`

	// If the result of the previous ListLabelingJobs request was truncated, the
	// response includes a NextToken. To retrieve the next set of labeling jobs,
	// use the token in the next request.
	NextToken *string `type:"string"`

	// The field to sort results by. The default is CreationTime.
	SortBy *string `type:"string" enum:"SortBy"`

	// The sort order for results. The default is Ascending.
	SortOrder *string `type:"string" enum:"SortOrder"`

	// A filter that retrieves only labeling jobs with a specific status.
	StatusEquals *string `type:"string" enum:"LabelingJobStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListLabelingJobsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListLabelingJobsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListLabelingJobsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListLabelingJobsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListLabelingJobsInput) SetCreationTimeAfter(v time.Time) *ListLabelingJobsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListLabelingJobsInput) SetCreationTimeBefore(v time.Time) *ListLabelingJobsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetLastModifiedTimeAfter sets the LastModifiedTimeAfter field's value.
func (s *ListLabelingJobsInput) SetLastModifiedTimeAfter(v time.Time) *ListLabelingJobsInput {
	s.LastModifiedTimeAfter = &v
	return s
}

// SetLastModifiedTimeBefore sets the LastModifiedTimeBefore field's value.
func (s *ListLabelingJobsInput) SetLastModifiedTimeBefore(v time.Time) *ListLabelingJobsInput {
	s.LastModifiedTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListLabelingJobsInput) SetMaxResults(v int64) *ListLabelingJobsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListLabelingJobsInput) SetNameContains(v string) *ListLabelingJobsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListLabelingJobsInput) SetNextToken(v string) *ListLabelingJobsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListLabelingJobsInput) SetSortBy(v string) *ListLabelingJobsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListLabelingJobsInput) SetSortOrder(v string) *ListLabelingJobsInput {
	s.SortOrder = &v
	return s
}

// SetStatusEquals sets the StatusEquals field's value.
func (s *ListLabelingJobsInput) SetStatusEquals(v string) *ListLabelingJobsInput {
	s.StatusEquals = &v
	return s
}

type ListLabelingJobsOutput struct {
	_ struct{} `type:"structure"`

	// An array of LabelingJobSummary objects, each describing a labeling job.
	LabelingJobSummaryList []*LabelingJobSummary `type:"list"`

	// If the response is truncated, SageMaker returns this token. To retrieve the
	// next set of labeling jobs, use it in the subsequent request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListLabelingJobsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListLabelingJobsOutput) GoString() string {
	return s.String()
}

// SetLabelingJobSummaryList sets the LabelingJobSummaryList field's value.
func (s *ListLabelingJobsOutput) SetLabelingJobSummaryList(v []*LabelingJobSummary) *ListLabelingJobsOutput {
	s.LabelingJobSummaryList = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListLabelingJobsOutput) SetNextToken(v string) *ListLabelingJobsOutput {
	s.NextToken = &v
	return s
}

type ListLineageGroupsInput struct {
	_ struct{} `type:"structure"`

	// A timestamp to filter against lineage groups created after a certain point
	// in time.
	CreatedAfter *time.Time `type:"timestamp"`

	// A timestamp to filter against lineage groups created before a certain point
	// in time.
	CreatedBefore *time.Time `type:"timestamp"`

	// The maximum number of endpoints to return in the response. This value defaults
	// to 10.
	MaxResults *int64 `min:"1" type:"integer"`

	// If the response is truncated, SageMaker returns this token. To retrieve the
	// next set of algorithms, use it in the subsequent request.
	NextToken *string `type:"string"`

	// The parameter by which to sort the results. The default is CreationTime.
	SortBy *string `type:"string" enum:"SortLineageGroupsBy"`

	// The sort order for the results. The default is Ascending.
	SortOrder *string `type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListLineageGroupsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListLineageGroupsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListLineageGroupsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListLineageGroupsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreatedAfter sets the CreatedAfter field's value.
func (s *ListLineageGroupsInput) SetCreatedAfter(v time.Time) *ListLineageGroupsInput {
	s.CreatedAfter = &v
	return s
}

// SetCreatedBefore sets the CreatedBefore field's value.
func (s *ListLineageGroupsInput) SetCreatedBefore(v time.Time) *ListLineageGroupsInput {
	s.CreatedBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListLineageGroupsInput) SetMaxResults(v int64) *ListLineageGroupsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListLineageGroupsInput) SetNextToken(v string) *ListLineageGroupsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListLineageGroupsInput) SetSortBy(v string) *ListLineageGroupsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListLineageGroupsInput) SetSortOrder(v string) *ListLineageGroupsInput {
	s.SortOrder = &v
	return s
}

type ListLineageGroupsOutput struct {
	_ struct{} `type:"structure"`

	// A list of lineage groups and their properties.
	LineageGroupSummaries []*LineageGroupSummary `type:"list"`

	// If the response is truncated, SageMaker returns this token. To retrieve the
	// next set of algorithms, use it in the subsequent request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListLineageGroupsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListLineageGroupsOutput) GoString() string {
	return s.String()
}

// SetLineageGroupSummaries sets the LineageGroupSummaries field's value.
func (s *ListLineageGroupsOutput) SetLineageGroupSummaries(v []*LineageGroupSummary) *ListLineageGroupsOutput {
	s.LineageGroupSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListLineageGroupsOutput) SetNextToken(v string) *ListLineageGroupsOutput {
	s.NextToken = &v
	return s
}

type ListModelBiasJobDefinitionsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only model bias jobs created after a specified time.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only model bias jobs created before a specified time.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// Name of the endpoint to monitor for model bias.
	EndpointName *string `type:"string"`

	// The maximum number of model bias jobs to return in the response. The default
	// value is 10.
	MaxResults *int64 `min:"1" type:"integer"`

	// Filter for model bias jobs whose name contains a specified string.
	NameContains *string `type:"string"`

	// The token returned if the response is truncated. To retrieve the next set
	// of job executions, use it in the next request.
	NextToken *string `type:"string"`

	// Whether to sort results by the Name or CreationTime field. The default is
	// CreationTime.
	SortBy *string `type:"string" enum:"MonitoringJobDefinitionSortKey"`

	// Whether to sort the results in Ascending or Descending order. The default
	// is Descending.
	SortOrder *string `type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelBiasJobDefinitionsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelBiasJobDefinitionsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListModelBiasJobDefinitionsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListModelBiasJobDefinitionsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListModelBiasJobDefinitionsInput) SetCreationTimeAfter(v time.Time) *ListModelBiasJobDefinitionsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListModelBiasJobDefinitionsInput) SetCreationTimeBefore(v time.Time) *ListModelBiasJobDefinitionsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *ListModelBiasJobDefinitionsInput) SetEndpointName(v string) *ListModelBiasJobDefinitionsInput {
	s.EndpointName = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListModelBiasJobDefinitionsInput) SetMaxResults(v int64) *ListModelBiasJobDefinitionsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListModelBiasJobDefinitionsInput) SetNameContains(v string) *ListModelBiasJobDefinitionsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListModelBiasJobDefinitionsInput) SetNextToken(v string) *ListModelBiasJobDefinitionsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListModelBiasJobDefinitionsInput) SetSortBy(v string) *ListModelBiasJobDefinitionsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListModelBiasJobDefinitionsInput) SetSortOrder(v string) *ListModelBiasJobDefinitionsInput {
	s.SortOrder = &v
	return s
}

type ListModelBiasJobDefinitionsOutput struct {
	_ struct{} `type:"structure"`

	// A JSON array in which each element is a summary for a model bias jobs.
	//
	// JobDefinitionSummaries is a required field
	JobDefinitionSummaries []*MonitoringJobDefinitionSummary `type:"list" required:"true"`

	// The token returned if the response is truncated. To retrieve the next set
	// of job executions, use it in the next request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelBiasJobDefinitionsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelBiasJobDefinitionsOutput) GoString() string {
	return s.String()
}

// SetJobDefinitionSummaries sets the JobDefinitionSummaries field's value.
func (s *ListModelBiasJobDefinitionsOutput) SetJobDefinitionSummaries(v []*MonitoringJobDefinitionSummary) *ListModelBiasJobDefinitionsOutput {
	s.JobDefinitionSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListModelBiasJobDefinitionsOutput) SetNextToken(v string) *ListModelBiasJobDefinitionsOutput {
	s.NextToken = &v
	return s
}

type ListModelCardExportJobsInput struct {
	_ struct{} `type:"structure"`

	// Only list model card export jobs that were created after the time specified.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// Only list model card export jobs that were created before the time specified.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of model card export jobs to list.
	MaxResults *int64 `min:"1" type:"integer"`

	// Only list model card export jobs with names that contain the specified string.
	ModelCardExportJobNameContains *string `min:"1" type:"string"`

	// List export jobs for the model card with the specified name.
	//
	// ModelCardName is a required field
	ModelCardName *string `min:"1" type:"string" required:"true"`

	// List export jobs for the model card with the specified version.
	ModelCardVersion *int64 `type:"integer"`

	// If the response to a previous ListModelCardExportJobs request was truncated,
	// the response includes a NextToken. To retrieve the next set of model card
	// export jobs, use the token in the next request.
	NextToken *string `type:"string"`

	// Sort model card export jobs by either name or creation time. Sorts by creation
	// time by default.
	SortBy *string `type:"string" enum:"ModelCardExportJobSortBy"`

	// Sort model card export jobs by ascending or descending order.
	SortOrder *string `type:"string" enum:"ModelCardExportJobSortOrder"`

	// Only list model card export jobs with the specified status.
	StatusEquals *string `type:"string" enum:"ModelCardExportJobStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelCardExportJobsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelCardExportJobsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListModelCardExportJobsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListModelCardExportJobsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.ModelCardExportJobNameContains != nil && len(*s.ModelCardExportJobNameContains) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelCardExportJobNameContains", 1))
	}
	if s.ModelCardName == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelCardName"))
	}
	if s.ModelCardName != nil && len(*s.ModelCardName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelCardName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListModelCardExportJobsInput) SetCreationTimeAfter(v time.Time) *ListModelCardExportJobsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListModelCardExportJobsInput) SetCreationTimeBefore(v time.Time) *ListModelCardExportJobsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListModelCardExportJobsInput) SetMaxResults(v int64) *ListModelCardExportJobsInput {
	s.MaxResults = &v
	return s
}

// SetModelCardExportJobNameContains sets the ModelCardExportJobNameContains field's value.
func (s *ListModelCardExportJobsInput) SetModelCardExportJobNameContains(v string) *ListModelCardExportJobsInput {
	s.ModelCardExportJobNameContains = &v
	return s
}

// SetModelCardName sets the ModelCardName field's value.
func (s *ListModelCardExportJobsInput) SetModelCardName(v string) *ListModelCardExportJobsInput {
	s.ModelCardName = &v
	return s
}

// SetModelCardVersion sets the ModelCardVersion field's value.
func (s *ListModelCardExportJobsInput) SetModelCardVersion(v int64) *ListModelCardExportJobsInput {
	s.ModelCardVersion = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListModelCardExportJobsInput) SetNextToken(v string) *ListModelCardExportJobsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListModelCardExportJobsInput) SetSortBy(v string) *ListModelCardExportJobsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListModelCardExportJobsInput) SetSortOrder(v string) *ListModelCardExportJobsInput {
	s.SortOrder = &v
	return s
}

// SetStatusEquals sets the StatusEquals field's value.
func (s *ListModelCardExportJobsInput) SetStatusEquals(v string) *ListModelCardExportJobsInput {
	s.StatusEquals = &v
	return s
}

type ListModelCardExportJobsOutput struct {
	_ struct{} `type:"structure"`

	// The summaries of the listed model card export jobs.
	//
	// ModelCardExportJobSummaries is a required field
	ModelCardExportJobSummaries []*ModelCardExportJobSummary `type:"list" required:"true"`

	// If the response is truncated, SageMaker returns this token. To retrieve the
	// next set of model card export jobs, use it in the subsequent request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelCardExportJobsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelCardExportJobsOutput) GoString() string {
	return s.String()
}

// SetModelCardExportJobSummaries sets the ModelCardExportJobSummaries field's value.
func (s *ListModelCardExportJobsOutput) SetModelCardExportJobSummaries(v []*ModelCardExportJobSummary) *ListModelCardExportJobsOutput {
	s.ModelCardExportJobSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListModelCardExportJobsOutput) SetNextToken(v string) *ListModelCardExportJobsOutput {
	s.NextToken = &v
	return s
}

type ListModelCardVersionsInput struct {
	_ struct{} `type:"structure"`

	// Only list model card versions that were created after the time specified.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// Only list model card versions that were created before the time specified.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of model card versions to list.
	MaxResults *int64 `min:"1" type:"integer"`

	// List model card versions for the model card with the specified name or Amazon
	// Resource Name (ARN).
	//
	// ModelCardName is a required field
	ModelCardName *string `min:"1" type:"string" required:"true"`

	// Only list model card versions with the specified approval status.
	ModelCardStatus *string `type:"string" enum:"ModelCardStatus"`

	// If the response to a previous ListModelCardVersions request was truncated,
	// the response includes a NextToken. To retrieve the next set of model card
	// versions, use the token in the next request.
	NextToken *string `type:"string"`

	// Sort listed model card versions by version. Sorts by version by default.
	SortBy *string `type:"string" enum:"ModelCardVersionSortBy"`

	// Sort model card versions by ascending or descending order.
	SortOrder *string `type:"string" enum:"ModelCardSortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelCardVersionsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelCardVersionsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListModelCardVersionsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListModelCardVersionsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.ModelCardName == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelCardName"))
	}
	if s.ModelCardName != nil && len(*s.ModelCardName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelCardName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListModelCardVersionsInput) SetCreationTimeAfter(v time.Time) *ListModelCardVersionsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListModelCardVersionsInput) SetCreationTimeBefore(v time.Time) *ListModelCardVersionsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListModelCardVersionsInput) SetMaxResults(v int64) *ListModelCardVersionsInput {
	s.MaxResults = &v
	return s
}

// SetModelCardName sets the ModelCardName field's value.
func (s *ListModelCardVersionsInput) SetModelCardName(v string) *ListModelCardVersionsInput {
	s.ModelCardName = &v
	return s
}

// SetModelCardStatus sets the ModelCardStatus field's value.
func (s *ListModelCardVersionsInput) SetModelCardStatus(v string) *ListModelCardVersionsInput {
	s.ModelCardStatus = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListModelCardVersionsInput) SetNextToken(v string) *ListModelCardVersionsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListModelCardVersionsInput) SetSortBy(v string) *ListModelCardVersionsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListModelCardVersionsInput) SetSortOrder(v string) *ListModelCardVersionsInput {
	s.SortOrder = &v
	return s
}

type ListModelCardVersionsOutput struct {
	_ struct{} `type:"structure"`

	// The summaries of the listed versions of the model card.
	//
	// ModelCardVersionSummaryList is a required field
	ModelCardVersionSummaryList []*ModelCardVersionSummary `type:"list" required:"true"`

	// If the response is truncated, SageMaker returns this token. To retrieve the
	// next set of model card versions, use it in the subsequent request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelCardVersionsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelCardVersionsOutput) GoString() string {
	return s.String()
}

// SetModelCardVersionSummaryList sets the ModelCardVersionSummaryList field's value.
func (s *ListModelCardVersionsOutput) SetModelCardVersionSummaryList(v []*ModelCardVersionSummary) *ListModelCardVersionsOutput {
	s.ModelCardVersionSummaryList = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListModelCardVersionsOutput) SetNextToken(v string) *ListModelCardVersionsOutput {
	s.NextToken = &v
	return s
}

type ListModelCardsInput struct {
	_ struct{} `type:"structure"`

	// Only list model cards that were created after the time specified.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// Only list model cards that were created before the time specified.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of model cards to list.
	MaxResults *int64 `min:"1" type:"integer"`

	// Only list model cards with the specified approval status.
	ModelCardStatus *string `type:"string" enum:"ModelCardStatus"`

	// Only list model cards with names that contain the specified string.
	NameContains *string `min:"1" type:"string"`

	// If the response to a previous ListModelCards request was truncated, the response
	// includes a NextToken. To retrieve the next set of model cards, use the token
	// in the next request.
	NextToken *string `type:"string"`

	// Sort model cards by either name or creation time. Sorts by creation time
	// by default.
	SortBy *string `type:"string" enum:"ModelCardSortBy"`

	// Sort model cards by ascending or descending order.
	SortOrder *string `type:"string" enum:"ModelCardSortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelCardsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelCardsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListModelCardsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListModelCardsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NameContains != nil && len(*s.NameContains) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NameContains", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListModelCardsInput) SetCreationTimeAfter(v time.Time) *ListModelCardsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListModelCardsInput) SetCreationTimeBefore(v time.Time) *ListModelCardsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListModelCardsInput) SetMaxResults(v int64) *ListModelCardsInput {
	s.MaxResults = &v
	return s
}

// SetModelCardStatus sets the ModelCardStatus field's value.
func (s *ListModelCardsInput) SetModelCardStatus(v string) *ListModelCardsInput {
	s.ModelCardStatus = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListModelCardsInput) SetNameContains(v string) *ListModelCardsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListModelCardsInput) SetNextToken(v string) *ListModelCardsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListModelCardsInput) SetSortBy(v string) *ListModelCardsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListModelCardsInput) SetSortOrder(v string) *ListModelCardsInput {
	s.SortOrder = &v
	return s
}

type ListModelCardsOutput struct {
	_ struct{} `type:"structure"`

	// The summaries of the listed model cards.
	//
	// ModelCardSummaries is a required field
	ModelCardSummaries []*ModelCardSummary `type:"list" required:"true"`

	// If the response is truncated, SageMaker returns this token. To retrieve the
	// next set of model cards, use it in the subsequent request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelCardsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelCardsOutput) GoString() string {
	return s.String()
}

// SetModelCardSummaries sets the ModelCardSummaries field's value.
func (s *ListModelCardsOutput) SetModelCardSummaries(v []*ModelCardSummary) *ListModelCardsOutput {
	s.ModelCardSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListModelCardsOutput) SetNextToken(v string) *ListModelCardsOutput {
	s.NextToken = &v
	return s
}

type ListModelExplainabilityJobDefinitionsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only model explainability jobs created after a specified
	// time.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only model explainability jobs created before a specified
	// time.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// Name of the endpoint to monitor for model explainability.
	EndpointName *string `type:"string"`

	// The maximum number of jobs to return in the response. The default value is
	// 10.
	MaxResults *int64 `min:"1" type:"integer"`

	// Filter for model explainability jobs whose name contains a specified string.
	NameContains *string `type:"string"`

	// The token returned if the response is truncated. To retrieve the next set
	// of job executions, use it in the next request.
	NextToken *string `type:"string"`

	// Whether to sort results by the Name or CreationTime field. The default is
	// CreationTime.
	SortBy *string `type:"string" enum:"MonitoringJobDefinitionSortKey"`

	// Whether to sort the results in Ascending or Descending order. The default
	// is Descending.
	SortOrder *string `type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelExplainabilityJobDefinitionsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelExplainabilityJobDefinitionsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListModelExplainabilityJobDefinitionsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListModelExplainabilityJobDefinitionsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListModelExplainabilityJobDefinitionsInput) SetCreationTimeAfter(v time.Time) *ListModelExplainabilityJobDefinitionsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListModelExplainabilityJobDefinitionsInput) SetCreationTimeBefore(v time.Time) *ListModelExplainabilityJobDefinitionsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *ListModelExplainabilityJobDefinitionsInput) SetEndpointName(v string) *ListModelExplainabilityJobDefinitionsInput {
	s.EndpointName = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListModelExplainabilityJobDefinitionsInput) SetMaxResults(v int64) *ListModelExplainabilityJobDefinitionsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListModelExplainabilityJobDefinitionsInput) SetNameContains(v string) *ListModelExplainabilityJobDefinitionsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListModelExplainabilityJobDefinitionsInput) SetNextToken(v string) *ListModelExplainabilityJobDefinitionsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListModelExplainabilityJobDefinitionsInput) SetSortBy(v string) *ListModelExplainabilityJobDefinitionsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListModelExplainabilityJobDefinitionsInput) SetSortOrder(v string) *ListModelExplainabilityJobDefinitionsInput {
	s.SortOrder = &v
	return s
}

type ListModelExplainabilityJobDefinitionsOutput struct {
	_ struct{} `type:"structure"`

	// A JSON array in which each element is a summary for a explainability bias
	// jobs.
	//
	// JobDefinitionSummaries is a required field
	JobDefinitionSummaries []*MonitoringJobDefinitionSummary `type:"list" required:"true"`

	// The token returned if the response is truncated. To retrieve the next set
	// of job executions, use it in the next request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelExplainabilityJobDefinitionsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelExplainabilityJobDefinitionsOutput) GoString() string {
	return s.String()
}

// SetJobDefinitionSummaries sets the JobDefinitionSummaries field's value.
func (s *ListModelExplainabilityJobDefinitionsOutput) SetJobDefinitionSummaries(v []*MonitoringJobDefinitionSummary) *ListModelExplainabilityJobDefinitionsOutput {
	s.JobDefinitionSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListModelExplainabilityJobDefinitionsOutput) SetNextToken(v string) *ListModelExplainabilityJobDefinitionsOutput {
	s.NextToken = &v
	return s
}

type ListModelMetadataInput struct {
	_ struct{} `type:"structure"`

	// The maximum number of models to return in the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// If the response to a previous ListModelMetadataResponse request was truncated,
	// the response includes a NextToken. To retrieve the next set of model metadata,
	// use the token in the next request.
	NextToken *string `type:"string"`

	// One or more filters that searches for the specified resource or resources
	// in a search. All resource objects that satisfy the expression's condition
	// are included in the search results. Specify the Framework, FrameworkVersion,
	// Domain or Task to filter supported. Filter names and values are case-sensitive.
	SearchExpression *ModelMetadataSearchExpression `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelMetadataInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelMetadataInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListModelMetadataInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListModelMetadataInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.SearchExpression != nil {
		if err := s.SearchExpression.Validate(); err != nil {
			invalidParams.AddNested("SearchExpression", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListModelMetadataInput) SetMaxResults(v int64) *ListModelMetadataInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListModelMetadataInput) SetNextToken(v string) *ListModelMetadataInput {
	s.NextToken = &v
	return s
}

// SetSearchExpression sets the SearchExpression field's value.
func (s *ListModelMetadataInput) SetSearchExpression(v *ModelMetadataSearchExpression) *ListModelMetadataInput {
	s.SearchExpression = v
	return s
}

type ListModelMetadataOutput struct {
	_ struct{} `type:"structure"`

	// A structure that holds model metadata.
	//
	// ModelMetadataSummaries is a required field
	ModelMetadataSummaries []*ModelMetadataSummary `type:"list" required:"true"`

	// A token for getting the next set of recommendations, if there are any.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelMetadataOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelMetadataOutput) GoString() string {
	return s.String()
}

// SetModelMetadataSummaries sets the ModelMetadataSummaries field's value.
func (s *ListModelMetadataOutput) SetModelMetadataSummaries(v []*ModelMetadataSummary) *ListModelMetadataOutput {
	s.ModelMetadataSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListModelMetadataOutput) SetNextToken(v string) *ListModelMetadataOutput {
	s.NextToken = &v
	return s
}

type ListModelPackageGroupsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only model groups created after the specified time.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only model groups created before the specified time.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of results to return in the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// A string in the model group name. This filter returns only model groups whose
	// name contains the specified string.
	NameContains *string `type:"string"`

	// If the result of the previous ListModelPackageGroups request was truncated,
	// the response includes a NextToken. To retrieve the next set of model groups,
	// use the token in the next request.
	NextToken *string `type:"string"`

	// The field to sort results by. The default is CreationTime.
	SortBy *string `type:"string" enum:"ModelPackageGroupSortBy"`

	// The sort order for results. The default is Ascending.
	SortOrder *string `type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelPackageGroupsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelPackageGroupsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListModelPackageGroupsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListModelPackageGroupsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListModelPackageGroupsInput) SetCreationTimeAfter(v time.Time) *ListModelPackageGroupsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListModelPackageGroupsInput) SetCreationTimeBefore(v time.Time) *ListModelPackageGroupsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListModelPackageGroupsInput) SetMaxResults(v int64) *ListModelPackageGroupsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListModelPackageGroupsInput) SetNameContains(v string) *ListModelPackageGroupsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListModelPackageGroupsInput) SetNextToken(v string) *ListModelPackageGroupsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListModelPackageGroupsInput) SetSortBy(v string) *ListModelPackageGroupsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListModelPackageGroupsInput) SetSortOrder(v string) *ListModelPackageGroupsInput {
	s.SortOrder = &v
	return s
}

type ListModelPackageGroupsOutput struct {
	_ struct{} `type:"structure"`

	// A list of summaries of the model groups in your Amazon Web Services account.
	//
	// ModelPackageGroupSummaryList is a required field
	ModelPackageGroupSummaryList []*ModelPackageGroupSummary `type:"list" required:"true"`

	// If the response is truncated, SageMaker returns this token. To retrieve the
	// next set of model groups, use it in the subsequent request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelPackageGroupsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelPackageGroupsOutput) GoString() string {
	return s.String()
}

// SetModelPackageGroupSummaryList sets the ModelPackageGroupSummaryList field's value.
func (s *ListModelPackageGroupsOutput) SetModelPackageGroupSummaryList(v []*ModelPackageGroupSummary) *ListModelPackageGroupsOutput {
	s.ModelPackageGroupSummaryList = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListModelPackageGroupsOutput) SetNextToken(v string) *ListModelPackageGroupsOutput {
	s.NextToken = &v
	return s
}

type ListModelPackagesInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only model packages created after the specified time
	// (timestamp).
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only model packages created before the specified time
	// (timestamp).
	CreationTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of model packages to return in the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// A filter that returns only the model packages with the specified approval
	// status.
	ModelApprovalStatus *string `type:"string" enum:"ModelApprovalStatus"`

	// A filter that returns only model versions that belong to the specified model
	// group.
	ModelPackageGroupName *string `min:"1" type:"string"`

	// A filter that returns only the model packages of the specified type. This
	// can be one of the following values.
	//
	//    * UNVERSIONED - List only unversioined models. This is the default value
	//    if no ModelPackageType is specified.
	//
	//    * VERSIONED - List only versioned models.
	//
	//    * BOTH - List both versioned and unversioned models.
	ModelPackageType *string `type:"string" enum:"ModelPackageType"`

	// A string in the model package name. This filter returns only model packages
	// whose name contains the specified string.
	NameContains *string `type:"string"`

	// If the response to a previous ListModelPackages request was truncated, the
	// response includes a NextToken. To retrieve the next set of model packages,
	// use the token in the next request.
	NextToken *string `type:"string"`

	// The parameter by which to sort the results. The default is CreationTime.
	SortBy *string `type:"string" enum:"ModelPackageSortBy"`

	// The sort order for the results. The default is Ascending.
	SortOrder *string `type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelPackagesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelPackagesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListModelPackagesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListModelPackagesInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.ModelPackageGroupName != nil && len(*s.ModelPackageGroupName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelPackageGroupName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListModelPackagesInput) SetCreationTimeAfter(v time.Time) *ListModelPackagesInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListModelPackagesInput) SetCreationTimeBefore(v time.Time) *ListModelPackagesInput {
	s.CreationTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListModelPackagesInput) SetMaxResults(v int64) *ListModelPackagesInput {
	s.MaxResults = &v
	return s
}

// SetModelApprovalStatus sets the ModelApprovalStatus field's value.
func (s *ListModelPackagesInput) SetModelApprovalStatus(v string) *ListModelPackagesInput {
	s.ModelApprovalStatus = &v
	return s
}

// SetModelPackageGroupName sets the ModelPackageGroupName field's value.
func (s *ListModelPackagesInput) SetModelPackageGroupName(v string) *ListModelPackagesInput {
	s.ModelPackageGroupName = &v
	return s
}

// SetModelPackageType sets the ModelPackageType field's value.
func (s *ListModelPackagesInput) SetModelPackageType(v string) *ListModelPackagesInput {
	s.ModelPackageType = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListModelPackagesInput) SetNameContains(v string) *ListModelPackagesInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListModelPackagesInput) SetNextToken(v string) *ListModelPackagesInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListModelPackagesInput) SetSortBy(v string) *ListModelPackagesInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListModelPackagesInput) SetSortOrder(v string) *ListModelPackagesInput {
	s.SortOrder = &v
	return s
}

type ListModelPackagesOutput struct {
	_ struct{} `type:"structure"`

	// An array of ModelPackageSummary objects, each of which lists a model package.
	//
	// ModelPackageSummaryList is a required field
	ModelPackageSummaryList []*ModelPackageSummary `type:"list" required:"true"`

	// If the response is truncated, SageMaker returns this token. To retrieve the
	// next set of model packages, use it in the subsequent request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelPackagesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelPackagesOutput) GoString() string {
	return s.String()
}

// SetModelPackageSummaryList sets the ModelPackageSummaryList field's value.
func (s *ListModelPackagesOutput) SetModelPackageSummaryList(v []*ModelPackageSummary) *ListModelPackagesOutput {
	s.ModelPackageSummaryList = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListModelPackagesOutput) SetNextToken(v string) *ListModelPackagesOutput {
	s.NextToken = &v
	return s
}

type ListModelQualityJobDefinitionsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only model quality monitoring job definitions created
	// after the specified time.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only model quality monitoring job definitions created
	// before the specified time.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// A filter that returns only model quality monitoring job definitions that
	// are associated with the specified endpoint.
	EndpointName *string `type:"string"`

	// The maximum number of results to return in a call to ListModelQualityJobDefinitions.
	MaxResults *int64 `min:"1" type:"integer"`

	// A string in the transform job name. This filter returns only model quality
	// monitoring job definitions whose name contains the specified string.
	NameContains *string `type:"string"`

	// If the result of the previous ListModelQualityJobDefinitions request was
	// truncated, the response includes a NextToken. To retrieve the next set of
	// model quality monitoring job definitions, use the token in the next request.
	NextToken *string `type:"string"`

	// The field to sort results by. The default is CreationTime.
	SortBy *string `type:"string" enum:"MonitoringJobDefinitionSortKey"`

	// Whether to sort the results in Ascending or Descending order. The default
	// is Descending.
	SortOrder *string `type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelQualityJobDefinitionsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelQualityJobDefinitionsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListModelQualityJobDefinitionsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListModelQualityJobDefinitionsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListModelQualityJobDefinitionsInput) SetCreationTimeAfter(v time.Time) *ListModelQualityJobDefinitionsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListModelQualityJobDefinitionsInput) SetCreationTimeBefore(v time.Time) *ListModelQualityJobDefinitionsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *ListModelQualityJobDefinitionsInput) SetEndpointName(v string) *ListModelQualityJobDefinitionsInput {
	s.EndpointName = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListModelQualityJobDefinitionsInput) SetMaxResults(v int64) *ListModelQualityJobDefinitionsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListModelQualityJobDefinitionsInput) SetNameContains(v string) *ListModelQualityJobDefinitionsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListModelQualityJobDefinitionsInput) SetNextToken(v string) *ListModelQualityJobDefinitionsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListModelQualityJobDefinitionsInput) SetSortBy(v string) *ListModelQualityJobDefinitionsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListModelQualityJobDefinitionsInput) SetSortOrder(v string) *ListModelQualityJobDefinitionsInput {
	s.SortOrder = &v
	return s
}

type ListModelQualityJobDefinitionsOutput struct {
	_ struct{} `type:"structure"`

	// A list of summaries of model quality monitoring job definitions.
	//
	// JobDefinitionSummaries is a required field
	JobDefinitionSummaries []*MonitoringJobDefinitionSummary `type:"list" required:"true"`

	// If the response is truncated, Amazon SageMaker returns this token. To retrieve
	// the next set of model quality monitoring job definitions, use it in the next
	// request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelQualityJobDefinitionsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelQualityJobDefinitionsOutput) GoString() string {
	return s.String()
}

// SetJobDefinitionSummaries sets the JobDefinitionSummaries field's value.
func (s *ListModelQualityJobDefinitionsOutput) SetJobDefinitionSummaries(v []*MonitoringJobDefinitionSummary) *ListModelQualityJobDefinitionsOutput {
	s.JobDefinitionSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListModelQualityJobDefinitionsOutput) SetNextToken(v string) *ListModelQualityJobDefinitionsOutput {
	s.NextToken = &v
	return s
}

type ListModelsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only models with a creation time greater than or equal
	// to the specified time (timestamp).
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only models created before the specified time (timestamp).
	CreationTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of models to return in the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// A string in the model name. This filter returns only models whose name contains
	// the specified string.
	NameContains *string `type:"string"`

	// If the response to a previous ListModels request was truncated, the response
	// includes a NextToken. To retrieve the next set of models, use the token in
	// the next request.
	NextToken *string `type:"string"`

	// Sorts the list of results. The default is CreationTime.
	SortBy *string `type:"string" enum:"ModelSortKey"`

	// The sort order for results. The default is Descending.
	SortOrder *string `type:"string" enum:"OrderKey"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListModelsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListModelsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListModelsInput) SetCreationTimeAfter(v time.Time) *ListModelsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListModelsInput) SetCreationTimeBefore(v time.Time) *ListModelsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListModelsInput) SetMaxResults(v int64) *ListModelsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListModelsInput) SetNameContains(v string) *ListModelsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListModelsInput) SetNextToken(v string) *ListModelsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListModelsInput) SetSortBy(v string) *ListModelsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListModelsInput) SetSortOrder(v string) *ListModelsInput {
	s.SortOrder = &v
	return s
}

type ListModelsOutput struct {
	_ struct{} `type:"structure"`

	// An array of ModelSummary objects, each of which lists a model.
	//
	// Models is a required field
	Models []*ModelSummary `type:"list" required:"true"`

	// If the response is truncated, SageMaker returns this token. To retrieve the
	// next set of models, use it in the subsequent request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListModelsOutput) GoString() string {
	return s.String()
}

// SetModels sets the Models field's value.
func (s *ListModelsOutput) SetModels(v []*ModelSummary) *ListModelsOutput {
	s.Models = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListModelsOutput) SetNextToken(v string) *ListModelsOutput {
	s.NextToken = &v
	return s
}

type ListMonitoringAlertHistoryInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only alerts created on or after the specified time.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only alerts created on or before the specified time.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of results to display. The default is 100.
	MaxResults *int64 `min:"1" type:"integer"`

	// The name of a monitoring alert.
	MonitoringAlertName *string `min:"1" type:"string"`

	// The name of a monitoring schedule.
	MonitoringScheduleName *string `min:"1" type:"string"`

	// If the result of the previous ListMonitoringAlertHistory request was truncated,
	// the response includes a NextToken. To retrieve the next set of alerts in
	// the history, use the token in the next request.
	NextToken *string `type:"string"`

	// The field used to sort results. The default is CreationTime.
	SortBy *string `type:"string" enum:"MonitoringAlertHistorySortKey"`

	// The sort order, whether Ascending or Descending, of the alert history. The
	// default is Descending.
	SortOrder *string `type:"string" enum:"SortOrder"`

	// A filter that retrieves only alerts with a specific status.
	StatusEquals *string `type:"string" enum:"MonitoringAlertStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMonitoringAlertHistoryInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMonitoringAlertHistoryInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListMonitoringAlertHistoryInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListMonitoringAlertHistoryInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.MonitoringAlertName != nil && len(*s.MonitoringAlertName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MonitoringAlertName", 1))
	}
	if s.MonitoringScheduleName != nil && len(*s.MonitoringScheduleName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MonitoringScheduleName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListMonitoringAlertHistoryInput) SetCreationTimeAfter(v time.Time) *ListMonitoringAlertHistoryInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListMonitoringAlertHistoryInput) SetCreationTimeBefore(v time.Time) *ListMonitoringAlertHistoryInput {
	s.CreationTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListMonitoringAlertHistoryInput) SetMaxResults(v int64) *ListMonitoringAlertHistoryInput {
	s.MaxResults = &v
	return s
}

// SetMonitoringAlertName sets the MonitoringAlertName field's value.
func (s *ListMonitoringAlertHistoryInput) SetMonitoringAlertName(v string) *ListMonitoringAlertHistoryInput {
	s.MonitoringAlertName = &v
	return s
}

// SetMonitoringScheduleName sets the MonitoringScheduleName field's value.
func (s *ListMonitoringAlertHistoryInput) SetMonitoringScheduleName(v string) *ListMonitoringAlertHistoryInput {
	s.MonitoringScheduleName = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListMonitoringAlertHistoryInput) SetNextToken(v string) *ListMonitoringAlertHistoryInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListMonitoringAlertHistoryInput) SetSortBy(v string) *ListMonitoringAlertHistoryInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListMonitoringAlertHistoryInput) SetSortOrder(v string) *ListMonitoringAlertHistoryInput {
	s.SortOrder = &v
	return s
}

// SetStatusEquals sets the StatusEquals field's value.
func (s *ListMonitoringAlertHistoryInput) SetStatusEquals(v string) *ListMonitoringAlertHistoryInput {
	s.StatusEquals = &v
	return s
}

type ListMonitoringAlertHistoryOutput struct {
	_ struct{} `type:"structure"`

	// An alert history for a model monitoring schedule.
	MonitoringAlertHistory []*MonitoringAlertHistorySummary `type:"list"`

	// If the response is truncated, SageMaker returns this token. To retrieve the
	// next set of alerts, use it in the subsequent request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMonitoringAlertHistoryOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMonitoringAlertHistoryOutput) GoString() string {
	return s.String()
}

// SetMonitoringAlertHistory sets the MonitoringAlertHistory field's value.
func (s *ListMonitoringAlertHistoryOutput) SetMonitoringAlertHistory(v []*MonitoringAlertHistorySummary) *ListMonitoringAlertHistoryOutput {
	s.MonitoringAlertHistory = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListMonitoringAlertHistoryOutput) SetNextToken(v string) *ListMonitoringAlertHistoryOutput {
	s.NextToken = &v
	return s
}

type ListMonitoringAlertsInput struct {
	_ struct{} `type:"structure"`

	// The maximum number of results to display. The default is 100.
	MaxResults *int64 `min:"1" type:"integer"`

	// The name of a monitoring schedule.
	//
	// MonitoringScheduleName is a required field
	MonitoringScheduleName *string `min:"1" type:"string" required:"true"`

	// If the result of the previous ListMonitoringAlerts request was truncated,
	// the response includes a NextToken. To retrieve the next set of alerts in
	// the history, use the token in the next request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMonitoringAlertsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMonitoringAlertsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListMonitoringAlertsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListMonitoringAlertsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.MonitoringScheduleName == nil {
		invalidParams.Add(request.NewErrParamRequired("MonitoringScheduleName"))
	}
	if s.MonitoringScheduleName != nil && len(*s.MonitoringScheduleName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MonitoringScheduleName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListMonitoringAlertsInput) SetMaxResults(v int64) *ListMonitoringAlertsInput {
	s.MaxResults = &v
	return s
}

// SetMonitoringScheduleName sets the MonitoringScheduleName field's value.
func (s *ListMonitoringAlertsInput) SetMonitoringScheduleName(v string) *ListMonitoringAlertsInput {
	s.MonitoringScheduleName = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListMonitoringAlertsInput) SetNextToken(v string) *ListMonitoringAlertsInput {
	s.NextToken = &v
	return s
}

type ListMonitoringAlertsOutput struct {
	_ struct{} `type:"structure"`

	// A JSON array where each element is a summary for a monitoring alert.
	MonitoringAlertSummaries []*MonitoringAlertSummary `min:"1" type:"list"`

	// If the response is truncated, SageMaker returns this token. To retrieve the
	// next set of alerts, use it in the subsequent request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMonitoringAlertsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMonitoringAlertsOutput) GoString() string {
	return s.String()
}

// SetMonitoringAlertSummaries sets the MonitoringAlertSummaries field's value.
func (s *ListMonitoringAlertsOutput) SetMonitoringAlertSummaries(v []*MonitoringAlertSummary) *ListMonitoringAlertsOutput {
	s.MonitoringAlertSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListMonitoringAlertsOutput) SetNextToken(v string) *ListMonitoringAlertsOutput {
	s.NextToken = &v
	return s
}

type ListMonitoringExecutionsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only jobs created after a specified time.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only jobs created before a specified time.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// Name of a specific endpoint to fetch jobs for.
	EndpointName *string `type:"string"`

	// A filter that returns only jobs modified before a specified time.
	LastModifiedTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only jobs modified after a specified time.
	LastModifiedTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of jobs to return in the response. The default value is
	// 10.
	MaxResults *int64 `min:"1" type:"integer"`

	// Gets a list of the monitoring job runs of the specified monitoring job definitions.
	MonitoringJobDefinitionName *string `min:"1" type:"string"`

	// Name of a specific schedule to fetch jobs for.
	MonitoringScheduleName *string `min:"1" type:"string"`

	// A filter that returns only the monitoring job runs of the specified monitoring
	// type.
	MonitoringTypeEquals *string `type:"string" enum:"MonitoringType"`

	// The token returned if the response is truncated. To retrieve the next set
	// of job executions, use it in the next request.
	NextToken *string `type:"string"`

	// Filter for jobs scheduled after a specified time.
	ScheduledTimeAfter *time.Time `type:"timestamp"`

	// Filter for jobs scheduled before a specified time.
	ScheduledTimeBefore *time.Time `type:"timestamp"`

	// Whether to sort the results by the Status, CreationTime, or ScheduledTime
	// field. The default is CreationTime.
	SortBy *string `type:"string" enum:"MonitoringExecutionSortKey"`

	// Whether to sort the results in Ascending or Descending order. The default
	// is Descending.
	SortOrder *string `type:"string" enum:"SortOrder"`

	// A filter that retrieves only jobs with a specific status.
	StatusEquals *string `type:"string" enum:"ExecutionStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMonitoringExecutionsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMonitoringExecutionsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListMonitoringExecutionsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListMonitoringExecutionsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.MonitoringJobDefinitionName != nil && len(*s.MonitoringJobDefinitionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MonitoringJobDefinitionName", 1))
	}
	if s.MonitoringScheduleName != nil && len(*s.MonitoringScheduleName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MonitoringScheduleName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListMonitoringExecutionsInput) SetCreationTimeAfter(v time.Time) *ListMonitoringExecutionsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListMonitoringExecutionsInput) SetCreationTimeBefore(v time.Time) *ListMonitoringExecutionsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *ListMonitoringExecutionsInput) SetEndpointName(v string) *ListMonitoringExecutionsInput {
	s.EndpointName = &v
	return s
}

// SetLastModifiedTimeAfter sets the LastModifiedTimeAfter field's value.
func (s *ListMonitoringExecutionsInput) SetLastModifiedTimeAfter(v time.Time) *ListMonitoringExecutionsInput {
	s.LastModifiedTimeAfter = &v
	return s
}

// SetLastModifiedTimeBefore sets the LastModifiedTimeBefore field's value.
func (s *ListMonitoringExecutionsInput) SetLastModifiedTimeBefore(v time.Time) *ListMonitoringExecutionsInput {
	s.LastModifiedTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListMonitoringExecutionsInput) SetMaxResults(v int64) *ListMonitoringExecutionsInput {
	s.MaxResults = &v
	return s
}

// SetMonitoringJobDefinitionName sets the MonitoringJobDefinitionName field's value.
func (s *ListMonitoringExecutionsInput) SetMonitoringJobDefinitionName(v string) *ListMonitoringExecutionsInput {
	s.MonitoringJobDefinitionName = &v
	return s
}

// SetMonitoringScheduleName sets the MonitoringScheduleName field's value.
func (s *ListMonitoringExecutionsInput) SetMonitoringScheduleName(v string) *ListMonitoringExecutionsInput {
	s.MonitoringScheduleName = &v
	return s
}

// SetMonitoringTypeEquals sets the MonitoringTypeEquals field's value.
func (s *ListMonitoringExecutionsInput) SetMonitoringTypeEquals(v string) *ListMonitoringExecutionsInput {
	s.MonitoringTypeEquals = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListMonitoringExecutionsInput) SetNextToken(v string) *ListMonitoringExecutionsInput {
	s.NextToken = &v
	return s
}

// SetScheduledTimeAfter sets the ScheduledTimeAfter field's value.
func (s *ListMonitoringExecutionsInput) SetScheduledTimeAfter(v time.Time) *ListMonitoringExecutionsInput {
	s.ScheduledTimeAfter = &v
	return s
}

// SetScheduledTimeBefore sets the ScheduledTimeBefore field's value.
func (s *ListMonitoringExecutionsInput) SetScheduledTimeBefore(v time.Time) *ListMonitoringExecutionsInput {
	s.ScheduledTimeBefore = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListMonitoringExecutionsInput) SetSortBy(v string) *ListMonitoringExecutionsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListMonitoringExecutionsInput) SetSortOrder(v string) *ListMonitoringExecutionsInput {
	s.SortOrder = &v
	return s
}

// SetStatusEquals sets the StatusEquals field's value.
func (s *ListMonitoringExecutionsInput) SetStatusEquals(v string) *ListMonitoringExecutionsInput {
	s.StatusEquals = &v
	return s
}

type ListMonitoringExecutionsOutput struct {
	_ struct{} `type:"structure"`

	// A JSON array in which each element is a summary for a monitoring execution.
	//
	// MonitoringExecutionSummaries is a required field
	MonitoringExecutionSummaries []*MonitoringExecutionSummary `type:"list" required:"true"`

	// The token returned if the response is truncated. To retrieve the next set
	// of job executions, use it in the next request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMonitoringExecutionsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMonitoringExecutionsOutput) GoString() string {
	return s.String()
}

// SetMonitoringExecutionSummaries sets the MonitoringExecutionSummaries field's value.
func (s *ListMonitoringExecutionsOutput) SetMonitoringExecutionSummaries(v []*MonitoringExecutionSummary) *ListMonitoringExecutionsOutput {
	s.MonitoringExecutionSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListMonitoringExecutionsOutput) SetNextToken(v string) *ListMonitoringExecutionsOutput {
	s.NextToken = &v
	return s
}

type ListMonitoringSchedulesInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only monitoring schedules created after a specified
	// time.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only monitoring schedules created before a specified
	// time.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// Name of a specific endpoint to fetch schedules for.
	EndpointName *string `type:"string"`

	// A filter that returns only monitoring schedules modified after a specified
	// time.
	LastModifiedTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only monitoring schedules modified before a specified
	// time.
	LastModifiedTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of jobs to return in the response. The default value is
	// 10.
	MaxResults *int64 `min:"1" type:"integer"`

	// Gets a list of the monitoring schedules for the specified monitoring job
	// definition.
	MonitoringJobDefinitionName *string `min:"1" type:"string"`

	// A filter that returns only the monitoring schedules for the specified monitoring
	// type.
	MonitoringTypeEquals *string `type:"string" enum:"MonitoringType"`

	// Filter for monitoring schedules whose name contains a specified string.
	NameContains *string `type:"string"`

	// The token returned if the response is truncated. To retrieve the next set
	// of job executions, use it in the next request.
	NextToken *string `type:"string"`

	// Whether to sort the results by the Status, CreationTime, or ScheduledTime
	// field. The default is CreationTime.
	SortBy *string `type:"string" enum:"MonitoringScheduleSortKey"`

	// Whether to sort the results in Ascending or Descending order. The default
	// is Descending.
	SortOrder *string `type:"string" enum:"SortOrder"`

	// A filter that returns only monitoring schedules modified before a specified
	// time.
	StatusEquals *string `type:"string" enum:"ScheduleStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMonitoringSchedulesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMonitoringSchedulesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListMonitoringSchedulesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListMonitoringSchedulesInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.MonitoringJobDefinitionName != nil && len(*s.MonitoringJobDefinitionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MonitoringJobDefinitionName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListMonitoringSchedulesInput) SetCreationTimeAfter(v time.Time) *ListMonitoringSchedulesInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListMonitoringSchedulesInput) SetCreationTimeBefore(v time.Time) *ListMonitoringSchedulesInput {
	s.CreationTimeBefore = &v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *ListMonitoringSchedulesInput) SetEndpointName(v string) *ListMonitoringSchedulesInput {
	s.EndpointName = &v
	return s
}

// SetLastModifiedTimeAfter sets the LastModifiedTimeAfter field's value.
func (s *ListMonitoringSchedulesInput) SetLastModifiedTimeAfter(v time.Time) *ListMonitoringSchedulesInput {
	s.LastModifiedTimeAfter = &v
	return s
}

// SetLastModifiedTimeBefore sets the LastModifiedTimeBefore field's value.
func (s *ListMonitoringSchedulesInput) SetLastModifiedTimeBefore(v time.Time) *ListMonitoringSchedulesInput {
	s.LastModifiedTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListMonitoringSchedulesInput) SetMaxResults(v int64) *ListMonitoringSchedulesInput {
	s.MaxResults = &v
	return s
}

// SetMonitoringJobDefinitionName sets the MonitoringJobDefinitionName field's value.
func (s *ListMonitoringSchedulesInput) SetMonitoringJobDefinitionName(v string) *ListMonitoringSchedulesInput {
	s.MonitoringJobDefinitionName = &v
	return s
}

// SetMonitoringTypeEquals sets the MonitoringTypeEquals field's value.
func (s *ListMonitoringSchedulesInput) SetMonitoringTypeEquals(v string) *ListMonitoringSchedulesInput {
	s.MonitoringTypeEquals = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListMonitoringSchedulesInput) SetNameContains(v string) *ListMonitoringSchedulesInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListMonitoringSchedulesInput) SetNextToken(v string) *ListMonitoringSchedulesInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListMonitoringSchedulesInput) SetSortBy(v string) *ListMonitoringSchedulesInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListMonitoringSchedulesInput) SetSortOrder(v string) *ListMonitoringSchedulesInput {
	s.SortOrder = &v
	return s
}

// SetStatusEquals sets the StatusEquals field's value.
func (s *ListMonitoringSchedulesInput) SetStatusEquals(v string) *ListMonitoringSchedulesInput {
	s.StatusEquals = &v
	return s
}

type ListMonitoringSchedulesOutput struct {
	_ struct{} `type:"structure"`

	// A JSON array in which each element is a summary for a monitoring schedule.
	//
	// MonitoringScheduleSummaries is a required field
	MonitoringScheduleSummaries []*MonitoringScheduleSummary `type:"list" required:"true"`

	// The token returned if the response is truncated. To retrieve the next set
	// of job executions, use it in the next request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMonitoringSchedulesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListMonitoringSchedulesOutput) GoString() string {
	return s.String()
}

// SetMonitoringScheduleSummaries sets the MonitoringScheduleSummaries field's value.
func (s *ListMonitoringSchedulesOutput) SetMonitoringScheduleSummaries(v []*MonitoringScheduleSummary) *ListMonitoringSchedulesOutput {
	s.MonitoringScheduleSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListMonitoringSchedulesOutput) SetNextToken(v string) *ListMonitoringSchedulesOutput {
	s.NextToken = &v
	return s
}

type ListNotebookInstanceLifecycleConfigsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only lifecycle configurations that were created after
	// the specified time (timestamp).
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only lifecycle configurations that were created before
	// the specified time (timestamp).
	CreationTimeBefore *time.Time `type:"timestamp"`

	// A filter that returns only lifecycle configurations that were modified after
	// the specified time (timestamp).
	LastModifiedTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only lifecycle configurations that were modified before
	// the specified time (timestamp).
	LastModifiedTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of lifecycle configurations to return in the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// A string in the lifecycle configuration name. This filter returns only lifecycle
	// configurations whose name contains the specified string.
	NameContains *string `type:"string"`

	// If the result of a ListNotebookInstanceLifecycleConfigs request was truncated,
	// the response includes a NextToken. To get the next set of lifecycle configurations,
	// use the token in the next request.
	NextToken *string `type:"string"`

	// Sorts the list of results. The default is CreationTime.
	SortBy *string `type:"string" enum:"NotebookInstanceLifecycleConfigSortKey"`

	// The sort order for results.
	SortOrder *string `type:"string" enum:"NotebookInstanceLifecycleConfigSortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListNotebookInstanceLifecycleConfigsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListNotebookInstanceLifecycleConfigsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListNotebookInstanceLifecycleConfigsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListNotebookInstanceLifecycleConfigsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListNotebookInstanceLifecycleConfigsInput) SetCreationTimeAfter(v time.Time) *ListNotebookInstanceLifecycleConfigsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListNotebookInstanceLifecycleConfigsInput) SetCreationTimeBefore(v time.Time) *ListNotebookInstanceLifecycleConfigsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetLastModifiedTimeAfter sets the LastModifiedTimeAfter field's value.
func (s *ListNotebookInstanceLifecycleConfigsInput) SetLastModifiedTimeAfter(v time.Time) *ListNotebookInstanceLifecycleConfigsInput {
	s.LastModifiedTimeAfter = &v
	return s
}

// SetLastModifiedTimeBefore sets the LastModifiedTimeBefore field's value.
func (s *ListNotebookInstanceLifecycleConfigsInput) SetLastModifiedTimeBefore(v time.Time) *ListNotebookInstanceLifecycleConfigsInput {
	s.LastModifiedTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListNotebookInstanceLifecycleConfigsInput) SetMaxResults(v int64) *ListNotebookInstanceLifecycleConfigsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListNotebookInstanceLifecycleConfigsInput) SetNameContains(v string) *ListNotebookInstanceLifecycleConfigsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListNotebookInstanceLifecycleConfigsInput) SetNextToken(v string) *ListNotebookInstanceLifecycleConfigsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListNotebookInstanceLifecycleConfigsInput) SetSortBy(v string) *ListNotebookInstanceLifecycleConfigsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListNotebookInstanceLifecycleConfigsInput) SetSortOrder(v string) *ListNotebookInstanceLifecycleConfigsInput {
	s.SortOrder = &v
	return s
}

type ListNotebookInstanceLifecycleConfigsOutput struct {
	_ struct{} `type:"structure"`

	// If the response is truncated, SageMaker returns this token. To get the next
	// set of lifecycle configurations, use it in the next request.
	NextToken *string `type:"string"`

	// An array of NotebookInstanceLifecycleConfiguration objects, each listing
	// a lifecycle configuration.
	NotebookInstanceLifecycleConfigs []*NotebookInstanceLifecycleConfigSummary `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListNotebookInstanceLifecycleConfigsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListNotebookInstanceLifecycleConfigsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListNotebookInstanceLifecycleConfigsOutput) SetNextToken(v string) *ListNotebookInstanceLifecycleConfigsOutput {
	s.NextToken = &v
	return s
}

// SetNotebookInstanceLifecycleConfigs sets the NotebookInstanceLifecycleConfigs field's value.
func (s *ListNotebookInstanceLifecycleConfigsOutput) SetNotebookInstanceLifecycleConfigs(v []*NotebookInstanceLifecycleConfigSummary) *ListNotebookInstanceLifecycleConfigsOutput {
	s.NotebookInstanceLifecycleConfigs = v
	return s
}

type ListNotebookInstancesInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only notebook instances with associated with the specified
	// git repository.
	AdditionalCodeRepositoryEquals *string `min:"1" type:"string"`

	// A filter that returns only notebook instances that were created after the
	// specified time (timestamp).
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only notebook instances that were created before the
	// specified time (timestamp).
	CreationTimeBefore *time.Time `type:"timestamp"`

	// A string in the name or URL of a Git repository associated with this notebook
	// instance. This filter returns only notebook instances associated with a git
	// repository with a name that contains the specified string.
	DefaultCodeRepositoryContains *string `type:"string"`

	// A filter that returns only notebook instances that were modified after the
	// specified time (timestamp).
	LastModifiedTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only notebook instances that were modified before the
	// specified time (timestamp).
	LastModifiedTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of notebook instances to return.
	MaxResults *int64 `min:"1" type:"integer"`

	// A string in the notebook instances' name. This filter returns only notebook
	// instances whose name contains the specified string.
	NameContains *string `type:"string"`

	// If the previous call to the ListNotebookInstances is truncated, the response
	// includes a NextToken. You can use this token in your subsequent ListNotebookInstances
	// request to fetch the next set of notebook instances.
	//
	// You might specify a filter or a sort order in your request. When response
	// is truncated, you must use the same values for the filer and sort order in
	// the next request.
	NextToken *string `type:"string"`

	// A string in the name of a notebook instances lifecycle configuration associated
	// with this notebook instance. This filter returns only notebook instances
	// associated with a lifecycle configuration with a name that contains the specified
	// string.
	NotebookInstanceLifecycleConfigNameContains *string `type:"string"`

	// The field to sort results by. The default is Name.
	SortBy *string `type:"string" enum:"NotebookInstanceSortKey"`

	// The sort order for results.
	SortOrder *string `type:"string" enum:"NotebookInstanceSortOrder"`

	// A filter that returns only notebook instances with the specified status.
	StatusEquals *string `type:"string" enum:"NotebookInstanceStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListNotebookInstancesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListNotebookInstancesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListNotebookInstancesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListNotebookInstancesInput"}
	if s.AdditionalCodeRepositoryEquals != nil && len(*s.AdditionalCodeRepositoryEquals) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AdditionalCodeRepositoryEquals", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAdditionalCodeRepositoryEquals sets the AdditionalCodeRepositoryEquals field's value.
func (s *ListNotebookInstancesInput) SetAdditionalCodeRepositoryEquals(v string) *ListNotebookInstancesInput {
	s.AdditionalCodeRepositoryEquals = &v
	return s
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListNotebookInstancesInput) SetCreationTimeAfter(v time.Time) *ListNotebookInstancesInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListNotebookInstancesInput) SetCreationTimeBefore(v time.Time) *ListNotebookInstancesInput {
	s.CreationTimeBefore = &v
	return s
}

// SetDefaultCodeRepositoryContains sets the DefaultCodeRepositoryContains field's value.
func (s *ListNotebookInstancesInput) SetDefaultCodeRepositoryContains(v string) *ListNotebookInstancesInput {
	s.DefaultCodeRepositoryContains = &v
	return s
}

// SetLastModifiedTimeAfter sets the LastModifiedTimeAfter field's value.
func (s *ListNotebookInstancesInput) SetLastModifiedTimeAfter(v time.Time) *ListNotebookInstancesInput {
	s.LastModifiedTimeAfter = &v
	return s
}

// SetLastModifiedTimeBefore sets the LastModifiedTimeBefore field's value.
func (s *ListNotebookInstancesInput) SetLastModifiedTimeBefore(v time.Time) *ListNotebookInstancesInput {
	s.LastModifiedTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListNotebookInstancesInput) SetMaxResults(v int64) *ListNotebookInstancesInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListNotebookInstancesInput) SetNameContains(v string) *ListNotebookInstancesInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListNotebookInstancesInput) SetNextToken(v string) *ListNotebookInstancesInput {
	s.NextToken = &v
	return s
}

// SetNotebookInstanceLifecycleConfigNameContains sets the NotebookInstanceLifecycleConfigNameContains field's value.
func (s *ListNotebookInstancesInput) SetNotebookInstanceLifecycleConfigNameContains(v string) *ListNotebookInstancesInput {
	s.NotebookInstanceLifecycleConfigNameContains = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListNotebookInstancesInput) SetSortBy(v string) *ListNotebookInstancesInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListNotebookInstancesInput) SetSortOrder(v string) *ListNotebookInstancesInput {
	s.SortOrder = &v
	return s
}

// SetStatusEquals sets the StatusEquals field's value.
func (s *ListNotebookInstancesInput) SetStatusEquals(v string) *ListNotebookInstancesInput {
	s.StatusEquals = &v
	return s
}

type ListNotebookInstancesOutput struct {
	_ struct{} `type:"structure"`

	// If the response to the previous ListNotebookInstances request was truncated,
	// SageMaker returns this token. To retrieve the next set of notebook instances,
	// use the token in the next request.
	NextToken *string `type:"string"`

	// An array of NotebookInstanceSummary objects, one for each notebook instance.
	NotebookInstances []*NotebookInstanceSummary `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListNotebookInstancesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListNotebookInstancesOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListNotebookInstancesOutput) SetNextToken(v string) *ListNotebookInstancesOutput {
	s.NextToken = &v
	return s
}

// SetNotebookInstances sets the NotebookInstances field's value.
func (s *ListNotebookInstancesOutput) SetNotebookInstances(v []*NotebookInstanceSummary) *ListNotebookInstancesOutput {
	s.NotebookInstances = v
	return s
}

type ListPipelineExecutionStepsInput struct {
	_ struct{} `type:"structure"`

	// The maximum number of pipeline execution steps to return in the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// If the result of the previous ListPipelineExecutionSteps request was truncated,
	// the response includes a NextToken. To retrieve the next set of pipeline execution
	// steps, use the token in the next request.
	NextToken *string `type:"string"`

	// The Amazon Resource Name (ARN) of the pipeline execution.
	PipelineExecutionArn *string `type:"string"`

	// The field by which to sort results. The default is CreatedTime.
	SortOrder *string `type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListPipelineExecutionStepsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListPipelineExecutionStepsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListPipelineExecutionStepsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListPipelineExecutionStepsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListPipelineExecutionStepsInput) SetMaxResults(v int64) *ListPipelineExecutionStepsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListPipelineExecutionStepsInput) SetNextToken(v string) *ListPipelineExecutionStepsInput {
	s.NextToken = &v
	return s
}

// SetPipelineExecutionArn sets the PipelineExecutionArn field's value.
func (s *ListPipelineExecutionStepsInput) SetPipelineExecutionArn(v string) *ListPipelineExecutionStepsInput {
	s.PipelineExecutionArn = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListPipelineExecutionStepsInput) SetSortOrder(v string) *ListPipelineExecutionStepsInput {
	s.SortOrder = &v
	return s
}

type ListPipelineExecutionStepsOutput struct {
	_ struct{} `type:"structure"`

	// If the result of the previous ListPipelineExecutionSteps request was truncated,
	// the response includes a NextToken. To retrieve the next set of pipeline execution
	// steps, use the token in the next request.
	NextToken *string `type:"string"`

	// A list of PipeLineExecutionStep objects. Each PipeLineExecutionStep consists
	// of StepName, StartTime, EndTime, StepStatus, and Metadata. Metadata is an
	// object with properties for each job that contains relevant information about
	// the job created by the step.
	PipelineExecutionSteps []*PipelineExecutionStep `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListPipelineExecutionStepsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListPipelineExecutionStepsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListPipelineExecutionStepsOutput) SetNextToken(v string) *ListPipelineExecutionStepsOutput {
	s.NextToken = &v
	return s
}

// SetPipelineExecutionSteps sets the PipelineExecutionSteps field's value.
func (s *ListPipelineExecutionStepsOutput) SetPipelineExecutionSteps(v []*PipelineExecutionStep) *ListPipelineExecutionStepsOutput {
	s.PipelineExecutionSteps = v
	return s
}

type ListPipelineExecutionsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns the pipeline executions that were created after a specified
	// time.
	CreatedAfter *time.Time `type:"timestamp"`

	// A filter that returns the pipeline executions that were created before a
	// specified time.
	CreatedBefore *time.Time `type:"timestamp"`

	// The maximum number of pipeline executions to return in the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// If the result of the previous ListPipelineExecutions request was truncated,
	// the response includes a NextToken. To retrieve the next set of pipeline executions,
	// use the token in the next request.
	NextToken *string `type:"string"`

	// The name or Amazon Resource Name (ARN) of the pipeline.
	//
	// PipelineName is a required field
	PipelineName *string `min:"1" type:"string" required:"true"`

	// The field by which to sort results. The default is CreatedTime.
	SortBy *string `type:"string" enum:"SortPipelineExecutionsBy"`

	// The sort order for results.
	SortOrder *string `type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListPipelineExecutionsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListPipelineExecutionsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListPipelineExecutionsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListPipelineExecutionsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.PipelineName == nil {
		invalidParams.Add(request.NewErrParamRequired("PipelineName"))
	}
	if s.PipelineName != nil && len(*s.PipelineName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("PipelineName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreatedAfter sets the CreatedAfter field's value.
func (s *ListPipelineExecutionsInput) SetCreatedAfter(v time.Time) *ListPipelineExecutionsInput {
	s.CreatedAfter = &v
	return s
}

// SetCreatedBefore sets the CreatedBefore field's value.
func (s *ListPipelineExecutionsInput) SetCreatedBefore(v time.Time) *ListPipelineExecutionsInput {
	s.CreatedBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListPipelineExecutionsInput) SetMaxResults(v int64) *ListPipelineExecutionsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListPipelineExecutionsInput) SetNextToken(v string) *ListPipelineExecutionsInput {
	s.NextToken = &v
	return s
}

// SetPipelineName sets the PipelineName field's value.
func (s *ListPipelineExecutionsInput) SetPipelineName(v string) *ListPipelineExecutionsInput {
	s.PipelineName = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListPipelineExecutionsInput) SetSortBy(v string) *ListPipelineExecutionsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListPipelineExecutionsInput) SetSortOrder(v string) *ListPipelineExecutionsInput {
	s.SortOrder = &v
	return s
}

type ListPipelineExecutionsOutput struct {
	_ struct{} `type:"structure"`

	// If the result of the previous ListPipelineExecutions request was truncated,
	// the response includes a NextToken. To retrieve the next set of pipeline executions,
	// use the token in the next request.
	NextToken *string `type:"string"`

	// Contains a sorted list of pipeline execution summary objects matching the
	// specified filters. Each run summary includes the Amazon Resource Name (ARN)
	// of the pipeline execution, the run date, and the status. This list can be
	// empty.
	PipelineExecutionSummaries []*PipelineExecutionSummary `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListPipelineExecutionsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListPipelineExecutionsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListPipelineExecutionsOutput) SetNextToken(v string) *ListPipelineExecutionsOutput {
	s.NextToken = &v
	return s
}

// SetPipelineExecutionSummaries sets the PipelineExecutionSummaries field's value.
func (s *ListPipelineExecutionsOutput) SetPipelineExecutionSummaries(v []*PipelineExecutionSummary) *ListPipelineExecutionsOutput {
	s.PipelineExecutionSummaries = v
	return s
}

type ListPipelineParametersForExecutionInput struct {
	_ struct{} `type:"structure"`

	// The maximum number of parameters to return in the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// If the result of the previous ListPipelineParametersForExecution request
	// was truncated, the response includes a NextToken. To retrieve the next set
	// of parameters, use the token in the next request.
	NextToken *string `type:"string"`

	// The Amazon Resource Name (ARN) of the pipeline execution.
	//
	// PipelineExecutionArn is a required field
	PipelineExecutionArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListPipelineParametersForExecutionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListPipelineParametersForExecutionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListPipelineParametersForExecutionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListPipelineParametersForExecutionInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.PipelineExecutionArn == nil {
		invalidParams.Add(request.NewErrParamRequired("PipelineExecutionArn"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListPipelineParametersForExecutionInput) SetMaxResults(v int64) *ListPipelineParametersForExecutionInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListPipelineParametersForExecutionInput) SetNextToken(v string) *ListPipelineParametersForExecutionInput {
	s.NextToken = &v
	return s
}

// SetPipelineExecutionArn sets the PipelineExecutionArn field's value.
func (s *ListPipelineParametersForExecutionInput) SetPipelineExecutionArn(v string) *ListPipelineParametersForExecutionInput {
	s.PipelineExecutionArn = &v
	return s
}

type ListPipelineParametersForExecutionOutput struct {
	_ struct{} `type:"structure"`

	// If the result of the previous ListPipelineParametersForExecution request
	// was truncated, the response includes a NextToken. To retrieve the next set
	// of parameters, use the token in the next request.
	NextToken *string `type:"string"`

	// Contains a list of pipeline parameters. This list can be empty.
	PipelineParameters []*Parameter `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListPipelineParametersForExecutionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListPipelineParametersForExecutionOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListPipelineParametersForExecutionOutput) SetNextToken(v string) *ListPipelineParametersForExecutionOutput {
	s.NextToken = &v
	return s
}

// SetPipelineParameters sets the PipelineParameters field's value.
func (s *ListPipelineParametersForExecutionOutput) SetPipelineParameters(v []*Parameter) *ListPipelineParametersForExecutionOutput {
	s.PipelineParameters = v
	return s
}

type ListPipelinesInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns the pipelines that were created after a specified time.
	CreatedAfter *time.Time `type:"timestamp"`

	// A filter that returns the pipelines that were created before a specified
	// time.
	CreatedBefore *time.Time `type:"timestamp"`

	// The maximum number of pipelines to return in the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// If the result of the previous ListPipelines request was truncated, the response
	// includes a NextToken. To retrieve the next set of pipelines, use the token
	// in the next request.
	NextToken *string `type:"string"`

	// The prefix of the pipeline name.
	PipelineNamePrefix *string `min:"1" type:"string"`

	// The field by which to sort results. The default is CreatedTime.
	SortBy *string `type:"string" enum:"SortPipelinesBy"`

	// The sort order for results.
	SortOrder *string `type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListPipelinesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListPipelinesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListPipelinesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListPipelinesInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.PipelineNamePrefix != nil && len(*s.PipelineNamePrefix) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("PipelineNamePrefix", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreatedAfter sets the CreatedAfter field's value.
func (s *ListPipelinesInput) SetCreatedAfter(v time.Time) *ListPipelinesInput {
	s.CreatedAfter = &v
	return s
}

// SetCreatedBefore sets the CreatedBefore field's value.
func (s *ListPipelinesInput) SetCreatedBefore(v time.Time) *ListPipelinesInput {
	s.CreatedBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListPipelinesInput) SetMaxResults(v int64) *ListPipelinesInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListPipelinesInput) SetNextToken(v string) *ListPipelinesInput {
	s.NextToken = &v
	return s
}

// SetPipelineNamePrefix sets the PipelineNamePrefix field's value.
func (s *ListPipelinesInput) SetPipelineNamePrefix(v string) *ListPipelinesInput {
	s.PipelineNamePrefix = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListPipelinesInput) SetSortBy(v string) *ListPipelinesInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListPipelinesInput) SetSortOrder(v string) *ListPipelinesInput {
	s.SortOrder = &v
	return s
}

type ListPipelinesOutput struct {
	_ struct{} `type:"structure"`

	// If the result of the previous ListPipelines request was truncated, the response
	// includes a NextToken. To retrieve the next set of pipelines, use the token
	// in the next request.
	NextToken *string `type:"string"`

	// Contains a sorted list of PipelineSummary objects matching the specified
	// filters. Each PipelineSummary consists of PipelineArn, PipelineName, ExperimentName,
	// PipelineDescription, CreationTime, LastModifiedTime, LastRunTime, and RoleArn.
	// This list can be empty.
	PipelineSummaries []*PipelineSummary `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListPipelinesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListPipelinesOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListPipelinesOutput) SetNextToken(v string) *ListPipelinesOutput {
	s.NextToken = &v
	return s
}

// SetPipelineSummaries sets the PipelineSummaries field's value.
func (s *ListPipelinesOutput) SetPipelineSummaries(v []*PipelineSummary) *ListPipelinesOutput {
	s.PipelineSummaries = v
	return s
}

type ListProcessingJobsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only processing jobs created after the specified time.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only processing jobs created after the specified time.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// A filter that returns only processing jobs modified after the specified time.
	LastModifiedTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only processing jobs modified before the specified
	// time.
	LastModifiedTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of processing jobs to return in the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// A string in the processing job name. This filter returns only processing
	// jobs whose name contains the specified string.
	NameContains *string `type:"string"`

	// If the result of the previous ListProcessingJobs request was truncated, the
	// response includes a NextToken. To retrieve the next set of processing jobs,
	// use the token in the next request.
	NextToken *string `type:"string"`

	// The field to sort results by. The default is CreationTime.
	SortBy *string `type:"string" enum:"SortBy"`

	// The sort order for results. The default is Ascending.
	SortOrder *string `type:"string" enum:"SortOrder"`

	// A filter that retrieves only processing jobs with a specific status.
	StatusEquals *string `type:"string" enum:"ProcessingJobStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListProcessingJobsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListProcessingJobsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListProcessingJobsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListProcessingJobsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListProcessingJobsInput) SetCreationTimeAfter(v time.Time) *ListProcessingJobsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListProcessingJobsInput) SetCreationTimeBefore(v time.Time) *ListProcessingJobsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetLastModifiedTimeAfter sets the LastModifiedTimeAfter field's value.
func (s *ListProcessingJobsInput) SetLastModifiedTimeAfter(v time.Time) *ListProcessingJobsInput {
	s.LastModifiedTimeAfter = &v
	return s
}

// SetLastModifiedTimeBefore sets the LastModifiedTimeBefore field's value.
func (s *ListProcessingJobsInput) SetLastModifiedTimeBefore(v time.Time) *ListProcessingJobsInput {
	s.LastModifiedTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListProcessingJobsInput) SetMaxResults(v int64) *ListProcessingJobsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListProcessingJobsInput) SetNameContains(v string) *ListProcessingJobsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListProcessingJobsInput) SetNextToken(v string) *ListProcessingJobsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListProcessingJobsInput) SetSortBy(v string) *ListProcessingJobsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListProcessingJobsInput) SetSortOrder(v string) *ListProcessingJobsInput {
	s.SortOrder = &v
	return s
}

// SetStatusEquals sets the StatusEquals field's value.
func (s *ListProcessingJobsInput) SetStatusEquals(v string) *ListProcessingJobsInput {
	s.StatusEquals = &v
	return s
}

type ListProcessingJobsOutput struct {
	_ struct{} `type:"structure"`

	// If the response is truncated, Amazon SageMaker returns this token. To retrieve
	// the next set of processing jobs, use it in the subsequent request.
	NextToken *string `type:"string"`

	// An array of ProcessingJobSummary objects, each listing a processing job.
	//
	// ProcessingJobSummaries is a required field
	ProcessingJobSummaries []*ProcessingJobSummary `type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListProcessingJobsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListProcessingJobsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListProcessingJobsOutput) SetNextToken(v string) *ListProcessingJobsOutput {
	s.NextToken = &v
	return s
}

// SetProcessingJobSummaries sets the ProcessingJobSummaries field's value.
func (s *ListProcessingJobsOutput) SetProcessingJobSummaries(v []*ProcessingJobSummary) *ListProcessingJobsOutput {
	s.ProcessingJobSummaries = v
	return s
}

type ListProjectsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns the projects that were created after a specified time.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns the projects that were created before a specified time.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of projects to return in the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// A filter that returns the projects whose name contains a specified string.
	NameContains *string `min:"1" type:"string"`

	// If the result of the previous ListProjects request was truncated, the response
	// includes a NextToken. To retrieve the next set of projects, use the token
	// in the next request.
	NextToken *string `type:"string"`

	// The field by which to sort results. The default is CreationTime.
	SortBy *string `type:"string" enum:"ProjectSortBy"`

	// The sort order for results. The default is Ascending.
	SortOrder *string `type:"string" enum:"ProjectSortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListProjectsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListProjectsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListProjectsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListProjectsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NameContains != nil && len(*s.NameContains) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NameContains", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListProjectsInput) SetCreationTimeAfter(v time.Time) *ListProjectsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListProjectsInput) SetCreationTimeBefore(v time.Time) *ListProjectsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListProjectsInput) SetMaxResults(v int64) *ListProjectsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListProjectsInput) SetNameContains(v string) *ListProjectsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListProjectsInput) SetNextToken(v string) *ListProjectsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListProjectsInput) SetSortBy(v string) *ListProjectsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListProjectsInput) SetSortOrder(v string) *ListProjectsInput {
	s.SortOrder = &v
	return s
}

type ListProjectsOutput struct {
	_ struct{} `type:"structure"`

	// If the result of the previous ListCompilationJobs request was truncated,
	// the response includes a NextToken. To retrieve the next set of model compilation
	// jobs, use the token in the next request.
	NextToken *string `type:"string"`

	// A list of summaries of projects.
	//
	// ProjectSummaryList is a required field
	ProjectSummaryList []*ProjectSummary `type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListProjectsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListProjectsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListProjectsOutput) SetNextToken(v string) *ListProjectsOutput {
	s.NextToken = &v
	return s
}

// SetProjectSummaryList sets the ProjectSummaryList field's value.
func (s *ListProjectsOutput) SetProjectSummaryList(v []*ProjectSummary) *ListProjectsOutput {
	s.ProjectSummaryList = v
	return s
}

type ListResourceCatalogsInput struct {
	_ struct{} `type:"structure"`

	// Use this parameter to search for ResourceCatalogs created after a specific
	// date and time.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// Use this parameter to search for ResourceCatalogs created before a specific
	// date and time.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of results returned by ListResourceCatalogs.
	MaxResults *int64 `min:"1" type:"integer"`

	// A string that partially matches one or more ResourceCatalogs names. Filters
	// ResourceCatalog by name.
	NameContains *string `min:"1" type:"string"`

	// A token to resume pagination of ListResourceCatalogs results.
	NextToken *string `type:"string"`

	// The value on which the resource catalog list is sorted.
	SortBy *string `type:"string" enum:"ResourceCatalogSortBy"`

	// The order in which the resource catalogs are listed.
	SortOrder *string `type:"string" enum:"ResourceCatalogSortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListResourceCatalogsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListResourceCatalogsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListResourceCatalogsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListResourceCatalogsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NameContains != nil && len(*s.NameContains) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NameContains", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListResourceCatalogsInput) SetCreationTimeAfter(v time.Time) *ListResourceCatalogsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListResourceCatalogsInput) SetCreationTimeBefore(v time.Time) *ListResourceCatalogsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListResourceCatalogsInput) SetMaxResults(v int64) *ListResourceCatalogsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListResourceCatalogsInput) SetNameContains(v string) *ListResourceCatalogsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListResourceCatalogsInput) SetNextToken(v string) *ListResourceCatalogsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListResourceCatalogsInput) SetSortBy(v string) *ListResourceCatalogsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListResourceCatalogsInput) SetSortOrder(v string) *ListResourceCatalogsInput {
	s.SortOrder = &v
	return s
}

type ListResourceCatalogsOutput struct {
	_ struct{} `type:"structure"`

	// A token to resume pagination of ListResourceCatalogs results.
	NextToken *string `type:"string"`

	// A list of the requested ResourceCatalogs.
	ResourceCatalogs []*ResourceCatalog `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListResourceCatalogsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListResourceCatalogsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListResourceCatalogsOutput) SetNextToken(v string) *ListResourceCatalogsOutput {
	s.NextToken = &v
	return s
}

// SetResourceCatalogs sets the ResourceCatalogs field's value.
func (s *ListResourceCatalogsOutput) SetResourceCatalogs(v []*ResourceCatalog) *ListResourceCatalogsOutput {
	s.ResourceCatalogs = v
	return s
}

type ListSpacesInput struct {
	_ struct{} `type:"structure"`

	// A parameter to search for the Domain ID.
	DomainIdEquals *string `type:"string"`

	// The total number of items to return in the response. If the total number
	// of items available is more than the value specified, a NextToken is provided
	// in the response. To resume pagination, provide the NextToken value in the
	// as part of a subsequent call. The default value is 10.
	MaxResults *int64 `min:"1" type:"integer"`

	// If the previous response was truncated, you will receive this token. Use
	// it in your next request to receive the next set of results.
	NextToken *string `type:"string"`

	// The parameter by which to sort the results. The default is CreationTime.
	SortBy *string `type:"string" enum:"SpaceSortKey"`

	// The sort order for the results. The default is Ascending.
	SortOrder *string `type:"string" enum:"SortOrder"`

	// A parameter by which to filter the results.
	SpaceNameContains *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSpacesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSpacesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListSpacesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListSpacesInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdEquals sets the DomainIdEquals field's value.
func (s *ListSpacesInput) SetDomainIdEquals(v string) *ListSpacesInput {
	s.DomainIdEquals = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListSpacesInput) SetMaxResults(v int64) *ListSpacesInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListSpacesInput) SetNextToken(v string) *ListSpacesInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListSpacesInput) SetSortBy(v string) *ListSpacesInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListSpacesInput) SetSortOrder(v string) *ListSpacesInput {
	s.SortOrder = &v
	return s
}

// SetSpaceNameContains sets the SpaceNameContains field's value.
func (s *ListSpacesInput) SetSpaceNameContains(v string) *ListSpacesInput {
	s.SpaceNameContains = &v
	return s
}

type ListSpacesOutput struct {
	_ struct{} `type:"structure"`

	// If the previous response was truncated, you will receive this token. Use
	// it in your next request to receive the next set of results.
	NextToken *string `type:"string"`

	// The list of spaces.
	Spaces []*SpaceDetails `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSpacesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSpacesOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListSpacesOutput) SetNextToken(v string) *ListSpacesOutput {
	s.NextToken = &v
	return s
}

// SetSpaces sets the Spaces field's value.
func (s *ListSpacesOutput) SetSpaces(v []*SpaceDetails) *ListSpacesOutput {
	s.Spaces = v
	return s
}

type ListStageDevicesInput struct {
	_ struct{} `type:"structure"`

	// The name of the edge deployment plan.
	//
	// EdgeDeploymentPlanName is a required field
	EdgeDeploymentPlanName *string `min:"1" type:"string" required:"true"`

	// Toggle for excluding devices deployed in other stages.
	ExcludeDevicesDeployedInOtherStage *bool `type:"boolean"`

	// The maximum number of requests to select.
	MaxResults *int64 `type:"integer"`

	// The response from the last list when returning a list large enough to neeed
	// tokening.
	NextToken *string `type:"string"`

	// The name of the stage in the deployment.
	//
	// StageName is a required field
	StageName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListStageDevicesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListStageDevicesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListStageDevicesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListStageDevicesInput"}
	if s.EdgeDeploymentPlanName == nil {
		invalidParams.Add(request.NewErrParamRequired("EdgeDeploymentPlanName"))
	}
	if s.EdgeDeploymentPlanName != nil && len(*s.EdgeDeploymentPlanName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("EdgeDeploymentPlanName", 1))
	}
	if s.StageName == nil {
		invalidParams.Add(request.NewErrParamRequired("StageName"))
	}
	if s.StageName != nil && len(*s.StageName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEdgeDeploymentPlanName sets the EdgeDeploymentPlanName field's value.
func (s *ListStageDevicesInput) SetEdgeDeploymentPlanName(v string) *ListStageDevicesInput {
	s.EdgeDeploymentPlanName = &v
	return s
}

// SetExcludeDevicesDeployedInOtherStage sets the ExcludeDevicesDeployedInOtherStage field's value.
func (s *ListStageDevicesInput) SetExcludeDevicesDeployedInOtherStage(v bool) *ListStageDevicesInput {
	s.ExcludeDevicesDeployedInOtherStage = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListStageDevicesInput) SetMaxResults(v int64) *ListStageDevicesInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListStageDevicesInput) SetNextToken(v string) *ListStageDevicesInput {
	s.NextToken = &v
	return s
}

// SetStageName sets the StageName field's value.
func (s *ListStageDevicesInput) SetStageName(v string) *ListStageDevicesInput {
	s.StageName = &v
	return s
}

type ListStageDevicesOutput struct {
	_ struct{} `type:"structure"`

	// List of summaries of devices allocated to the stage.
	//
	// DeviceDeploymentSummaries is a required field
	DeviceDeploymentSummaries []*DeviceDeploymentSummary `type:"list" required:"true"`

	// The token to use when calling the next page of results.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListStageDevicesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListStageDevicesOutput) GoString() string {
	return s.String()
}

// SetDeviceDeploymentSummaries sets the DeviceDeploymentSummaries field's value.
func (s *ListStageDevicesOutput) SetDeviceDeploymentSummaries(v []*DeviceDeploymentSummary) *ListStageDevicesOutput {
	s.DeviceDeploymentSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListStageDevicesOutput) SetNextToken(v string) *ListStageDevicesOutput {
	s.NextToken = &v
	return s
}

type ListStudioLifecycleConfigsInput struct {
	_ struct{} `type:"structure"`

	// A parameter to search for the App Type to which the Lifecycle Configuration
	// is attached.
	AppTypeEquals *string `type:"string" enum:"StudioLifecycleConfigAppType"`

	// A filter that returns only Lifecycle Configurations created on or after the
	// specified time.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only Lifecycle Configurations created on or before
	// the specified time.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// The total number of items to return in the response. If the total number
	// of items available is more than the value specified, a NextToken is provided
	// in the response. To resume pagination, provide the NextToken value in the
	// as part of a subsequent call. The default value is 10.
	MaxResults *int64 `min:"1" type:"integer"`

	// A filter that returns only Lifecycle Configurations modified after the specified
	// time.
	ModifiedTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only Lifecycle Configurations modified before the specified
	// time.
	ModifiedTimeBefore *time.Time `type:"timestamp"`

	// A string in the Lifecycle Configuration name. This filter returns only Lifecycle
	// Configurations whose name contains the specified string.
	NameContains *string `type:"string"`

	// If the previous call to ListStudioLifecycleConfigs didn't return the full
	// set of Lifecycle Configurations, the call returns a token for getting the
	// next set of Lifecycle Configurations.
	NextToken *string `type:"string"`

	// The property used to sort results. The default value is CreationTime.
	SortBy *string `type:"string" enum:"StudioLifecycleConfigSortKey"`

	// The sort order. The default value is Descending.
	SortOrder *string `type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListStudioLifecycleConfigsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListStudioLifecycleConfigsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListStudioLifecycleConfigsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListStudioLifecycleConfigsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppTypeEquals sets the AppTypeEquals field's value.
func (s *ListStudioLifecycleConfigsInput) SetAppTypeEquals(v string) *ListStudioLifecycleConfigsInput {
	s.AppTypeEquals = &v
	return s
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListStudioLifecycleConfigsInput) SetCreationTimeAfter(v time.Time) *ListStudioLifecycleConfigsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListStudioLifecycleConfigsInput) SetCreationTimeBefore(v time.Time) *ListStudioLifecycleConfigsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListStudioLifecycleConfigsInput) SetMaxResults(v int64) *ListStudioLifecycleConfigsInput {
	s.MaxResults = &v
	return s
}

// SetModifiedTimeAfter sets the ModifiedTimeAfter field's value.
func (s *ListStudioLifecycleConfigsInput) SetModifiedTimeAfter(v time.Time) *ListStudioLifecycleConfigsInput {
	s.ModifiedTimeAfter = &v
	return s
}

// SetModifiedTimeBefore sets the ModifiedTimeBefore field's value.
func (s *ListStudioLifecycleConfigsInput) SetModifiedTimeBefore(v time.Time) *ListStudioLifecycleConfigsInput {
	s.ModifiedTimeBefore = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListStudioLifecycleConfigsInput) SetNameContains(v string) *ListStudioLifecycleConfigsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListStudioLifecycleConfigsInput) SetNextToken(v string) *ListStudioLifecycleConfigsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListStudioLifecycleConfigsInput) SetSortBy(v string) *ListStudioLifecycleConfigsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListStudioLifecycleConfigsInput) SetSortOrder(v string) *ListStudioLifecycleConfigsInput {
	s.SortOrder = &v
	return s
}

type ListStudioLifecycleConfigsOutput struct {
	_ struct{} `type:"structure"`

	// If the previous response was truncated, you will receive this token. Use
	// it in your next request to receive the next set of results.
	NextToken *string `type:"string"`

	// A list of Lifecycle Configurations and their properties.
	StudioLifecycleConfigs []*StudioLifecycleConfigDetails `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListStudioLifecycleConfigsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListStudioLifecycleConfigsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListStudioLifecycleConfigsOutput) SetNextToken(v string) *ListStudioLifecycleConfigsOutput {
	s.NextToken = &v
	return s
}

// SetStudioLifecycleConfigs sets the StudioLifecycleConfigs field's value.
func (s *ListStudioLifecycleConfigsOutput) SetStudioLifecycleConfigs(v []*StudioLifecycleConfigDetails) *ListStudioLifecycleConfigsOutput {
	s.StudioLifecycleConfigs = v
	return s
}

type ListSubscribedWorkteamsInput struct {
	_ struct{} `type:"structure"`

	// The maximum number of work teams to return in each page of the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// A string in the work team name. This filter returns only work teams whose
	// name contains the specified string.
	NameContains *string `min:"1" type:"string"`

	// If the result of the previous ListSubscribedWorkteams request was truncated,
	// the response includes a NextToken. To retrieve the next set of labeling jobs,
	// use the token in the next request.
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSubscribedWorkteamsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSubscribedWorkteamsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListSubscribedWorkteamsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListSubscribedWorkteamsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NameContains != nil && len(*s.NameContains) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NameContains", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListSubscribedWorkteamsInput) SetMaxResults(v int64) *ListSubscribedWorkteamsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListSubscribedWorkteamsInput) SetNameContains(v string) *ListSubscribedWorkteamsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListSubscribedWorkteamsInput) SetNextToken(v string) *ListSubscribedWorkteamsInput {
	s.NextToken = &v
	return s
}

type ListSubscribedWorkteamsOutput struct {
	_ struct{} `type:"structure"`

	// If the response is truncated, Amazon SageMaker returns this token. To retrieve
	// the next set of work teams, use it in the subsequent request.
	NextToken *string `type:"string"`

	// An array of Workteam objects, each describing a work team.
	//
	// SubscribedWorkteams is a required field
	SubscribedWorkteams []*SubscribedWorkteam `type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSubscribedWorkteamsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSubscribedWorkteamsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListSubscribedWorkteamsOutput) SetNextToken(v string) *ListSubscribedWorkteamsOutput {
	s.NextToken = &v
	return s
}

// SetSubscribedWorkteams sets the SubscribedWorkteams field's value.
func (s *ListSubscribedWorkteamsOutput) SetSubscribedWorkteams(v []*SubscribedWorkteam) *ListSubscribedWorkteamsOutput {
	s.SubscribedWorkteams = v
	return s
}

type ListTagsInput struct {
	_ struct{} `type:"structure"`

	// Maximum number of tags to return.
	MaxResults *int64 `min:"50" type:"integer"`

	// If the response to the previous ListTags request is truncated, SageMaker
	// returns this token. To retrieve the next set of tags, use it in the subsequent
	// request.
	NextToken *string `type:"string"`

	// The Amazon Resource Name (ARN) of the resource whose tags you want to retrieve.
	//
	// ResourceArn is a required field
	ResourceArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTagsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTagsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListTagsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListTagsInput"}
	if s.MaxResults != nil && *s.MaxResults < 50 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 50))
	}
	if s.ResourceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListTagsInput) SetMaxResults(v int64) *ListTagsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListTagsInput) SetNextToken(v string) *ListTagsInput {
	s.NextToken = &v
	return s
}

// SetResourceArn sets the ResourceArn field's value.
func (s *ListTagsInput) SetResourceArn(v string) *ListTagsInput {
	s.ResourceArn = &v
	return s
}

type ListTagsOutput struct {
	_ struct{} `type:"structure"`

	// If response is truncated, SageMaker includes a token in the response. You
	// can use this token in your subsequent request to fetch next set of tokens.
	NextToken *string `type:"string"`

	// An array of Tag objects, each with a tag key and a value.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTagsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTagsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListTagsOutput) SetNextToken(v string) *ListTagsOutput {
	s.NextToken = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *ListTagsOutput) SetTags(v []*Tag) *ListTagsOutput {
	s.Tags = v
	return s
}

type ListTrainingJobsForHyperParameterTuningJobInput struct {
	_ struct{} `type:"structure"`

	// The name of the tuning job whose training jobs you want to list.
	//
	// HyperParameterTuningJobName is a required field
	HyperParameterTuningJobName *string `min:"1" type:"string" required:"true"`

	// The maximum number of training jobs to return. The default value is 10.
	MaxResults *int64 `min:"1" type:"integer"`

	// If the result of the previous ListTrainingJobsForHyperParameterTuningJob
	// request was truncated, the response includes a NextToken. To retrieve the
	// next set of training jobs, use the token in the next request.
	NextToken *string `type:"string"`

	// The field to sort results by. The default is Name.
	//
	// If the value of this field is FinalObjectiveMetricValue, any training jobs
	// that did not return an objective metric are not listed.
	SortBy *string `type:"string" enum:"TrainingJobSortByOptions"`

	// The sort order for results. The default is Ascending.
	SortOrder *string `type:"string" enum:"SortOrder"`

	// A filter that returns only training jobs with the specified status.
	StatusEquals *string `type:"string" enum:"TrainingJobStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTrainingJobsForHyperParameterTuningJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTrainingJobsForHyperParameterTuningJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListTrainingJobsForHyperParameterTuningJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListTrainingJobsForHyperParameterTuningJobInput"}
	if s.HyperParameterTuningJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("HyperParameterTuningJobName"))
	}
	if s.HyperParameterTuningJobName != nil && len(*s.HyperParameterTuningJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("HyperParameterTuningJobName", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetHyperParameterTuningJobName sets the HyperParameterTuningJobName field's value.
func (s *ListTrainingJobsForHyperParameterTuningJobInput) SetHyperParameterTuningJobName(v string) *ListTrainingJobsForHyperParameterTuningJobInput {
	s.HyperParameterTuningJobName = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListTrainingJobsForHyperParameterTuningJobInput) SetMaxResults(v int64) *ListTrainingJobsForHyperParameterTuningJobInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListTrainingJobsForHyperParameterTuningJobInput) SetNextToken(v string) *ListTrainingJobsForHyperParameterTuningJobInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListTrainingJobsForHyperParameterTuningJobInput) SetSortBy(v string) *ListTrainingJobsForHyperParameterTuningJobInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListTrainingJobsForHyperParameterTuningJobInput) SetSortOrder(v string) *ListTrainingJobsForHyperParameterTuningJobInput {
	s.SortOrder = &v
	return s
}

// SetStatusEquals sets the StatusEquals field's value.
func (s *ListTrainingJobsForHyperParameterTuningJobInput) SetStatusEquals(v string) *ListTrainingJobsForHyperParameterTuningJobInput {
	s.StatusEquals = &v
	return s
}

type ListTrainingJobsForHyperParameterTuningJobOutput struct {
	_ struct{} `type:"structure"`

	// If the result of this ListTrainingJobsForHyperParameterTuningJob request
	// was truncated, the response includes a NextToken. To retrieve the next set
	// of training jobs, use the token in the next request.
	NextToken *string `type:"string"`

	// A list of TrainingJobSummary (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobSummary.html)
	// objects that describe the training jobs that the ListTrainingJobsForHyperParameterTuningJob
	// request returned.
	//
	// TrainingJobSummaries is a required field
	TrainingJobSummaries []*HyperParameterTrainingJobSummary `type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTrainingJobsForHyperParameterTuningJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTrainingJobsForHyperParameterTuningJobOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListTrainingJobsForHyperParameterTuningJobOutput) SetNextToken(v string) *ListTrainingJobsForHyperParameterTuningJobOutput {
	s.NextToken = &v
	return s
}

// SetTrainingJobSummaries sets the TrainingJobSummaries field's value.
func (s *ListTrainingJobsForHyperParameterTuningJobOutput) SetTrainingJobSummaries(v []*HyperParameterTrainingJobSummary) *ListTrainingJobsForHyperParameterTuningJobOutput {
	s.TrainingJobSummaries = v
	return s
}

type ListTrainingJobsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only training jobs created after the specified time
	// (timestamp).
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only training jobs created before the specified time
	// (timestamp).
	CreationTimeBefore *time.Time `type:"timestamp"`

	// A filter that returns only training jobs modified after the specified time
	// (timestamp).
	LastModifiedTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only training jobs modified before the specified time
	// (timestamp).
	LastModifiedTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of training jobs to return in the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// A string in the training job name. This filter returns only training jobs
	// whose name contains the specified string.
	NameContains *string `type:"string"`

	// If the result of the previous ListTrainingJobs request was truncated, the
	// response includes a NextToken. To retrieve the next set of training jobs,
	// use the token in the next request.
	NextToken *string `type:"string"`

	// The field to sort results by. The default is CreationTime.
	SortBy *string `type:"string" enum:"SortBy"`

	// The sort order for results. The default is Ascending.
	SortOrder *string `type:"string" enum:"SortOrder"`

	// A filter that retrieves only training jobs with a specific status.
	StatusEquals *string `type:"string" enum:"TrainingJobStatus"`

	// A filter that retrieves only training jobs with a specific warm pool status.
	WarmPoolStatusEquals *string `type:"string" enum:"WarmPoolResourceStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTrainingJobsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTrainingJobsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListTrainingJobsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListTrainingJobsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListTrainingJobsInput) SetCreationTimeAfter(v time.Time) *ListTrainingJobsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListTrainingJobsInput) SetCreationTimeBefore(v time.Time) *ListTrainingJobsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetLastModifiedTimeAfter sets the LastModifiedTimeAfter field's value.
func (s *ListTrainingJobsInput) SetLastModifiedTimeAfter(v time.Time) *ListTrainingJobsInput {
	s.LastModifiedTimeAfter = &v
	return s
}

// SetLastModifiedTimeBefore sets the LastModifiedTimeBefore field's value.
func (s *ListTrainingJobsInput) SetLastModifiedTimeBefore(v time.Time) *ListTrainingJobsInput {
	s.LastModifiedTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListTrainingJobsInput) SetMaxResults(v int64) *ListTrainingJobsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListTrainingJobsInput) SetNameContains(v string) *ListTrainingJobsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListTrainingJobsInput) SetNextToken(v string) *ListTrainingJobsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListTrainingJobsInput) SetSortBy(v string) *ListTrainingJobsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListTrainingJobsInput) SetSortOrder(v string) *ListTrainingJobsInput {
	s.SortOrder = &v
	return s
}

// SetStatusEquals sets the StatusEquals field's value.
func (s *ListTrainingJobsInput) SetStatusEquals(v string) *ListTrainingJobsInput {
	s.StatusEquals = &v
	return s
}

// SetWarmPoolStatusEquals sets the WarmPoolStatusEquals field's value.
func (s *ListTrainingJobsInput) SetWarmPoolStatusEquals(v string) *ListTrainingJobsInput {
	s.WarmPoolStatusEquals = &v
	return s
}

type ListTrainingJobsOutput struct {
	_ struct{} `type:"structure"`

	// If the response is truncated, SageMaker returns this token. To retrieve the
	// next set of training jobs, use it in the subsequent request.
	NextToken *string `type:"string"`

	// An array of TrainingJobSummary objects, each listing a training job.
	//
	// TrainingJobSummaries is a required field
	TrainingJobSummaries []*TrainingJobSummary `type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTrainingJobsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTrainingJobsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListTrainingJobsOutput) SetNextToken(v string) *ListTrainingJobsOutput {
	s.NextToken = &v
	return s
}

// SetTrainingJobSummaries sets the TrainingJobSummaries field's value.
func (s *ListTrainingJobsOutput) SetTrainingJobSummaries(v []*TrainingJobSummary) *ListTrainingJobsOutput {
	s.TrainingJobSummaries = v
	return s
}

type ListTransformJobsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only transform jobs created after the specified time.
	CreationTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only transform jobs created before the specified time.
	CreationTimeBefore *time.Time `type:"timestamp"`

	// A filter that returns only transform jobs modified after the specified time.
	LastModifiedTimeAfter *time.Time `type:"timestamp"`

	// A filter that returns only transform jobs modified before the specified time.
	LastModifiedTimeBefore *time.Time `type:"timestamp"`

	// The maximum number of transform jobs to return in the response. The default
	// value is 10.
	MaxResults *int64 `min:"1" type:"integer"`

	// A string in the transform job name. This filter returns only transform jobs
	// whose name contains the specified string.
	NameContains *string `type:"string"`

	// If the result of the previous ListTransformJobs request was truncated, the
	// response includes a NextToken. To retrieve the next set of transform jobs,
	// use the token in the next request.
	NextToken *string `type:"string"`

	// The field to sort results by. The default is CreationTime.
	SortBy *string `type:"string" enum:"SortBy"`

	// The sort order for results. The default is Descending.
	SortOrder *string `type:"string" enum:"SortOrder"`

	// A filter that retrieves only transform jobs with a specific status.
	StatusEquals *string `type:"string" enum:"TransformJobStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTransformJobsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTransformJobsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListTransformJobsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListTransformJobsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreationTimeAfter sets the CreationTimeAfter field's value.
func (s *ListTransformJobsInput) SetCreationTimeAfter(v time.Time) *ListTransformJobsInput {
	s.CreationTimeAfter = &v
	return s
}

// SetCreationTimeBefore sets the CreationTimeBefore field's value.
func (s *ListTransformJobsInput) SetCreationTimeBefore(v time.Time) *ListTransformJobsInput {
	s.CreationTimeBefore = &v
	return s
}

// SetLastModifiedTimeAfter sets the LastModifiedTimeAfter field's value.
func (s *ListTransformJobsInput) SetLastModifiedTimeAfter(v time.Time) *ListTransformJobsInput {
	s.LastModifiedTimeAfter = &v
	return s
}

// SetLastModifiedTimeBefore sets the LastModifiedTimeBefore field's value.
func (s *ListTransformJobsInput) SetLastModifiedTimeBefore(v time.Time) *ListTransformJobsInput {
	s.LastModifiedTimeBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListTransformJobsInput) SetMaxResults(v int64) *ListTransformJobsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListTransformJobsInput) SetNameContains(v string) *ListTransformJobsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListTransformJobsInput) SetNextToken(v string) *ListTransformJobsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListTransformJobsInput) SetSortBy(v string) *ListTransformJobsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListTransformJobsInput) SetSortOrder(v string) *ListTransformJobsInput {
	s.SortOrder = &v
	return s
}

// SetStatusEquals sets the StatusEquals field's value.
func (s *ListTransformJobsInput) SetStatusEquals(v string) *ListTransformJobsInput {
	s.StatusEquals = &v
	return s
}

type ListTransformJobsOutput struct {
	_ struct{} `type:"structure"`

	// If the response is truncated, Amazon SageMaker returns this token. To retrieve
	// the next set of transform jobs, use it in the next request.
	NextToken *string `type:"string"`

	// An array of TransformJobSummary objects.
	//
	// TransformJobSummaries is a required field
	TransformJobSummaries []*TransformJobSummary `type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTransformJobsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTransformJobsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListTransformJobsOutput) SetNextToken(v string) *ListTransformJobsOutput {
	s.NextToken = &v
	return s
}

// SetTransformJobSummaries sets the TransformJobSummaries field's value.
func (s *ListTransformJobsOutput) SetTransformJobSummaries(v []*TransformJobSummary) *ListTransformJobsOutput {
	s.TransformJobSummaries = v
	return s
}

type ListTrialComponentsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only components created after the specified time.
	CreatedAfter *time.Time `type:"timestamp"`

	// A filter that returns only components created before the specified time.
	CreatedBefore *time.Time `type:"timestamp"`

	// A filter that returns only components that are part of the specified experiment.
	// If you specify ExperimentName, you can't filter by SourceArn or TrialName.
	ExperimentName *string `min:"1" type:"string"`

	// The maximum number of components to return in the response. The default value
	// is 10.
	MaxResults *int64 `min:"1" type:"integer"`

	// If the previous call to ListTrialComponents didn't return the full set of
	// components, the call returns a token for getting the next set of components.
	NextToken *string `type:"string"`

	// The property used to sort results. The default value is CreationTime.
	SortBy *string `type:"string" enum:"SortTrialComponentsBy"`

	// The sort order. The default value is Descending.
	SortOrder *string `type:"string" enum:"SortOrder"`

	// A filter that returns only components that have the specified source Amazon
	// Resource Name (ARN). If you specify SourceArn, you can't filter by ExperimentName
	// or TrialName.
	SourceArn *string `type:"string"`

	// A filter that returns only components that are part of the specified trial.
	// If you specify TrialName, you can't filter by ExperimentName or SourceArn.
	TrialName *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTrialComponentsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTrialComponentsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListTrialComponentsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListTrialComponentsInput"}
	if s.ExperimentName != nil && len(*s.ExperimentName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ExperimentName", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.TrialName != nil && len(*s.TrialName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TrialName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreatedAfter sets the CreatedAfter field's value.
func (s *ListTrialComponentsInput) SetCreatedAfter(v time.Time) *ListTrialComponentsInput {
	s.CreatedAfter = &v
	return s
}

// SetCreatedBefore sets the CreatedBefore field's value.
func (s *ListTrialComponentsInput) SetCreatedBefore(v time.Time) *ListTrialComponentsInput {
	s.CreatedBefore = &v
	return s
}

// SetExperimentName sets the ExperimentName field's value.
func (s *ListTrialComponentsInput) SetExperimentName(v string) *ListTrialComponentsInput {
	s.ExperimentName = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListTrialComponentsInput) SetMaxResults(v int64) *ListTrialComponentsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListTrialComponentsInput) SetNextToken(v string) *ListTrialComponentsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListTrialComponentsInput) SetSortBy(v string) *ListTrialComponentsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListTrialComponentsInput) SetSortOrder(v string) *ListTrialComponentsInput {
	s.SortOrder = &v
	return s
}

// SetSourceArn sets the SourceArn field's value.
func (s *ListTrialComponentsInput) SetSourceArn(v string) *ListTrialComponentsInput {
	s.SourceArn = &v
	return s
}

// SetTrialName sets the TrialName field's value.
func (s *ListTrialComponentsInput) SetTrialName(v string) *ListTrialComponentsInput {
	s.TrialName = &v
	return s
}

type ListTrialComponentsOutput struct {
	_ struct{} `type:"structure"`

	// A token for getting the next set of components, if there are any.
	NextToken *string `type:"string"`

	// A list of the summaries of your trial components.
	TrialComponentSummaries []*TrialComponentSummary `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTrialComponentsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTrialComponentsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListTrialComponentsOutput) SetNextToken(v string) *ListTrialComponentsOutput {
	s.NextToken = &v
	return s
}

// SetTrialComponentSummaries sets the TrialComponentSummaries field's value.
func (s *ListTrialComponentsOutput) SetTrialComponentSummaries(v []*TrialComponentSummary) *ListTrialComponentsOutput {
	s.TrialComponentSummaries = v
	return s
}

type ListTrialsInput struct {
	_ struct{} `type:"structure"`

	// A filter that returns only trials created after the specified time.
	CreatedAfter *time.Time `type:"timestamp"`

	// A filter that returns only trials created before the specified time.
	CreatedBefore *time.Time `type:"timestamp"`

	// A filter that returns only trials that are part of the specified experiment.
	ExperimentName *string `min:"1" type:"string"`

	// The maximum number of trials to return in the response. The default value
	// is 10.
	MaxResults *int64 `min:"1" type:"integer"`

	// If the previous call to ListTrials didn't return the full set of trials,
	// the call returns a token for getting the next set of trials.
	NextToken *string `type:"string"`

	// The property used to sort results. The default value is CreationTime.
	SortBy *string `type:"string" enum:"SortTrialsBy"`

	// The sort order. The default value is Descending.
	SortOrder *string `type:"string" enum:"SortOrder"`

	// A filter that returns only trials that are associated with the specified
	// trial component.
	TrialComponentName *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTrialsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTrialsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListTrialsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListTrialsInput"}
	if s.ExperimentName != nil && len(*s.ExperimentName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ExperimentName", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.TrialComponentName != nil && len(*s.TrialComponentName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TrialComponentName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreatedAfter sets the CreatedAfter field's value.
func (s *ListTrialsInput) SetCreatedAfter(v time.Time) *ListTrialsInput {
	s.CreatedAfter = &v
	return s
}

// SetCreatedBefore sets the CreatedBefore field's value.
func (s *ListTrialsInput) SetCreatedBefore(v time.Time) *ListTrialsInput {
	s.CreatedBefore = &v
	return s
}

// SetExperimentName sets the ExperimentName field's value.
func (s *ListTrialsInput) SetExperimentName(v string) *ListTrialsInput {
	s.ExperimentName = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListTrialsInput) SetMaxResults(v int64) *ListTrialsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListTrialsInput) SetNextToken(v string) *ListTrialsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListTrialsInput) SetSortBy(v string) *ListTrialsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListTrialsInput) SetSortOrder(v string) *ListTrialsInput {
	s.SortOrder = &v
	return s
}

// SetTrialComponentName sets the TrialComponentName field's value.
func (s *ListTrialsInput) SetTrialComponentName(v string) *ListTrialsInput {
	s.TrialComponentName = &v
	return s
}

type ListTrialsOutput struct {
	_ struct{} `type:"structure"`

	// A token for getting the next set of trials, if there are any.
	NextToken *string `type:"string"`

	// A list of the summaries of your trials.
	TrialSummaries []*TrialSummary `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTrialsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTrialsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListTrialsOutput) SetNextToken(v string) *ListTrialsOutput {
	s.NextToken = &v
	return s
}

// SetTrialSummaries sets the TrialSummaries field's value.
func (s *ListTrialsOutput) SetTrialSummaries(v []*TrialSummary) *ListTrialsOutput {
	s.TrialSummaries = v
	return s
}

type ListUserProfilesInput struct {
	_ struct{} `type:"structure"`

	// A parameter by which to filter the results.
	DomainIdEquals *string `type:"string"`

	// The total number of items to return in the response. If the total number
	// of items available is more than the value specified, a NextToken is provided
	// in the response. To resume pagination, provide the NextToken value in the
	// as part of a subsequent call. The default value is 10.
	MaxResults *int64 `min:"1" type:"integer"`

	// If the previous response was truncated, you will receive this token. Use
	// it in your next request to receive the next set of results.
	NextToken *string `type:"string"`

	// The parameter by which to sort the results. The default is CreationTime.
	SortBy *string `type:"string" enum:"UserProfileSortKey"`

	// The sort order for the results. The default is Ascending.
	SortOrder *string `type:"string" enum:"SortOrder"`

	// A parameter by which to filter the results.
	UserProfileNameContains *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListUserProfilesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListUserProfilesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListUserProfilesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListUserProfilesInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdEquals sets the DomainIdEquals field's value.
func (s *ListUserProfilesInput) SetDomainIdEquals(v string) *ListUserProfilesInput {
	s.DomainIdEquals = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListUserProfilesInput) SetMaxResults(v int64) *ListUserProfilesInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListUserProfilesInput) SetNextToken(v string) *ListUserProfilesInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListUserProfilesInput) SetSortBy(v string) *ListUserProfilesInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListUserProfilesInput) SetSortOrder(v string) *ListUserProfilesInput {
	s.SortOrder = &v
	return s
}

// SetUserProfileNameContains sets the UserProfileNameContains field's value.
func (s *ListUserProfilesInput) SetUserProfileNameContains(v string) *ListUserProfilesInput {
	s.UserProfileNameContains = &v
	return s
}

type ListUserProfilesOutput struct {
	_ struct{} `type:"structure"`

	// If the previous response was truncated, you will receive this token. Use
	// it in your next request to receive the next set of results.
	NextToken *string `type:"string"`

	// The list of user profiles.
	UserProfiles []*UserProfileDetails `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListUserProfilesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListUserProfilesOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListUserProfilesOutput) SetNextToken(v string) *ListUserProfilesOutput {
	s.NextToken = &v
	return s
}

// SetUserProfiles sets the UserProfiles field's value.
func (s *ListUserProfilesOutput) SetUserProfiles(v []*UserProfileDetails) *ListUserProfilesOutput {
	s.UserProfiles = v
	return s
}

type ListWorkforcesInput struct {
	_ struct{} `type:"structure"`

	// The maximum number of workforces returned in the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// A filter you can use to search for workforces using part of the workforce
	// name.
	NameContains *string `min:"1" type:"string"`

	// A token to resume pagination.
	NextToken *string `type:"string"`

	// Sort workforces using the workforce name or creation date.
	SortBy *string `type:"string" enum:"ListWorkforcesSortByOptions"`

	// Sort workforces in ascending or descending order.
	SortOrder *string `type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListWorkforcesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListWorkforcesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListWorkforcesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListWorkforcesInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NameContains != nil && len(*s.NameContains) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NameContains", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListWorkforcesInput) SetMaxResults(v int64) *ListWorkforcesInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListWorkforcesInput) SetNameContains(v string) *ListWorkforcesInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListWorkforcesInput) SetNextToken(v string) *ListWorkforcesInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListWorkforcesInput) SetSortBy(v string) *ListWorkforcesInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListWorkforcesInput) SetSortOrder(v string) *ListWorkforcesInput {
	s.SortOrder = &v
	return s
}

type ListWorkforcesOutput struct {
	_ struct{} `type:"structure"`

	// A token to resume pagination.
	NextToken *string `type:"string"`

	// A list containing information about your workforce.
	//
	// Workforces is a required field
	Workforces []*Workforce `type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListWorkforcesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListWorkforcesOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListWorkforcesOutput) SetNextToken(v string) *ListWorkforcesOutput {
	s.NextToken = &v
	return s
}

// SetWorkforces sets the Workforces field's value.
func (s *ListWorkforcesOutput) SetWorkforces(v []*Workforce) *ListWorkforcesOutput {
	s.Workforces = v
	return s
}

type ListWorkteamsInput struct {
	_ struct{} `type:"structure"`

	// The maximum number of work teams to return in each page of the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// A string in the work team's name. This filter returns only work teams whose
	// name contains the specified string.
	NameContains *string `min:"1" type:"string"`

	// If the result of the previous ListWorkteams request was truncated, the response
	// includes a NextToken. To retrieve the next set of labeling jobs, use the
	// token in the next request.
	NextToken *string `type:"string"`

	// The field to sort results by. The default is CreationTime.
	SortBy *string `type:"string" enum:"ListWorkteamsSortByOptions"`

	// The sort order for results. The default is Ascending.
	SortOrder *string `type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListWorkteamsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListWorkteamsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListWorkteamsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListWorkteamsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NameContains != nil && len(*s.NameContains) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NameContains", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListWorkteamsInput) SetMaxResults(v int64) *ListWorkteamsInput {
	s.MaxResults = &v
	return s
}

// SetNameContains sets the NameContains field's value.
func (s *ListWorkteamsInput) SetNameContains(v string) *ListWorkteamsInput {
	s.NameContains = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListWorkteamsInput) SetNextToken(v string) *ListWorkteamsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListWorkteamsInput) SetSortBy(v string) *ListWorkteamsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListWorkteamsInput) SetSortOrder(v string) *ListWorkteamsInput {
	s.SortOrder = &v
	return s
}

type ListWorkteamsOutput struct {
	_ struct{} `type:"structure"`

	// If the response is truncated, Amazon SageMaker returns this token. To retrieve
	// the next set of work teams, use it in the subsequent request.
	NextToken *string `type:"string"`

	// An array of Workteam objects, each describing a work team.
	//
	// Workteams is a required field
	Workteams []*Workteam `type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListWorkteamsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListWorkteamsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListWorkteamsOutput) SetNextToken(v string) *ListWorkteamsOutput {
	s.NextToken = &v
	return s
}

// SetWorkteams sets the Workteams field's value.
func (s *ListWorkteamsOutput) SetWorkteams(v []*Workteam) *ListWorkteamsOutput {
	s.Workteams = v
	return s
}

// Defines an Amazon Cognito or your own OIDC IdP user group that is part of
// a work team.
type MemberDefinition struct {
	_ struct{} `type:"structure"`

	// The Amazon Cognito user group that is part of the work team.
	CognitoMemberDefinition *CognitoMemberDefinition `type:"structure"`

	// A list user groups that exist in your OIDC Identity Provider (IdP). One to
	// ten groups can be used to create a single private work team. When you add
	// a user group to the list of Groups, you can add that user group to one or
	// more private work teams. If you add a user group to a private work team,
	// all workers in that user group are added to the work team.
	OidcMemberDefinition *OidcMemberDefinition `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MemberDefinition) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MemberDefinition) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *MemberDefinition) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "MemberDefinition"}
	if s.CognitoMemberDefinition != nil {
		if err := s.CognitoMemberDefinition.Validate(); err != nil {
			invalidParams.AddNested("CognitoMemberDefinition", err.(request.ErrInvalidParams))
		}
	}
	if s.OidcMemberDefinition != nil {
		if err := s.OidcMemberDefinition.Validate(); err != nil {
			invalidParams.AddNested("OidcMemberDefinition", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCognitoMemberDefinition sets the CognitoMemberDefinition field's value.
func (s *MemberDefinition) SetCognitoMemberDefinition(v *CognitoMemberDefinition) *MemberDefinition {
	s.CognitoMemberDefinition = v
	return s
}

// SetOidcMemberDefinition sets the OidcMemberDefinition field's value.
func (s *MemberDefinition) SetOidcMemberDefinition(v *OidcMemberDefinition) *MemberDefinition {
	s.OidcMemberDefinition = v
	return s
}

// Metadata properties of the tracking entity, trial, or trial component.
type MetadataProperties struct {
	_ struct{} `type:"structure"`

	// The commit ID.
	CommitId *string `type:"string"`

	// The entity this entity was generated by.
	GeneratedBy *string `type:"string"`

	// The project ID.
	ProjectId *string `type:"string"`

	// The repository.
	Repository *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MetadataProperties) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MetadataProperties) GoString() string {
	return s.String()
}

// SetCommitId sets the CommitId field's value.
func (s *MetadataProperties) SetCommitId(v string) *MetadataProperties {
	s.CommitId = &v
	return s
}

// SetGeneratedBy sets the GeneratedBy field's value.
func (s *MetadataProperties) SetGeneratedBy(v string) *MetadataProperties {
	s.GeneratedBy = &v
	return s
}

// SetProjectId sets the ProjectId field's value.
func (s *MetadataProperties) SetProjectId(v string) *MetadataProperties {
	s.ProjectId = &v
	return s
}

// SetRepository sets the Repository field's value.
func (s *MetadataProperties) SetRepository(v string) *MetadataProperties {
	s.Repository = &v
	return s
}

// The name, value, and date and time of a metric that was emitted to Amazon
// CloudWatch.
type MetricData struct {
	_ struct{} `type:"structure"`

	// The name of the metric.
	MetricName *string `min:"1" type:"string"`

	// The date and time that the algorithm emitted the metric.
	Timestamp *time.Time `type:"timestamp"`

	// The value of the metric.
	Value *float64 `type:"float"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MetricData) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MetricData) GoString() string {
	return s.String()
}

// SetMetricName sets the MetricName field's value.
func (s *MetricData) SetMetricName(v string) *MetricData {
	s.MetricName = &v
	return s
}

// SetTimestamp sets the Timestamp field's value.
func (s *MetricData) SetTimestamp(v time.Time) *MetricData {
	s.Timestamp = &v
	return s
}

// SetValue sets the Value field's value.
func (s *MetricData) SetValue(v float64) *MetricData {
	s.Value = &v
	return s
}

// Information about the metric for a candidate produced by an AutoML job.
type MetricDatum struct {
	_ struct{} `type:"structure"`

	// The name of the metric.
	MetricName *string `type:"string" enum:"AutoMLMetricEnum"`

	// The dataset split from which the AutoML job produced the metric.
	Set *string `type:"string" enum:"MetricSetSource"`

	// The name of the standard metric.
	//
	// For definitions of the standard metrics, see Autopilot candidate metrics
	// (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html#autopilot-metrics).
	StandardMetricName *string `type:"string" enum:"AutoMLMetricExtendedEnum"`

	// The value of the metric.
	Value *float64 `type:"float"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MetricDatum) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MetricDatum) GoString() string {
	return s.String()
}

// SetMetricName sets the MetricName field's value.
func (s *MetricDatum) SetMetricName(v string) *MetricDatum {
	s.MetricName = &v
	return s
}

// SetSet sets the Set field's value.
func (s *MetricDatum) SetSet(v string) *MetricDatum {
	s.Set = &v
	return s
}

// SetStandardMetricName sets the StandardMetricName field's value.
func (s *MetricDatum) SetStandardMetricName(v string) *MetricDatum {
	s.StandardMetricName = &v
	return s
}

// SetValue sets the Value field's value.
func (s *MetricDatum) SetValue(v float64) *MetricDatum {
	s.Value = &v
	return s
}

// Specifies a metric that the training algorithm writes to stderr or stdout.
// You can view these logs to understand how your training job performs and
// check for any errors encountered during training. SageMaker hyperparameter
// tuning captures all defined metrics. Specify one of the defined metrics to
// use as an objective metric using the TuningObjective (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html#sagemaker-Type-HyperParameterTrainingJobDefinition-TuningObjective)
// parameter in the HyperParameterTrainingJobDefinition API to evaluate job
// performance during hyperparameter tuning.
type MetricDefinition struct {
	_ struct{} `type:"structure"`

	// The name of the metric.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// A regular expression that searches the output of a training job and gets
	// the value of the metric. For more information about using regular expressions
	// to define metrics, see Defining metrics and environment variables (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics-variables.html).
	//
	// Regex is a required field
	Regex *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MetricDefinition) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MetricDefinition) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *MetricDefinition) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "MetricDefinition"}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.Regex == nil {
		invalidParams.Add(request.NewErrParamRequired("Regex"))
	}
	if s.Regex != nil && len(*s.Regex) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Regex", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetName sets the Name field's value.
func (s *MetricDefinition) SetName(v string) *MetricDefinition {
	s.Name = &v
	return s
}

// SetRegex sets the Regex field's value.
func (s *MetricDefinition) SetRegex(v string) *MetricDefinition {
	s.Regex = &v
	return s
}

// An object containing information about a metric.
type MetricSpecification struct {
	_ struct{} `type:"structure"`

	// Information about a customized metric.
	Customized *CustomizedMetricSpecification `type:"structure"`

	// Information about a predefined metric.
	Predefined *PredefinedMetricSpecification `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MetricSpecification) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MetricSpecification) GoString() string {
	return s.String()
}

// SetCustomized sets the Customized field's value.
func (s *MetricSpecification) SetCustomized(v *CustomizedMetricSpecification) *MetricSpecification {
	s.Customized = v
	return s
}

// SetPredefined sets the Predefined field's value.
func (s *MetricSpecification) SetPredefined(v *PredefinedMetricSpecification) *MetricSpecification {
	s.Predefined = v
	return s
}

// Details about the metrics source.
type MetricsSource struct {
	_ struct{} `type:"structure"`

	// The hash key used for the metrics source.
	ContentDigest *string `type:"string"`

	// The metric source content type.
	//
	// ContentType is a required field
	ContentType *string `type:"string" required:"true"`

	// The S3 URI for the metrics source.
	//
	// S3Uri is a required field
	S3Uri *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MetricsSource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MetricsSource) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *MetricsSource) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "MetricsSource"}
	if s.ContentType == nil {
		invalidParams.Add(request.NewErrParamRequired("ContentType"))
	}
	if s.S3Uri == nil {
		invalidParams.Add(request.NewErrParamRequired("S3Uri"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContentDigest sets the ContentDigest field's value.
func (s *MetricsSource) SetContentDigest(v string) *MetricsSource {
	s.ContentDigest = &v
	return s
}

// SetContentType sets the ContentType field's value.
func (s *MetricsSource) SetContentType(v string) *MetricsSource {
	s.ContentType = &v
	return s
}

// SetS3Uri sets the S3Uri field's value.
func (s *MetricsSource) SetS3Uri(v string) *MetricsSource {
	s.S3Uri = &v
	return s
}

// The properties of a model as returned by the Search (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html)
// API.
type Model struct {
	_ struct{} `type:"structure"`

	// The containers in the inference pipeline.
	Containers []*ContainerDefinition `type:"list"`

	// A timestamp that indicates when the model was created.
	CreationTime *time.Time `type:"timestamp"`

	// A set of recommended deployment configurations for the model.
	DeploymentRecommendation *DeploymentRecommendation `type:"structure"`

	// Isolates the model container. No inbound or outbound network calls can be
	// made to or from the model container.
	EnableNetworkIsolation *bool `type:"boolean"`

	// The Amazon Resource Name (ARN) of the IAM role that you specified for the
	// model.
	ExecutionRoleArn *string `min:"20" type:"string"`

	// Specifies details about how containers in a multi-container endpoint are
	// run.
	InferenceExecutionConfig *InferenceExecutionConfig `type:"structure"`

	// The Amazon Resource Name (ARN) of the model.
	ModelArn *string `min:"20" type:"string"`

	// The name of the model.
	ModelName *string `type:"string"`

	// Describes the container, as part of model definition.
	PrimaryContainer *ContainerDefinition `type:"structure"`

	// A list of key-value pairs associated with the model. For more information,
	// see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)
	// in the Amazon Web Services General Reference Guide.
	Tags []*Tag `type:"list"`

	// Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs,
	// hosted models, and compute resources have access to. You can control access
	// to and from your resources by configuring a VPC. For more information, see
	// Give SageMaker Access to Resources in your Amazon VPC (https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html).
	VpcConfig *VpcConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Model) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Model) GoString() string {
	return s.String()
}

// SetContainers sets the Containers field's value.
func (s *Model) SetContainers(v []*ContainerDefinition) *Model {
	s.Containers = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *Model) SetCreationTime(v time.Time) *Model {
	s.CreationTime = &v
	return s
}

// SetDeploymentRecommendation sets the DeploymentRecommendation field's value.
func (s *Model) SetDeploymentRecommendation(v *DeploymentRecommendation) *Model {
	s.DeploymentRecommendation = v
	return s
}

// SetEnableNetworkIsolation sets the EnableNetworkIsolation field's value.
func (s *Model) SetEnableNetworkIsolation(v bool) *Model {
	s.EnableNetworkIsolation = &v
	return s
}

// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
func (s *Model) SetExecutionRoleArn(v string) *Model {
	s.ExecutionRoleArn = &v
	return s
}

// SetInferenceExecutionConfig sets the InferenceExecutionConfig field's value.
func (s *Model) SetInferenceExecutionConfig(v *InferenceExecutionConfig) *Model {
	s.InferenceExecutionConfig = v
	return s
}

// SetModelArn sets the ModelArn field's value.
func (s *Model) SetModelArn(v string) *Model {
	s.ModelArn = &v
	return s
}

// SetModelName sets the ModelName field's value.
func (s *Model) SetModelName(v string) *Model {
	s.ModelName = &v
	return s
}

// SetPrimaryContainer sets the PrimaryContainer field's value.
func (s *Model) SetPrimaryContainer(v *ContainerDefinition) *Model {
	s.PrimaryContainer = v
	return s
}

// SetTags sets the Tags field's value.
func (s *Model) SetTags(v []*Tag) *Model {
	s.Tags = v
	return s
}

// SetVpcConfig sets the VpcConfig field's value.
func (s *Model) SetVpcConfig(v *VpcConfig) *Model {
	s.VpcConfig = v
	return s
}

// The access configuration file to control access to the ML model. You can
// explicitly accept the model end-user license agreement (EULA) within the
// ModelAccessConfig.
//
//   - If you are a Jumpstart user, see the End-user license agreements (https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-foundation-models-choose.html#jumpstart-foundation-models-choose-eula)
//     section for more details on accepting the EULA.
//
//   - If you are an AutoML user, see the Optional Parameters section of Create
//     an AutoML job to fine-tune text generation models using the API for details
//     on How to set the EULA acceptance when fine-tuning a model using the AutoML
//     API (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-create-experiment-finetune-llms.html#autopilot-llms-finetuning-api-optional-params).
type ModelAccessConfig struct {
	_ struct{} `type:"structure"`

	// Specifies agreement to the model end-user license agreement (EULA). The AcceptEula
	// value must be explicitly defined as True in order to accept the EULA that
	// this model requires. You are responsible for reviewing and complying with
	// any applicable license terms and making sure they are acceptable for your
	// use case before downloading or using a model.
	//
	// AcceptEula is a required field
	AcceptEula *bool `type:"boolean" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelAccessConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelAccessConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ModelAccessConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ModelAccessConfig"}
	if s.AcceptEula == nil {
		invalidParams.Add(request.NewErrParamRequired("AcceptEula"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAcceptEula sets the AcceptEula field's value.
func (s *ModelAccessConfig) SetAcceptEula(v bool) *ModelAccessConfig {
	s.AcceptEula = &v
	return s
}

// Provides information about the location that is configured for storing model
// artifacts.
//
// Model artifacts are the output that results from training a model, and typically
// consist of trained parameters, a model definition that describes how to compute
// inferences, and other metadata.
type ModelArtifacts struct {
	_ struct{} `type:"structure"`

	// The path of the S3 object that contains the model artifacts. For example,
	// s3://bucket-name/keynameprefix/model.tar.gz.
	//
	// S3ModelArtifacts is a required field
	S3ModelArtifacts *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelArtifacts) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelArtifacts) GoString() string {
	return s.String()
}

// SetS3ModelArtifacts sets the S3ModelArtifacts field's value.
func (s *ModelArtifacts) SetS3ModelArtifacts(v string) *ModelArtifacts {
	s.S3ModelArtifacts = &v
	return s
}

// Docker container image configuration object for the model bias job.
type ModelBiasAppSpecification struct {
	_ struct{} `type:"structure"`

	// JSON formatted S3 file that defines bias parameters. For more information
	// on this JSON configuration file, see Configure bias parameters (https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-config-json-monitor-bias-parameters.html).
	//
	// ConfigUri is a required field
	ConfigUri *string `type:"string" required:"true"`

	// Sets the environment variables in the Docker container.
	Environment map[string]*string `type:"map"`

	// The container image to be run by the model bias job.
	//
	// ImageUri is a required field
	ImageUri *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelBiasAppSpecification) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelBiasAppSpecification) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ModelBiasAppSpecification) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ModelBiasAppSpecification"}
	if s.ConfigUri == nil {
		invalidParams.Add(request.NewErrParamRequired("ConfigUri"))
	}
	if s.ImageUri == nil {
		invalidParams.Add(request.NewErrParamRequired("ImageUri"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetConfigUri sets the ConfigUri field's value.
func (s *ModelBiasAppSpecification) SetConfigUri(v string) *ModelBiasAppSpecification {
	s.ConfigUri = &v
	return s
}

// SetEnvironment sets the Environment field's value.
func (s *ModelBiasAppSpecification) SetEnvironment(v map[string]*string) *ModelBiasAppSpecification {
	s.Environment = v
	return s
}

// SetImageUri sets the ImageUri field's value.
func (s *ModelBiasAppSpecification) SetImageUri(v string) *ModelBiasAppSpecification {
	s.ImageUri = &v
	return s
}

// The configuration for a baseline model bias job.
type ModelBiasBaselineConfig struct {
	_ struct{} `type:"structure"`

	// The name of the baseline model bias job.
	BaseliningJobName *string `min:"1" type:"string"`

	// The constraints resource for a monitoring job.
	ConstraintsResource *MonitoringConstraintsResource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelBiasBaselineConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelBiasBaselineConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ModelBiasBaselineConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ModelBiasBaselineConfig"}
	if s.BaseliningJobName != nil && len(*s.BaseliningJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("BaseliningJobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetBaseliningJobName sets the BaseliningJobName field's value.
func (s *ModelBiasBaselineConfig) SetBaseliningJobName(v string) *ModelBiasBaselineConfig {
	s.BaseliningJobName = &v
	return s
}

// SetConstraintsResource sets the ConstraintsResource field's value.
func (s *ModelBiasBaselineConfig) SetConstraintsResource(v *MonitoringConstraintsResource) *ModelBiasBaselineConfig {
	s.ConstraintsResource = v
	return s
}

// Inputs for the model bias job.
type ModelBiasJobInput struct {
	_ struct{} `type:"structure"`

	// Input object for the batch transform job.
	BatchTransformInput *BatchTransformInput_ `type:"structure"`

	// Input object for the endpoint
	EndpointInput *EndpointInput `type:"structure"`

	// Location of ground truth labels to use in model bias job.
	//
	// GroundTruthS3Input is a required field
	GroundTruthS3Input *MonitoringGroundTruthS3Input `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelBiasJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelBiasJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ModelBiasJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ModelBiasJobInput"}
	if s.GroundTruthS3Input == nil {
		invalidParams.Add(request.NewErrParamRequired("GroundTruthS3Input"))
	}
	if s.BatchTransformInput != nil {
		if err := s.BatchTransformInput.Validate(); err != nil {
			invalidParams.AddNested("BatchTransformInput", err.(request.ErrInvalidParams))
		}
	}
	if s.EndpointInput != nil {
		if err := s.EndpointInput.Validate(); err != nil {
			invalidParams.AddNested("EndpointInput", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetBatchTransformInput sets the BatchTransformInput field's value.
func (s *ModelBiasJobInput) SetBatchTransformInput(v *BatchTransformInput_) *ModelBiasJobInput {
	s.BatchTransformInput = v
	return s
}

// SetEndpointInput sets the EndpointInput field's value.
func (s *ModelBiasJobInput) SetEndpointInput(v *EndpointInput) *ModelBiasJobInput {
	s.EndpointInput = v
	return s
}

// SetGroundTruthS3Input sets the GroundTruthS3Input field's value.
func (s *ModelBiasJobInput) SetGroundTruthS3Input(v *MonitoringGroundTruthS3Input) *ModelBiasJobInput {
	s.GroundTruthS3Input = v
	return s
}

// An Amazon SageMaker Model Card.
type ModelCard struct {
	_ struct{} `type:"structure"`

	// The content of the model card. Content uses the model card JSON schema (https://docs.aws.amazon.com/sagemaker/latest/dg/model-cards.html#model-cards-json-schema)
	// and provided as a string.
	//
	// Content is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ModelCard's
	// String and GoString methods.
	Content *string `type:"string" sensitive:"true"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	CreatedBy *UserContext `type:"structure"`

	// The date and time that the model card was created.
	CreationTime *time.Time `type:"timestamp"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	LastModifiedBy *UserContext `type:"structure"`

	// The date and time that the model card was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the model card.
	ModelCardArn *string `type:"string"`

	// The unique name of the model card.
	ModelCardName *string `min:"1" type:"string"`

	// The approval status of the model card within your organization. Different
	// organizations might have different criteria for model card review and approval.
	//
	//    * Draft: The model card is a work in progress.
	//
	//    * PendingReview: The model card is pending review.
	//
	//    * Approved: The model card is approved.
	//
	//    * Archived: The model card is archived. No more updates should be made
	//    to the model card, but it can still be exported.
	ModelCardStatus *string `type:"string" enum:"ModelCardStatus"`

	// The version of the model card.
	ModelCardVersion *int64 `type:"integer"`

	// The unique name (ID) of the model.
	ModelId *string `type:"string"`

	// The model package group that contains the model package. Only relevant for
	// model cards created for model packages in the Amazon SageMaker Model Registry.
	ModelPackageGroupName *string `type:"string"`

	// The risk rating of the model. Different organizations might have different
	// criteria for model card risk ratings. For more information, see Risk ratings
	// (https://docs.aws.amazon.com/sagemaker/latest/dg/model-cards-risk-rating.html).
	RiskRating *string `type:"string"`

	// The security configuration used to protect model card data.
	SecurityConfig *ModelCardSecurityConfig `type:"structure"`

	// Key-value pairs used to manage metadata for the model card.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelCard) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelCard) GoString() string {
	return s.String()
}

// SetContent sets the Content field's value.
func (s *ModelCard) SetContent(v string) *ModelCard {
	s.Content = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *ModelCard) SetCreatedBy(v *UserContext) *ModelCard {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *ModelCard) SetCreationTime(v time.Time) *ModelCard {
	s.CreationTime = &v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *ModelCard) SetLastModifiedBy(v *UserContext) *ModelCard {
	s.LastModifiedBy = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *ModelCard) SetLastModifiedTime(v time.Time) *ModelCard {
	s.LastModifiedTime = &v
	return s
}

// SetModelCardArn sets the ModelCardArn field's value.
func (s *ModelCard) SetModelCardArn(v string) *ModelCard {
	s.ModelCardArn = &v
	return s
}

// SetModelCardName sets the ModelCardName field's value.
func (s *ModelCard) SetModelCardName(v string) *ModelCard {
	s.ModelCardName = &v
	return s
}

// SetModelCardStatus sets the ModelCardStatus field's value.
func (s *ModelCard) SetModelCardStatus(v string) *ModelCard {
	s.ModelCardStatus = &v
	return s
}

// SetModelCardVersion sets the ModelCardVersion field's value.
func (s *ModelCard) SetModelCardVersion(v int64) *ModelCard {
	s.ModelCardVersion = &v
	return s
}

// SetModelId sets the ModelId field's value.
func (s *ModelCard) SetModelId(v string) *ModelCard {
	s.ModelId = &v
	return s
}

// SetModelPackageGroupName sets the ModelPackageGroupName field's value.
func (s *ModelCard) SetModelPackageGroupName(v string) *ModelCard {
	s.ModelPackageGroupName = &v
	return s
}

// SetRiskRating sets the RiskRating field's value.
func (s *ModelCard) SetRiskRating(v string) *ModelCard {
	s.RiskRating = &v
	return s
}

// SetSecurityConfig sets the SecurityConfig field's value.
func (s *ModelCard) SetSecurityConfig(v *ModelCardSecurityConfig) *ModelCard {
	s.SecurityConfig = v
	return s
}

// SetTags sets the Tags field's value.
func (s *ModelCard) SetTags(v []*Tag) *ModelCard {
	s.Tags = v
	return s
}

// The artifacts of the model card export job.
type ModelCardExportArtifacts struct {
	_ struct{} `type:"structure"`

	// The Amazon S3 URI of the exported model artifacts.
	//
	// S3ExportArtifacts is a required field
	S3ExportArtifacts *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelCardExportArtifacts) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelCardExportArtifacts) GoString() string {
	return s.String()
}

// SetS3ExportArtifacts sets the S3ExportArtifacts field's value.
func (s *ModelCardExportArtifacts) SetS3ExportArtifacts(v string) *ModelCardExportArtifacts {
	s.S3ExportArtifacts = &v
	return s
}

// The summary of the Amazon SageMaker Model Card export job.
type ModelCardExportJobSummary struct {
	_ struct{} `type:"structure"`

	// The date and time that the model card export job was created.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `type:"timestamp" required:"true"`

	// The date and time that the model card export job was last modified..
	//
	// LastModifiedAt is a required field
	LastModifiedAt *time.Time `type:"timestamp" required:"true"`

	// The Amazon Resource Name (ARN) of the model card export job.
	//
	// ModelCardExportJobArn is a required field
	ModelCardExportJobArn *string `type:"string" required:"true"`

	// The name of the model card export job.
	//
	// ModelCardExportJobName is a required field
	ModelCardExportJobName *string `min:"1" type:"string" required:"true"`

	// The name of the model card that the export job exports.
	//
	// ModelCardName is a required field
	ModelCardName *string `min:"1" type:"string" required:"true"`

	// The version of the model card that the export job exports.
	//
	// ModelCardVersion is a required field
	ModelCardVersion *int64 `type:"integer" required:"true"`

	// The completion status of the model card export job.
	//
	// Status is a required field
	Status *string `type:"string" required:"true" enum:"ModelCardExportJobStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelCardExportJobSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelCardExportJobSummary) GoString() string {
	return s.String()
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *ModelCardExportJobSummary) SetCreatedAt(v time.Time) *ModelCardExportJobSummary {
	s.CreatedAt = &v
	return s
}

// SetLastModifiedAt sets the LastModifiedAt field's value.
func (s *ModelCardExportJobSummary) SetLastModifiedAt(v time.Time) *ModelCardExportJobSummary {
	s.LastModifiedAt = &v
	return s
}

// SetModelCardExportJobArn sets the ModelCardExportJobArn field's value.
func (s *ModelCardExportJobSummary) SetModelCardExportJobArn(v string) *ModelCardExportJobSummary {
	s.ModelCardExportJobArn = &v
	return s
}

// SetModelCardExportJobName sets the ModelCardExportJobName field's value.
func (s *ModelCardExportJobSummary) SetModelCardExportJobName(v string) *ModelCardExportJobSummary {
	s.ModelCardExportJobName = &v
	return s
}

// SetModelCardName sets the ModelCardName field's value.
func (s *ModelCardExportJobSummary) SetModelCardName(v string) *ModelCardExportJobSummary {
	s.ModelCardName = &v
	return s
}

// SetModelCardVersion sets the ModelCardVersion field's value.
func (s *ModelCardExportJobSummary) SetModelCardVersion(v int64) *ModelCardExportJobSummary {
	s.ModelCardVersion = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *ModelCardExportJobSummary) SetStatus(v string) *ModelCardExportJobSummary {
	s.Status = &v
	return s
}

// Configure the export output details for an Amazon SageMaker Model Card.
type ModelCardExportOutputConfig struct {
	_ struct{} `type:"structure"`

	// The Amazon S3 output path to export your model card PDF.
	//
	// S3OutputPath is a required field
	S3OutputPath *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelCardExportOutputConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelCardExportOutputConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ModelCardExportOutputConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ModelCardExportOutputConfig"}
	if s.S3OutputPath == nil {
		invalidParams.Add(request.NewErrParamRequired("S3OutputPath"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetS3OutputPath sets the S3OutputPath field's value.
func (s *ModelCardExportOutputConfig) SetS3OutputPath(v string) *ModelCardExportOutputConfig {
	s.S3OutputPath = &v
	return s
}

// Configure the security settings to protect model card data.
type ModelCardSecurityConfig struct {
	_ struct{} `type:"structure"`

	// A Key Management Service key ID (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id)
	// to use for encrypting a model card.
	KmsKeyId *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelCardSecurityConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelCardSecurityConfig) GoString() string {
	return s.String()
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *ModelCardSecurityConfig) SetKmsKeyId(v string) *ModelCardSecurityConfig {
	s.KmsKeyId = &v
	return s
}

// A summary of the model card.
type ModelCardSummary struct {
	_ struct{} `type:"structure"`

	// The date and time that the model card was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The date and time that the model card was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the model card.
	//
	// ModelCardArn is a required field
	ModelCardArn *string `type:"string" required:"true"`

	// The name of the model card.
	//
	// ModelCardName is a required field
	ModelCardName *string `min:"1" type:"string" required:"true"`

	// The approval status of the model card within your organization. Different
	// organizations might have different criteria for model card review and approval.
	//
	//    * Draft: The model card is a work in progress.
	//
	//    * PendingReview: The model card is pending review.
	//
	//    * Approved: The model card is approved.
	//
	//    * Archived: The model card is archived. No more updates should be made
	//    to the model card, but it can still be exported.
	//
	// ModelCardStatus is a required field
	ModelCardStatus *string `type:"string" required:"true" enum:"ModelCardStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelCardSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelCardSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *ModelCardSummary) SetCreationTime(v time.Time) *ModelCardSummary {
	s.CreationTime = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *ModelCardSummary) SetLastModifiedTime(v time.Time) *ModelCardSummary {
	s.LastModifiedTime = &v
	return s
}

// SetModelCardArn sets the ModelCardArn field's value.
func (s *ModelCardSummary) SetModelCardArn(v string) *ModelCardSummary {
	s.ModelCardArn = &v
	return s
}

// SetModelCardName sets the ModelCardName field's value.
func (s *ModelCardSummary) SetModelCardName(v string) *ModelCardSummary {
	s.ModelCardName = &v
	return s
}

// SetModelCardStatus sets the ModelCardStatus field's value.
func (s *ModelCardSummary) SetModelCardStatus(v string) *ModelCardSummary {
	s.ModelCardStatus = &v
	return s
}

// A summary of a specific version of the model card.
type ModelCardVersionSummary struct {
	_ struct{} `type:"structure"`

	// The date and time that the model card version was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The time date and time that the model card version was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the model card.
	//
	// ModelCardArn is a required field
	ModelCardArn *string `type:"string" required:"true"`

	// The name of the model card.
	//
	// ModelCardName is a required field
	ModelCardName *string `min:"1" type:"string" required:"true"`

	// The approval status of the model card version within your organization. Different
	// organizations might have different criteria for model card review and approval.
	//
	//    * Draft: The model card is a work in progress.
	//
	//    * PendingReview: The model card is pending review.
	//
	//    * Approved: The model card is approved.
	//
	//    * Archived: The model card is archived. No more updates should be made
	//    to the model card, but it can still be exported.
	//
	// ModelCardStatus is a required field
	ModelCardStatus *string `type:"string" required:"true" enum:"ModelCardStatus"`

	// A version of the model card.
	//
	// ModelCardVersion is a required field
	ModelCardVersion *int64 `type:"integer" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelCardVersionSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelCardVersionSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *ModelCardVersionSummary) SetCreationTime(v time.Time) *ModelCardVersionSummary {
	s.CreationTime = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *ModelCardVersionSummary) SetLastModifiedTime(v time.Time) *ModelCardVersionSummary {
	s.LastModifiedTime = &v
	return s
}

// SetModelCardArn sets the ModelCardArn field's value.
func (s *ModelCardVersionSummary) SetModelCardArn(v string) *ModelCardVersionSummary {
	s.ModelCardArn = &v
	return s
}

// SetModelCardName sets the ModelCardName field's value.
func (s *ModelCardVersionSummary) SetModelCardName(v string) *ModelCardVersionSummary {
	s.ModelCardName = &v
	return s
}

// SetModelCardStatus sets the ModelCardStatus field's value.
func (s *ModelCardVersionSummary) SetModelCardStatus(v string) *ModelCardVersionSummary {
	s.ModelCardStatus = &v
	return s
}

// SetModelCardVersion sets the ModelCardVersion field's value.
func (s *ModelCardVersionSummary) SetModelCardVersion(v int64) *ModelCardVersionSummary {
	s.ModelCardVersion = &v
	return s
}

// Configures the timeout and maximum number of retries for processing a transform
// job invocation.
type ModelClientConfig struct {
	_ struct{} `type:"structure"`

	// The maximum number of retries when invocation requests are failing. The default
	// value is 3.
	InvocationsMaxRetries *int64 `type:"integer"`

	// The timeout value in seconds for an invocation request. The default value
	// is 600.
	InvocationsTimeoutInSeconds *int64 `min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelClientConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelClientConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ModelClientConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ModelClientConfig"}
	if s.InvocationsTimeoutInSeconds != nil && *s.InvocationsTimeoutInSeconds < 1 {
		invalidParams.Add(request.NewErrParamMinValue("InvocationsTimeoutInSeconds", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetInvocationsMaxRetries sets the InvocationsMaxRetries field's value.
func (s *ModelClientConfig) SetInvocationsMaxRetries(v int64) *ModelClientConfig {
	s.InvocationsMaxRetries = &v
	return s
}

// SetInvocationsTimeoutInSeconds sets the InvocationsTimeoutInSeconds field's value.
func (s *ModelClientConfig) SetInvocationsTimeoutInSeconds(v int64) *ModelClientConfig {
	s.InvocationsTimeoutInSeconds = &v
	return s
}

// Defines the model configuration. Includes the specification name and environment
// parameters.
type ModelConfiguration struct {
	_ struct{} `type:"structure"`

	// The name of the compilation job used to create the recommended model artifacts.
	CompilationJobName *string `min:"1" type:"string"`

	// Defines the environment parameters that includes key, value types, and values.
	EnvironmentParameters []*EnvironmentParameter `min:"1" type:"list"`

	// The inference specification name in the model package version.
	InferenceSpecificationName *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelConfiguration) GoString() string {
	return s.String()
}

// SetCompilationJobName sets the CompilationJobName field's value.
func (s *ModelConfiguration) SetCompilationJobName(v string) *ModelConfiguration {
	s.CompilationJobName = &v
	return s
}

// SetEnvironmentParameters sets the EnvironmentParameters field's value.
func (s *ModelConfiguration) SetEnvironmentParameters(v []*EnvironmentParameter) *ModelConfiguration {
	s.EnvironmentParameters = v
	return s
}

// SetInferenceSpecificationName sets the InferenceSpecificationName field's value.
func (s *ModelConfiguration) SetInferenceSpecificationName(v string) *ModelConfiguration {
	s.InferenceSpecificationName = &v
	return s
}

// An endpoint that hosts a model displayed in the Amazon SageMaker Model Dashboard.
type ModelDashboardEndpoint struct {
	_ struct{} `type:"structure"`

	// A timestamp that indicates when the endpoint was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The Amazon Resource Name (ARN) of the endpoint.
	//
	// EndpointArn is a required field
	EndpointArn *string `min:"20" type:"string" required:"true"`

	// The endpoint name.
	//
	// EndpointName is a required field
	EndpointName *string `type:"string" required:"true"`

	// The endpoint status.
	//
	// EndpointStatus is a required field
	EndpointStatus *string `type:"string" required:"true" enum:"EndpointStatus"`

	// The last time the endpoint was modified.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelDashboardEndpoint) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelDashboardEndpoint) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *ModelDashboardEndpoint) SetCreationTime(v time.Time) *ModelDashboardEndpoint {
	s.CreationTime = &v
	return s
}

// SetEndpointArn sets the EndpointArn field's value.
func (s *ModelDashboardEndpoint) SetEndpointArn(v string) *ModelDashboardEndpoint {
	s.EndpointArn = &v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *ModelDashboardEndpoint) SetEndpointName(v string) *ModelDashboardEndpoint {
	s.EndpointName = &v
	return s
}

// SetEndpointStatus sets the EndpointStatus field's value.
func (s *ModelDashboardEndpoint) SetEndpointStatus(v string) *ModelDashboardEndpoint {
	s.EndpointStatus = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *ModelDashboardEndpoint) SetLastModifiedTime(v time.Time) *ModelDashboardEndpoint {
	s.LastModifiedTime = &v
	return s
}

// An alert action taken to light up an icon on the Amazon SageMaker Model Dashboard
// when an alert goes into InAlert status.
type ModelDashboardIndicatorAction struct {
	_ struct{} `type:"structure"`

	// Indicates whether the alert action is turned on.
	Enabled *bool `type:"boolean"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelDashboardIndicatorAction) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelDashboardIndicatorAction) GoString() string {
	return s.String()
}

// SetEnabled sets the Enabled field's value.
func (s *ModelDashboardIndicatorAction) SetEnabled(v bool) *ModelDashboardIndicatorAction {
	s.Enabled = &v
	return s
}

// A model displayed in the Amazon SageMaker Model Dashboard.
type ModelDashboardModel struct {
	_ struct{} `type:"structure"`

	// The endpoints that host a model.
	Endpoints []*ModelDashboardEndpoint `type:"list"`

	// A batch transform job. For information about SageMaker batch transform, see
	// Use Batch Transform (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform.html).
	LastBatchTransformJob *TransformJob `type:"structure"`

	// A model displayed in the Model Dashboard.
	Model *Model `type:"structure"`

	// The model card for a model.
	ModelCard *ModelDashboardModelCard `type:"structure"`

	// The monitoring schedules for a model.
	MonitoringSchedules []*ModelDashboardMonitoringSchedule `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelDashboardModel) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelDashboardModel) GoString() string {
	return s.String()
}

// SetEndpoints sets the Endpoints field's value.
func (s *ModelDashboardModel) SetEndpoints(v []*ModelDashboardEndpoint) *ModelDashboardModel {
	s.Endpoints = v
	return s
}

// SetLastBatchTransformJob sets the LastBatchTransformJob field's value.
func (s *ModelDashboardModel) SetLastBatchTransformJob(v *TransformJob) *ModelDashboardModel {
	s.LastBatchTransformJob = v
	return s
}

// SetModel sets the Model field's value.
func (s *ModelDashboardModel) SetModel(v *Model) *ModelDashboardModel {
	s.Model = v
	return s
}

// SetModelCard sets the ModelCard field's value.
func (s *ModelDashboardModel) SetModelCard(v *ModelDashboardModelCard) *ModelDashboardModel {
	s.ModelCard = v
	return s
}

// SetMonitoringSchedules sets the MonitoringSchedules field's value.
func (s *ModelDashboardModel) SetMonitoringSchedules(v []*ModelDashboardMonitoringSchedule) *ModelDashboardModel {
	s.MonitoringSchedules = v
	return s
}

// The model card for a model displayed in the Amazon SageMaker Model Dashboard.
type ModelDashboardModelCard struct {
	_ struct{} `type:"structure"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	CreatedBy *UserContext `type:"structure"`

	// A timestamp that indicates when the model card was created.
	CreationTime *time.Time `type:"timestamp"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	LastModifiedBy *UserContext `type:"structure"`

	// A timestamp that indicates when the model card was last updated.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) for a model card.
	ModelCardArn *string `type:"string"`

	// The name of a model card.
	ModelCardName *string `min:"1" type:"string"`

	// The model card status.
	ModelCardStatus *string `type:"string" enum:"ModelCardStatus"`

	// The model card version.
	ModelCardVersion *int64 `type:"integer"`

	// For models created in SageMaker, this is the model ARN. For models created
	// outside of SageMaker, this is a user-customized string.
	ModelId *string `type:"string"`

	// A model card's risk rating. Can be low, medium, or high.
	RiskRating *string `type:"string"`

	// The KMS Key ID (KMSKeyId) for encryption of model card information.
	SecurityConfig *ModelCardSecurityConfig `type:"structure"`

	// The tags associated with a model card.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelDashboardModelCard) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelDashboardModelCard) GoString() string {
	return s.String()
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *ModelDashboardModelCard) SetCreatedBy(v *UserContext) *ModelDashboardModelCard {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *ModelDashboardModelCard) SetCreationTime(v time.Time) *ModelDashboardModelCard {
	s.CreationTime = &v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *ModelDashboardModelCard) SetLastModifiedBy(v *UserContext) *ModelDashboardModelCard {
	s.LastModifiedBy = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *ModelDashboardModelCard) SetLastModifiedTime(v time.Time) *ModelDashboardModelCard {
	s.LastModifiedTime = &v
	return s
}

// SetModelCardArn sets the ModelCardArn field's value.
func (s *ModelDashboardModelCard) SetModelCardArn(v string) *ModelDashboardModelCard {
	s.ModelCardArn = &v
	return s
}

// SetModelCardName sets the ModelCardName field's value.
func (s *ModelDashboardModelCard) SetModelCardName(v string) *ModelDashboardModelCard {
	s.ModelCardName = &v
	return s
}

// SetModelCardStatus sets the ModelCardStatus field's value.
func (s *ModelDashboardModelCard) SetModelCardStatus(v string) *ModelDashboardModelCard {
	s.ModelCardStatus = &v
	return s
}

// SetModelCardVersion sets the ModelCardVersion field's value.
func (s *ModelDashboardModelCard) SetModelCardVersion(v int64) *ModelDashboardModelCard {
	s.ModelCardVersion = &v
	return s
}

// SetModelId sets the ModelId field's value.
func (s *ModelDashboardModelCard) SetModelId(v string) *ModelDashboardModelCard {
	s.ModelId = &v
	return s
}

// SetRiskRating sets the RiskRating field's value.
func (s *ModelDashboardModelCard) SetRiskRating(v string) *ModelDashboardModelCard {
	s.RiskRating = &v
	return s
}

// SetSecurityConfig sets the SecurityConfig field's value.
func (s *ModelDashboardModelCard) SetSecurityConfig(v *ModelCardSecurityConfig) *ModelDashboardModelCard {
	s.SecurityConfig = v
	return s
}

// SetTags sets the Tags field's value.
func (s *ModelDashboardModelCard) SetTags(v []*Tag) *ModelDashboardModelCard {
	s.Tags = v
	return s
}

// A monitoring schedule for a model displayed in the Amazon SageMaker Model
// Dashboard.
type ModelDashboardMonitoringSchedule struct {
	_ struct{} `type:"structure"`

	// Input object for the batch transform job.
	BatchTransformInput *BatchTransformInput_ `type:"structure"`

	// A timestamp that indicates when the monitoring schedule was created.
	CreationTime *time.Time `type:"timestamp"`

	// The endpoint which is monitored.
	EndpointName *string `type:"string"`

	// If a monitoring job failed, provides the reason.
	FailureReason *string `type:"string"`

	// A timestamp that indicates when the monitoring schedule was last updated.
	LastModifiedTime *time.Time `type:"timestamp"`

	// Summary of information about the last monitoring job to run.
	LastMonitoringExecutionSummary *MonitoringExecutionSummary `type:"structure"`

	// A JSON array where each element is a summary for a monitoring alert.
	MonitoringAlertSummaries []*MonitoringAlertSummary `min:"1" type:"list"`

	// The Amazon Resource Name (ARN) of a monitoring schedule.
	MonitoringScheduleArn *string `type:"string"`

	// Configures the monitoring schedule and defines the monitoring job.
	MonitoringScheduleConfig *MonitoringScheduleConfig `type:"structure"`

	// The name of a monitoring schedule.
	MonitoringScheduleName *string `min:"1" type:"string"`

	// The status of the monitoring schedule.
	MonitoringScheduleStatus *string `type:"string" enum:"ScheduleStatus"`

	// The monitor type of a model monitor.
	MonitoringType *string `type:"string" enum:"MonitoringType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelDashboardMonitoringSchedule) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelDashboardMonitoringSchedule) GoString() string {
	return s.String()
}

// SetBatchTransformInput sets the BatchTransformInput field's value.
func (s *ModelDashboardMonitoringSchedule) SetBatchTransformInput(v *BatchTransformInput_) *ModelDashboardMonitoringSchedule {
	s.BatchTransformInput = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *ModelDashboardMonitoringSchedule) SetCreationTime(v time.Time) *ModelDashboardMonitoringSchedule {
	s.CreationTime = &v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *ModelDashboardMonitoringSchedule) SetEndpointName(v string) *ModelDashboardMonitoringSchedule {
	s.EndpointName = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *ModelDashboardMonitoringSchedule) SetFailureReason(v string) *ModelDashboardMonitoringSchedule {
	s.FailureReason = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *ModelDashboardMonitoringSchedule) SetLastModifiedTime(v time.Time) *ModelDashboardMonitoringSchedule {
	s.LastModifiedTime = &v
	return s
}

// SetLastMonitoringExecutionSummary sets the LastMonitoringExecutionSummary field's value.
func (s *ModelDashboardMonitoringSchedule) SetLastMonitoringExecutionSummary(v *MonitoringExecutionSummary) *ModelDashboardMonitoringSchedule {
	s.LastMonitoringExecutionSummary = v
	return s
}

// SetMonitoringAlertSummaries sets the MonitoringAlertSummaries field's value.
func (s *ModelDashboardMonitoringSchedule) SetMonitoringAlertSummaries(v []*MonitoringAlertSummary) *ModelDashboardMonitoringSchedule {
	s.MonitoringAlertSummaries = v
	return s
}

// SetMonitoringScheduleArn sets the MonitoringScheduleArn field's value.
func (s *ModelDashboardMonitoringSchedule) SetMonitoringScheduleArn(v string) *ModelDashboardMonitoringSchedule {
	s.MonitoringScheduleArn = &v
	return s
}

// SetMonitoringScheduleConfig sets the MonitoringScheduleConfig field's value.
func (s *ModelDashboardMonitoringSchedule) SetMonitoringScheduleConfig(v *MonitoringScheduleConfig) *ModelDashboardMonitoringSchedule {
	s.MonitoringScheduleConfig = v
	return s
}

// SetMonitoringScheduleName sets the MonitoringScheduleName field's value.
func (s *ModelDashboardMonitoringSchedule) SetMonitoringScheduleName(v string) *ModelDashboardMonitoringSchedule {
	s.MonitoringScheduleName = &v
	return s
}

// SetMonitoringScheduleStatus sets the MonitoringScheduleStatus field's value.
func (s *ModelDashboardMonitoringSchedule) SetMonitoringScheduleStatus(v string) *ModelDashboardMonitoringSchedule {
	s.MonitoringScheduleStatus = &v
	return s
}

// SetMonitoringType sets the MonitoringType field's value.
func (s *ModelDashboardMonitoringSchedule) SetMonitoringType(v string) *ModelDashboardMonitoringSchedule {
	s.MonitoringType = &v
	return s
}

// Data quality constraints and statistics for a model.
type ModelDataQuality struct {
	_ struct{} `type:"structure"`

	// Data quality constraints for a model.
	Constraints *MetricsSource `type:"structure"`

	// Data quality statistics for a model.
	Statistics *MetricsSource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelDataQuality) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelDataQuality) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ModelDataQuality) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ModelDataQuality"}
	if s.Constraints != nil {
		if err := s.Constraints.Validate(); err != nil {
			invalidParams.AddNested("Constraints", err.(request.ErrInvalidParams))
		}
	}
	if s.Statistics != nil {
		if err := s.Statistics.Validate(); err != nil {
			invalidParams.AddNested("Statistics", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetConstraints sets the Constraints field's value.
func (s *ModelDataQuality) SetConstraints(v *MetricsSource) *ModelDataQuality {
	s.Constraints = v
	return s
}

// SetStatistics sets the Statistics field's value.
func (s *ModelDataQuality) SetStatistics(v *MetricsSource) *ModelDataQuality {
	s.Statistics = v
	return s
}

// Specifies the location of ML model data to deploy. If specified, you must
// specify one and only one of the available data sources.
type ModelDataSource struct {
	_ struct{} `type:"structure"`

	// Specifies the S3 location of ML model data to deploy.
	S3DataSource *S3ModelDataSource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelDataSource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelDataSource) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ModelDataSource) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ModelDataSource"}
	if s.S3DataSource != nil {
		if err := s.S3DataSource.Validate(); err != nil {
			invalidParams.AddNested("S3DataSource", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetS3DataSource sets the S3DataSource field's value.
func (s *ModelDataSource) SetS3DataSource(v *S3ModelDataSource) *ModelDataSource {
	s.S3DataSource = v
	return s
}

// Specifies how to generate the endpoint name for an automatic one-click Autopilot
// model deployment.
type ModelDeployConfig struct {
	_ struct{} `type:"structure"`

	// Set to True to automatically generate an endpoint name for a one-click Autopilot
	// model deployment; set to False otherwise. The default value is False.
	//
	// If you set AutoGenerateEndpointName to True, do not specify the EndpointName;
	// otherwise a 400 error is thrown.
	AutoGenerateEndpointName *bool `type:"boolean"`

	// Specifies the endpoint name to use for a one-click Autopilot model deployment
	// if the endpoint name is not generated automatically.
	//
	// Specify the EndpointName if and only if you set AutoGenerateEndpointName
	// to False; otherwise a 400 error is thrown.
	EndpointName *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelDeployConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelDeployConfig) GoString() string {
	return s.String()
}

// SetAutoGenerateEndpointName sets the AutoGenerateEndpointName field's value.
func (s *ModelDeployConfig) SetAutoGenerateEndpointName(v bool) *ModelDeployConfig {
	s.AutoGenerateEndpointName = &v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *ModelDeployConfig) SetEndpointName(v string) *ModelDeployConfig {
	s.EndpointName = &v
	return s
}

// Provides information about the endpoint of the model deployment.
type ModelDeployResult struct {
	_ struct{} `type:"structure"`

	// The name of the endpoint to which the model has been deployed.
	//
	// If model deployment fails, this field is omitted from the response.
	EndpointName *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelDeployResult) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelDeployResult) GoString() string {
	return s.String()
}

// SetEndpointName sets the EndpointName field's value.
func (s *ModelDeployResult) SetEndpointName(v string) *ModelDeployResult {
	s.EndpointName = &v
	return s
}

// Provides information to verify the integrity of stored model artifacts.
type ModelDigests struct {
	_ struct{} `type:"structure"`

	// Provides a hash value that uniquely identifies the stored model artifacts.
	ArtifactDigest *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelDigests) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelDigests) GoString() string {
	return s.String()
}

// SetArtifactDigest sets the ArtifactDigest field's value.
func (s *ModelDigests) SetArtifactDigest(v string) *ModelDigests {
	s.ArtifactDigest = &v
	return s
}

// Docker container image configuration object for the model explainability
// job.
type ModelExplainabilityAppSpecification struct {
	_ struct{} `type:"structure"`

	// JSON formatted Amazon S3 file that defines explainability parameters. For
	// more information on this JSON configuration file, see Configure model explainability
	// parameters (https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-config-json-monitor-model-explainability-parameters.html).
	//
	// ConfigUri is a required field
	ConfigUri *string `type:"string" required:"true"`

	// Sets the environment variables in the Docker container.
	Environment map[string]*string `type:"map"`

	// The container image to be run by the model explainability job.
	//
	// ImageUri is a required field
	ImageUri *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelExplainabilityAppSpecification) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelExplainabilityAppSpecification) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ModelExplainabilityAppSpecification) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ModelExplainabilityAppSpecification"}
	if s.ConfigUri == nil {
		invalidParams.Add(request.NewErrParamRequired("ConfigUri"))
	}
	if s.ImageUri == nil {
		invalidParams.Add(request.NewErrParamRequired("ImageUri"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetConfigUri sets the ConfigUri field's value.
func (s *ModelExplainabilityAppSpecification) SetConfigUri(v string) *ModelExplainabilityAppSpecification {
	s.ConfigUri = &v
	return s
}

// SetEnvironment sets the Environment field's value.
func (s *ModelExplainabilityAppSpecification) SetEnvironment(v map[string]*string) *ModelExplainabilityAppSpecification {
	s.Environment = v
	return s
}

// SetImageUri sets the ImageUri field's value.
func (s *ModelExplainabilityAppSpecification) SetImageUri(v string) *ModelExplainabilityAppSpecification {
	s.ImageUri = &v
	return s
}

// The configuration for a baseline model explainability job.
type ModelExplainabilityBaselineConfig struct {
	_ struct{} `type:"structure"`

	// The name of the baseline model explainability job.
	BaseliningJobName *string `min:"1" type:"string"`

	// The constraints resource for a monitoring job.
	ConstraintsResource *MonitoringConstraintsResource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelExplainabilityBaselineConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelExplainabilityBaselineConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ModelExplainabilityBaselineConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ModelExplainabilityBaselineConfig"}
	if s.BaseliningJobName != nil && len(*s.BaseliningJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("BaseliningJobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetBaseliningJobName sets the BaseliningJobName field's value.
func (s *ModelExplainabilityBaselineConfig) SetBaseliningJobName(v string) *ModelExplainabilityBaselineConfig {
	s.BaseliningJobName = &v
	return s
}

// SetConstraintsResource sets the ConstraintsResource field's value.
func (s *ModelExplainabilityBaselineConfig) SetConstraintsResource(v *MonitoringConstraintsResource) *ModelExplainabilityBaselineConfig {
	s.ConstraintsResource = v
	return s
}

// Inputs for the model explainability job.
type ModelExplainabilityJobInput struct {
	_ struct{} `type:"structure"`

	// Input object for the batch transform job.
	BatchTransformInput *BatchTransformInput_ `type:"structure"`

	// Input object for the endpoint
	EndpointInput *EndpointInput `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelExplainabilityJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelExplainabilityJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ModelExplainabilityJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ModelExplainabilityJobInput"}
	if s.BatchTransformInput != nil {
		if err := s.BatchTransformInput.Validate(); err != nil {
			invalidParams.AddNested("BatchTransformInput", err.(request.ErrInvalidParams))
		}
	}
	if s.EndpointInput != nil {
		if err := s.EndpointInput.Validate(); err != nil {
			invalidParams.AddNested("EndpointInput", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetBatchTransformInput sets the BatchTransformInput field's value.
func (s *ModelExplainabilityJobInput) SetBatchTransformInput(v *BatchTransformInput_) *ModelExplainabilityJobInput {
	s.BatchTransformInput = v
	return s
}

// SetEndpointInput sets the EndpointInput field's value.
func (s *ModelExplainabilityJobInput) SetEndpointInput(v *EndpointInput) *ModelExplainabilityJobInput {
	s.EndpointInput = v
	return s
}

// The configuration for the infrastructure that the model will be deployed
// to.
type ModelInfrastructureConfig struct {
	_ struct{} `type:"structure"`

	// The inference option to which to deploy your model. Possible values are the
	// following:
	//
	//    * RealTime: Deploy to real-time inference.
	//
	// InfrastructureType is a required field
	InfrastructureType *string `type:"string" required:"true" enum:"ModelInfrastructureType"`

	// The infrastructure configuration for deploying the model to real-time inference.
	//
	// RealTimeInferenceConfig is a required field
	RealTimeInferenceConfig *RealTimeInferenceConfig `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelInfrastructureConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelInfrastructureConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ModelInfrastructureConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ModelInfrastructureConfig"}
	if s.InfrastructureType == nil {
		invalidParams.Add(request.NewErrParamRequired("InfrastructureType"))
	}
	if s.RealTimeInferenceConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("RealTimeInferenceConfig"))
	}
	if s.RealTimeInferenceConfig != nil {
		if err := s.RealTimeInferenceConfig.Validate(); err != nil {
			invalidParams.AddNested("RealTimeInferenceConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetInfrastructureType sets the InfrastructureType field's value.
func (s *ModelInfrastructureConfig) SetInfrastructureType(v string) *ModelInfrastructureConfig {
	s.InfrastructureType = &v
	return s
}

// SetRealTimeInferenceConfig sets the RealTimeInferenceConfig field's value.
func (s *ModelInfrastructureConfig) SetRealTimeInferenceConfig(v *RealTimeInferenceConfig) *ModelInfrastructureConfig {
	s.RealTimeInferenceConfig = v
	return s
}

// Input object for the model.
type ModelInput_ struct {
	_ struct{} `type:"structure"`

	// The input configuration object for the model.
	//
	// DataInputConfig is a required field
	DataInputConfig *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelInput_) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelInput_) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ModelInput_) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ModelInput_"}
	if s.DataInputConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("DataInputConfig"))
	}
	if s.DataInputConfig != nil && len(*s.DataInputConfig) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DataInputConfig", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDataInputConfig sets the DataInputConfig field's value.
func (s *ModelInput_) SetDataInputConfig(v string) *ModelInput_ {
	s.DataInputConfig = &v
	return s
}

// The model latency threshold.
type ModelLatencyThreshold struct {
	_ struct{} `type:"structure"`

	// The model latency percentile threshold. Acceptable values are P95 and P99.
	// For custom load tests, specify the value as P95.
	Percentile *string `type:"string"`

	// The model latency percentile value in milliseconds.
	ValueInMilliseconds *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelLatencyThreshold) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelLatencyThreshold) GoString() string {
	return s.String()
}

// SetPercentile sets the Percentile field's value.
func (s *ModelLatencyThreshold) SetPercentile(v string) *ModelLatencyThreshold {
	s.Percentile = &v
	return s
}

// SetValueInMilliseconds sets the ValueInMilliseconds field's value.
func (s *ModelLatencyThreshold) SetValueInMilliseconds(v int64) *ModelLatencyThreshold {
	s.ValueInMilliseconds = &v
	return s
}

// Part of the search expression. You can specify the name and value (domain,
// task, framework, framework version, task, and model).
type ModelMetadataFilter struct {
	_ struct{} `type:"structure"`

	// The name of the of the model to filter by.
	//
	// Name is a required field
	Name *string `type:"string" required:"true" enum:"ModelMetadataFilterType"`

	// The value to filter the model metadata.
	//
	// Value is a required field
	Value *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelMetadataFilter) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelMetadataFilter) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ModelMetadataFilter) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ModelMetadataFilter"}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Value == nil {
		invalidParams.Add(request.NewErrParamRequired("Value"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetName sets the Name field's value.
func (s *ModelMetadataFilter) SetName(v string) *ModelMetadataFilter {
	s.Name = &v
	return s
}

// SetValue sets the Value field's value.
func (s *ModelMetadataFilter) SetValue(v string) *ModelMetadataFilter {
	s.Value = &v
	return s
}

// One or more filters that searches for the specified resource or resources
// in a search. All resource objects that satisfy the expression's condition
// are included in the search results
type ModelMetadataSearchExpression struct {
	_ struct{} `type:"structure"`

	// A list of filter objects.
	Filters []*ModelMetadataFilter `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelMetadataSearchExpression) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelMetadataSearchExpression) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ModelMetadataSearchExpression) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ModelMetadataSearchExpression"}
	if s.Filters != nil && len(s.Filters) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Filters", 1))
	}
	if s.Filters != nil {
		for i, v := range s.Filters {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFilters sets the Filters field's value.
func (s *ModelMetadataSearchExpression) SetFilters(v []*ModelMetadataFilter) *ModelMetadataSearchExpression {
	s.Filters = v
	return s
}

// A summary of the model metadata.
type ModelMetadataSummary struct {
	_ struct{} `type:"structure"`

	// The machine learning domain of the model.
	//
	// Domain is a required field
	Domain *string `type:"string" required:"true"`

	// The machine learning framework of the model.
	//
	// Framework is a required field
	Framework *string `type:"string" required:"true"`

	// The framework version of the model.
	//
	// FrameworkVersion is a required field
	FrameworkVersion *string `type:"string" required:"true"`

	// The name of the model.
	//
	// Model is a required field
	Model *string `type:"string" required:"true"`

	// The machine learning task of the model.
	//
	// Task is a required field
	Task *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelMetadataSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelMetadataSummary) GoString() string {
	return s.String()
}

// SetDomain sets the Domain field's value.
func (s *ModelMetadataSummary) SetDomain(v string) *ModelMetadataSummary {
	s.Domain = &v
	return s
}

// SetFramework sets the Framework field's value.
func (s *ModelMetadataSummary) SetFramework(v string) *ModelMetadataSummary {
	s.Framework = &v
	return s
}

// SetFrameworkVersion sets the FrameworkVersion field's value.
func (s *ModelMetadataSummary) SetFrameworkVersion(v string) *ModelMetadataSummary {
	s.FrameworkVersion = &v
	return s
}

// SetModel sets the Model field's value.
func (s *ModelMetadataSummary) SetModel(v string) *ModelMetadataSummary {
	s.Model = &v
	return s
}

// SetTask sets the Task field's value.
func (s *ModelMetadataSummary) SetTask(v string) *ModelMetadataSummary {
	s.Task = &v
	return s
}

// Contains metrics captured from a model.
type ModelMetrics struct {
	_ struct{} `type:"structure"`

	// Metrics that measure bais in a model.
	Bias *Bias `type:"structure"`

	// Metrics that help explain a model.
	Explainability *Explainability `type:"structure"`

	// Metrics that measure the quality of the input data for a model.
	ModelDataQuality *ModelDataQuality `type:"structure"`

	// Metrics that measure the quality of a model.
	ModelQuality *ModelQuality `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelMetrics) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelMetrics) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ModelMetrics) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ModelMetrics"}
	if s.Bias != nil {
		if err := s.Bias.Validate(); err != nil {
			invalidParams.AddNested("Bias", err.(request.ErrInvalidParams))
		}
	}
	if s.Explainability != nil {
		if err := s.Explainability.Validate(); err != nil {
			invalidParams.AddNested("Explainability", err.(request.ErrInvalidParams))
		}
	}
	if s.ModelDataQuality != nil {
		if err := s.ModelDataQuality.Validate(); err != nil {
			invalidParams.AddNested("ModelDataQuality", err.(request.ErrInvalidParams))
		}
	}
	if s.ModelQuality != nil {
		if err := s.ModelQuality.Validate(); err != nil {
			invalidParams.AddNested("ModelQuality", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetBias sets the Bias field's value.
func (s *ModelMetrics) SetBias(v *Bias) *ModelMetrics {
	s.Bias = v
	return s
}

// SetExplainability sets the Explainability field's value.
func (s *ModelMetrics) SetExplainability(v *Explainability) *ModelMetrics {
	s.Explainability = v
	return s
}

// SetModelDataQuality sets the ModelDataQuality field's value.
func (s *ModelMetrics) SetModelDataQuality(v *ModelDataQuality) *ModelMetrics {
	s.ModelDataQuality = v
	return s
}

// SetModelQuality sets the ModelQuality field's value.
func (s *ModelMetrics) SetModelQuality(v *ModelQuality) *ModelMetrics {
	s.ModelQuality = v
	return s
}

// A versioned model that can be deployed for SageMaker inference.
type ModelPackage struct {
	_ struct{} `type:"structure"`

	// An array of additional Inference Specification objects.
	AdditionalInferenceSpecifications []*AdditionalInferenceSpecificationDefinition `min:"1" type:"list"`

	// A description provided when the model approval is set.
	ApprovalDescription *string `type:"string"`

	// Whether the model package is to be certified to be listed on Amazon Web Services
	// Marketplace. For information about listing model packages on Amazon Web Services
	// Marketplace, see List Your Algorithm or Model Package on Amazon Web Services
	// Marketplace (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-mkt-list.html).
	CertifyForMarketplace *bool `type:"boolean"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, or project.
	CreatedBy *UserContext `type:"structure"`

	// The time that the model package was created.
	CreationTime *time.Time `type:"timestamp"`

	// The metadata properties for the model package.
	CustomerMetadataProperties map[string]*string `min:"1" type:"map"`

	// The machine learning domain of your model package and its components. Common
	// machine learning domains include computer vision and natural language processing.
	Domain *string `type:"string"`

	// Represents the drift check baselines that can be used when the model monitor
	// is set using the model package.
	DriftCheckBaselines *DriftCheckBaselines `type:"structure"`

	// Defines how to perform inference generation after a training job is run.
	InferenceSpecification *InferenceSpecification `type:"structure"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, or project.
	LastModifiedBy *UserContext `type:"structure"`

	// The last time the model package was modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// Metadata properties of the tracking entity, trial, or trial component.
	MetadataProperties *MetadataProperties `type:"structure"`

	// The approval status of the model. This can be one of the following values.
	//
	//    * APPROVED - The model is approved
	//
	//    * REJECTED - The model is rejected.
	//
	//    * PENDING_MANUAL_APPROVAL - The model is waiting for manual approval.
	ModelApprovalStatus *string `type:"string" enum:"ModelApprovalStatus"`

	// Metrics for the model.
	ModelMetrics *ModelMetrics `type:"structure"`

	// The Amazon Resource Name (ARN) of the model package.
	ModelPackageArn *string `min:"1" type:"string"`

	// The description of the model package.
	ModelPackageDescription *string `type:"string"`

	// The model group to which the model belongs.
	ModelPackageGroupName *string `min:"1" type:"string"`

	// The name of the model.
	ModelPackageName *string `min:"1" type:"string"`

	// The status of the model package. This can be one of the following values.
	//
	//    * PENDING - The model package is pending being created.
	//
	//    * IN_PROGRESS - The model package is in the process of being created.
	//
	//    * COMPLETED - The model package was successfully created.
	//
	//    * FAILED - The model package failed.
	//
	//    * DELETING - The model package is in the process of being deleted.
	ModelPackageStatus *string `type:"string" enum:"ModelPackageStatus"`

	// Specifies the validation and image scan statuses of the model package.
	ModelPackageStatusDetails *ModelPackageStatusDetails `type:"structure"`

	// The version number of a versioned model.
	ModelPackageVersion *int64 `min:"1" type:"integer"`

	// The Amazon Simple Storage Service path where the sample payload are stored.
	// This path must point to a single gzip compressed tar archive (.tar.gz suffix).
	SamplePayloadUrl *string `type:"string"`

	// Indicates if you want to skip model validation.
	SkipModelValidation *string `type:"string" enum:"SkipModelValidation"`

	// A list of algorithms that were used to create a model package.
	SourceAlgorithmSpecification *SourceAlgorithmSpecification `type:"structure"`

	// A list of the tags associated with the model package. For more information,
	// see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)
	// in the Amazon Web Services General Reference Guide.
	Tags []*Tag `type:"list"`

	// The machine learning task your model package accomplishes. Common machine
	// learning tasks include object detection and image classification.
	Task *string `type:"string"`

	// Specifies batch transform jobs that SageMaker runs to validate your model
	// package.
	ValidationSpecification *ModelPackageValidationSpecification `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelPackage) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelPackage) GoString() string {
	return s.String()
}

// SetAdditionalInferenceSpecifications sets the AdditionalInferenceSpecifications field's value.
func (s *ModelPackage) SetAdditionalInferenceSpecifications(v []*AdditionalInferenceSpecificationDefinition) *ModelPackage {
	s.AdditionalInferenceSpecifications = v
	return s
}

// SetApprovalDescription sets the ApprovalDescription field's value.
func (s *ModelPackage) SetApprovalDescription(v string) *ModelPackage {
	s.ApprovalDescription = &v
	return s
}

// SetCertifyForMarketplace sets the CertifyForMarketplace field's value.
func (s *ModelPackage) SetCertifyForMarketplace(v bool) *ModelPackage {
	s.CertifyForMarketplace = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *ModelPackage) SetCreatedBy(v *UserContext) *ModelPackage {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *ModelPackage) SetCreationTime(v time.Time) *ModelPackage {
	s.CreationTime = &v
	return s
}

// SetCustomerMetadataProperties sets the CustomerMetadataProperties field's value.
func (s *ModelPackage) SetCustomerMetadataProperties(v map[string]*string) *ModelPackage {
	s.CustomerMetadataProperties = v
	return s
}

// SetDomain sets the Domain field's value.
func (s *ModelPackage) SetDomain(v string) *ModelPackage {
	s.Domain = &v
	return s
}

// SetDriftCheckBaselines sets the DriftCheckBaselines field's value.
func (s *ModelPackage) SetDriftCheckBaselines(v *DriftCheckBaselines) *ModelPackage {
	s.DriftCheckBaselines = v
	return s
}

// SetInferenceSpecification sets the InferenceSpecification field's value.
func (s *ModelPackage) SetInferenceSpecification(v *InferenceSpecification) *ModelPackage {
	s.InferenceSpecification = v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *ModelPackage) SetLastModifiedBy(v *UserContext) *ModelPackage {
	s.LastModifiedBy = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *ModelPackage) SetLastModifiedTime(v time.Time) *ModelPackage {
	s.LastModifiedTime = &v
	return s
}

// SetMetadataProperties sets the MetadataProperties field's value.
func (s *ModelPackage) SetMetadataProperties(v *MetadataProperties) *ModelPackage {
	s.MetadataProperties = v
	return s
}

// SetModelApprovalStatus sets the ModelApprovalStatus field's value.
func (s *ModelPackage) SetModelApprovalStatus(v string) *ModelPackage {
	s.ModelApprovalStatus = &v
	return s
}

// SetModelMetrics sets the ModelMetrics field's value.
func (s *ModelPackage) SetModelMetrics(v *ModelMetrics) *ModelPackage {
	s.ModelMetrics = v
	return s
}

// SetModelPackageArn sets the ModelPackageArn field's value.
func (s *ModelPackage) SetModelPackageArn(v string) *ModelPackage {
	s.ModelPackageArn = &v
	return s
}

// SetModelPackageDescription sets the ModelPackageDescription field's value.
func (s *ModelPackage) SetModelPackageDescription(v string) *ModelPackage {
	s.ModelPackageDescription = &v
	return s
}

// SetModelPackageGroupName sets the ModelPackageGroupName field's value.
func (s *ModelPackage) SetModelPackageGroupName(v string) *ModelPackage {
	s.ModelPackageGroupName = &v
	return s
}

// SetModelPackageName sets the ModelPackageName field's value.
func (s *ModelPackage) SetModelPackageName(v string) *ModelPackage {
	s.ModelPackageName = &v
	return s
}

// SetModelPackageStatus sets the ModelPackageStatus field's value.
func (s *ModelPackage) SetModelPackageStatus(v string) *ModelPackage {
	s.ModelPackageStatus = &v
	return s
}

// SetModelPackageStatusDetails sets the ModelPackageStatusDetails field's value.
func (s *ModelPackage) SetModelPackageStatusDetails(v *ModelPackageStatusDetails) *ModelPackage {
	s.ModelPackageStatusDetails = v
	return s
}

// SetModelPackageVersion sets the ModelPackageVersion field's value.
func (s *ModelPackage) SetModelPackageVersion(v int64) *ModelPackage {
	s.ModelPackageVersion = &v
	return s
}

// SetSamplePayloadUrl sets the SamplePayloadUrl field's value.
func (s *ModelPackage) SetSamplePayloadUrl(v string) *ModelPackage {
	s.SamplePayloadUrl = &v
	return s
}

// SetSkipModelValidation sets the SkipModelValidation field's value.
func (s *ModelPackage) SetSkipModelValidation(v string) *ModelPackage {
	s.SkipModelValidation = &v
	return s
}

// SetSourceAlgorithmSpecification sets the SourceAlgorithmSpecification field's value.
func (s *ModelPackage) SetSourceAlgorithmSpecification(v *SourceAlgorithmSpecification) *ModelPackage {
	s.SourceAlgorithmSpecification = v
	return s
}

// SetTags sets the Tags field's value.
func (s *ModelPackage) SetTags(v []*Tag) *ModelPackage {
	s.Tags = v
	return s
}

// SetTask sets the Task field's value.
func (s *ModelPackage) SetTask(v string) *ModelPackage {
	s.Task = &v
	return s
}

// SetValidationSpecification sets the ValidationSpecification field's value.
func (s *ModelPackage) SetValidationSpecification(v *ModelPackageValidationSpecification) *ModelPackage {
	s.ValidationSpecification = v
	return s
}

// Describes the Docker container for the model package.
type ModelPackageContainerDefinition struct {
	_ struct{} `type:"structure"`

	// The additional data source that is used during inference in the Docker container
	// for your model package.
	AdditionalS3DataSource *AdditionalS3DataSource `type:"structure"`

	// The DNS host name for the Docker container.
	ContainerHostname *string `type:"string"`

	// The environment variables to set in the Docker container. Each key and value
	// in the Environment string to string map can have length of up to 1024. We
	// support up to 16 entries in the map.
	Environment map[string]*string `type:"map"`

	// The machine learning framework of the model package container image.
	Framework *string `type:"string"`

	// The framework version of the Model Package Container Image.
	FrameworkVersion *string `min:"3" type:"string"`

	// The Amazon EC2 Container Registry (Amazon ECR) path where inference code
	// is stored.
	//
	// If you are using your own custom algorithm instead of an algorithm provided
	// by SageMaker, the inference code must meet SageMaker requirements. SageMaker
	// supports both registry/repository[:tag] and registry/repository[@digest]
	// image path formats. For more information, see Using Your Own Algorithms with
	// Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html).
	//
	// Image is a required field
	Image *string `type:"string" required:"true"`

	// An MD5 hash of the training algorithm that identifies the Docker image used
	// for training.
	ImageDigest *string `type:"string"`

	// The Amazon S3 path where the model artifacts, which result from model training,
	// are stored. This path must point to a single gzip compressed tar archive
	// (.tar.gz suffix).
	//
	// The model artifacts must be in an S3 bucket that is in the same region as
	// the model package.
	ModelDataUrl *string `type:"string"`

	// A structure with Model Input details.
	ModelInput *ModelInput_ `type:"structure"`

	// The name of a pre-trained machine learning benchmarked by Amazon SageMaker
	// Inference Recommender model that matches your model. You can find a list
	// of benchmarked models by calling ListModelMetadata.
	NearestModelName *string `type:"string"`

	// The Amazon Web Services Marketplace product ID of the model package.
	ProductId *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelPackageContainerDefinition) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelPackageContainerDefinition) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ModelPackageContainerDefinition) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ModelPackageContainerDefinition"}
	if s.FrameworkVersion != nil && len(*s.FrameworkVersion) < 3 {
		invalidParams.Add(request.NewErrParamMinLen("FrameworkVersion", 3))
	}
	if s.Image == nil {
		invalidParams.Add(request.NewErrParamRequired("Image"))
	}
	if s.AdditionalS3DataSource != nil {
		if err := s.AdditionalS3DataSource.Validate(); err != nil {
			invalidParams.AddNested("AdditionalS3DataSource", err.(request.ErrInvalidParams))
		}
	}
	if s.ModelInput != nil {
		if err := s.ModelInput.Validate(); err != nil {
			invalidParams.AddNested("ModelInput", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAdditionalS3DataSource sets the AdditionalS3DataSource field's value.
func (s *ModelPackageContainerDefinition) SetAdditionalS3DataSource(v *AdditionalS3DataSource) *ModelPackageContainerDefinition {
	s.AdditionalS3DataSource = v
	return s
}

// SetContainerHostname sets the ContainerHostname field's value.
func (s *ModelPackageContainerDefinition) SetContainerHostname(v string) *ModelPackageContainerDefinition {
	s.ContainerHostname = &v
	return s
}

// SetEnvironment sets the Environment field's value.
func (s *ModelPackageContainerDefinition) SetEnvironment(v map[string]*string) *ModelPackageContainerDefinition {
	s.Environment = v
	return s
}

// SetFramework sets the Framework field's value.
func (s *ModelPackageContainerDefinition) SetFramework(v string) *ModelPackageContainerDefinition {
	s.Framework = &v
	return s
}

// SetFrameworkVersion sets the FrameworkVersion field's value.
func (s *ModelPackageContainerDefinition) SetFrameworkVersion(v string) *ModelPackageContainerDefinition {
	s.FrameworkVersion = &v
	return s
}

// SetImage sets the Image field's value.
func (s *ModelPackageContainerDefinition) SetImage(v string) *ModelPackageContainerDefinition {
	s.Image = &v
	return s
}

// SetImageDigest sets the ImageDigest field's value.
func (s *ModelPackageContainerDefinition) SetImageDigest(v string) *ModelPackageContainerDefinition {
	s.ImageDigest = &v
	return s
}

// SetModelDataUrl sets the ModelDataUrl field's value.
func (s *ModelPackageContainerDefinition) SetModelDataUrl(v string) *ModelPackageContainerDefinition {
	s.ModelDataUrl = &v
	return s
}

// SetModelInput sets the ModelInput field's value.
func (s *ModelPackageContainerDefinition) SetModelInput(v *ModelInput_) *ModelPackageContainerDefinition {
	s.ModelInput = v
	return s
}

// SetNearestModelName sets the NearestModelName field's value.
func (s *ModelPackageContainerDefinition) SetNearestModelName(v string) *ModelPackageContainerDefinition {
	s.NearestModelName = &v
	return s
}

// SetProductId sets the ProductId field's value.
func (s *ModelPackageContainerDefinition) SetProductId(v string) *ModelPackageContainerDefinition {
	s.ProductId = &v
	return s
}

// A group of versioned models in the model registry.
type ModelPackageGroup struct {
	_ struct{} `type:"structure"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	CreatedBy *UserContext `type:"structure"`

	// The time that the model group was created.
	CreationTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the model group.
	ModelPackageGroupArn *string `min:"1" type:"string"`

	// The description for the model group.
	ModelPackageGroupDescription *string `type:"string"`

	// The name of the model group.
	ModelPackageGroupName *string `min:"1" type:"string"`

	// The status of the model group. This can be one of the following values.
	//
	//    * PENDING - The model group is pending being created.
	//
	//    * IN_PROGRESS - The model group is in the process of being created.
	//
	//    * COMPLETED - The model group was successfully created.
	//
	//    * FAILED - The model group failed.
	//
	//    * DELETING - The model group is in the process of being deleted.
	//
	//    * DELETE_FAILED - SageMaker failed to delete the model group.
	ModelPackageGroupStatus *string `type:"string" enum:"ModelPackageGroupStatus"`

	// A list of the tags associated with the model group. For more information,
	// see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)
	// in the Amazon Web Services General Reference Guide.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelPackageGroup) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelPackageGroup) GoString() string {
	return s.String()
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *ModelPackageGroup) SetCreatedBy(v *UserContext) *ModelPackageGroup {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *ModelPackageGroup) SetCreationTime(v time.Time) *ModelPackageGroup {
	s.CreationTime = &v
	return s
}

// SetModelPackageGroupArn sets the ModelPackageGroupArn field's value.
func (s *ModelPackageGroup) SetModelPackageGroupArn(v string) *ModelPackageGroup {
	s.ModelPackageGroupArn = &v
	return s
}

// SetModelPackageGroupDescription sets the ModelPackageGroupDescription field's value.
func (s *ModelPackageGroup) SetModelPackageGroupDescription(v string) *ModelPackageGroup {
	s.ModelPackageGroupDescription = &v
	return s
}

// SetModelPackageGroupName sets the ModelPackageGroupName field's value.
func (s *ModelPackageGroup) SetModelPackageGroupName(v string) *ModelPackageGroup {
	s.ModelPackageGroupName = &v
	return s
}

// SetModelPackageGroupStatus sets the ModelPackageGroupStatus field's value.
func (s *ModelPackageGroup) SetModelPackageGroupStatus(v string) *ModelPackageGroup {
	s.ModelPackageGroupStatus = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *ModelPackageGroup) SetTags(v []*Tag) *ModelPackageGroup {
	s.Tags = v
	return s
}

// Summary information about a model group.
type ModelPackageGroupSummary struct {
	_ struct{} `type:"structure"`

	// The time that the model group was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The Amazon Resource Name (ARN) of the model group.
	//
	// ModelPackageGroupArn is a required field
	ModelPackageGroupArn *string `min:"1" type:"string" required:"true"`

	// A description of the model group.
	ModelPackageGroupDescription *string `type:"string"`

	// The name of the model group.
	//
	// ModelPackageGroupName is a required field
	ModelPackageGroupName *string `min:"1" type:"string" required:"true"`

	// The status of the model group.
	//
	// ModelPackageGroupStatus is a required field
	ModelPackageGroupStatus *string `type:"string" required:"true" enum:"ModelPackageGroupStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelPackageGroupSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelPackageGroupSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *ModelPackageGroupSummary) SetCreationTime(v time.Time) *ModelPackageGroupSummary {
	s.CreationTime = &v
	return s
}

// SetModelPackageGroupArn sets the ModelPackageGroupArn field's value.
func (s *ModelPackageGroupSummary) SetModelPackageGroupArn(v string) *ModelPackageGroupSummary {
	s.ModelPackageGroupArn = &v
	return s
}

// SetModelPackageGroupDescription sets the ModelPackageGroupDescription field's value.
func (s *ModelPackageGroupSummary) SetModelPackageGroupDescription(v string) *ModelPackageGroupSummary {
	s.ModelPackageGroupDescription = &v
	return s
}

// SetModelPackageGroupName sets the ModelPackageGroupName field's value.
func (s *ModelPackageGroupSummary) SetModelPackageGroupName(v string) *ModelPackageGroupSummary {
	s.ModelPackageGroupName = &v
	return s
}

// SetModelPackageGroupStatus sets the ModelPackageGroupStatus field's value.
func (s *ModelPackageGroupSummary) SetModelPackageGroupStatus(v string) *ModelPackageGroupSummary {
	s.ModelPackageGroupStatus = &v
	return s
}

// Specifies the validation and image scan statuses of the model package.
type ModelPackageStatusDetails struct {
	_ struct{} `type:"structure"`

	// The status of the scan of the Docker image container for the model package.
	ImageScanStatuses []*ModelPackageStatusItem `type:"list"`

	// The validation status of the model package.
	//
	// ValidationStatuses is a required field
	ValidationStatuses []*ModelPackageStatusItem `type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelPackageStatusDetails) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelPackageStatusDetails) GoString() string {
	return s.String()
}

// SetImageScanStatuses sets the ImageScanStatuses field's value.
func (s *ModelPackageStatusDetails) SetImageScanStatuses(v []*ModelPackageStatusItem) *ModelPackageStatusDetails {
	s.ImageScanStatuses = v
	return s
}

// SetValidationStatuses sets the ValidationStatuses field's value.
func (s *ModelPackageStatusDetails) SetValidationStatuses(v []*ModelPackageStatusItem) *ModelPackageStatusDetails {
	s.ValidationStatuses = v
	return s
}

// Represents the overall status of a model package.
type ModelPackageStatusItem struct {
	_ struct{} `type:"structure"`

	// if the overall status is Failed, the reason for the failure.
	FailureReason *string `type:"string"`

	// The name of the model package for which the overall status is being reported.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// The current status.
	//
	// Status is a required field
	Status *string `type:"string" required:"true" enum:"DetailedModelPackageStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelPackageStatusItem) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelPackageStatusItem) GoString() string {
	return s.String()
}

// SetFailureReason sets the FailureReason field's value.
func (s *ModelPackageStatusItem) SetFailureReason(v string) *ModelPackageStatusItem {
	s.FailureReason = &v
	return s
}

// SetName sets the Name field's value.
func (s *ModelPackageStatusItem) SetName(v string) *ModelPackageStatusItem {
	s.Name = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *ModelPackageStatusItem) SetStatus(v string) *ModelPackageStatusItem {
	s.Status = &v
	return s
}

// Provides summary information about a model package.
type ModelPackageSummary struct {
	_ struct{} `type:"structure"`

	// A timestamp that shows when the model package was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The approval status of the model. This can be one of the following values.
	//
	//    * APPROVED - The model is approved
	//
	//    * REJECTED - The model is rejected.
	//
	//    * PENDING_MANUAL_APPROVAL - The model is waiting for manual approval.
	ModelApprovalStatus *string `type:"string" enum:"ModelApprovalStatus"`

	// The Amazon Resource Name (ARN) of the model package.
	//
	// ModelPackageArn is a required field
	ModelPackageArn *string `min:"1" type:"string" required:"true"`

	// A brief description of the model package.
	ModelPackageDescription *string `type:"string"`

	// If the model package is a versioned model, the model group that the versioned
	// model belongs to.
	ModelPackageGroupName *string `min:"1" type:"string"`

	// The name of the model package.
	ModelPackageName *string `min:"1" type:"string"`

	// The overall status of the model package.
	//
	// ModelPackageStatus is a required field
	ModelPackageStatus *string `type:"string" required:"true" enum:"ModelPackageStatus"`

	// If the model package is a versioned model, the version of the model.
	ModelPackageVersion *int64 `min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelPackageSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelPackageSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *ModelPackageSummary) SetCreationTime(v time.Time) *ModelPackageSummary {
	s.CreationTime = &v
	return s
}

// SetModelApprovalStatus sets the ModelApprovalStatus field's value.
func (s *ModelPackageSummary) SetModelApprovalStatus(v string) *ModelPackageSummary {
	s.ModelApprovalStatus = &v
	return s
}

// SetModelPackageArn sets the ModelPackageArn field's value.
func (s *ModelPackageSummary) SetModelPackageArn(v string) *ModelPackageSummary {
	s.ModelPackageArn = &v
	return s
}

// SetModelPackageDescription sets the ModelPackageDescription field's value.
func (s *ModelPackageSummary) SetModelPackageDescription(v string) *ModelPackageSummary {
	s.ModelPackageDescription = &v
	return s
}

// SetModelPackageGroupName sets the ModelPackageGroupName field's value.
func (s *ModelPackageSummary) SetModelPackageGroupName(v string) *ModelPackageSummary {
	s.ModelPackageGroupName = &v
	return s
}

// SetModelPackageName sets the ModelPackageName field's value.
func (s *ModelPackageSummary) SetModelPackageName(v string) *ModelPackageSummary {
	s.ModelPackageName = &v
	return s
}

// SetModelPackageStatus sets the ModelPackageStatus field's value.
func (s *ModelPackageSummary) SetModelPackageStatus(v string) *ModelPackageSummary {
	s.ModelPackageStatus = &v
	return s
}

// SetModelPackageVersion sets the ModelPackageVersion field's value.
func (s *ModelPackageSummary) SetModelPackageVersion(v int64) *ModelPackageSummary {
	s.ModelPackageVersion = &v
	return s
}

// Contains data, such as the inputs and targeted instance types that are used
// in the process of validating the model package.
//
// The data provided in the validation profile is made available to your buyers
// on Amazon Web Services Marketplace.
type ModelPackageValidationProfile struct {
	_ struct{} `type:"structure"`

	// The name of the profile for the model package.
	//
	// ProfileName is a required field
	ProfileName *string `min:"1" type:"string" required:"true"`

	// The TransformJobDefinition object that describes the transform job used for
	// the validation of the model package.
	//
	// TransformJobDefinition is a required field
	TransformJobDefinition *TransformJobDefinition `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelPackageValidationProfile) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelPackageValidationProfile) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ModelPackageValidationProfile) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ModelPackageValidationProfile"}
	if s.ProfileName == nil {
		invalidParams.Add(request.NewErrParamRequired("ProfileName"))
	}
	if s.ProfileName != nil && len(*s.ProfileName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ProfileName", 1))
	}
	if s.TransformJobDefinition == nil {
		invalidParams.Add(request.NewErrParamRequired("TransformJobDefinition"))
	}
	if s.TransformJobDefinition != nil {
		if err := s.TransformJobDefinition.Validate(); err != nil {
			invalidParams.AddNested("TransformJobDefinition", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetProfileName sets the ProfileName field's value.
func (s *ModelPackageValidationProfile) SetProfileName(v string) *ModelPackageValidationProfile {
	s.ProfileName = &v
	return s
}

// SetTransformJobDefinition sets the TransformJobDefinition field's value.
func (s *ModelPackageValidationProfile) SetTransformJobDefinition(v *TransformJobDefinition) *ModelPackageValidationProfile {
	s.TransformJobDefinition = v
	return s
}

// Specifies batch transform jobs that SageMaker runs to validate your model
// package.
type ModelPackageValidationSpecification struct {
	_ struct{} `type:"structure"`

	// An array of ModelPackageValidationProfile objects, each of which specifies
	// a batch transform job that SageMaker runs to validate your model package.
	//
	// ValidationProfiles is a required field
	ValidationProfiles []*ModelPackageValidationProfile `type:"list" required:"true"`

	// The IAM roles to be used for the validation of the model package.
	//
	// ValidationRole is a required field
	ValidationRole *string `min:"20" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelPackageValidationSpecification) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelPackageValidationSpecification) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ModelPackageValidationSpecification) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ModelPackageValidationSpecification"}
	if s.ValidationProfiles == nil {
		invalidParams.Add(request.NewErrParamRequired("ValidationProfiles"))
	}
	if s.ValidationRole == nil {
		invalidParams.Add(request.NewErrParamRequired("ValidationRole"))
	}
	if s.ValidationRole != nil && len(*s.ValidationRole) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("ValidationRole", 20))
	}
	if s.ValidationProfiles != nil {
		for i, v := range s.ValidationProfiles {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ValidationProfiles", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetValidationProfiles sets the ValidationProfiles field's value.
func (s *ModelPackageValidationSpecification) SetValidationProfiles(v []*ModelPackageValidationProfile) *ModelPackageValidationSpecification {
	s.ValidationProfiles = v
	return s
}

// SetValidationRole sets the ValidationRole field's value.
func (s *ModelPackageValidationSpecification) SetValidationRole(v string) *ModelPackageValidationSpecification {
	s.ValidationRole = &v
	return s
}

// Model quality statistics and constraints.
type ModelQuality struct {
	_ struct{} `type:"structure"`

	// Model quality constraints.
	Constraints *MetricsSource `type:"structure"`

	// Model quality statistics.
	Statistics *MetricsSource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelQuality) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelQuality) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ModelQuality) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ModelQuality"}
	if s.Constraints != nil {
		if err := s.Constraints.Validate(); err != nil {
			invalidParams.AddNested("Constraints", err.(request.ErrInvalidParams))
		}
	}
	if s.Statistics != nil {
		if err := s.Statistics.Validate(); err != nil {
			invalidParams.AddNested("Statistics", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetConstraints sets the Constraints field's value.
func (s *ModelQuality) SetConstraints(v *MetricsSource) *ModelQuality {
	s.Constraints = v
	return s
}

// SetStatistics sets the Statistics field's value.
func (s *ModelQuality) SetStatistics(v *MetricsSource) *ModelQuality {
	s.Statistics = v
	return s
}

// Container image configuration object for the monitoring job.
type ModelQualityAppSpecification struct {
	_ struct{} `type:"structure"`

	// An array of arguments for the container used to run the monitoring job.
	ContainerArguments []*string `min:"1" type:"list"`

	// Specifies the entrypoint for a container that the monitoring job runs.
	ContainerEntrypoint []*string `min:"1" type:"list"`

	// Sets the environment variables in the container that the monitoring job runs.
	Environment map[string]*string `type:"map"`

	// The address of the container image that the monitoring job runs.
	//
	// ImageUri is a required field
	ImageUri *string `type:"string" required:"true"`

	// An Amazon S3 URI to a script that is called after analysis has been performed.
	// Applicable only for the built-in (first party) containers.
	PostAnalyticsProcessorSourceUri *string `type:"string"`

	// The machine learning problem type of the model that the monitoring job monitors.
	ProblemType *string `type:"string" enum:"MonitoringProblemType"`

	// An Amazon S3 URI to a script that is called per row prior to running analysis.
	// It can base64 decode the payload and convert it into a flattened JSON so
	// that the built-in container can use the converted data. Applicable only for
	// the built-in (first party) containers.
	RecordPreprocessorSourceUri *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelQualityAppSpecification) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelQualityAppSpecification) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ModelQualityAppSpecification) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ModelQualityAppSpecification"}
	if s.ContainerArguments != nil && len(s.ContainerArguments) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ContainerArguments", 1))
	}
	if s.ContainerEntrypoint != nil && len(s.ContainerEntrypoint) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ContainerEntrypoint", 1))
	}
	if s.ImageUri == nil {
		invalidParams.Add(request.NewErrParamRequired("ImageUri"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContainerArguments sets the ContainerArguments field's value.
func (s *ModelQualityAppSpecification) SetContainerArguments(v []*string) *ModelQualityAppSpecification {
	s.ContainerArguments = v
	return s
}

// SetContainerEntrypoint sets the ContainerEntrypoint field's value.
func (s *ModelQualityAppSpecification) SetContainerEntrypoint(v []*string) *ModelQualityAppSpecification {
	s.ContainerEntrypoint = v
	return s
}

// SetEnvironment sets the Environment field's value.
func (s *ModelQualityAppSpecification) SetEnvironment(v map[string]*string) *ModelQualityAppSpecification {
	s.Environment = v
	return s
}

// SetImageUri sets the ImageUri field's value.
func (s *ModelQualityAppSpecification) SetImageUri(v string) *ModelQualityAppSpecification {
	s.ImageUri = &v
	return s
}

// SetPostAnalyticsProcessorSourceUri sets the PostAnalyticsProcessorSourceUri field's value.
func (s *ModelQualityAppSpecification) SetPostAnalyticsProcessorSourceUri(v string) *ModelQualityAppSpecification {
	s.PostAnalyticsProcessorSourceUri = &v
	return s
}

// SetProblemType sets the ProblemType field's value.
func (s *ModelQualityAppSpecification) SetProblemType(v string) *ModelQualityAppSpecification {
	s.ProblemType = &v
	return s
}

// SetRecordPreprocessorSourceUri sets the RecordPreprocessorSourceUri field's value.
func (s *ModelQualityAppSpecification) SetRecordPreprocessorSourceUri(v string) *ModelQualityAppSpecification {
	s.RecordPreprocessorSourceUri = &v
	return s
}

// Configuration for monitoring constraints and monitoring statistics. These
// baseline resources are compared against the results of the current job from
// the series of jobs scheduled to collect data periodically.
type ModelQualityBaselineConfig struct {
	_ struct{} `type:"structure"`

	// The name of the job that performs baselining for the monitoring job.
	BaseliningJobName *string `min:"1" type:"string"`

	// The constraints resource for a monitoring job.
	ConstraintsResource *MonitoringConstraintsResource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelQualityBaselineConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelQualityBaselineConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ModelQualityBaselineConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ModelQualityBaselineConfig"}
	if s.BaseliningJobName != nil && len(*s.BaseliningJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("BaseliningJobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetBaseliningJobName sets the BaseliningJobName field's value.
func (s *ModelQualityBaselineConfig) SetBaseliningJobName(v string) *ModelQualityBaselineConfig {
	s.BaseliningJobName = &v
	return s
}

// SetConstraintsResource sets the ConstraintsResource field's value.
func (s *ModelQualityBaselineConfig) SetConstraintsResource(v *MonitoringConstraintsResource) *ModelQualityBaselineConfig {
	s.ConstraintsResource = v
	return s
}

// The input for the model quality monitoring job. Currently endpoints are supported
// for input for model quality monitoring jobs.
type ModelQualityJobInput struct {
	_ struct{} `type:"structure"`

	// Input object for the batch transform job.
	BatchTransformInput *BatchTransformInput_ `type:"structure"`

	// Input object for the endpoint
	EndpointInput *EndpointInput `type:"structure"`

	// The ground truth label provided for the model.
	//
	// GroundTruthS3Input is a required field
	GroundTruthS3Input *MonitoringGroundTruthS3Input `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelQualityJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelQualityJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ModelQualityJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ModelQualityJobInput"}
	if s.GroundTruthS3Input == nil {
		invalidParams.Add(request.NewErrParamRequired("GroundTruthS3Input"))
	}
	if s.BatchTransformInput != nil {
		if err := s.BatchTransformInput.Validate(); err != nil {
			invalidParams.AddNested("BatchTransformInput", err.(request.ErrInvalidParams))
		}
	}
	if s.EndpointInput != nil {
		if err := s.EndpointInput.Validate(); err != nil {
			invalidParams.AddNested("EndpointInput", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetBatchTransformInput sets the BatchTransformInput field's value.
func (s *ModelQualityJobInput) SetBatchTransformInput(v *BatchTransformInput_) *ModelQualityJobInput {
	s.BatchTransformInput = v
	return s
}

// SetEndpointInput sets the EndpointInput field's value.
func (s *ModelQualityJobInput) SetEndpointInput(v *EndpointInput) *ModelQualityJobInput {
	s.EndpointInput = v
	return s
}

// SetGroundTruthS3Input sets the GroundTruthS3Input field's value.
func (s *ModelQualityJobInput) SetGroundTruthS3Input(v *MonitoringGroundTruthS3Input) *ModelQualityJobInput {
	s.GroundTruthS3Input = v
	return s
}

// The model registry settings for the SageMaker Canvas application.
type ModelRegisterSettings struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the SageMaker model registry account. Required
	// only to register model versions created by a different SageMaker Canvas Amazon
	// Web Services account than the Amazon Web Services account in which SageMaker
	// model registry is set up.
	CrossAccountModelRegisterRoleArn *string `min:"20" type:"string"`

	// Describes whether the integration to the model registry is enabled or disabled
	// in the Canvas application.
	Status *string `type:"string" enum:"FeatureStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelRegisterSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelRegisterSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ModelRegisterSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ModelRegisterSettings"}
	if s.CrossAccountModelRegisterRoleArn != nil && len(*s.CrossAccountModelRegisterRoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("CrossAccountModelRegisterRoleArn", 20))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCrossAccountModelRegisterRoleArn sets the CrossAccountModelRegisterRoleArn field's value.
func (s *ModelRegisterSettings) SetCrossAccountModelRegisterRoleArn(v string) *ModelRegisterSettings {
	s.CrossAccountModelRegisterRoleArn = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *ModelRegisterSettings) SetStatus(v string) *ModelRegisterSettings {
	s.Status = &v
	return s
}

// Metadata for Model steps.
type ModelStepMetadata struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the created model.
	Arn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelStepMetadata) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelStepMetadata) GoString() string {
	return s.String()
}

// SetArn sets the Arn field's value.
func (s *ModelStepMetadata) SetArn(v string) *ModelStepMetadata {
	s.Arn = &v
	return s
}

// Provides summary information about a model.
type ModelSummary struct {
	_ struct{} `type:"structure"`

	// A timestamp that indicates when the model was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The Amazon Resource Name (ARN) of the model.
	//
	// ModelArn is a required field
	ModelArn *string `min:"20" type:"string" required:"true"`

	// The name of the model that you want a summary for.
	//
	// ModelName is a required field
	ModelName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *ModelSummary) SetCreationTime(v time.Time) *ModelSummary {
	s.CreationTime = &v
	return s
}

// SetModelArn sets the ModelArn field's value.
func (s *ModelSummary) SetModelArn(v string) *ModelSummary {
	s.ModelArn = &v
	return s
}

// SetModelName sets the ModelName field's value.
func (s *ModelSummary) SetModelName(v string) *ModelSummary {
	s.ModelName = &v
	return s
}

// Contains information about the deployment options of a model.
type ModelVariantConfig struct {
	_ struct{} `type:"structure"`

	// The configuration for the infrastructure that the model will be deployed
	// to.
	//
	// InfrastructureConfig is a required field
	InfrastructureConfig *ModelInfrastructureConfig `type:"structure" required:"true"`

	// The name of the Amazon SageMaker Model entity.
	//
	// ModelName is a required field
	ModelName *string `type:"string" required:"true"`

	// The name of the variant.
	//
	// VariantName is a required field
	VariantName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelVariantConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelVariantConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ModelVariantConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ModelVariantConfig"}
	if s.InfrastructureConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("InfrastructureConfig"))
	}
	if s.ModelName == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelName"))
	}
	if s.VariantName == nil {
		invalidParams.Add(request.NewErrParamRequired("VariantName"))
	}
	if s.InfrastructureConfig != nil {
		if err := s.InfrastructureConfig.Validate(); err != nil {
			invalidParams.AddNested("InfrastructureConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetInfrastructureConfig sets the InfrastructureConfig field's value.
func (s *ModelVariantConfig) SetInfrastructureConfig(v *ModelInfrastructureConfig) *ModelVariantConfig {
	s.InfrastructureConfig = v
	return s
}

// SetModelName sets the ModelName field's value.
func (s *ModelVariantConfig) SetModelName(v string) *ModelVariantConfig {
	s.ModelName = &v
	return s
}

// SetVariantName sets the VariantName field's value.
func (s *ModelVariantConfig) SetVariantName(v string) *ModelVariantConfig {
	s.VariantName = &v
	return s
}

// Summary of the deployment configuration of a model.
type ModelVariantConfigSummary struct {
	_ struct{} `type:"structure"`

	// The configuration of the infrastructure that the model has been deployed
	// to.
	//
	// InfrastructureConfig is a required field
	InfrastructureConfig *ModelInfrastructureConfig `type:"structure" required:"true"`

	// The name of the Amazon SageMaker Model entity.
	//
	// ModelName is a required field
	ModelName *string `type:"string" required:"true"`

	// The status of deployment for the model variant on the hosted inference endpoint.
	//
	//    * Creating - Amazon SageMaker is preparing the model variant on the hosted
	//    inference endpoint.
	//
	//    * InService - The model variant is running on the hosted inference endpoint.
	//
	//    * Updating - Amazon SageMaker is updating the model variant on the hosted
	//    inference endpoint.
	//
	//    * Deleting - Amazon SageMaker is deleting the model variant on the hosted
	//    inference endpoint.
	//
	//    * Deleted - The model variant has been deleted on the hosted inference
	//    endpoint. This can only happen after stopping the experiment.
	//
	// Status is a required field
	Status *string `type:"string" required:"true" enum:"ModelVariantStatus"`

	// The name of the variant.
	//
	// VariantName is a required field
	VariantName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelVariantConfigSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ModelVariantConfigSummary) GoString() string {
	return s.String()
}

// SetInfrastructureConfig sets the InfrastructureConfig field's value.
func (s *ModelVariantConfigSummary) SetInfrastructureConfig(v *ModelInfrastructureConfig) *ModelVariantConfigSummary {
	s.InfrastructureConfig = v
	return s
}

// SetModelName sets the ModelName field's value.
func (s *ModelVariantConfigSummary) SetModelName(v string) *ModelVariantConfigSummary {
	s.ModelName = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *ModelVariantConfigSummary) SetStatus(v string) *ModelVariantConfigSummary {
	s.Status = &v
	return s
}

// SetVariantName sets the VariantName field's value.
func (s *ModelVariantConfigSummary) SetVariantName(v string) *ModelVariantConfigSummary {
	s.VariantName = &v
	return s
}

// A list of alert actions taken in response to an alert going into InAlert
// status.
type MonitoringAlertActions struct {
	_ struct{} `type:"structure"`

	// An alert action taken to light up an icon on the Model Dashboard when an
	// alert goes into InAlert status.
	ModelDashboardIndicator *ModelDashboardIndicatorAction `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringAlertActions) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringAlertActions) GoString() string {
	return s.String()
}

// SetModelDashboardIndicator sets the ModelDashboardIndicator field's value.
func (s *MonitoringAlertActions) SetModelDashboardIndicator(v *ModelDashboardIndicatorAction) *MonitoringAlertActions {
	s.ModelDashboardIndicator = v
	return s
}

// Provides summary information of an alert's history.
type MonitoringAlertHistorySummary struct {
	_ struct{} `type:"structure"`

	// The current alert status of an alert.
	//
	// AlertStatus is a required field
	AlertStatus *string `type:"string" required:"true" enum:"MonitoringAlertStatus"`

	// A timestamp that indicates when the first alert transition occurred in an
	// alert history. An alert transition can be from status InAlert to OK, or from
	// OK to InAlert.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The name of a monitoring alert.
	//
	// MonitoringAlertName is a required field
	MonitoringAlertName *string `min:"1" type:"string" required:"true"`

	// The name of a monitoring schedule.
	//
	// MonitoringScheduleName is a required field
	MonitoringScheduleName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringAlertHistorySummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringAlertHistorySummary) GoString() string {
	return s.String()
}

// SetAlertStatus sets the AlertStatus field's value.
func (s *MonitoringAlertHistorySummary) SetAlertStatus(v string) *MonitoringAlertHistorySummary {
	s.AlertStatus = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *MonitoringAlertHistorySummary) SetCreationTime(v time.Time) *MonitoringAlertHistorySummary {
	s.CreationTime = &v
	return s
}

// SetMonitoringAlertName sets the MonitoringAlertName field's value.
func (s *MonitoringAlertHistorySummary) SetMonitoringAlertName(v string) *MonitoringAlertHistorySummary {
	s.MonitoringAlertName = &v
	return s
}

// SetMonitoringScheduleName sets the MonitoringScheduleName field's value.
func (s *MonitoringAlertHistorySummary) SetMonitoringScheduleName(v string) *MonitoringAlertHistorySummary {
	s.MonitoringScheduleName = &v
	return s
}

// Provides summary information about a monitor alert.
type MonitoringAlertSummary struct {
	_ struct{} `type:"structure"`

	// A list of alert actions taken in response to an alert going into InAlert
	// status.
	//
	// Actions is a required field
	Actions *MonitoringAlertActions `type:"structure" required:"true"`

	// The current status of an alert.
	//
	// AlertStatus is a required field
	AlertStatus *string `type:"string" required:"true" enum:"MonitoringAlertStatus"`

	// A timestamp that indicates when a monitor alert was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// Within EvaluationPeriod, how many execution failures will raise an alert.
	//
	// DatapointsToAlert is a required field
	DatapointsToAlert *int64 `min:"1" type:"integer" required:"true"`

	// The number of most recent monitoring executions to consider when evaluating
	// alert status.
	//
	// EvaluationPeriod is a required field
	EvaluationPeriod *int64 `min:"1" type:"integer" required:"true"`

	// A timestamp that indicates when a monitor alert was last updated.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`

	// The name of a monitoring alert.
	//
	// MonitoringAlertName is a required field
	MonitoringAlertName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringAlertSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringAlertSummary) GoString() string {
	return s.String()
}

// SetActions sets the Actions field's value.
func (s *MonitoringAlertSummary) SetActions(v *MonitoringAlertActions) *MonitoringAlertSummary {
	s.Actions = v
	return s
}

// SetAlertStatus sets the AlertStatus field's value.
func (s *MonitoringAlertSummary) SetAlertStatus(v string) *MonitoringAlertSummary {
	s.AlertStatus = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *MonitoringAlertSummary) SetCreationTime(v time.Time) *MonitoringAlertSummary {
	s.CreationTime = &v
	return s
}

// SetDatapointsToAlert sets the DatapointsToAlert field's value.
func (s *MonitoringAlertSummary) SetDatapointsToAlert(v int64) *MonitoringAlertSummary {
	s.DatapointsToAlert = &v
	return s
}

// SetEvaluationPeriod sets the EvaluationPeriod field's value.
func (s *MonitoringAlertSummary) SetEvaluationPeriod(v int64) *MonitoringAlertSummary {
	s.EvaluationPeriod = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *MonitoringAlertSummary) SetLastModifiedTime(v time.Time) *MonitoringAlertSummary {
	s.LastModifiedTime = &v
	return s
}

// SetMonitoringAlertName sets the MonitoringAlertName field's value.
func (s *MonitoringAlertSummary) SetMonitoringAlertName(v string) *MonitoringAlertSummary {
	s.MonitoringAlertName = &v
	return s
}

// Container image configuration object for the monitoring job.
type MonitoringAppSpecification struct {
	_ struct{} `type:"structure"`

	// An array of arguments for the container used to run the monitoring job.
	ContainerArguments []*string `min:"1" type:"list"`

	// Specifies the entrypoint for a container used to run the monitoring job.
	ContainerEntrypoint []*string `min:"1" type:"list"`

	// The container image to be run by the monitoring job.
	//
	// ImageUri is a required field
	ImageUri *string `type:"string" required:"true"`

	// An Amazon S3 URI to a script that is called after analysis has been performed.
	// Applicable only for the built-in (first party) containers.
	PostAnalyticsProcessorSourceUri *string `type:"string"`

	// An Amazon S3 URI to a script that is called per row prior to running analysis.
	// It can base64 decode the payload and convert it into a flattened JSON so
	// that the built-in container can use the converted data. Applicable only for
	// the built-in (first party) containers.
	RecordPreprocessorSourceUri *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringAppSpecification) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringAppSpecification) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *MonitoringAppSpecification) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "MonitoringAppSpecification"}
	if s.ContainerArguments != nil && len(s.ContainerArguments) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ContainerArguments", 1))
	}
	if s.ContainerEntrypoint != nil && len(s.ContainerEntrypoint) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ContainerEntrypoint", 1))
	}
	if s.ImageUri == nil {
		invalidParams.Add(request.NewErrParamRequired("ImageUri"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContainerArguments sets the ContainerArguments field's value.
func (s *MonitoringAppSpecification) SetContainerArguments(v []*string) *MonitoringAppSpecification {
	s.ContainerArguments = v
	return s
}

// SetContainerEntrypoint sets the ContainerEntrypoint field's value.
func (s *MonitoringAppSpecification) SetContainerEntrypoint(v []*string) *MonitoringAppSpecification {
	s.ContainerEntrypoint = v
	return s
}

// SetImageUri sets the ImageUri field's value.
func (s *MonitoringAppSpecification) SetImageUri(v string) *MonitoringAppSpecification {
	s.ImageUri = &v
	return s
}

// SetPostAnalyticsProcessorSourceUri sets the PostAnalyticsProcessorSourceUri field's value.
func (s *MonitoringAppSpecification) SetPostAnalyticsProcessorSourceUri(v string) *MonitoringAppSpecification {
	s.PostAnalyticsProcessorSourceUri = &v
	return s
}

// SetRecordPreprocessorSourceUri sets the RecordPreprocessorSourceUri field's value.
func (s *MonitoringAppSpecification) SetRecordPreprocessorSourceUri(v string) *MonitoringAppSpecification {
	s.RecordPreprocessorSourceUri = &v
	return s
}

// Configuration for monitoring constraints and monitoring statistics. These
// baseline resources are compared against the results of the current job from
// the series of jobs scheduled to collect data periodically.
type MonitoringBaselineConfig struct {
	_ struct{} `type:"structure"`

	// The name of the job that performs baselining for the monitoring job.
	BaseliningJobName *string `min:"1" type:"string"`

	// The baseline constraint file in Amazon S3 that the current monitoring job
	// should validated against.
	ConstraintsResource *MonitoringConstraintsResource `type:"structure"`

	// The baseline statistics file in Amazon S3 that the current monitoring job
	// should be validated against.
	StatisticsResource *MonitoringStatisticsResource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringBaselineConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringBaselineConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *MonitoringBaselineConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "MonitoringBaselineConfig"}
	if s.BaseliningJobName != nil && len(*s.BaseliningJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("BaseliningJobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetBaseliningJobName sets the BaseliningJobName field's value.
func (s *MonitoringBaselineConfig) SetBaseliningJobName(v string) *MonitoringBaselineConfig {
	s.BaseliningJobName = &v
	return s
}

// SetConstraintsResource sets the ConstraintsResource field's value.
func (s *MonitoringBaselineConfig) SetConstraintsResource(v *MonitoringConstraintsResource) *MonitoringBaselineConfig {
	s.ConstraintsResource = v
	return s
}

// SetStatisticsResource sets the StatisticsResource field's value.
func (s *MonitoringBaselineConfig) SetStatisticsResource(v *MonitoringStatisticsResource) *MonitoringBaselineConfig {
	s.StatisticsResource = v
	return s
}

// Configuration for the cluster used to run model monitoring jobs.
type MonitoringClusterConfig struct {
	_ struct{} `type:"structure"`

	// The number of ML compute instances to use in the model monitoring job. For
	// distributed processing jobs, specify a value greater than 1. The default
	// value is 1.
	//
	// InstanceCount is a required field
	InstanceCount *int64 `min:"1" type:"integer" required:"true"`

	// The ML compute instance type for the processing job.
	//
	// InstanceType is a required field
	InstanceType *string `type:"string" required:"true" enum:"ProcessingInstanceType"`

	// The Key Management Service (KMS) key that Amazon SageMaker uses to encrypt
	// data on the storage volume attached to the ML compute instance(s) that run
	// the model monitoring job.
	VolumeKmsKeyId *string `type:"string"`

	// The size of the ML storage volume, in gigabytes, that you want to provision.
	// You must specify sufficient ML storage for your scenario.
	//
	// VolumeSizeInGB is a required field
	VolumeSizeInGB *int64 `min:"1" type:"integer" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringClusterConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringClusterConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *MonitoringClusterConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "MonitoringClusterConfig"}
	if s.InstanceCount == nil {
		invalidParams.Add(request.NewErrParamRequired("InstanceCount"))
	}
	if s.InstanceCount != nil && *s.InstanceCount < 1 {
		invalidParams.Add(request.NewErrParamMinValue("InstanceCount", 1))
	}
	if s.InstanceType == nil {
		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
	}
	if s.VolumeSizeInGB == nil {
		invalidParams.Add(request.NewErrParamRequired("VolumeSizeInGB"))
	}
	if s.VolumeSizeInGB != nil && *s.VolumeSizeInGB < 1 {
		invalidParams.Add(request.NewErrParamMinValue("VolumeSizeInGB", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetInstanceCount sets the InstanceCount field's value.
func (s *MonitoringClusterConfig) SetInstanceCount(v int64) *MonitoringClusterConfig {
	s.InstanceCount = &v
	return s
}

// SetInstanceType sets the InstanceType field's value.
func (s *MonitoringClusterConfig) SetInstanceType(v string) *MonitoringClusterConfig {
	s.InstanceType = &v
	return s
}

// SetVolumeKmsKeyId sets the VolumeKmsKeyId field's value.
func (s *MonitoringClusterConfig) SetVolumeKmsKeyId(v string) *MonitoringClusterConfig {
	s.VolumeKmsKeyId = &v
	return s
}

// SetVolumeSizeInGB sets the VolumeSizeInGB field's value.
func (s *MonitoringClusterConfig) SetVolumeSizeInGB(v int64) *MonitoringClusterConfig {
	s.VolumeSizeInGB = &v
	return s
}

// The constraints resource for a monitoring job.
type MonitoringConstraintsResource struct {
	_ struct{} `type:"structure"`

	// The Amazon S3 URI for the constraints resource.
	S3Uri *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringConstraintsResource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringConstraintsResource) GoString() string {
	return s.String()
}

// SetS3Uri sets the S3Uri field's value.
func (s *MonitoringConstraintsResource) SetS3Uri(v string) *MonitoringConstraintsResource {
	s.S3Uri = &v
	return s
}

// Represents the CSV dataset format used when running a monitoring job.
type MonitoringCsvDatasetFormat struct {
	_ struct{} `type:"structure"`

	// Indicates if the CSV data has a header.
	Header *bool `type:"boolean"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringCsvDatasetFormat) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringCsvDatasetFormat) GoString() string {
	return s.String()
}

// SetHeader sets the Header field's value.
func (s *MonitoringCsvDatasetFormat) SetHeader(v bool) *MonitoringCsvDatasetFormat {
	s.Header = &v
	return s
}

// Represents the dataset format used when running a monitoring job.
type MonitoringDatasetFormat struct {
	_ struct{} `type:"structure"`

	// The CSV dataset used in the monitoring job.
	Csv *MonitoringCsvDatasetFormat `type:"structure"`

	// The JSON dataset used in the monitoring job
	Json *MonitoringJsonDatasetFormat `type:"structure"`

	// The Parquet dataset used in the monitoring job
	Parquet *MonitoringParquetDatasetFormat `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringDatasetFormat) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringDatasetFormat) GoString() string {
	return s.String()
}

// SetCsv sets the Csv field's value.
func (s *MonitoringDatasetFormat) SetCsv(v *MonitoringCsvDatasetFormat) *MonitoringDatasetFormat {
	s.Csv = v
	return s
}

// SetJson sets the Json field's value.
func (s *MonitoringDatasetFormat) SetJson(v *MonitoringJsonDatasetFormat) *MonitoringDatasetFormat {
	s.Json = v
	return s
}

// SetParquet sets the Parquet field's value.
func (s *MonitoringDatasetFormat) SetParquet(v *MonitoringParquetDatasetFormat) *MonitoringDatasetFormat {
	s.Parquet = v
	return s
}

// Summary of information about the last monitoring job to run.
type MonitoringExecutionSummary struct {
	_ struct{} `type:"structure"`

	// The time at which the monitoring job was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The name of the endpoint used to run the monitoring job.
	EndpointName *string `type:"string"`

	// Contains the reason a monitoring job failed, if it failed.
	FailureReason *string `type:"string"`

	// A timestamp that indicates the last time the monitoring job was modified.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`

	// The status of the monitoring job.
	//
	// MonitoringExecutionStatus is a required field
	MonitoringExecutionStatus *string `type:"string" required:"true" enum:"ExecutionStatus"`

	// The name of the monitoring job.
	MonitoringJobDefinitionName *string `min:"1" type:"string"`

	// The name of the monitoring schedule.
	//
	// MonitoringScheduleName is a required field
	MonitoringScheduleName *string `min:"1" type:"string" required:"true"`

	// The type of the monitoring job.
	MonitoringType *string `type:"string" enum:"MonitoringType"`

	// The Amazon Resource Name (ARN) of the monitoring job.
	ProcessingJobArn *string `type:"string"`

	// The time the monitoring job was scheduled.
	//
	// ScheduledTime is a required field
	ScheduledTime *time.Time `type:"timestamp" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringExecutionSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringExecutionSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *MonitoringExecutionSummary) SetCreationTime(v time.Time) *MonitoringExecutionSummary {
	s.CreationTime = &v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *MonitoringExecutionSummary) SetEndpointName(v string) *MonitoringExecutionSummary {
	s.EndpointName = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *MonitoringExecutionSummary) SetFailureReason(v string) *MonitoringExecutionSummary {
	s.FailureReason = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *MonitoringExecutionSummary) SetLastModifiedTime(v time.Time) *MonitoringExecutionSummary {
	s.LastModifiedTime = &v
	return s
}

// SetMonitoringExecutionStatus sets the MonitoringExecutionStatus field's value.
func (s *MonitoringExecutionSummary) SetMonitoringExecutionStatus(v string) *MonitoringExecutionSummary {
	s.MonitoringExecutionStatus = &v
	return s
}

// SetMonitoringJobDefinitionName sets the MonitoringJobDefinitionName field's value.
func (s *MonitoringExecutionSummary) SetMonitoringJobDefinitionName(v string) *MonitoringExecutionSummary {
	s.MonitoringJobDefinitionName = &v
	return s
}

// SetMonitoringScheduleName sets the MonitoringScheduleName field's value.
func (s *MonitoringExecutionSummary) SetMonitoringScheduleName(v string) *MonitoringExecutionSummary {
	s.MonitoringScheduleName = &v
	return s
}

// SetMonitoringType sets the MonitoringType field's value.
func (s *MonitoringExecutionSummary) SetMonitoringType(v string) *MonitoringExecutionSummary {
	s.MonitoringType = &v
	return s
}

// SetProcessingJobArn sets the ProcessingJobArn field's value.
func (s *MonitoringExecutionSummary) SetProcessingJobArn(v string) *MonitoringExecutionSummary {
	s.ProcessingJobArn = &v
	return s
}

// SetScheduledTime sets the ScheduledTime field's value.
func (s *MonitoringExecutionSummary) SetScheduledTime(v time.Time) *MonitoringExecutionSummary {
	s.ScheduledTime = &v
	return s
}

// The ground truth labels for the dataset used for the monitoring job.
type MonitoringGroundTruthS3Input struct {
	_ struct{} `type:"structure"`

	// The address of the Amazon S3 location of the ground truth labels.
	S3Uri *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringGroundTruthS3Input) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringGroundTruthS3Input) GoString() string {
	return s.String()
}

// SetS3Uri sets the S3Uri field's value.
func (s *MonitoringGroundTruthS3Input) SetS3Uri(v string) *MonitoringGroundTruthS3Input {
	s.S3Uri = &v
	return s
}

// The inputs for a monitoring job.
type MonitoringInput struct {
	_ struct{} `type:"structure"`

	// Input object for the batch transform job.
	BatchTransformInput *BatchTransformInput_ `type:"structure"`

	// The endpoint for a monitoring job.
	EndpointInput *EndpointInput `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *MonitoringInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "MonitoringInput"}
	if s.BatchTransformInput != nil {
		if err := s.BatchTransformInput.Validate(); err != nil {
			invalidParams.AddNested("BatchTransformInput", err.(request.ErrInvalidParams))
		}
	}
	if s.EndpointInput != nil {
		if err := s.EndpointInput.Validate(); err != nil {
			invalidParams.AddNested("EndpointInput", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetBatchTransformInput sets the BatchTransformInput field's value.
func (s *MonitoringInput) SetBatchTransformInput(v *BatchTransformInput_) *MonitoringInput {
	s.BatchTransformInput = v
	return s
}

// SetEndpointInput sets the EndpointInput field's value.
func (s *MonitoringInput) SetEndpointInput(v *EndpointInput) *MonitoringInput {
	s.EndpointInput = v
	return s
}

// Defines the monitoring job.
type MonitoringJobDefinition struct {
	_ struct{} `type:"structure"`

	// Baseline configuration used to validate that the data conforms to the specified
	// constraints and statistics
	BaselineConfig *MonitoringBaselineConfig `type:"structure"`

	// Sets the environment variables in the Docker container.
	Environment map[string]*string `type:"map"`

	// Configures the monitoring job to run a specified Docker container image.
	//
	// MonitoringAppSpecification is a required field
	MonitoringAppSpecification *MonitoringAppSpecification `type:"structure" required:"true"`

	// The array of inputs for the monitoring job. Currently we support monitoring
	// an Amazon SageMaker Endpoint.
	//
	// MonitoringInputs is a required field
	MonitoringInputs []*MonitoringInput `min:"1" type:"list" required:"true"`

	// The array of outputs from the monitoring job to be uploaded to Amazon S3.
	//
	// MonitoringOutputConfig is a required field
	MonitoringOutputConfig *MonitoringOutputConfig `type:"structure" required:"true"`

	// Identifies the resources, ML compute instances, and ML storage volumes to
	// deploy for a monitoring job. In distributed processing, you specify more
	// than one instance.
	//
	// MonitoringResources is a required field
	MonitoringResources *MonitoringResources `type:"structure" required:"true"`

	// Specifies networking options for an monitoring job.
	NetworkConfig *NetworkConfig `type:"structure"`

	// The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume
	// to perform tasks on your behalf.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// Specifies a time limit for how long the monitoring job is allowed to run.
	StoppingCondition *MonitoringStoppingCondition `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringJobDefinition) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringJobDefinition) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *MonitoringJobDefinition) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "MonitoringJobDefinition"}
	if s.MonitoringAppSpecification == nil {
		invalidParams.Add(request.NewErrParamRequired("MonitoringAppSpecification"))
	}
	if s.MonitoringInputs == nil {
		invalidParams.Add(request.NewErrParamRequired("MonitoringInputs"))
	}
	if s.MonitoringInputs != nil && len(s.MonitoringInputs) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MonitoringInputs", 1))
	}
	if s.MonitoringOutputConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("MonitoringOutputConfig"))
	}
	if s.MonitoringResources == nil {
		invalidParams.Add(request.NewErrParamRequired("MonitoringResources"))
	}
	if s.RoleArn == nil {
		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.BaselineConfig != nil {
		if err := s.BaselineConfig.Validate(); err != nil {
			invalidParams.AddNested("BaselineConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.MonitoringAppSpecification != nil {
		if err := s.MonitoringAppSpecification.Validate(); err != nil {
			invalidParams.AddNested("MonitoringAppSpecification", err.(request.ErrInvalidParams))
		}
	}
	if s.MonitoringInputs != nil {
		for i, v := range s.MonitoringInputs {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MonitoringInputs", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.MonitoringOutputConfig != nil {
		if err := s.MonitoringOutputConfig.Validate(); err != nil {
			invalidParams.AddNested("MonitoringOutputConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.MonitoringResources != nil {
		if err := s.MonitoringResources.Validate(); err != nil {
			invalidParams.AddNested("MonitoringResources", err.(request.ErrInvalidParams))
		}
	}
	if s.NetworkConfig != nil {
		if err := s.NetworkConfig.Validate(); err != nil {
			invalidParams.AddNested("NetworkConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.StoppingCondition != nil {
		if err := s.StoppingCondition.Validate(); err != nil {
			invalidParams.AddNested("StoppingCondition", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetBaselineConfig sets the BaselineConfig field's value.
func (s *MonitoringJobDefinition) SetBaselineConfig(v *MonitoringBaselineConfig) *MonitoringJobDefinition {
	s.BaselineConfig = v
	return s
}

// SetEnvironment sets the Environment field's value.
func (s *MonitoringJobDefinition) SetEnvironment(v map[string]*string) *MonitoringJobDefinition {
	s.Environment = v
	return s
}

// SetMonitoringAppSpecification sets the MonitoringAppSpecification field's value.
func (s *MonitoringJobDefinition) SetMonitoringAppSpecification(v *MonitoringAppSpecification) *MonitoringJobDefinition {
	s.MonitoringAppSpecification = v
	return s
}

// SetMonitoringInputs sets the MonitoringInputs field's value.
func (s *MonitoringJobDefinition) SetMonitoringInputs(v []*MonitoringInput) *MonitoringJobDefinition {
	s.MonitoringInputs = v
	return s
}

// SetMonitoringOutputConfig sets the MonitoringOutputConfig field's value.
func (s *MonitoringJobDefinition) SetMonitoringOutputConfig(v *MonitoringOutputConfig) *MonitoringJobDefinition {
	s.MonitoringOutputConfig = v
	return s
}

// SetMonitoringResources sets the MonitoringResources field's value.
func (s *MonitoringJobDefinition) SetMonitoringResources(v *MonitoringResources) *MonitoringJobDefinition {
	s.MonitoringResources = v
	return s
}

// SetNetworkConfig sets the NetworkConfig field's value.
func (s *MonitoringJobDefinition) SetNetworkConfig(v *NetworkConfig) *MonitoringJobDefinition {
	s.NetworkConfig = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *MonitoringJobDefinition) SetRoleArn(v string) *MonitoringJobDefinition {
	s.RoleArn = &v
	return s
}

// SetStoppingCondition sets the StoppingCondition field's value.
func (s *MonitoringJobDefinition) SetStoppingCondition(v *MonitoringStoppingCondition) *MonitoringJobDefinition {
	s.StoppingCondition = v
	return s
}

// Summary information about a monitoring job.
type MonitoringJobDefinitionSummary struct {
	_ struct{} `type:"structure"`

	// The time that the monitoring job was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The name of the endpoint that the job monitors.
	//
	// EndpointName is a required field
	EndpointName *string `type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of the monitoring job.
	//
	// MonitoringJobDefinitionArn is a required field
	MonitoringJobDefinitionArn *string `type:"string" required:"true"`

	// The name of the monitoring job.
	//
	// MonitoringJobDefinitionName is a required field
	MonitoringJobDefinitionName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringJobDefinitionSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringJobDefinitionSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *MonitoringJobDefinitionSummary) SetCreationTime(v time.Time) *MonitoringJobDefinitionSummary {
	s.CreationTime = &v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *MonitoringJobDefinitionSummary) SetEndpointName(v string) *MonitoringJobDefinitionSummary {
	s.EndpointName = &v
	return s
}

// SetMonitoringJobDefinitionArn sets the MonitoringJobDefinitionArn field's value.
func (s *MonitoringJobDefinitionSummary) SetMonitoringJobDefinitionArn(v string) *MonitoringJobDefinitionSummary {
	s.MonitoringJobDefinitionArn = &v
	return s
}

// SetMonitoringJobDefinitionName sets the MonitoringJobDefinitionName field's value.
func (s *MonitoringJobDefinitionSummary) SetMonitoringJobDefinitionName(v string) *MonitoringJobDefinitionSummary {
	s.MonitoringJobDefinitionName = &v
	return s
}

// Represents the JSON dataset format used when running a monitoring job.
type MonitoringJsonDatasetFormat struct {
	_ struct{} `type:"structure"`

	// Indicates if the file should be read as a JSON object per line.
	Line *bool `type:"boolean"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringJsonDatasetFormat) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringJsonDatasetFormat) GoString() string {
	return s.String()
}

// SetLine sets the Line field's value.
func (s *MonitoringJsonDatasetFormat) SetLine(v bool) *MonitoringJsonDatasetFormat {
	s.Line = &v
	return s
}

// The networking configuration for the monitoring job.
type MonitoringNetworkConfig struct {
	_ struct{} `type:"structure"`

	// Whether to encrypt all communications between the instances used for the
	// monitoring jobs. Choose True to encrypt communications. Encryption provides
	// greater security for distributed jobs, but the processing might take longer.
	EnableInterContainerTrafficEncryption *bool `type:"boolean"`

	// Whether to allow inbound and outbound network calls to and from the containers
	// used for the monitoring job.
	EnableNetworkIsolation *bool `type:"boolean"`

	// Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs,
	// hosted models, and compute resources have access to. You can control access
	// to and from your resources by configuring a VPC. For more information, see
	// Give SageMaker Access to Resources in your Amazon VPC (https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html).
	VpcConfig *VpcConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringNetworkConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringNetworkConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *MonitoringNetworkConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "MonitoringNetworkConfig"}
	if s.VpcConfig != nil {
		if err := s.VpcConfig.Validate(); err != nil {
			invalidParams.AddNested("VpcConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEnableInterContainerTrafficEncryption sets the EnableInterContainerTrafficEncryption field's value.
func (s *MonitoringNetworkConfig) SetEnableInterContainerTrafficEncryption(v bool) *MonitoringNetworkConfig {
	s.EnableInterContainerTrafficEncryption = &v
	return s
}

// SetEnableNetworkIsolation sets the EnableNetworkIsolation field's value.
func (s *MonitoringNetworkConfig) SetEnableNetworkIsolation(v bool) *MonitoringNetworkConfig {
	s.EnableNetworkIsolation = &v
	return s
}

// SetVpcConfig sets the VpcConfig field's value.
func (s *MonitoringNetworkConfig) SetVpcConfig(v *VpcConfig) *MonitoringNetworkConfig {
	s.VpcConfig = v
	return s
}

// The output object for a monitoring job.
type MonitoringOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon S3 storage location where the results of a monitoring job are
	// saved.
	//
	// S3Output is a required field
	S3Output *MonitoringS3Output `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringOutput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *MonitoringOutput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "MonitoringOutput"}
	if s.S3Output == nil {
		invalidParams.Add(request.NewErrParamRequired("S3Output"))
	}
	if s.S3Output != nil {
		if err := s.S3Output.Validate(); err != nil {
			invalidParams.AddNested("S3Output", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetS3Output sets the S3Output field's value.
func (s *MonitoringOutput) SetS3Output(v *MonitoringS3Output) *MonitoringOutput {
	s.S3Output = v
	return s
}

// The output configuration for monitoring jobs.
type MonitoringOutputConfig struct {
	_ struct{} `type:"structure"`

	// The Key Management Service (KMS) key that Amazon SageMaker uses to encrypt
	// the model artifacts at rest using Amazon S3 server-side encryption.
	KmsKeyId *string `type:"string"`

	// Monitoring outputs for monitoring jobs. This is where the output of the periodic
	// monitoring jobs is uploaded.
	//
	// MonitoringOutputs is a required field
	MonitoringOutputs []*MonitoringOutput `min:"1" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringOutputConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringOutputConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *MonitoringOutputConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "MonitoringOutputConfig"}
	if s.MonitoringOutputs == nil {
		invalidParams.Add(request.NewErrParamRequired("MonitoringOutputs"))
	}
	if s.MonitoringOutputs != nil && len(s.MonitoringOutputs) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MonitoringOutputs", 1))
	}
	if s.MonitoringOutputs != nil {
		for i, v := range s.MonitoringOutputs {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MonitoringOutputs", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *MonitoringOutputConfig) SetKmsKeyId(v string) *MonitoringOutputConfig {
	s.KmsKeyId = &v
	return s
}

// SetMonitoringOutputs sets the MonitoringOutputs field's value.
func (s *MonitoringOutputConfig) SetMonitoringOutputs(v []*MonitoringOutput) *MonitoringOutputConfig {
	s.MonitoringOutputs = v
	return s
}

// Represents the Parquet dataset format used when running a monitoring job.
type MonitoringParquetDatasetFormat struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringParquetDatasetFormat) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringParquetDatasetFormat) GoString() string {
	return s.String()
}

// Identifies the resources to deploy for a monitoring job.
type MonitoringResources struct {
	_ struct{} `type:"structure"`

	// The configuration for the cluster resources used to run the processing job.
	//
	// ClusterConfig is a required field
	ClusterConfig *MonitoringClusterConfig `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringResources) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringResources) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *MonitoringResources) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "MonitoringResources"}
	if s.ClusterConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("ClusterConfig"))
	}
	if s.ClusterConfig != nil {
		if err := s.ClusterConfig.Validate(); err != nil {
			invalidParams.AddNested("ClusterConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClusterConfig sets the ClusterConfig field's value.
func (s *MonitoringResources) SetClusterConfig(v *MonitoringClusterConfig) *MonitoringResources {
	s.ClusterConfig = v
	return s
}

// Information about where and how you want to store the results of a monitoring
// job.
type MonitoringS3Output struct {
	_ struct{} `type:"structure"`

	// The local path to the Amazon S3 storage location where Amazon SageMaker saves
	// the results of a monitoring job. LocalPath is an absolute path for the output
	// data.
	//
	// LocalPath is a required field
	LocalPath *string `type:"string" required:"true"`

	// Whether to upload the results of the monitoring job continuously or after
	// the job completes.
	S3UploadMode *string `type:"string" enum:"ProcessingS3UploadMode"`

	// A URI that identifies the Amazon S3 storage location where Amazon SageMaker
	// saves the results of a monitoring job.
	//
	// S3Uri is a required field
	S3Uri *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringS3Output) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringS3Output) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *MonitoringS3Output) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "MonitoringS3Output"}
	if s.LocalPath == nil {
		invalidParams.Add(request.NewErrParamRequired("LocalPath"))
	}
	if s.S3Uri == nil {
		invalidParams.Add(request.NewErrParamRequired("S3Uri"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetLocalPath sets the LocalPath field's value.
func (s *MonitoringS3Output) SetLocalPath(v string) *MonitoringS3Output {
	s.LocalPath = &v
	return s
}

// SetS3UploadMode sets the S3UploadMode field's value.
func (s *MonitoringS3Output) SetS3UploadMode(v string) *MonitoringS3Output {
	s.S3UploadMode = &v
	return s
}

// SetS3Uri sets the S3Uri field's value.
func (s *MonitoringS3Output) SetS3Uri(v string) *MonitoringS3Output {
	s.S3Uri = &v
	return s
}

// A schedule for a model monitoring job. For information about model monitor,
// see Amazon SageMaker Model Monitor (https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor.html).
type MonitoringSchedule struct {
	_ struct{} `type:"structure"`

	// The time that the monitoring schedule was created.
	CreationTime *time.Time `type:"timestamp"`

	// The endpoint that hosts the model being monitored.
	EndpointName *string `type:"string"`

	// If the monitoring schedule failed, the reason it failed.
	FailureReason *string `type:"string"`

	// The last time the monitoring schedule was changed.
	LastModifiedTime *time.Time `type:"timestamp"`

	// Summary of information about the last monitoring job to run.
	LastMonitoringExecutionSummary *MonitoringExecutionSummary `type:"structure"`

	// The Amazon Resource Name (ARN) of the monitoring schedule.
	MonitoringScheduleArn *string `type:"string"`

	// Configures the monitoring schedule and defines the monitoring job.
	MonitoringScheduleConfig *MonitoringScheduleConfig `type:"structure"`

	// The name of the monitoring schedule.
	MonitoringScheduleName *string `min:"1" type:"string"`

	// The status of the monitoring schedule. This can be one of the following values.
	//
	//    * PENDING - The schedule is pending being created.
	//
	//    * FAILED - The schedule failed.
	//
	//    * SCHEDULED - The schedule was successfully created.
	//
	//    * STOPPED - The schedule was stopped.
	MonitoringScheduleStatus *string `type:"string" enum:"ScheduleStatus"`

	// The type of the monitoring job definition to schedule.
	MonitoringType *string `type:"string" enum:"MonitoringType"`

	// A list of the tags associated with the monitoring schedlue. For more information,
	// see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)
	// in the Amazon Web Services General Reference Guide.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringSchedule) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringSchedule) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *MonitoringSchedule) SetCreationTime(v time.Time) *MonitoringSchedule {
	s.CreationTime = &v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *MonitoringSchedule) SetEndpointName(v string) *MonitoringSchedule {
	s.EndpointName = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *MonitoringSchedule) SetFailureReason(v string) *MonitoringSchedule {
	s.FailureReason = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *MonitoringSchedule) SetLastModifiedTime(v time.Time) *MonitoringSchedule {
	s.LastModifiedTime = &v
	return s
}

// SetLastMonitoringExecutionSummary sets the LastMonitoringExecutionSummary field's value.
func (s *MonitoringSchedule) SetLastMonitoringExecutionSummary(v *MonitoringExecutionSummary) *MonitoringSchedule {
	s.LastMonitoringExecutionSummary = v
	return s
}

// SetMonitoringScheduleArn sets the MonitoringScheduleArn field's value.
func (s *MonitoringSchedule) SetMonitoringScheduleArn(v string) *MonitoringSchedule {
	s.MonitoringScheduleArn = &v
	return s
}

// SetMonitoringScheduleConfig sets the MonitoringScheduleConfig field's value.
func (s *MonitoringSchedule) SetMonitoringScheduleConfig(v *MonitoringScheduleConfig) *MonitoringSchedule {
	s.MonitoringScheduleConfig = v
	return s
}

// SetMonitoringScheduleName sets the MonitoringScheduleName field's value.
func (s *MonitoringSchedule) SetMonitoringScheduleName(v string) *MonitoringSchedule {
	s.MonitoringScheduleName = &v
	return s
}

// SetMonitoringScheduleStatus sets the MonitoringScheduleStatus field's value.
func (s *MonitoringSchedule) SetMonitoringScheduleStatus(v string) *MonitoringSchedule {
	s.MonitoringScheduleStatus = &v
	return s
}

// SetMonitoringType sets the MonitoringType field's value.
func (s *MonitoringSchedule) SetMonitoringType(v string) *MonitoringSchedule {
	s.MonitoringType = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *MonitoringSchedule) SetTags(v []*Tag) *MonitoringSchedule {
	s.Tags = v
	return s
}

// Configures the monitoring schedule and defines the monitoring job.
type MonitoringScheduleConfig struct {
	_ struct{} `type:"structure"`

	// Defines the monitoring job.
	MonitoringJobDefinition *MonitoringJobDefinition `type:"structure"`

	// The name of the monitoring job definition to schedule.
	MonitoringJobDefinitionName *string `min:"1" type:"string"`

	// The type of the monitoring job definition to schedule.
	MonitoringType *string `type:"string" enum:"MonitoringType"`

	// Configures the monitoring schedule.
	ScheduleConfig *ScheduleConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringScheduleConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringScheduleConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *MonitoringScheduleConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "MonitoringScheduleConfig"}
	if s.MonitoringJobDefinitionName != nil && len(*s.MonitoringJobDefinitionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MonitoringJobDefinitionName", 1))
	}
	if s.MonitoringJobDefinition != nil {
		if err := s.MonitoringJobDefinition.Validate(); err != nil {
			invalidParams.AddNested("MonitoringJobDefinition", err.(request.ErrInvalidParams))
		}
	}
	if s.ScheduleConfig != nil {
		if err := s.ScheduleConfig.Validate(); err != nil {
			invalidParams.AddNested("ScheduleConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMonitoringJobDefinition sets the MonitoringJobDefinition field's value.
func (s *MonitoringScheduleConfig) SetMonitoringJobDefinition(v *MonitoringJobDefinition) *MonitoringScheduleConfig {
	s.MonitoringJobDefinition = v
	return s
}

// SetMonitoringJobDefinitionName sets the MonitoringJobDefinitionName field's value.
func (s *MonitoringScheduleConfig) SetMonitoringJobDefinitionName(v string) *MonitoringScheduleConfig {
	s.MonitoringJobDefinitionName = &v
	return s
}

// SetMonitoringType sets the MonitoringType field's value.
func (s *MonitoringScheduleConfig) SetMonitoringType(v string) *MonitoringScheduleConfig {
	s.MonitoringType = &v
	return s
}

// SetScheduleConfig sets the ScheduleConfig field's value.
func (s *MonitoringScheduleConfig) SetScheduleConfig(v *ScheduleConfig) *MonitoringScheduleConfig {
	s.ScheduleConfig = v
	return s
}

// Summarizes the monitoring schedule.
type MonitoringScheduleSummary struct {
	_ struct{} `type:"structure"`

	// The creation time of the monitoring schedule.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The name of the endpoint using the monitoring schedule.
	EndpointName *string `type:"string"`

	// The last time the monitoring schedule was modified.
	//
	// LastModifiedTime is a required field
	LastModifiedTime *time.Time `type:"timestamp" required:"true"`

	// The name of the monitoring job definition that the schedule is for.
	MonitoringJobDefinitionName *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) of the monitoring schedule.
	//
	// MonitoringScheduleArn is a required field
	MonitoringScheduleArn *string `type:"string" required:"true"`

	// The name of the monitoring schedule.
	//
	// MonitoringScheduleName is a required field
	MonitoringScheduleName *string `min:"1" type:"string" required:"true"`

	// The status of the monitoring schedule.
	//
	// MonitoringScheduleStatus is a required field
	MonitoringScheduleStatus *string `type:"string" required:"true" enum:"ScheduleStatus"`

	// The type of the monitoring job definition that the schedule is for.
	MonitoringType *string `type:"string" enum:"MonitoringType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringScheduleSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringScheduleSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *MonitoringScheduleSummary) SetCreationTime(v time.Time) *MonitoringScheduleSummary {
	s.CreationTime = &v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *MonitoringScheduleSummary) SetEndpointName(v string) *MonitoringScheduleSummary {
	s.EndpointName = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *MonitoringScheduleSummary) SetLastModifiedTime(v time.Time) *MonitoringScheduleSummary {
	s.LastModifiedTime = &v
	return s
}

// SetMonitoringJobDefinitionName sets the MonitoringJobDefinitionName field's value.
func (s *MonitoringScheduleSummary) SetMonitoringJobDefinitionName(v string) *MonitoringScheduleSummary {
	s.MonitoringJobDefinitionName = &v
	return s
}

// SetMonitoringScheduleArn sets the MonitoringScheduleArn field's value.
func (s *MonitoringScheduleSummary) SetMonitoringScheduleArn(v string) *MonitoringScheduleSummary {
	s.MonitoringScheduleArn = &v
	return s
}

// SetMonitoringScheduleName sets the MonitoringScheduleName field's value.
func (s *MonitoringScheduleSummary) SetMonitoringScheduleName(v string) *MonitoringScheduleSummary {
	s.MonitoringScheduleName = &v
	return s
}

// SetMonitoringScheduleStatus sets the MonitoringScheduleStatus field's value.
func (s *MonitoringScheduleSummary) SetMonitoringScheduleStatus(v string) *MonitoringScheduleSummary {
	s.MonitoringScheduleStatus = &v
	return s
}

// SetMonitoringType sets the MonitoringType field's value.
func (s *MonitoringScheduleSummary) SetMonitoringType(v string) *MonitoringScheduleSummary {
	s.MonitoringType = &v
	return s
}

// The statistics resource for a monitoring job.
type MonitoringStatisticsResource struct {
	_ struct{} `type:"structure"`

	// The Amazon S3 URI for the statistics resource.
	S3Uri *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringStatisticsResource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringStatisticsResource) GoString() string {
	return s.String()
}

// SetS3Uri sets the S3Uri field's value.
func (s *MonitoringStatisticsResource) SetS3Uri(v string) *MonitoringStatisticsResource {
	s.S3Uri = &v
	return s
}

// A time limit for how long the monitoring job is allowed to run before stopping.
type MonitoringStoppingCondition struct {
	_ struct{} `type:"structure"`

	// The maximum runtime allowed in seconds.
	//
	// The MaxRuntimeInSeconds cannot exceed the frequency of the job. For data
	// quality and model explainability, this can be up to 3600 seconds for an hourly
	// schedule. For model bias and model quality hourly schedules, this can be
	// up to 1800 seconds.
	//
	// MaxRuntimeInSeconds is a required field
	MaxRuntimeInSeconds *int64 `min:"1" type:"integer" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringStoppingCondition) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MonitoringStoppingCondition) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *MonitoringStoppingCondition) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "MonitoringStoppingCondition"}
	if s.MaxRuntimeInSeconds == nil {
		invalidParams.Add(request.NewErrParamRequired("MaxRuntimeInSeconds"))
	}
	if s.MaxRuntimeInSeconds != nil && *s.MaxRuntimeInSeconds < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxRuntimeInSeconds", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxRuntimeInSeconds sets the MaxRuntimeInSeconds field's value.
func (s *MonitoringStoppingCondition) SetMaxRuntimeInSeconds(v int64) *MonitoringStoppingCondition {
	s.MaxRuntimeInSeconds = &v
	return s
}

// Specifies additional configuration for hosting multi-model endpoints.
type MultiModelConfig struct {
	_ struct{} `type:"structure"`

	// Whether to cache models for a multi-model endpoint. By default, multi-model
	// endpoints cache models so that a model does not have to be loaded into memory
	// each time it is invoked. Some use cases do not benefit from model caching.
	// For example, if an endpoint hosts a large number of models that are each
	// invoked infrequently, the endpoint might perform better if you disable model
	// caching. To disable model caching, set the value of this parameter to Disabled.
	ModelCacheSetting *string `type:"string" enum:"ModelCacheSetting"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MultiModelConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MultiModelConfig) GoString() string {
	return s.String()
}

// SetModelCacheSetting sets the ModelCacheSetting field's value.
func (s *MultiModelConfig) SetModelCacheSetting(v string) *MultiModelConfig {
	s.ModelCacheSetting = &v
	return s
}

// The VpcConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html)
// configuration object that specifies the VPC that you want the compilation
// jobs to connect to. For more information on controlling access to your Amazon
// S3 buckets used for compilation job, see Give Amazon SageMaker Compilation
// Jobs Access to Resources in Your Amazon VPC (https://docs.aws.amazon.com/sagemaker/latest/dg/neo-vpc.html).
type NeoVpcConfig struct {
	_ struct{} `type:"structure"`

	// The VPC security group IDs. IDs have the form of sg-xxxxxxxx. Specify the
	// security groups for the VPC that is specified in the Subnets field.
	//
	// SecurityGroupIds is a required field
	SecurityGroupIds []*string `min:"1" type:"list" required:"true"`

	// The ID of the subnets in the VPC that you want to connect the compilation
	// job to for accessing the model in Amazon S3.
	//
	// Subnets is a required field
	Subnets []*string `min:"1" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NeoVpcConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NeoVpcConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *NeoVpcConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "NeoVpcConfig"}
	if s.SecurityGroupIds == nil {
		invalidParams.Add(request.NewErrParamRequired("SecurityGroupIds"))
	}
	if s.SecurityGroupIds != nil && len(s.SecurityGroupIds) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SecurityGroupIds", 1))
	}
	if s.Subnets == nil {
		invalidParams.Add(request.NewErrParamRequired("Subnets"))
	}
	if s.Subnets != nil && len(s.Subnets) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Subnets", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSecurityGroupIds sets the SecurityGroupIds field's value.
func (s *NeoVpcConfig) SetSecurityGroupIds(v []*string) *NeoVpcConfig {
	s.SecurityGroupIds = v
	return s
}

// SetSubnets sets the Subnets field's value.
func (s *NeoVpcConfig) SetSubnets(v []*string) *NeoVpcConfig {
	s.Subnets = v
	return s
}

// A list of nested Filter (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Filter.html)
// objects. A resource must satisfy the conditions of all filters to be included
// in the results returned from the Search (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html)
// API.
//
// For example, to filter on a training job's InputDataConfig property with
// a specific channel name and S3Uri prefix, define the following filters:
//
//   - '{Name:"InputDataConfig.ChannelName", "Operator":"Equals", "Value":"train"}',
//
//   - '{Name:"InputDataConfig.DataSource.S3DataSource.S3Uri", "Operator":"Contains",
//     "Value":"mybucket/catdata"}'
type NestedFilters struct {
	_ struct{} `type:"structure"`

	// A list of filters. Each filter acts on a property. Filters must contain at
	// least one Filters value. For example, a NestedFilters call might include
	// a filter on the PropertyName parameter of the InputDataConfig property: InputDataConfig.DataSource.S3DataSource.S3Uri.
	//
	// Filters is a required field
	Filters []*Filter `min:"1" type:"list" required:"true"`

	// The name of the property to use in the nested filters. The value must match
	// a listed property name, such as InputDataConfig.
	//
	// NestedPropertyName is a required field
	NestedPropertyName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NestedFilters) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NestedFilters) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *NestedFilters) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "NestedFilters"}
	if s.Filters == nil {
		invalidParams.Add(request.NewErrParamRequired("Filters"))
	}
	if s.Filters != nil && len(s.Filters) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Filters", 1))
	}
	if s.NestedPropertyName == nil {
		invalidParams.Add(request.NewErrParamRequired("NestedPropertyName"))
	}
	if s.NestedPropertyName != nil && len(*s.NestedPropertyName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NestedPropertyName", 1))
	}
	if s.Filters != nil {
		for i, v := range s.Filters {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFilters sets the Filters field's value.
func (s *NestedFilters) SetFilters(v []*Filter) *NestedFilters {
	s.Filters = v
	return s
}

// SetNestedPropertyName sets the NestedPropertyName field's value.
func (s *NestedFilters) SetNestedPropertyName(v string) *NestedFilters {
	s.NestedPropertyName = &v
	return s
}

// Networking options for a job, such as network traffic encryption between
// containers, whether to allow inbound and outbound network calls to and from
// containers, and the VPC subnets and security groups to use for VPC-enabled
// jobs.
type NetworkConfig struct {
	_ struct{} `type:"structure"`

	// Whether to encrypt all communications between distributed processing jobs.
	// Choose True to encrypt communications. Encryption provides greater security
	// for distributed processing jobs, but the processing might take longer.
	EnableInterContainerTrafficEncryption *bool `type:"boolean"`

	// Whether to allow inbound and outbound network calls to and from the containers
	// used for the processing job.
	EnableNetworkIsolation *bool `type:"boolean"`

	// Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs,
	// hosted models, and compute resources have access to. You can control access
	// to and from your resources by configuring a VPC. For more information, see
	// Give SageMaker Access to Resources in your Amazon VPC (https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html).
	VpcConfig *VpcConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NetworkConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NetworkConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *NetworkConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "NetworkConfig"}
	if s.VpcConfig != nil {
		if err := s.VpcConfig.Validate(); err != nil {
			invalidParams.AddNested("VpcConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEnableInterContainerTrafficEncryption sets the EnableInterContainerTrafficEncryption field's value.
func (s *NetworkConfig) SetEnableInterContainerTrafficEncryption(v bool) *NetworkConfig {
	s.EnableInterContainerTrafficEncryption = &v
	return s
}

// SetEnableNetworkIsolation sets the EnableNetworkIsolation field's value.
func (s *NetworkConfig) SetEnableNetworkIsolation(v bool) *NetworkConfig {
	s.EnableNetworkIsolation = &v
	return s
}

// SetVpcConfig sets the VpcConfig field's value.
func (s *NetworkConfig) SetVpcConfig(v *VpcConfig) *NetworkConfig {
	s.VpcConfig = v
	return s
}

// Provides a summary of a notebook instance lifecycle configuration.
type NotebookInstanceLifecycleConfigSummary struct {
	_ struct{} `type:"structure"`

	// A timestamp that tells when the lifecycle configuration was created.
	CreationTime *time.Time `type:"timestamp"`

	// A timestamp that tells when the lifecycle configuration was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the lifecycle configuration.
	//
	// NotebookInstanceLifecycleConfigArn is a required field
	NotebookInstanceLifecycleConfigArn *string `type:"string" required:"true"`

	// The name of the lifecycle configuration.
	//
	// NotebookInstanceLifecycleConfigName is a required field
	NotebookInstanceLifecycleConfigName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotebookInstanceLifecycleConfigSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotebookInstanceLifecycleConfigSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *NotebookInstanceLifecycleConfigSummary) SetCreationTime(v time.Time) *NotebookInstanceLifecycleConfigSummary {
	s.CreationTime = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *NotebookInstanceLifecycleConfigSummary) SetLastModifiedTime(v time.Time) *NotebookInstanceLifecycleConfigSummary {
	s.LastModifiedTime = &v
	return s
}

// SetNotebookInstanceLifecycleConfigArn sets the NotebookInstanceLifecycleConfigArn field's value.
func (s *NotebookInstanceLifecycleConfigSummary) SetNotebookInstanceLifecycleConfigArn(v string) *NotebookInstanceLifecycleConfigSummary {
	s.NotebookInstanceLifecycleConfigArn = &v
	return s
}

// SetNotebookInstanceLifecycleConfigName sets the NotebookInstanceLifecycleConfigName field's value.
func (s *NotebookInstanceLifecycleConfigSummary) SetNotebookInstanceLifecycleConfigName(v string) *NotebookInstanceLifecycleConfigSummary {
	s.NotebookInstanceLifecycleConfigName = &v
	return s
}

// Contains the notebook instance lifecycle configuration script.
//
// Each lifecycle configuration script has a limit of 16384 characters.
//
// The value of the $PATH environment variable that is available to both scripts
// is /sbin:bin:/usr/sbin:/usr/bin.
//
// View CloudWatch Logs for notebook instance lifecycle configurations in log
// group /aws/sagemaker/NotebookInstances in log stream [notebook-instance-name]/[LifecycleConfigHook].
//
// Lifecycle configuration scripts cannot run for longer than 5 minutes. If
// a script runs for longer than 5 minutes, it fails and the notebook instance
// is not created or started.
//
// For information about notebook instance lifestyle configurations, see Step
// 2.1: (Optional) Customize a Notebook Instance (https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html).
type NotebookInstanceLifecycleHook struct {
	_ struct{} `type:"structure"`

	// A base64-encoded string that contains a shell script for a notebook instance
	// lifecycle configuration.
	Content *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotebookInstanceLifecycleHook) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotebookInstanceLifecycleHook) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *NotebookInstanceLifecycleHook) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "NotebookInstanceLifecycleHook"}
	if s.Content != nil && len(*s.Content) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Content", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContent sets the Content field's value.
func (s *NotebookInstanceLifecycleHook) SetContent(v string) *NotebookInstanceLifecycleHook {
	s.Content = &v
	return s
}

// Provides summary information for an SageMaker notebook instance.
type NotebookInstanceSummary struct {
	_ struct{} `type:"structure"`

	// An array of up to three Git repositories associated with the notebook instance.
	// These can be either the names of Git repositories stored as resources in
	// your account, or the URL of Git repositories in Amazon Web Services CodeCommit
	// (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) or
	// in any other Git repository. These repositories are cloned at the same level
	// as the default repository of your notebook instance. For more information,
	// see Associating Git Repositories with SageMaker Notebook Instances (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html).
	AdditionalCodeRepositories []*string `type:"list"`

	// A timestamp that shows when the notebook instance was created.
	CreationTime *time.Time `type:"timestamp"`

	// The Git repository associated with the notebook instance as its default code
	// repository. This can be either the name of a Git repository stored as a resource
	// in your account, or the URL of a Git repository in Amazon Web Services CodeCommit
	// (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) or
	// in any other Git repository. When you open a notebook instance, it opens
	// in the directory that contains this repository. For more information, see
	// Associating Git Repositories with SageMaker Notebook Instances (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html).
	DefaultCodeRepository *string `min:"1" type:"string"`

	// The type of ML compute instance that the notebook instance is running on.
	InstanceType *string `type:"string" enum:"InstanceType"`

	// A timestamp that shows when the notebook instance was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the notebook instance.
	//
	// NotebookInstanceArn is a required field
	NotebookInstanceArn *string `type:"string" required:"true"`

	// The name of a notebook instance lifecycle configuration associated with this
	// notebook instance.
	//
	// For information about notebook instance lifestyle configurations, see Step
	// 2.1: (Optional) Customize a Notebook Instance (https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html).
	NotebookInstanceLifecycleConfigName *string `type:"string"`

	// The name of the notebook instance that you want a summary for.
	//
	// NotebookInstanceName is a required field
	NotebookInstanceName *string `type:"string" required:"true"`

	// The status of the notebook instance.
	NotebookInstanceStatus *string `type:"string" enum:"NotebookInstanceStatus"`

	// The URL that you use to connect to the Jupyter notebook running in your notebook
	// instance.
	Url *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotebookInstanceSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotebookInstanceSummary) GoString() string {
	return s.String()
}

// SetAdditionalCodeRepositories sets the AdditionalCodeRepositories field's value.
func (s *NotebookInstanceSummary) SetAdditionalCodeRepositories(v []*string) *NotebookInstanceSummary {
	s.AdditionalCodeRepositories = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *NotebookInstanceSummary) SetCreationTime(v time.Time) *NotebookInstanceSummary {
	s.CreationTime = &v
	return s
}

// SetDefaultCodeRepository sets the DefaultCodeRepository field's value.
func (s *NotebookInstanceSummary) SetDefaultCodeRepository(v string) *NotebookInstanceSummary {
	s.DefaultCodeRepository = &v
	return s
}

// SetInstanceType sets the InstanceType field's value.
func (s *NotebookInstanceSummary) SetInstanceType(v string) *NotebookInstanceSummary {
	s.InstanceType = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *NotebookInstanceSummary) SetLastModifiedTime(v time.Time) *NotebookInstanceSummary {
	s.LastModifiedTime = &v
	return s
}

// SetNotebookInstanceArn sets the NotebookInstanceArn field's value.
func (s *NotebookInstanceSummary) SetNotebookInstanceArn(v string) *NotebookInstanceSummary {
	s.NotebookInstanceArn = &v
	return s
}

// SetNotebookInstanceLifecycleConfigName sets the NotebookInstanceLifecycleConfigName field's value.
func (s *NotebookInstanceSummary) SetNotebookInstanceLifecycleConfigName(v string) *NotebookInstanceSummary {
	s.NotebookInstanceLifecycleConfigName = &v
	return s
}

// SetNotebookInstanceName sets the NotebookInstanceName field's value.
func (s *NotebookInstanceSummary) SetNotebookInstanceName(v string) *NotebookInstanceSummary {
	s.NotebookInstanceName = &v
	return s
}

// SetNotebookInstanceStatus sets the NotebookInstanceStatus field's value.
func (s *NotebookInstanceSummary) SetNotebookInstanceStatus(v string) *NotebookInstanceSummary {
	s.NotebookInstanceStatus = &v
	return s
}

// SetUrl sets the Url field's value.
func (s *NotebookInstanceSummary) SetUrl(v string) *NotebookInstanceSummary {
	s.Url = &v
	return s
}

// Configures Amazon SNS notifications of available or expiring work items for
// work teams.
type NotificationConfiguration struct {
	_ struct{} `type:"structure"`

	// The ARN for the Amazon SNS topic to which notifications should be published.
	NotificationTopicArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotificationConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotificationConfiguration) GoString() string {
	return s.String()
}

// SetNotificationTopicArn sets the NotificationTopicArn field's value.
func (s *NotificationConfiguration) SetNotificationTopicArn(v string) *NotificationConfiguration {
	s.NotificationTopicArn = &v
	return s
}

// Specifies the number of training jobs that this hyperparameter tuning job
// launched, categorized by the status of their objective metric. The objective
// metric status shows whether the final objective metric for the training job
// has been evaluated by the tuning job and used in the hyperparameter tuning
// process.
type ObjectiveStatusCounters struct {
	_ struct{} `type:"structure"`

	// The number of training jobs whose final objective metric was not evaluated
	// and used in the hyperparameter tuning process. This typically occurs when
	// the training job failed or did not emit an objective metric.
	Failed *int64 `type:"integer"`

	// The number of training jobs that are in progress and pending evaluation of
	// their final objective metric.
	Pending *int64 `type:"integer"`

	// The number of training jobs whose final objective metric was evaluated by
	// the hyperparameter tuning job and used in the hyperparameter tuning process.
	Succeeded *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ObjectiveStatusCounters) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ObjectiveStatusCounters) GoString() string {
	return s.String()
}

// SetFailed sets the Failed field's value.
func (s *ObjectiveStatusCounters) SetFailed(v int64) *ObjectiveStatusCounters {
	s.Failed = &v
	return s
}

// SetPending sets the Pending field's value.
func (s *ObjectiveStatusCounters) SetPending(v int64) *ObjectiveStatusCounters {
	s.Pending = &v
	return s
}

// SetSucceeded sets the Succeeded field's value.
func (s *ObjectiveStatusCounters) SetSucceeded(v int64) *ObjectiveStatusCounters {
	s.Succeeded = &v
	return s
}

// The configuration of an OfflineStore.
//
// Provide an OfflineStoreConfig in a request to CreateFeatureGroup to create
// an OfflineStore.
//
// To encrypt an OfflineStore using at rest data encryption, specify Amazon
// Web Services Key Management Service (KMS) key ID, or KMSKeyId, in S3StorageConfig.
type OfflineStoreConfig struct {
	_ struct{} `type:"structure"`

	// The meta data of the Glue table that is autogenerated when an OfflineStore
	// is created.
	DataCatalogConfig *DataCatalogConfig `type:"structure"`

	// Set to True to disable the automatic creation of an Amazon Web Services Glue
	// table when configuring an OfflineStore. If set to False, Feature Store will
	// name the OfflineStore Glue table following Athena's naming recommendations
	// (https://docs.aws.amazon.com/athena/latest/ug/tables-databases-columns-names.html).
	//
	// The default value is False.
	DisableGlueTableCreation *bool `type:"boolean"`

	// The Amazon Simple Storage (Amazon S3) location of OfflineStore.
	//
	// S3StorageConfig is a required field
	S3StorageConfig *S3StorageConfig `type:"structure" required:"true"`

	// Format for the offline store table. Supported formats are Glue (Default)
	// and Apache Iceberg (https://iceberg.apache.org/).
	TableFormat *string `type:"string" enum:"TableFormat"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OfflineStoreConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OfflineStoreConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *OfflineStoreConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "OfflineStoreConfig"}
	if s.S3StorageConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("S3StorageConfig"))
	}
	if s.DataCatalogConfig != nil {
		if err := s.DataCatalogConfig.Validate(); err != nil {
			invalidParams.AddNested("DataCatalogConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.S3StorageConfig != nil {
		if err := s.S3StorageConfig.Validate(); err != nil {
			invalidParams.AddNested("S3StorageConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDataCatalogConfig sets the DataCatalogConfig field's value.
func (s *OfflineStoreConfig) SetDataCatalogConfig(v *DataCatalogConfig) *OfflineStoreConfig {
	s.DataCatalogConfig = v
	return s
}

// SetDisableGlueTableCreation sets the DisableGlueTableCreation field's value.
func (s *OfflineStoreConfig) SetDisableGlueTableCreation(v bool) *OfflineStoreConfig {
	s.DisableGlueTableCreation = &v
	return s
}

// SetS3StorageConfig sets the S3StorageConfig field's value.
func (s *OfflineStoreConfig) SetS3StorageConfig(v *S3StorageConfig) *OfflineStoreConfig {
	s.S3StorageConfig = v
	return s
}

// SetTableFormat sets the TableFormat field's value.
func (s *OfflineStoreConfig) SetTableFormat(v string) *OfflineStoreConfig {
	s.TableFormat = &v
	return s
}

// The status of OfflineStore.
type OfflineStoreStatus struct {
	_ struct{} `type:"structure"`

	// The justification for why the OfflineStoreStatus is Blocked (if applicable).
	BlockedReason *string `type:"string"`

	// An OfflineStore status.
	//
	// Status is a required field
	Status *string `type:"string" required:"true" enum:"OfflineStoreStatusValue"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OfflineStoreStatus) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OfflineStoreStatus) GoString() string {
	return s.String()
}

// SetBlockedReason sets the BlockedReason field's value.
func (s *OfflineStoreStatus) SetBlockedReason(v string) *OfflineStoreStatus {
	s.BlockedReason = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *OfflineStoreStatus) SetStatus(v string) *OfflineStoreStatus {
	s.Status = &v
	return s
}

// Use this parameter to configure your OIDC Identity Provider (IdP).
type OidcConfig struct {
	_ struct{} `type:"structure"`

	// The OIDC IdP authorization endpoint used to configure your private workforce.
	//
	// AuthorizationEndpoint is a required field
	AuthorizationEndpoint *string `type:"string" required:"true"`

	// The OIDC IdP client ID used to configure your private workforce.
	//
	// ClientId is a required field
	ClientId *string `min:"1" type:"string" required:"true"`

	// The OIDC IdP client secret used to configure your private workforce.
	//
	// ClientSecret is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by OidcConfig's
	// String and GoString methods.
	//
	// ClientSecret is a required field
	ClientSecret *string `min:"1" type:"string" required:"true" sensitive:"true"`

	// The OIDC IdP issuer used to configure your private workforce.
	//
	// Issuer is a required field
	Issuer *string `type:"string" required:"true"`

	// The OIDC IdP JSON Web Key Set (Jwks) URI used to configure your private workforce.
	//
	// JwksUri is a required field
	JwksUri *string `type:"string" required:"true"`

	// The OIDC IdP logout endpoint used to configure your private workforce.
	//
	// LogoutEndpoint is a required field
	LogoutEndpoint *string `type:"string" required:"true"`

	// The OIDC IdP token endpoint used to configure your private workforce.
	//
	// TokenEndpoint is a required field
	TokenEndpoint *string `type:"string" required:"true"`

	// The OIDC IdP user information endpoint used to configure your private workforce.
	//
	// UserInfoEndpoint is a required field
	UserInfoEndpoint *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OidcConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OidcConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *OidcConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "OidcConfig"}
	if s.AuthorizationEndpoint == nil {
		invalidParams.Add(request.NewErrParamRequired("AuthorizationEndpoint"))
	}
	if s.ClientId == nil {
		invalidParams.Add(request.NewErrParamRequired("ClientId"))
	}
	if s.ClientId != nil && len(*s.ClientId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ClientId", 1))
	}
	if s.ClientSecret == nil {
		invalidParams.Add(request.NewErrParamRequired("ClientSecret"))
	}
	if s.ClientSecret != nil && len(*s.ClientSecret) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ClientSecret", 1))
	}
	if s.Issuer == nil {
		invalidParams.Add(request.NewErrParamRequired("Issuer"))
	}
	if s.JwksUri == nil {
		invalidParams.Add(request.NewErrParamRequired("JwksUri"))
	}
	if s.LogoutEndpoint == nil {
		invalidParams.Add(request.NewErrParamRequired("LogoutEndpoint"))
	}
	if s.TokenEndpoint == nil {
		invalidParams.Add(request.NewErrParamRequired("TokenEndpoint"))
	}
	if s.UserInfoEndpoint == nil {
		invalidParams.Add(request.NewErrParamRequired("UserInfoEndpoint"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAuthorizationEndpoint sets the AuthorizationEndpoint field's value.
func (s *OidcConfig) SetAuthorizationEndpoint(v string) *OidcConfig {
	s.AuthorizationEndpoint = &v
	return s
}

// SetClientId sets the ClientId field's value.
func (s *OidcConfig) SetClientId(v string) *OidcConfig {
	s.ClientId = &v
	return s
}

// SetClientSecret sets the ClientSecret field's value.
func (s *OidcConfig) SetClientSecret(v string) *OidcConfig {
	s.ClientSecret = &v
	return s
}

// SetIssuer sets the Issuer field's value.
func (s *OidcConfig) SetIssuer(v string) *OidcConfig {
	s.Issuer = &v
	return s
}

// SetJwksUri sets the JwksUri field's value.
func (s *OidcConfig) SetJwksUri(v string) *OidcConfig {
	s.JwksUri = &v
	return s
}

// SetLogoutEndpoint sets the LogoutEndpoint field's value.
func (s *OidcConfig) SetLogoutEndpoint(v string) *OidcConfig {
	s.LogoutEndpoint = &v
	return s
}

// SetTokenEndpoint sets the TokenEndpoint field's value.
func (s *OidcConfig) SetTokenEndpoint(v string) *OidcConfig {
	s.TokenEndpoint = &v
	return s
}

// SetUserInfoEndpoint sets the UserInfoEndpoint field's value.
func (s *OidcConfig) SetUserInfoEndpoint(v string) *OidcConfig {
	s.UserInfoEndpoint = &v
	return s
}

// Your OIDC IdP workforce configuration.
type OidcConfigForResponse struct {
	_ struct{} `type:"structure"`

	// The OIDC IdP authorization endpoint used to configure your private workforce.
	AuthorizationEndpoint *string `type:"string"`

	// The OIDC IdP client ID used to configure your private workforce.
	ClientId *string `min:"1" type:"string"`

	// The OIDC IdP issuer used to configure your private workforce.
	Issuer *string `type:"string"`

	// The OIDC IdP JSON Web Key Set (Jwks) URI used to configure your private workforce.
	JwksUri *string `type:"string"`

	// The OIDC IdP logout endpoint used to configure your private workforce.
	LogoutEndpoint *string `type:"string"`

	// The OIDC IdP token endpoint used to configure your private workforce.
	TokenEndpoint *string `type:"string"`

	// The OIDC IdP user information endpoint used to configure your private workforce.
	UserInfoEndpoint *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OidcConfigForResponse) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OidcConfigForResponse) GoString() string {
	return s.String()
}

// SetAuthorizationEndpoint sets the AuthorizationEndpoint field's value.
func (s *OidcConfigForResponse) SetAuthorizationEndpoint(v string) *OidcConfigForResponse {
	s.AuthorizationEndpoint = &v
	return s
}

// SetClientId sets the ClientId field's value.
func (s *OidcConfigForResponse) SetClientId(v string) *OidcConfigForResponse {
	s.ClientId = &v
	return s
}

// SetIssuer sets the Issuer field's value.
func (s *OidcConfigForResponse) SetIssuer(v string) *OidcConfigForResponse {
	s.Issuer = &v
	return s
}

// SetJwksUri sets the JwksUri field's value.
func (s *OidcConfigForResponse) SetJwksUri(v string) *OidcConfigForResponse {
	s.JwksUri = &v
	return s
}

// SetLogoutEndpoint sets the LogoutEndpoint field's value.
func (s *OidcConfigForResponse) SetLogoutEndpoint(v string) *OidcConfigForResponse {
	s.LogoutEndpoint = &v
	return s
}

// SetTokenEndpoint sets the TokenEndpoint field's value.
func (s *OidcConfigForResponse) SetTokenEndpoint(v string) *OidcConfigForResponse {
	s.TokenEndpoint = &v
	return s
}

// SetUserInfoEndpoint sets the UserInfoEndpoint field's value.
func (s *OidcConfigForResponse) SetUserInfoEndpoint(v string) *OidcConfigForResponse {
	s.UserInfoEndpoint = &v
	return s
}

// A list of user groups that exist in your OIDC Identity Provider (IdP). One
// to ten groups can be used to create a single private work team. When you
// add a user group to the list of Groups, you can add that user group to one
// or more private work teams. If you add a user group to a private work team,
// all workers in that user group are added to the work team.
type OidcMemberDefinition struct {
	_ struct{} `type:"structure"`

	// A list of comma seperated strings that identifies user groups in your OIDC
	// IdP. Each user group is made up of a group of private workers.
	Groups []*string `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OidcMemberDefinition) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OidcMemberDefinition) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *OidcMemberDefinition) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "OidcMemberDefinition"}
	if s.Groups != nil && len(s.Groups) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Groups", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetGroups sets the Groups field's value.
func (s *OidcMemberDefinition) SetGroups(v []*string) *OidcMemberDefinition {
	s.Groups = v
	return s
}

// Use this to specify the Amazon Web Services Key Management Service (KMS)
// Key ID, or KMSKeyId, for at rest data encryption. You can turn OnlineStore
// on or off by specifying the EnableOnlineStore flag at General Assembly.
//
// The default value is False.
type OnlineStoreConfig struct {
	_ struct{} `type:"structure"`

	// Turn OnlineStore off by specifying False for the EnableOnlineStore flag.
	// Turn OnlineStore on by specifying True for the EnableOnlineStore flag.
	//
	// The default value is False.
	EnableOnlineStore *bool `type:"boolean"`

	// Use to specify KMS Key ID (KMSKeyId) for at-rest encryption of your OnlineStore.
	SecurityConfig *OnlineStoreSecurityConfig `type:"structure"`

	// Option for different tiers of low latency storage for real-time data retrieval.
	//
	//    * Standard: A managed low latency data store for feature groups.
	//
	//    * InMemory: A managed data store for feature groups that supports very
	//    low latency retrieval.
	StorageType *string `type:"string" enum:"StorageType"`

	// Time to live duration, where the record is hard deleted after the expiration
	// time is reached; ExpiresAt = EventTime + TtlDuration. For information on
	// HardDelete, see the DeleteRecord (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_DeleteRecord.html)
	// API in the Amazon SageMaker API Reference guide.
	TtlDuration *TtlDuration `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OnlineStoreConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OnlineStoreConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *OnlineStoreConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "OnlineStoreConfig"}
	if s.TtlDuration != nil {
		if err := s.TtlDuration.Validate(); err != nil {
			invalidParams.AddNested("TtlDuration", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEnableOnlineStore sets the EnableOnlineStore field's value.
func (s *OnlineStoreConfig) SetEnableOnlineStore(v bool) *OnlineStoreConfig {
	s.EnableOnlineStore = &v
	return s
}

// SetSecurityConfig sets the SecurityConfig field's value.
func (s *OnlineStoreConfig) SetSecurityConfig(v *OnlineStoreSecurityConfig) *OnlineStoreConfig {
	s.SecurityConfig = v
	return s
}

// SetStorageType sets the StorageType field's value.
func (s *OnlineStoreConfig) SetStorageType(v string) *OnlineStoreConfig {
	s.StorageType = &v
	return s
}

// SetTtlDuration sets the TtlDuration field's value.
func (s *OnlineStoreConfig) SetTtlDuration(v *TtlDuration) *OnlineStoreConfig {
	s.TtlDuration = v
	return s
}

// Updates the feature group online store configuration.
type OnlineStoreConfigUpdate struct {
	_ struct{} `type:"structure"`

	// Time to live duration, where the record is hard deleted after the expiration
	// time is reached; ExpiresAt = EventTime + TtlDuration. For information on
	// HardDelete, see the DeleteRecord (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_DeleteRecord.html)
	// API in the Amazon SageMaker API Reference guide.
	TtlDuration *TtlDuration `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OnlineStoreConfigUpdate) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OnlineStoreConfigUpdate) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *OnlineStoreConfigUpdate) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "OnlineStoreConfigUpdate"}
	if s.TtlDuration != nil {
		if err := s.TtlDuration.Validate(); err != nil {
			invalidParams.AddNested("TtlDuration", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetTtlDuration sets the TtlDuration field's value.
func (s *OnlineStoreConfigUpdate) SetTtlDuration(v *TtlDuration) *OnlineStoreConfigUpdate {
	s.TtlDuration = v
	return s
}

// The security configuration for OnlineStore.
type OnlineStoreSecurityConfig struct {
	_ struct{} `type:"structure"`

	// The Amazon Web Services Key Management Service (KMS) key ARN that SageMaker
	// Feature Store uses to encrypt the Amazon S3 objects at rest using Amazon
	// S3 server-side encryption.
	//
	// The caller (either user or IAM role) of CreateFeatureGroup must have below
	// permissions to the OnlineStore KmsKeyId:
	//
	//    * "kms:Encrypt"
	//
	//    * "kms:Decrypt"
	//
	//    * "kms:DescribeKey"
	//
	//    * "kms:CreateGrant"
	//
	//    * "kms:RetireGrant"
	//
	//    * "kms:ReEncryptFrom"
	//
	//    * "kms:ReEncryptTo"
	//
	//    * "kms:GenerateDataKey"
	//
	//    * "kms:ListAliases"
	//
	//    * "kms:ListGrants"
	//
	//    * "kms:RevokeGrant"
	//
	// The caller (either user or IAM role) to all DataPlane operations (PutRecord,
	// GetRecord, DeleteRecord) must have the following permissions to the KmsKeyId:
	//
	//    * "kms:Decrypt"
	KmsKeyId *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OnlineStoreSecurityConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OnlineStoreSecurityConfig) GoString() string {
	return s.String()
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *OnlineStoreSecurityConfig) SetKmsKeyId(v string) *OnlineStoreSecurityConfig {
	s.KmsKeyId = &v
	return s
}

// Contains information about the output location for the compiled model and
// the target device that the model runs on. TargetDevice and TargetPlatform
// are mutually exclusive, so you need to choose one between the two to specify
// your target device or platform. If you cannot find your device you want to
// use from the TargetDevice list, use TargetPlatform to describe the platform
// of your edge device and CompilerOptions if there are specific settings that
// are required or recommended to use for particular TargetPlatform.
type OutputConfig struct {
	_ struct{} `type:"structure"`

	// Specifies additional parameters for compiler options in JSON format. The
	// compiler options are TargetPlatform specific. It is required for NVIDIA accelerators
	// and highly recommended for CPU compilations. For any other cases, it is optional
	// to specify CompilerOptions.
	//
	//    * DTYPE: Specifies the data type for the input. When compiling for ml_*
	//    (except for ml_inf) instances using PyTorch framework, provide the data
	//    type (dtype) of the model's input. "float32" is used if "DTYPE" is not
	//    specified. Options for data type are: float32: Use either "float" or "float32".
	//    int64: Use either "int64" or "long". For example, {"dtype" : "float32"}.
	//
	//    * CPU: Compilation for CPU supports the following compiler options. mcpu:
	//    CPU micro-architecture. For example, {'mcpu': 'skylake-avx512'} mattr:
	//    CPU flags. For example, {'mattr': ['+neon', '+vfpv4']}
	//
	//    * ARM: Details of ARM CPU compilations. NEON: NEON is an implementation
	//    of the Advanced SIMD extension used in ARMv7 processors. For example,
	//    add {'mattr': ['+neon']} to the compiler options if compiling for ARM
	//    32-bit platform with the NEON support.
	//
	//    * NVIDIA: Compilation for NVIDIA GPU supports the following compiler options.
	//    gpu_code: Specifies the targeted architecture. trt-ver: Specifies the
	//    TensorRT versions in x.y.z. format. cuda-ver: Specifies the CUDA version
	//    in x.y format. For example, {'gpu-code': 'sm_72', 'trt-ver': '6.0.1',
	//    'cuda-ver': '10.1'}
	//
	//    * ANDROID: Compilation for the Android OS supports the following compiler
	//    options: ANDROID_PLATFORM: Specifies the Android API levels. Available
	//    levels range from 21 to 29. For example, {'ANDROID_PLATFORM': 28}. mattr:
	//    Add {'mattr': ['+neon']} to compiler options if compiling for ARM 32-bit
	//    platform with NEON support.
	//
	//    * INFERENTIA: Compilation for target ml_inf1 uses compiler options passed
	//    in as a JSON string. For example, "CompilerOptions": "\"--verbose 1 --num-neuroncores
	//    2 -O2\"". For information about supported compiler options, see Neuron
	//    Compiler CLI Reference Guide (https://awsdocs-neuron.readthedocs-hosted.com/en/latest/compiler/neuronx-cc/api-reference-guide/neuron-compiler-cli-reference-guide.html).
	//
	//    * CoreML: Compilation for the CoreML OutputConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputConfig.html)
	//    TargetDevice supports the following compiler options: class_labels: Specifies
	//    the classification labels file name inside input tar.gz file. For example,
	//    {"class_labels": "imagenet_labels_1000.txt"}. Labels inside the txt file
	//    should be separated by newlines.
	//
	//    * EIA: Compilation for the Elastic Inference Accelerator supports the
	//    following compiler options: precision_mode: Specifies the precision of
	//    compiled artifacts. Supported values are "FP16" and "FP32". Default is
	//    "FP32". signature_def_key: Specifies the signature to use for models in
	//    SavedModel format. Defaults is TensorFlow's default signature def key.
	//    output_names: Specifies a list of output tensor names for models in FrozenGraph
	//    format. Set at most one API field, either: signature_def_key or output_names.
	//    For example: {"precision_mode": "FP32", "output_names": ["output:0"]}
	CompilerOptions *string `min:"3" type:"string"`

	// The Amazon Web Services Key Management Service key (Amazon Web Services KMS)
	// that Amazon SageMaker uses to encrypt your output models with Amazon S3 server-side
	// encryption after compilation job. If you don't provide a KMS key ID, Amazon
	// SageMaker uses the default KMS key for Amazon S3 for your role's account.
	// For more information, see KMS-Managed Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)
	// in the Amazon Simple Storage Service Developer Guide.
	//
	// The KmsKeyId can be any of the following formats:
	//
	//    * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
	//
	//    * Key ARN: arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
	//
	//    * Alias name: alias/ExampleAlias
	//
	//    * Alias name ARN: arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias
	KmsKeyId *string `type:"string"`

	// Identifies the S3 bucket where you want Amazon SageMaker to store the model
	// artifacts. For example, s3://bucket-name/key-name-prefix.
	//
	// S3OutputLocation is a required field
	S3OutputLocation *string `type:"string" required:"true"`

	// Identifies the target device or the machine learning instance that you want
	// to run your model on after the compilation has completed. Alternatively,
	// you can specify OS, architecture, and accelerator using TargetPlatform (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TargetPlatform.html)
	// fields. It can be used instead of TargetPlatform.
	//
	// Currently ml_trn1 is available only in US East (N. Virginia) Region, and
	// ml_inf2 is available only in US East (Ohio) Region.
	TargetDevice *string `type:"string" enum:"TargetDevice"`

	// Contains information about a target platform that you want your model to
	// run on, such as OS, architecture, and accelerators. It is an alternative
	// of TargetDevice.
	//
	// The following examples show how to configure the TargetPlatform and CompilerOptions
	// JSON strings for popular target platforms:
	//
	//    * Raspberry Pi 3 Model B+ "TargetPlatform": {"Os": "LINUX", "Arch": "ARM_EABIHF"},
	//    "CompilerOptions": {'mattr': ['+neon']}
	//
	//    * Jetson TX2 "TargetPlatform": {"Os": "LINUX", "Arch": "ARM64", "Accelerator":
	//    "NVIDIA"}, "CompilerOptions": {'gpu-code': 'sm_62', 'trt-ver': '6.0.1',
	//    'cuda-ver': '10.0'}
	//
	//    * EC2 m5.2xlarge instance OS "TargetPlatform": {"Os": "LINUX", "Arch":
	//    "X86_64", "Accelerator": "NVIDIA"}, "CompilerOptions": {'mcpu': 'skylake-avx512'}
	//
	//    * RK3399 "TargetPlatform": {"Os": "LINUX", "Arch": "ARM64", "Accelerator":
	//    "MALI"}
	//
	//    * ARMv7 phone (CPU) "TargetPlatform": {"Os": "ANDROID", "Arch": "ARM_EABI"},
	//    "CompilerOptions": {'ANDROID_PLATFORM': 25, 'mattr': ['+neon']}
	//
	//    * ARMv8 phone (CPU) "TargetPlatform": {"Os": "ANDROID", "Arch": "ARM64"},
	//    "CompilerOptions": {'ANDROID_PLATFORM': 29}
	TargetPlatform *TargetPlatform `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OutputConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OutputConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *OutputConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "OutputConfig"}
	if s.CompilerOptions != nil && len(*s.CompilerOptions) < 3 {
		invalidParams.Add(request.NewErrParamMinLen("CompilerOptions", 3))
	}
	if s.S3OutputLocation == nil {
		invalidParams.Add(request.NewErrParamRequired("S3OutputLocation"))
	}
	if s.TargetPlatform != nil {
		if err := s.TargetPlatform.Validate(); err != nil {
			invalidParams.AddNested("TargetPlatform", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCompilerOptions sets the CompilerOptions field's value.
func (s *OutputConfig) SetCompilerOptions(v string) *OutputConfig {
	s.CompilerOptions = &v
	return s
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *OutputConfig) SetKmsKeyId(v string) *OutputConfig {
	s.KmsKeyId = &v
	return s
}

// SetS3OutputLocation sets the S3OutputLocation field's value.
func (s *OutputConfig) SetS3OutputLocation(v string) *OutputConfig {
	s.S3OutputLocation = &v
	return s
}

// SetTargetDevice sets the TargetDevice field's value.
func (s *OutputConfig) SetTargetDevice(v string) *OutputConfig {
	s.TargetDevice = &v
	return s
}

// SetTargetPlatform sets the TargetPlatform field's value.
func (s *OutputConfig) SetTargetPlatform(v *TargetPlatform) *OutputConfig {
	s.TargetPlatform = v
	return s
}

// Provides information about how to store model training results (model artifacts).
type OutputDataConfig struct {
	_ struct{} `type:"structure"`

	// The model output compression type. Select None to output an uncompressed
	// model, recommended for large model outputs. Defaults to gzip.
	CompressionType *string `type:"string" enum:"OutputCompressionType"`

	// The Amazon Web Services Key Management Service (Amazon Web Services KMS)
	// key that SageMaker uses to encrypt the model artifacts at rest using Amazon
	// S3 server-side encryption. The KmsKeyId can be any of the following formats:
	//
	//    * // KMS Key ID "1234abcd-12ab-34cd-56ef-1234567890ab"
	//
	//    * // Amazon Resource Name (ARN) of a KMS Key "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
	//
	//    * // KMS Key Alias "alias/ExampleAlias"
	//
	//    * // Amazon Resource Name (ARN) of a KMS Key Alias "arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"
	//
	// If you use a KMS key ID or an alias of your KMS key, the SageMaker execution
	// role must include permissions to call kms:Encrypt. If you don't provide a
	// KMS key ID, SageMaker uses the default KMS key for Amazon S3 for your role's
	// account. For more information, see KMS-Managed Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)
	// in the Amazon Simple Storage Service Developer Guide. If the output data
	// is stored in Amazon S3 Express One Zone, it is encrypted with server-side
	// encryption with Amazon S3 managed keys (SSE-S3). KMS key is not supported
	// for Amazon S3 Express One Zone
	//
	// The KMS key policy must grant permission to the IAM role that you specify
	// in your CreateTrainingJob, CreateTransformJob, or CreateHyperParameterTuningJob
	// requests. For more information, see Using Key Policies in Amazon Web Services
	// KMS (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)
	// in the Amazon Web Services Key Management Service Developer Guide.
	KmsKeyId *string `type:"string"`

	// Identifies the S3 path where you want SageMaker to store the model artifacts.
	// For example, s3://bucket-name/key-name-prefix.
	//
	// S3OutputPath is a required field
	S3OutputPath *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OutputDataConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OutputDataConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *OutputDataConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "OutputDataConfig"}
	if s.S3OutputPath == nil {
		invalidParams.Add(request.NewErrParamRequired("S3OutputPath"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCompressionType sets the CompressionType field's value.
func (s *OutputDataConfig) SetCompressionType(v string) *OutputDataConfig {
	s.CompressionType = &v
	return s
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *OutputDataConfig) SetKmsKeyId(v string) *OutputDataConfig {
	s.KmsKeyId = &v
	return s
}

// SetS3OutputPath sets the S3OutputPath field's value.
func (s *OutputDataConfig) SetS3OutputPath(v string) *OutputDataConfig {
	s.S3OutputPath = &v
	return s
}

// An output parameter of a pipeline step.
type OutputParameter struct {
	_ struct{} `type:"structure"`

	// The name of the output parameter.
	//
	// Name is a required field
	Name *string `type:"string" required:"true"`

	// The value of the output parameter.
	//
	// Value is a required field
	Value *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OutputParameter) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OutputParameter) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *OutputParameter) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "OutputParameter"}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Value == nil {
		invalidParams.Add(request.NewErrParamRequired("Value"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetName sets the Name field's value.
func (s *OutputParameter) SetName(v string) *OutputParameter {
	s.Name = &v
	return s
}

// SetValue sets the Value field's value.
func (s *OutputParameter) SetValue(v string) *OutputParameter {
	s.Value = &v
	return s
}

// The collection of ownership settings for a space.
type OwnershipSettings struct {
	_ struct{} `type:"structure"`

	// The user profile who is the owner of the private space.
	//
	// OwnerUserProfileName is a required field
	OwnerUserProfileName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OwnershipSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OwnershipSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *OwnershipSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "OwnershipSettings"}
	if s.OwnerUserProfileName == nil {
		invalidParams.Add(request.NewErrParamRequired("OwnerUserProfileName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetOwnerUserProfileName sets the OwnerUserProfileName field's value.
func (s *OwnershipSettings) SetOwnerUserProfileName(v string) *OwnershipSettings {
	s.OwnerUserProfileName = &v
	return s
}

// Specifies summary information about the ownership settings.
type OwnershipSettingsSummary struct {
	_ struct{} `type:"structure"`

	// The user profile who is the owner of the private space.
	OwnerUserProfileName *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OwnershipSettingsSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OwnershipSettingsSummary) GoString() string {
	return s.String()
}

// SetOwnerUserProfileName sets the OwnerUserProfileName field's value.
func (s *OwnershipSettingsSummary) SetOwnerUserProfileName(v string) *OwnershipSettingsSummary {
	s.OwnerUserProfileName = &v
	return s
}

// Configuration that controls the parallelism of the pipeline. By default,
// the parallelism configuration specified applies to all executions of the
// pipeline unless overridden.
type ParallelismConfiguration struct {
	_ struct{} `type:"structure"`

	// The max number of steps that can be executed in parallel.
	//
	// MaxParallelExecutionSteps is a required field
	MaxParallelExecutionSteps *int64 `min:"1" type:"integer" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ParallelismConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ParallelismConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ParallelismConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ParallelismConfiguration"}
	if s.MaxParallelExecutionSteps == nil {
		invalidParams.Add(request.NewErrParamRequired("MaxParallelExecutionSteps"))
	}
	if s.MaxParallelExecutionSteps != nil && *s.MaxParallelExecutionSteps < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxParallelExecutionSteps", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxParallelExecutionSteps sets the MaxParallelExecutionSteps field's value.
func (s *ParallelismConfiguration) SetMaxParallelExecutionSteps(v int64) *ParallelismConfiguration {
	s.MaxParallelExecutionSteps = &v
	return s
}

// Assigns a value to a named Pipeline parameter.
type Parameter struct {
	_ struct{} `type:"structure"`

	// The name of the parameter to assign a value to. This parameter name must
	// match a named parameter in the pipeline definition.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// The literal value for the parameter.
	//
	// Value is a required field
	Value *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Parameter) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Parameter) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *Parameter) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "Parameter"}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.Value == nil {
		invalidParams.Add(request.NewErrParamRequired("Value"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetName sets the Name field's value.
func (s *Parameter) SetName(v string) *Parameter {
	s.Name = &v
	return s
}

// SetValue sets the Value field's value.
func (s *Parameter) SetValue(v string) *Parameter {
	s.Value = &v
	return s
}

// Defines the possible values for categorical, continuous, and integer hyperparameters
// to be used by an algorithm.
type ParameterRange struct {
	_ struct{} `type:"structure"`

	// A CategoricalParameterRangeSpecification object that defines the possible
	// values for a categorical hyperparameter.
	CategoricalParameterRangeSpecification *CategoricalParameterRangeSpecification `type:"structure"`

	// A ContinuousParameterRangeSpecification object that defines the possible
	// values for a continuous hyperparameter.
	ContinuousParameterRangeSpecification *ContinuousParameterRangeSpecification `type:"structure"`

	// A IntegerParameterRangeSpecification object that defines the possible values
	// for an integer hyperparameter.
	IntegerParameterRangeSpecification *IntegerParameterRangeSpecification `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ParameterRange) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ParameterRange) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ParameterRange) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ParameterRange"}
	if s.CategoricalParameterRangeSpecification != nil {
		if err := s.CategoricalParameterRangeSpecification.Validate(); err != nil {
			invalidParams.AddNested("CategoricalParameterRangeSpecification", err.(request.ErrInvalidParams))
		}
	}
	if s.ContinuousParameterRangeSpecification != nil {
		if err := s.ContinuousParameterRangeSpecification.Validate(); err != nil {
			invalidParams.AddNested("ContinuousParameterRangeSpecification", err.(request.ErrInvalidParams))
		}
	}
	if s.IntegerParameterRangeSpecification != nil {
		if err := s.IntegerParameterRangeSpecification.Validate(); err != nil {
			invalidParams.AddNested("IntegerParameterRangeSpecification", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCategoricalParameterRangeSpecification sets the CategoricalParameterRangeSpecification field's value.
func (s *ParameterRange) SetCategoricalParameterRangeSpecification(v *CategoricalParameterRangeSpecification) *ParameterRange {
	s.CategoricalParameterRangeSpecification = v
	return s
}

// SetContinuousParameterRangeSpecification sets the ContinuousParameterRangeSpecification field's value.
func (s *ParameterRange) SetContinuousParameterRangeSpecification(v *ContinuousParameterRangeSpecification) *ParameterRange {
	s.ContinuousParameterRangeSpecification = v
	return s
}

// SetIntegerParameterRangeSpecification sets the IntegerParameterRangeSpecification field's value.
func (s *ParameterRange) SetIntegerParameterRangeSpecification(v *IntegerParameterRangeSpecification) *ParameterRange {
	s.IntegerParameterRangeSpecification = v
	return s
}

// Specifies ranges of integer, continuous, and categorical hyperparameters
// that a hyperparameter tuning job searches. The hyperparameter tuning job
// launches training jobs with hyperparameter values within these ranges to
// find the combination of values that result in the training job with the best
// performance as measured by the objective metric of the hyperparameter tuning
// job.
//
// The maximum number of items specified for Array Members refers to the maximum
// number of hyperparameters for each range and also the maximum for the hyperparameter
// tuning job itself. That is, the sum of the number of hyperparameters for
// all the ranges can't exceed the maximum number specified.
type ParameterRanges struct {
	_ struct{} `type:"structure"`

	// A list containing hyperparameter names and example values to be used by Autotune
	// to determine optimal ranges for your tuning job.
	AutoParameters []*AutoParameter `type:"list"`

	// The array of CategoricalParameterRange (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CategoricalParameterRange.html)
	// objects that specify ranges of categorical hyperparameters that a hyperparameter
	// tuning job searches.
	CategoricalParameterRanges []*CategoricalParameterRange `type:"list"`

	// The array of ContinuousParameterRange (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContinuousParameterRange.html)
	// objects that specify ranges of continuous hyperparameters that a hyperparameter
	// tuning job searches.
	ContinuousParameterRanges []*ContinuousParameterRange `type:"list"`

	// The array of IntegerParameterRange (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_IntegerParameterRange.html)
	// objects that specify ranges of integer hyperparameters that a hyperparameter
	// tuning job searches.
	IntegerParameterRanges []*IntegerParameterRange `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ParameterRanges) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ParameterRanges) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ParameterRanges) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ParameterRanges"}
	if s.AutoParameters != nil {
		for i, v := range s.AutoParameters {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AutoParameters", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.CategoricalParameterRanges != nil {
		for i, v := range s.CategoricalParameterRanges {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CategoricalParameterRanges", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.ContinuousParameterRanges != nil {
		for i, v := range s.ContinuousParameterRanges {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContinuousParameterRanges", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.IntegerParameterRanges != nil {
		for i, v := range s.IntegerParameterRanges {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "IntegerParameterRanges", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAutoParameters sets the AutoParameters field's value.
func (s *ParameterRanges) SetAutoParameters(v []*AutoParameter) *ParameterRanges {
	s.AutoParameters = v
	return s
}

// SetCategoricalParameterRanges sets the CategoricalParameterRanges field's value.
func (s *ParameterRanges) SetCategoricalParameterRanges(v []*CategoricalParameterRange) *ParameterRanges {
	s.CategoricalParameterRanges = v
	return s
}

// SetContinuousParameterRanges sets the ContinuousParameterRanges field's value.
func (s *ParameterRanges) SetContinuousParameterRanges(v []*ContinuousParameterRange) *ParameterRanges {
	s.ContinuousParameterRanges = v
	return s
}

// SetIntegerParameterRanges sets the IntegerParameterRanges field's value.
func (s *ParameterRanges) SetIntegerParameterRanges(v []*IntegerParameterRange) *ParameterRanges {
	s.IntegerParameterRanges = v
	return s
}

// The trial that a trial component is associated with and the experiment the
// trial is part of. A component might not be associated with a trial. A component
// can be associated with multiple trials.
type Parent struct {
	_ struct{} `type:"structure"`

	// The name of the experiment.
	ExperimentName *string `min:"1" type:"string"`

	// The name of the trial.
	TrialName *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Parent) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Parent) GoString() string {
	return s.String()
}

// SetExperimentName sets the ExperimentName field's value.
func (s *Parent) SetExperimentName(v string) *Parent {
	s.ExperimentName = &v
	return s
}

// SetTrialName sets the TrialName field's value.
func (s *Parent) SetTrialName(v string) *Parent {
	s.TrialName = &v
	return s
}

// A previously completed or stopped hyperparameter tuning job to be used as
// a starting point for a new hyperparameter tuning job.
type ParentHyperParameterTuningJob struct {
	_ struct{} `type:"structure"`

	// The name of the hyperparameter tuning job to be used as a starting point
	// for a new hyperparameter tuning job.
	HyperParameterTuningJobName *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ParentHyperParameterTuningJob) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ParentHyperParameterTuningJob) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ParentHyperParameterTuningJob) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ParentHyperParameterTuningJob"}
	if s.HyperParameterTuningJobName != nil && len(*s.HyperParameterTuningJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("HyperParameterTuningJobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetHyperParameterTuningJobName sets the HyperParameterTuningJobName field's value.
func (s *ParentHyperParameterTuningJob) SetHyperParameterTuningJobName(v string) *ParentHyperParameterTuningJob {
	s.HyperParameterTuningJobName = &v
	return s
}

// The summary of an in-progress deployment when an endpoint is creating or
// updating with a new endpoint configuration.
type PendingDeploymentSummary struct {
	_ struct{} `type:"structure"`

	// The name of the endpoint configuration used in the deployment.
	//
	// EndpointConfigName is a required field
	EndpointConfigName *string `type:"string" required:"true"`

	// An array of PendingProductionVariantSummary (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_PendingProductionVariantSummary.html)
	// objects, one for each model hosted behind this endpoint for the in-progress
	// deployment.
	ProductionVariants []*PendingProductionVariantSummary `min:"1" type:"list"`

	// An array of PendingProductionVariantSummary (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_PendingProductionVariantSummary.html)
	// objects, one for each model hosted behind this endpoint in shadow mode with
	// production traffic replicated from the model specified on ProductionVariants
	// for the in-progress deployment.
	ShadowProductionVariants []*PendingProductionVariantSummary `min:"1" type:"list"`

	// The start time of the deployment.
	StartTime *time.Time `type:"timestamp"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PendingDeploymentSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PendingDeploymentSummary) GoString() string {
	return s.String()
}

// SetEndpointConfigName sets the EndpointConfigName field's value.
func (s *PendingDeploymentSummary) SetEndpointConfigName(v string) *PendingDeploymentSummary {
	s.EndpointConfigName = &v
	return s
}

// SetProductionVariants sets the ProductionVariants field's value.
func (s *PendingDeploymentSummary) SetProductionVariants(v []*PendingProductionVariantSummary) *PendingDeploymentSummary {
	s.ProductionVariants = v
	return s
}

// SetShadowProductionVariants sets the ShadowProductionVariants field's value.
func (s *PendingDeploymentSummary) SetShadowProductionVariants(v []*PendingProductionVariantSummary) *PendingDeploymentSummary {
	s.ShadowProductionVariants = v
	return s
}

// SetStartTime sets the StartTime field's value.
func (s *PendingDeploymentSummary) SetStartTime(v time.Time) *PendingDeploymentSummary {
	s.StartTime = &v
	return s
}

// The production variant summary for a deployment when an endpoint is creating
// or updating with the CreateEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html)
// or UpdateEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html)
// operations. Describes the VariantStatus , weight and capacity for a production
// variant associated with an endpoint.
type PendingProductionVariantSummary struct {
	_ struct{} `type:"structure"`

	// The size of the Elastic Inference (EI) instance to use for the production
	// variant. EI instances provide on-demand GPU computing for inference. For
	// more information, see Using Elastic Inference in Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html).
	AcceleratorType *string `type:"string" enum:"ProductionVariantAcceleratorType"`

	// The number of instances associated with the variant.
	CurrentInstanceCount *int64 `type:"integer"`

	// The serverless configuration for the endpoint.
	CurrentServerlessConfig *ProductionVariantServerlessConfig `type:"structure"`

	// The weight associated with the variant.
	CurrentWeight *float64 `type:"float"`

	// An array of DeployedImage objects that specify the Amazon EC2 Container Registry
	// paths of the inference images deployed on instances of this ProductionVariant.
	DeployedImages []*DeployedImage `type:"list"`

	// The number of instances requested in this deployment, as specified in the
	// endpoint configuration for the endpoint. The value is taken from the request
	// to the CreateEndpointConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html)
	// operation.
	DesiredInstanceCount *int64 `type:"integer"`

	// The serverless configuration requested for this deployment, as specified
	// in the endpoint configuration for the endpoint.
	DesiredServerlessConfig *ProductionVariantServerlessConfig `type:"structure"`

	// The requested weight for the variant in this deployment, as specified in
	// the endpoint configuration for the endpoint. The value is taken from the
	// request to the CreateEndpointConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html)
	// operation.
	DesiredWeight *float64 `type:"float"`

	// The type of instances associated with the variant.
	InstanceType *string `type:"string" enum:"ProductionVariantInstanceType"`

	// Settings that control the range in the number of instances that the endpoint
	// provisions as it scales up or down to accommodate traffic.
	ManagedInstanceScaling *ProductionVariantManagedInstanceScaling `type:"structure"`

	// Settings that control how the endpoint routes incoming traffic to the instances
	// that the endpoint hosts.
	RoutingConfig *ProductionVariantRoutingConfig `type:"structure"`

	// The name of the variant.
	//
	// VariantName is a required field
	VariantName *string `type:"string" required:"true"`

	// The endpoint variant status which describes the current deployment stage
	// status or operational status.
	VariantStatus []*ProductionVariantStatus `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PendingProductionVariantSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PendingProductionVariantSummary) GoString() string {
	return s.String()
}

// SetAcceleratorType sets the AcceleratorType field's value.
func (s *PendingProductionVariantSummary) SetAcceleratorType(v string) *PendingProductionVariantSummary {
	s.AcceleratorType = &v
	return s
}

// SetCurrentInstanceCount sets the CurrentInstanceCount field's value.
func (s *PendingProductionVariantSummary) SetCurrentInstanceCount(v int64) *PendingProductionVariantSummary {
	s.CurrentInstanceCount = &v
	return s
}

// SetCurrentServerlessConfig sets the CurrentServerlessConfig field's value.
func (s *PendingProductionVariantSummary) SetCurrentServerlessConfig(v *ProductionVariantServerlessConfig) *PendingProductionVariantSummary {
	s.CurrentServerlessConfig = v
	return s
}

// SetCurrentWeight sets the CurrentWeight field's value.
func (s *PendingProductionVariantSummary) SetCurrentWeight(v float64) *PendingProductionVariantSummary {
	s.CurrentWeight = &v
	return s
}

// SetDeployedImages sets the DeployedImages field's value.
func (s *PendingProductionVariantSummary) SetDeployedImages(v []*DeployedImage) *PendingProductionVariantSummary {
	s.DeployedImages = v
	return s
}

// SetDesiredInstanceCount sets the DesiredInstanceCount field's value.
func (s *PendingProductionVariantSummary) SetDesiredInstanceCount(v int64) *PendingProductionVariantSummary {
	s.DesiredInstanceCount = &v
	return s
}

// SetDesiredServerlessConfig sets the DesiredServerlessConfig field's value.
func (s *PendingProductionVariantSummary) SetDesiredServerlessConfig(v *ProductionVariantServerlessConfig) *PendingProductionVariantSummary {
	s.DesiredServerlessConfig = v
	return s
}

// SetDesiredWeight sets the DesiredWeight field's value.
func (s *PendingProductionVariantSummary) SetDesiredWeight(v float64) *PendingProductionVariantSummary {
	s.DesiredWeight = &v
	return s
}

// SetInstanceType sets the InstanceType field's value.
func (s *PendingProductionVariantSummary) SetInstanceType(v string) *PendingProductionVariantSummary {
	s.InstanceType = &v
	return s
}

// SetManagedInstanceScaling sets the ManagedInstanceScaling field's value.
func (s *PendingProductionVariantSummary) SetManagedInstanceScaling(v *ProductionVariantManagedInstanceScaling) *PendingProductionVariantSummary {
	s.ManagedInstanceScaling = v
	return s
}

// SetRoutingConfig sets the RoutingConfig field's value.
func (s *PendingProductionVariantSummary) SetRoutingConfig(v *ProductionVariantRoutingConfig) *PendingProductionVariantSummary {
	s.RoutingConfig = v
	return s
}

// SetVariantName sets the VariantName field's value.
func (s *PendingProductionVariantSummary) SetVariantName(v string) *PendingProductionVariantSummary {
	s.VariantName = &v
	return s
}

// SetVariantStatus sets the VariantStatus field's value.
func (s *PendingProductionVariantSummary) SetVariantStatus(v []*ProductionVariantStatus) *PendingProductionVariantSummary {
	s.VariantStatus = v
	return s
}

// Defines the traffic pattern.
type Phase struct {
	_ struct{} `type:"structure"`

	// Specifies how long a traffic phase should be. For custom load tests, the
	// value should be between 120 and 3600. This value should not exceed JobDurationInSeconds.
	DurationInSeconds *int64 `min:"1" type:"integer"`

	// Specifies how many concurrent users to start with. The value should be between
	// 1 and 3.
	InitialNumberOfUsers *int64 `min:"1" type:"integer"`

	// Specified how many new users to spawn in a minute.
	SpawnRate *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Phase) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Phase) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *Phase) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "Phase"}
	if s.DurationInSeconds != nil && *s.DurationInSeconds < 1 {
		invalidParams.Add(request.NewErrParamMinValue("DurationInSeconds", 1))
	}
	if s.InitialNumberOfUsers != nil && *s.InitialNumberOfUsers < 1 {
		invalidParams.Add(request.NewErrParamMinValue("InitialNumberOfUsers", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDurationInSeconds sets the DurationInSeconds field's value.
func (s *Phase) SetDurationInSeconds(v int64) *Phase {
	s.DurationInSeconds = &v
	return s
}

// SetInitialNumberOfUsers sets the InitialNumberOfUsers field's value.
func (s *Phase) SetInitialNumberOfUsers(v int64) *Phase {
	s.InitialNumberOfUsers = &v
	return s
}

// SetSpawnRate sets the SpawnRate field's value.
func (s *Phase) SetSpawnRate(v int64) *Phase {
	s.SpawnRate = &v
	return s
}

// A SageMaker Model Building Pipeline instance.
type Pipeline struct {
	_ struct{} `type:"structure"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	CreatedBy *UserContext `type:"structure"`

	// The creation time of the pipeline.
	CreationTime *time.Time `type:"timestamp"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	LastModifiedBy *UserContext `type:"structure"`

	// The time that the pipeline was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The time when the pipeline was last run.
	LastRunTime *time.Time `type:"timestamp"`

	// The parallelism configuration applied to the pipeline.
	ParallelismConfiguration *ParallelismConfiguration `type:"structure"`

	// The Amazon Resource Name (ARN) of the pipeline.
	PipelineArn *string `type:"string"`

	// The description of the pipeline.
	PipelineDescription *string `type:"string"`

	// The display name of the pipeline.
	PipelineDisplayName *string `min:"1" type:"string"`

	// The name of the pipeline.
	PipelineName *string `min:"1" type:"string"`

	// The status of the pipeline.
	PipelineStatus *string `type:"string" enum:"PipelineStatus"`

	// The Amazon Resource Name (ARN) of the role that created the pipeline.
	RoleArn *string `min:"20" type:"string"`

	// A list of tags that apply to the pipeline.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Pipeline) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Pipeline) GoString() string {
	return s.String()
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *Pipeline) SetCreatedBy(v *UserContext) *Pipeline {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *Pipeline) SetCreationTime(v time.Time) *Pipeline {
	s.CreationTime = &v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *Pipeline) SetLastModifiedBy(v *UserContext) *Pipeline {
	s.LastModifiedBy = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *Pipeline) SetLastModifiedTime(v time.Time) *Pipeline {
	s.LastModifiedTime = &v
	return s
}

// SetLastRunTime sets the LastRunTime field's value.
func (s *Pipeline) SetLastRunTime(v time.Time) *Pipeline {
	s.LastRunTime = &v
	return s
}

// SetParallelismConfiguration sets the ParallelismConfiguration field's value.
func (s *Pipeline) SetParallelismConfiguration(v *ParallelismConfiguration) *Pipeline {
	s.ParallelismConfiguration = v
	return s
}

// SetPipelineArn sets the PipelineArn field's value.
func (s *Pipeline) SetPipelineArn(v string) *Pipeline {
	s.PipelineArn = &v
	return s
}

// SetPipelineDescription sets the PipelineDescription field's value.
func (s *Pipeline) SetPipelineDescription(v string) *Pipeline {
	s.PipelineDescription = &v
	return s
}

// SetPipelineDisplayName sets the PipelineDisplayName field's value.
func (s *Pipeline) SetPipelineDisplayName(v string) *Pipeline {
	s.PipelineDisplayName = &v
	return s
}

// SetPipelineName sets the PipelineName field's value.
func (s *Pipeline) SetPipelineName(v string) *Pipeline {
	s.PipelineName = &v
	return s
}

// SetPipelineStatus sets the PipelineStatus field's value.
func (s *Pipeline) SetPipelineStatus(v string) *Pipeline {
	s.PipelineStatus = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *Pipeline) SetRoleArn(v string) *Pipeline {
	s.RoleArn = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *Pipeline) SetTags(v []*Tag) *Pipeline {
	s.Tags = v
	return s
}

// The location of the pipeline definition stored in Amazon S3.
type PipelineDefinitionS3Location struct {
	_ struct{} `type:"structure"`

	// Name of the S3 bucket.
	//
	// Bucket is a required field
	Bucket *string `min:"3" type:"string" required:"true"`

	// The object key (or key name) uniquely identifies the object in an S3 bucket.
	//
	// ObjectKey is a required field
	ObjectKey *string `min:"1" type:"string" required:"true"`

	// Version Id of the pipeline definition file. If not specified, Amazon SageMaker
	// will retrieve the latest version.
	VersionId *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PipelineDefinitionS3Location) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PipelineDefinitionS3Location) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PipelineDefinitionS3Location) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PipelineDefinitionS3Location"}
	if s.Bucket == nil {
		invalidParams.Add(request.NewErrParamRequired("Bucket"))
	}
	if s.Bucket != nil && len(*s.Bucket) < 3 {
		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
	}
	if s.ObjectKey == nil {
		invalidParams.Add(request.NewErrParamRequired("ObjectKey"))
	}
	if s.ObjectKey != nil && len(*s.ObjectKey) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ObjectKey", 1))
	}
	if s.VersionId != nil && len(*s.VersionId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetBucket sets the Bucket field's value.
func (s *PipelineDefinitionS3Location) SetBucket(v string) *PipelineDefinitionS3Location {
	s.Bucket = &v
	return s
}

// SetObjectKey sets the ObjectKey field's value.
func (s *PipelineDefinitionS3Location) SetObjectKey(v string) *PipelineDefinitionS3Location {
	s.ObjectKey = &v
	return s
}

// SetVersionId sets the VersionId field's value.
func (s *PipelineDefinitionS3Location) SetVersionId(v string) *PipelineDefinitionS3Location {
	s.VersionId = &v
	return s
}

// An execution of a pipeline.
type PipelineExecution struct {
	_ struct{} `type:"structure"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	CreatedBy *UserContext `type:"structure"`

	// The creation time of the pipeline execution.
	CreationTime *time.Time `type:"timestamp"`

	// If the execution failed, a message describing why.
	FailureReason *string `type:"string"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	LastModifiedBy *UserContext `type:"structure"`

	// The time that the pipeline execution was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The parallelism configuration applied to the pipeline execution.
	ParallelismConfiguration *ParallelismConfiguration `type:"structure"`

	// The Amazon Resource Name (ARN) of the pipeline that was executed.
	PipelineArn *string `type:"string"`

	// The Amazon Resource Name (ARN) of the pipeline execution.
	PipelineExecutionArn *string `type:"string"`

	// The description of the pipeline execution.
	PipelineExecutionDescription *string `type:"string"`

	// The display name of the pipeline execution.
	PipelineExecutionDisplayName *string `min:"1" type:"string"`

	// The status of the pipeline status.
	PipelineExecutionStatus *string `type:"string" enum:"PipelineExecutionStatus"`

	// Specifies the names of the experiment and trial created by a pipeline.
	PipelineExperimentConfig *PipelineExperimentConfig `type:"structure"`

	// Contains a list of pipeline parameters. This list can be empty.
	PipelineParameters []*Parameter `type:"list"`

	// The selective execution configuration applied to the pipeline run.
	SelectiveExecutionConfig *SelectiveExecutionConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PipelineExecution) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PipelineExecution) GoString() string {
	return s.String()
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *PipelineExecution) SetCreatedBy(v *UserContext) *PipelineExecution {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *PipelineExecution) SetCreationTime(v time.Time) *PipelineExecution {
	s.CreationTime = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *PipelineExecution) SetFailureReason(v string) *PipelineExecution {
	s.FailureReason = &v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *PipelineExecution) SetLastModifiedBy(v *UserContext) *PipelineExecution {
	s.LastModifiedBy = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *PipelineExecution) SetLastModifiedTime(v time.Time) *PipelineExecution {
	s.LastModifiedTime = &v
	return s
}

// SetParallelismConfiguration sets the ParallelismConfiguration field's value.
func (s *PipelineExecution) SetParallelismConfiguration(v *ParallelismConfiguration) *PipelineExecution {
	s.ParallelismConfiguration = v
	return s
}

// SetPipelineArn sets the PipelineArn field's value.
func (s *PipelineExecution) SetPipelineArn(v string) *PipelineExecution {
	s.PipelineArn = &v
	return s
}

// SetPipelineExecutionArn sets the PipelineExecutionArn field's value.
func (s *PipelineExecution) SetPipelineExecutionArn(v string) *PipelineExecution {
	s.PipelineExecutionArn = &v
	return s
}

// SetPipelineExecutionDescription sets the PipelineExecutionDescription field's value.
func (s *PipelineExecution) SetPipelineExecutionDescription(v string) *PipelineExecution {
	s.PipelineExecutionDescription = &v
	return s
}

// SetPipelineExecutionDisplayName sets the PipelineExecutionDisplayName field's value.
func (s *PipelineExecution) SetPipelineExecutionDisplayName(v string) *PipelineExecution {
	s.PipelineExecutionDisplayName = &v
	return s
}

// SetPipelineExecutionStatus sets the PipelineExecutionStatus field's value.
func (s *PipelineExecution) SetPipelineExecutionStatus(v string) *PipelineExecution {
	s.PipelineExecutionStatus = &v
	return s
}

// SetPipelineExperimentConfig sets the PipelineExperimentConfig field's value.
func (s *PipelineExecution) SetPipelineExperimentConfig(v *PipelineExperimentConfig) *PipelineExecution {
	s.PipelineExperimentConfig = v
	return s
}

// SetPipelineParameters sets the PipelineParameters field's value.
func (s *PipelineExecution) SetPipelineParameters(v []*Parameter) *PipelineExecution {
	s.PipelineParameters = v
	return s
}

// SetSelectiveExecutionConfig sets the SelectiveExecutionConfig field's value.
func (s *PipelineExecution) SetSelectiveExecutionConfig(v *SelectiveExecutionConfig) *PipelineExecution {
	s.SelectiveExecutionConfig = v
	return s
}

// An execution of a step in a pipeline.
type PipelineExecutionStep struct {
	_ struct{} `type:"structure"`

	// The current attempt of the execution step. For more information, see Retry
	// Policy for SageMaker Pipelines steps (https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-retry-policy.html).
	AttemptCount *int64 `type:"integer"`

	// If this pipeline execution step was cached, details on the cache hit.
	CacheHitResult *CacheHitResult `type:"structure"`

	// The time that the step stopped executing.
	EndTime *time.Time `type:"timestamp"`

	// The reason why the step failed execution. This is only returned if the step
	// failed its execution.
	FailureReason *string `type:"string"`

	// Metadata to run the pipeline step.
	Metadata *PipelineExecutionStepMetadata `type:"structure"`

	// The ARN from an execution of the current pipeline from which results are
	// reused for this step.
	SelectiveExecutionResult *SelectiveExecutionResult `type:"structure"`

	// The time that the step started executing.
	StartTime *time.Time `type:"timestamp"`

	// The description of the step.
	StepDescription *string `type:"string"`

	// The display name of the step.
	StepDisplayName *string `type:"string"`

	// The name of the step that is executed.
	StepName *string `type:"string"`

	// The status of the step execution.
	StepStatus *string `type:"string" enum:"StepStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PipelineExecutionStep) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PipelineExecutionStep) GoString() string {
	return s.String()
}

// SetAttemptCount sets the AttemptCount field's value.
func (s *PipelineExecutionStep) SetAttemptCount(v int64) *PipelineExecutionStep {
	s.AttemptCount = &v
	return s
}

// SetCacheHitResult sets the CacheHitResult field's value.
func (s *PipelineExecutionStep) SetCacheHitResult(v *CacheHitResult) *PipelineExecutionStep {
	s.CacheHitResult = v
	return s
}

// SetEndTime sets the EndTime field's value.
func (s *PipelineExecutionStep) SetEndTime(v time.Time) *PipelineExecutionStep {
	s.EndTime = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *PipelineExecutionStep) SetFailureReason(v string) *PipelineExecutionStep {
	s.FailureReason = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *PipelineExecutionStep) SetMetadata(v *PipelineExecutionStepMetadata) *PipelineExecutionStep {
	s.Metadata = v
	return s
}

// SetSelectiveExecutionResult sets the SelectiveExecutionResult field's value.
func (s *PipelineExecutionStep) SetSelectiveExecutionResult(v *SelectiveExecutionResult) *PipelineExecutionStep {
	s.SelectiveExecutionResult = v
	return s
}

// SetStartTime sets the StartTime field's value.
func (s *PipelineExecutionStep) SetStartTime(v time.Time) *PipelineExecutionStep {
	s.StartTime = &v
	return s
}

// SetStepDescription sets the StepDescription field's value.
func (s *PipelineExecutionStep) SetStepDescription(v string) *PipelineExecutionStep {
	s.StepDescription = &v
	return s
}

// SetStepDisplayName sets the StepDisplayName field's value.
func (s *PipelineExecutionStep) SetStepDisplayName(v string) *PipelineExecutionStep {
	s.StepDisplayName = &v
	return s
}

// SetStepName sets the StepName field's value.
func (s *PipelineExecutionStep) SetStepName(v string) *PipelineExecutionStep {
	s.StepName = &v
	return s
}

// SetStepStatus sets the StepStatus field's value.
func (s *PipelineExecutionStep) SetStepStatus(v string) *PipelineExecutionStep {
	s.StepStatus = &v
	return s
}

// Metadata for a step execution.
type PipelineExecutionStepMetadata struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the AutoML job that was run by this step.
	AutoMLJob *AutoMLJobStepMetadata `type:"structure"`

	// The URL of the Amazon SQS queue used by this step execution, the pipeline
	// generated token, and a list of output parameters.
	Callback *CallbackStepMetadata `type:"structure"`

	// Container for the metadata for a Clarify check step. The configurations and
	// outcomes of the check step execution. This includes:
	//
	//    * The type of the check conducted,
	//
	//    * The Amazon S3 URIs of baseline constraints and statistics files to be
	//    used for the drift check.
	//
	//    * The Amazon S3 URIs of newly calculated baseline constraints and statistics.
	//
	//    * The model package group name provided.
	//
	//    * The Amazon S3 URI of the violation report if violations detected.
	//
	//    * The Amazon Resource Name (ARN) of check processing job initiated by
	//    the step execution.
	//
	//    * The boolean flags indicating if the drift check is skipped.
	//
	//    * If step property BaselineUsedForDriftCheck is set the same as CalculatedBaseline.
	ClarifyCheck *ClarifyCheckStepMetadata `type:"structure"`

	// The outcome of the condition evaluation that was run by this step execution.
	Condition *ConditionStepMetadata `type:"structure"`

	// The configurations and outcomes of an Amazon EMR step execution.
	EMR *EMRStepMetadata `type:"structure"`

	// The configurations and outcomes of a Fail step execution.
	Fail *FailStepMetadata `type:"structure"`

	// The Amazon Resource Name (ARN) of the Lambda function that was run by this
	// step execution and a list of output parameters.
	Lambda *LambdaStepMetadata `type:"structure"`

	// The Amazon Resource Name (ARN) of the model that was created by this step
	// execution.
	Model *ModelStepMetadata `type:"structure"`

	// The Amazon Resource Name (ARN) of the processing job that was run by this
	// step execution.
	ProcessingJob *ProcessingJobStepMetadata `type:"structure"`

	// The configurations and outcomes of the check step execution. This includes:
	//
	//    * The type of the check conducted.
	//
	//    * The Amazon S3 URIs of baseline constraints and statistics files to be
	//    used for the drift check.
	//
	//    * The Amazon S3 URIs of newly calculated baseline constraints and statistics.
	//
	//    * The model package group name provided.
	//
	//    * The Amazon S3 URI of the violation report if violations detected.
	//
	//    * The Amazon Resource Name (ARN) of check processing job initiated by
	//    the step execution.
	//
	//    * The Boolean flags indicating if the drift check is skipped.
	//
	//    * If step property BaselineUsedForDriftCheck is set the same as CalculatedBaseline.
	QualityCheck *QualityCheckStepMetadata `type:"structure"`

	// The Amazon Resource Name (ARN) of the model package that the model was registered
	// to by this step execution.
	RegisterModel *RegisterModelStepMetadata `type:"structure"`

	// The Amazon Resource Name (ARN) of the training job that was run by this step
	// execution.
	TrainingJob *TrainingJobStepMetadata `type:"structure"`

	// The Amazon Resource Name (ARN) of the transform job that was run by this
	// step execution.
	TransformJob *TransformJobStepMetadata `type:"structure"`

	// The Amazon Resource Name (ARN) of the tuning job that was run by this step
	// execution.
	TuningJob *TuningJobStepMetaData `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PipelineExecutionStepMetadata) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PipelineExecutionStepMetadata) GoString() string {
	return s.String()
}

// SetAutoMLJob sets the AutoMLJob field's value.
func (s *PipelineExecutionStepMetadata) SetAutoMLJob(v *AutoMLJobStepMetadata) *PipelineExecutionStepMetadata {
	s.AutoMLJob = v
	return s
}

// SetCallback sets the Callback field's value.
func (s *PipelineExecutionStepMetadata) SetCallback(v *CallbackStepMetadata) *PipelineExecutionStepMetadata {
	s.Callback = v
	return s
}

// SetClarifyCheck sets the ClarifyCheck field's value.
func (s *PipelineExecutionStepMetadata) SetClarifyCheck(v *ClarifyCheckStepMetadata) *PipelineExecutionStepMetadata {
	s.ClarifyCheck = v
	return s
}

// SetCondition sets the Condition field's value.
func (s *PipelineExecutionStepMetadata) SetCondition(v *ConditionStepMetadata) *PipelineExecutionStepMetadata {
	s.Condition = v
	return s
}

// SetEMR sets the EMR field's value.
func (s *PipelineExecutionStepMetadata) SetEMR(v *EMRStepMetadata) *PipelineExecutionStepMetadata {
	s.EMR = v
	return s
}

// SetFail sets the Fail field's value.
func (s *PipelineExecutionStepMetadata) SetFail(v *FailStepMetadata) *PipelineExecutionStepMetadata {
	s.Fail = v
	return s
}

// SetLambda sets the Lambda field's value.
func (s *PipelineExecutionStepMetadata) SetLambda(v *LambdaStepMetadata) *PipelineExecutionStepMetadata {
	s.Lambda = v
	return s
}

// SetModel sets the Model field's value.
func (s *PipelineExecutionStepMetadata) SetModel(v *ModelStepMetadata) *PipelineExecutionStepMetadata {
	s.Model = v
	return s
}

// SetProcessingJob sets the ProcessingJob field's value.
func (s *PipelineExecutionStepMetadata) SetProcessingJob(v *ProcessingJobStepMetadata) *PipelineExecutionStepMetadata {
	s.ProcessingJob = v
	return s
}

// SetQualityCheck sets the QualityCheck field's value.
func (s *PipelineExecutionStepMetadata) SetQualityCheck(v *QualityCheckStepMetadata) *PipelineExecutionStepMetadata {
	s.QualityCheck = v
	return s
}

// SetRegisterModel sets the RegisterModel field's value.
func (s *PipelineExecutionStepMetadata) SetRegisterModel(v *RegisterModelStepMetadata) *PipelineExecutionStepMetadata {
	s.RegisterModel = v
	return s
}

// SetTrainingJob sets the TrainingJob field's value.
func (s *PipelineExecutionStepMetadata) SetTrainingJob(v *TrainingJobStepMetadata) *PipelineExecutionStepMetadata {
	s.TrainingJob = v
	return s
}

// SetTransformJob sets the TransformJob field's value.
func (s *PipelineExecutionStepMetadata) SetTransformJob(v *TransformJobStepMetadata) *PipelineExecutionStepMetadata {
	s.TransformJob = v
	return s
}

// SetTuningJob sets the TuningJob field's value.
func (s *PipelineExecutionStepMetadata) SetTuningJob(v *TuningJobStepMetaData) *PipelineExecutionStepMetadata {
	s.TuningJob = v
	return s
}

// A pipeline execution summary.
type PipelineExecutionSummary struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the pipeline execution.
	PipelineExecutionArn *string `type:"string"`

	// The description of the pipeline execution.
	PipelineExecutionDescription *string `type:"string"`

	// The display name of the pipeline execution.
	PipelineExecutionDisplayName *string `min:"1" type:"string"`

	// A message generated by SageMaker Pipelines describing why the pipeline execution
	// failed.
	PipelineExecutionFailureReason *string `type:"string"`

	// The status of the pipeline execution.
	PipelineExecutionStatus *string `type:"string" enum:"PipelineExecutionStatus"`

	// The start time of the pipeline execution.
	StartTime *time.Time `type:"timestamp"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PipelineExecutionSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PipelineExecutionSummary) GoString() string {
	return s.String()
}

// SetPipelineExecutionArn sets the PipelineExecutionArn field's value.
func (s *PipelineExecutionSummary) SetPipelineExecutionArn(v string) *PipelineExecutionSummary {
	s.PipelineExecutionArn = &v
	return s
}

// SetPipelineExecutionDescription sets the PipelineExecutionDescription field's value.
func (s *PipelineExecutionSummary) SetPipelineExecutionDescription(v string) *PipelineExecutionSummary {
	s.PipelineExecutionDescription = &v
	return s
}

// SetPipelineExecutionDisplayName sets the PipelineExecutionDisplayName field's value.
func (s *PipelineExecutionSummary) SetPipelineExecutionDisplayName(v string) *PipelineExecutionSummary {
	s.PipelineExecutionDisplayName = &v
	return s
}

// SetPipelineExecutionFailureReason sets the PipelineExecutionFailureReason field's value.
func (s *PipelineExecutionSummary) SetPipelineExecutionFailureReason(v string) *PipelineExecutionSummary {
	s.PipelineExecutionFailureReason = &v
	return s
}

// SetPipelineExecutionStatus sets the PipelineExecutionStatus field's value.
func (s *PipelineExecutionSummary) SetPipelineExecutionStatus(v string) *PipelineExecutionSummary {
	s.PipelineExecutionStatus = &v
	return s
}

// SetStartTime sets the StartTime field's value.
func (s *PipelineExecutionSummary) SetStartTime(v time.Time) *PipelineExecutionSummary {
	s.StartTime = &v
	return s
}

// Specifies the names of the experiment and trial created by a pipeline.
type PipelineExperimentConfig struct {
	_ struct{} `type:"structure"`

	// The name of the experiment.
	ExperimentName *string `min:"1" type:"string"`

	// The name of the trial.
	TrialName *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PipelineExperimentConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PipelineExperimentConfig) GoString() string {
	return s.String()
}

// SetExperimentName sets the ExperimentName field's value.
func (s *PipelineExperimentConfig) SetExperimentName(v string) *PipelineExperimentConfig {
	s.ExperimentName = &v
	return s
}

// SetTrialName sets the TrialName field's value.
func (s *PipelineExperimentConfig) SetTrialName(v string) *PipelineExperimentConfig {
	s.TrialName = &v
	return s
}

// A summary of a pipeline.
type PipelineSummary struct {
	_ struct{} `type:"structure"`

	// The creation time of the pipeline.
	CreationTime *time.Time `type:"timestamp"`

	// The last time that a pipeline execution began.
	LastExecutionTime *time.Time `type:"timestamp"`

	// The time that the pipeline was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the pipeline.
	PipelineArn *string `type:"string"`

	// The description of the pipeline.
	PipelineDescription *string `type:"string"`

	// The display name of the pipeline.
	PipelineDisplayName *string `min:"1" type:"string"`

	// The name of the pipeline.
	PipelineName *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) that the pipeline used to execute.
	RoleArn *string `min:"20" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PipelineSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PipelineSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *PipelineSummary) SetCreationTime(v time.Time) *PipelineSummary {
	s.CreationTime = &v
	return s
}

// SetLastExecutionTime sets the LastExecutionTime field's value.
func (s *PipelineSummary) SetLastExecutionTime(v time.Time) *PipelineSummary {
	s.LastExecutionTime = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *PipelineSummary) SetLastModifiedTime(v time.Time) *PipelineSummary {
	s.LastModifiedTime = &v
	return s
}

// SetPipelineArn sets the PipelineArn field's value.
func (s *PipelineSummary) SetPipelineArn(v string) *PipelineSummary {
	s.PipelineArn = &v
	return s
}

// SetPipelineDescription sets the PipelineDescription field's value.
func (s *PipelineSummary) SetPipelineDescription(v string) *PipelineSummary {
	s.PipelineDescription = &v
	return s
}

// SetPipelineDisplayName sets the PipelineDisplayName field's value.
func (s *PipelineSummary) SetPipelineDisplayName(v string) *PipelineSummary {
	s.PipelineDisplayName = &v
	return s
}

// SetPipelineName sets the PipelineName field's value.
func (s *PipelineSummary) SetPipelineName(v string) *PipelineSummary {
	s.PipelineName = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *PipelineSummary) SetRoleArn(v string) *PipelineSummary {
	s.RoleArn = &v
	return s
}

// A specification for a predefined metric.
type PredefinedMetricSpecification struct {
	_ struct{} `type:"structure"`

	// The metric type. You can only apply SageMaker metric types to SageMaker endpoints.
	PredefinedMetricType *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PredefinedMetricSpecification) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PredefinedMetricSpecification) GoString() string {
	return s.String()
}

// SetPredefinedMetricType sets the PredefinedMetricType field's value.
func (s *PredefinedMetricSpecification) SetPredefinedMetricType(v string) *PredefinedMetricSpecification {
	s.PredefinedMetricType = &v
	return s
}

// Configuration for the cluster used to run a processing job.
type ProcessingClusterConfig struct {
	_ struct{} `type:"structure"`

	// The number of ML compute instances to use in the processing job. For distributed
	// processing jobs, specify a value greater than 1. The default value is 1.
	//
	// InstanceCount is a required field
	InstanceCount *int64 `min:"1" type:"integer" required:"true"`

	// The ML compute instance type for the processing job.
	//
	// InstanceType is a required field
	InstanceType *string `type:"string" required:"true" enum:"ProcessingInstanceType"`

	// The Amazon Web Services Key Management Service (Amazon Web Services KMS)
	// key that Amazon SageMaker uses to encrypt data on the storage volume attached
	// to the ML compute instance(s) that run the processing job.
	//
	// Certain Nitro-based instances include local storage, dependent on the instance
	// type. Local storage volumes are encrypted using a hardware module on the
	// instance. You can't request a VolumeKmsKeyId when using an instance type
	// with local storage.
	//
	// For a list of instance types that support local instance storage, see Instance
	// Store Volumes (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes).
	//
	// For more information about local instance storage encryption, see SSD Instance
	// Store Volumes (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html).
	VolumeKmsKeyId *string `type:"string"`

	// The size of the ML storage volume in gigabytes that you want to provision.
	// You must specify sufficient ML storage for your scenario.
	//
	// Certain Nitro-based instances include local storage with a fixed total size,
	// dependent on the instance type. When using these instances for processing,
	// Amazon SageMaker mounts the local instance storage instead of Amazon EBS
	// gp2 storage. You can't request a VolumeSizeInGB greater than the total size
	// of the local instance storage.
	//
	// For a list of instance types that support local instance storage, including
	// the total size per instance type, see Instance Store Volumes (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes).
	//
	// VolumeSizeInGB is a required field
	VolumeSizeInGB *int64 `min:"1" type:"integer" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProcessingClusterConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProcessingClusterConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ProcessingClusterConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ProcessingClusterConfig"}
	if s.InstanceCount == nil {
		invalidParams.Add(request.NewErrParamRequired("InstanceCount"))
	}
	if s.InstanceCount != nil && *s.InstanceCount < 1 {
		invalidParams.Add(request.NewErrParamMinValue("InstanceCount", 1))
	}
	if s.InstanceType == nil {
		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
	}
	if s.VolumeSizeInGB == nil {
		invalidParams.Add(request.NewErrParamRequired("VolumeSizeInGB"))
	}
	if s.VolumeSizeInGB != nil && *s.VolumeSizeInGB < 1 {
		invalidParams.Add(request.NewErrParamMinValue("VolumeSizeInGB", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetInstanceCount sets the InstanceCount field's value.
func (s *ProcessingClusterConfig) SetInstanceCount(v int64) *ProcessingClusterConfig {
	s.InstanceCount = &v
	return s
}

// SetInstanceType sets the InstanceType field's value.
func (s *ProcessingClusterConfig) SetInstanceType(v string) *ProcessingClusterConfig {
	s.InstanceType = &v
	return s
}

// SetVolumeKmsKeyId sets the VolumeKmsKeyId field's value.
func (s *ProcessingClusterConfig) SetVolumeKmsKeyId(v string) *ProcessingClusterConfig {
	s.VolumeKmsKeyId = &v
	return s
}

// SetVolumeSizeInGB sets the VolumeSizeInGB field's value.
func (s *ProcessingClusterConfig) SetVolumeSizeInGB(v int64) *ProcessingClusterConfig {
	s.VolumeSizeInGB = &v
	return s
}

// Configuration for processing job outputs in Amazon SageMaker Feature Store.
type ProcessingFeatureStoreOutput struct {
	_ struct{} `type:"structure"`

	// The name of the Amazon SageMaker FeatureGroup to use as the destination for
	// processing job output. Note that your processing script is responsible for
	// putting records into your Feature Store.
	//
	// FeatureGroupName is a required field
	FeatureGroupName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProcessingFeatureStoreOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProcessingFeatureStoreOutput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ProcessingFeatureStoreOutput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ProcessingFeatureStoreOutput"}
	if s.FeatureGroupName == nil {
		invalidParams.Add(request.NewErrParamRequired("FeatureGroupName"))
	}
	if s.FeatureGroupName != nil && len(*s.FeatureGroupName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FeatureGroupName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFeatureGroupName sets the FeatureGroupName field's value.
func (s *ProcessingFeatureStoreOutput) SetFeatureGroupName(v string) *ProcessingFeatureStoreOutput {
	s.FeatureGroupName = &v
	return s
}

// The inputs for a processing job. The processing input must specify exactly
// one of either S3Input or DatasetDefinition types.
type ProcessingInput struct {
	_ struct{} `type:"structure"`

	// When True, input operations such as data download are managed natively by
	// the processing job application. When False (default), input operations are
	// managed by Amazon SageMaker.
	AppManaged *bool `type:"boolean"`

	// Configuration for a Dataset Definition input.
	DatasetDefinition *DatasetDefinition `type:"structure"`

	// The name for the processing job input.
	//
	// InputName is a required field
	InputName *string `type:"string" required:"true"`

	// Configuration for downloading input data from Amazon S3 into the processing
	// container.
	S3Input *ProcessingS3Input `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProcessingInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProcessingInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ProcessingInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ProcessingInput"}
	if s.InputName == nil {
		invalidParams.Add(request.NewErrParamRequired("InputName"))
	}
	if s.DatasetDefinition != nil {
		if err := s.DatasetDefinition.Validate(); err != nil {
			invalidParams.AddNested("DatasetDefinition", err.(request.ErrInvalidParams))
		}
	}
	if s.S3Input != nil {
		if err := s.S3Input.Validate(); err != nil {
			invalidParams.AddNested("S3Input", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppManaged sets the AppManaged field's value.
func (s *ProcessingInput) SetAppManaged(v bool) *ProcessingInput {
	s.AppManaged = &v
	return s
}

// SetDatasetDefinition sets the DatasetDefinition field's value.
func (s *ProcessingInput) SetDatasetDefinition(v *DatasetDefinition) *ProcessingInput {
	s.DatasetDefinition = v
	return s
}

// SetInputName sets the InputName field's value.
func (s *ProcessingInput) SetInputName(v string) *ProcessingInput {
	s.InputName = &v
	return s
}

// SetS3Input sets the S3Input field's value.
func (s *ProcessingInput) SetS3Input(v *ProcessingS3Input) *ProcessingInput {
	s.S3Input = v
	return s
}

// An Amazon SageMaker processing job that is used to analyze data and evaluate
// models. For more information, see Process Data and Evaluate Models (https://docs.aws.amazon.com/sagemaker/latest/dg/processing-job.html).
type ProcessingJob struct {
	_ struct{} `type:"structure"`

	// Configuration to run a processing job in a specified container image.
	AppSpecification *AppSpecification `type:"structure"`

	// The Amazon Resource Name (ARN) of the AutoML job associated with this processing
	// job.
	AutoMLJobArn *string `min:"1" type:"string"`

	// The time the processing job was created.
	CreationTime *time.Time `type:"timestamp"`

	// Sets the environment variables in the Docker container.
	Environment map[string]*string `type:"map"`

	// A string, up to one KB in size, that contains metadata from the processing
	// container when the processing job exits.
	ExitMessage *string `type:"string"`

	// Associates a SageMaker job as a trial component with an experiment and trial.
	// Specified when you call the following APIs:
	//
	//    * CreateProcessingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html)
	//
	//    * CreateTrainingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)
	//
	//    * CreateTransformJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html)
	ExperimentConfig *ExperimentConfig `type:"structure"`

	// A string, up to one KB in size, that contains the reason a processing job
	// failed, if it failed.
	FailureReason *string `type:"string"`

	// The time the processing job was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The ARN of a monitoring schedule for an endpoint associated with this processing
	// job.
	MonitoringScheduleArn *string `type:"string"`

	// Networking options for a job, such as network traffic encryption between
	// containers, whether to allow inbound and outbound network calls to and from
	// containers, and the VPC subnets and security groups to use for VPC-enabled
	// jobs.
	NetworkConfig *NetworkConfig `type:"structure"`

	// The time that the processing job ended.
	ProcessingEndTime *time.Time `type:"timestamp"`

	// List of input configurations for the processing job.
	ProcessingInputs []*ProcessingInput `type:"list"`

	// The ARN of the processing job.
	ProcessingJobArn *string `type:"string"`

	// The name of the processing job.
	ProcessingJobName *string `min:"1" type:"string"`

	// The status of the processing job.
	ProcessingJobStatus *string `type:"string" enum:"ProcessingJobStatus"`

	// Configuration for uploading output from the processing container.
	ProcessingOutputConfig *ProcessingOutputConfig `type:"structure"`

	// Identifies the resources, ML compute instances, and ML storage volumes to
	// deploy for a processing job. In distributed training, you specify more than
	// one instance.
	ProcessingResources *ProcessingResources `type:"structure"`

	// The time that the processing job started.
	ProcessingStartTime *time.Time `type:"timestamp"`

	// The ARN of the role used to create the processing job.
	RoleArn *string `min:"20" type:"string"`

	// Configures conditions under which the processing job should be stopped, such
	// as how long the processing job has been running. After the condition is met,
	// the processing job is stopped.
	StoppingCondition *ProcessingStoppingCondition `type:"structure"`

	// An array of key-value pairs. For more information, see Using Cost Allocation
	// Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL)
	// in the Amazon Web Services Billing and Cost Management User Guide.
	Tags []*Tag `type:"list"`

	// The ARN of the training job associated with this processing job.
	TrainingJobArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProcessingJob) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProcessingJob) GoString() string {
	return s.String()
}

// SetAppSpecification sets the AppSpecification field's value.
func (s *ProcessingJob) SetAppSpecification(v *AppSpecification) *ProcessingJob {
	s.AppSpecification = v
	return s
}

// SetAutoMLJobArn sets the AutoMLJobArn field's value.
func (s *ProcessingJob) SetAutoMLJobArn(v string) *ProcessingJob {
	s.AutoMLJobArn = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *ProcessingJob) SetCreationTime(v time.Time) *ProcessingJob {
	s.CreationTime = &v
	return s
}

// SetEnvironment sets the Environment field's value.
func (s *ProcessingJob) SetEnvironment(v map[string]*string) *ProcessingJob {
	s.Environment = v
	return s
}

// SetExitMessage sets the ExitMessage field's value.
func (s *ProcessingJob) SetExitMessage(v string) *ProcessingJob {
	s.ExitMessage = &v
	return s
}

// SetExperimentConfig sets the ExperimentConfig field's value.
func (s *ProcessingJob) SetExperimentConfig(v *ExperimentConfig) *ProcessingJob {
	s.ExperimentConfig = v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *ProcessingJob) SetFailureReason(v string) *ProcessingJob {
	s.FailureReason = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *ProcessingJob) SetLastModifiedTime(v time.Time) *ProcessingJob {
	s.LastModifiedTime = &v
	return s
}

// SetMonitoringScheduleArn sets the MonitoringScheduleArn field's value.
func (s *ProcessingJob) SetMonitoringScheduleArn(v string) *ProcessingJob {
	s.MonitoringScheduleArn = &v
	return s
}

// SetNetworkConfig sets the NetworkConfig field's value.
func (s *ProcessingJob) SetNetworkConfig(v *NetworkConfig) *ProcessingJob {
	s.NetworkConfig = v
	return s
}

// SetProcessingEndTime sets the ProcessingEndTime field's value.
func (s *ProcessingJob) SetProcessingEndTime(v time.Time) *ProcessingJob {
	s.ProcessingEndTime = &v
	return s
}

// SetProcessingInputs sets the ProcessingInputs field's value.
func (s *ProcessingJob) SetProcessingInputs(v []*ProcessingInput) *ProcessingJob {
	s.ProcessingInputs = v
	return s
}

// SetProcessingJobArn sets the ProcessingJobArn field's value.
func (s *ProcessingJob) SetProcessingJobArn(v string) *ProcessingJob {
	s.ProcessingJobArn = &v
	return s
}

// SetProcessingJobName sets the ProcessingJobName field's value.
func (s *ProcessingJob) SetProcessingJobName(v string) *ProcessingJob {
	s.ProcessingJobName = &v
	return s
}

// SetProcessingJobStatus sets the ProcessingJobStatus field's value.
func (s *ProcessingJob) SetProcessingJobStatus(v string) *ProcessingJob {
	s.ProcessingJobStatus = &v
	return s
}

// SetProcessingOutputConfig sets the ProcessingOutputConfig field's value.
func (s *ProcessingJob) SetProcessingOutputConfig(v *ProcessingOutputConfig) *ProcessingJob {
	s.ProcessingOutputConfig = v
	return s
}

// SetProcessingResources sets the ProcessingResources field's value.
func (s *ProcessingJob) SetProcessingResources(v *ProcessingResources) *ProcessingJob {
	s.ProcessingResources = v
	return s
}

// SetProcessingStartTime sets the ProcessingStartTime field's value.
func (s *ProcessingJob) SetProcessingStartTime(v time.Time) *ProcessingJob {
	s.ProcessingStartTime = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *ProcessingJob) SetRoleArn(v string) *ProcessingJob {
	s.RoleArn = &v
	return s
}

// SetStoppingCondition sets the StoppingCondition field's value.
func (s *ProcessingJob) SetStoppingCondition(v *ProcessingStoppingCondition) *ProcessingJob {
	s.StoppingCondition = v
	return s
}

// SetTags sets the Tags field's value.
func (s *ProcessingJob) SetTags(v []*Tag) *ProcessingJob {
	s.Tags = v
	return s
}

// SetTrainingJobArn sets the TrainingJobArn field's value.
func (s *ProcessingJob) SetTrainingJobArn(v string) *ProcessingJob {
	s.TrainingJobArn = &v
	return s
}

// Metadata for a processing job step.
type ProcessingJobStepMetadata struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the processing job.
	Arn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProcessingJobStepMetadata) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProcessingJobStepMetadata) GoString() string {
	return s.String()
}

// SetArn sets the Arn field's value.
func (s *ProcessingJobStepMetadata) SetArn(v string) *ProcessingJobStepMetadata {
	s.Arn = &v
	return s
}

// Summary of information about a processing job.
type ProcessingJobSummary struct {
	_ struct{} `type:"structure"`

	// The time at which the processing job was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// An optional string, up to one KB in size, that contains metadata from the
	// processing container when the processing job exits.
	ExitMessage *string `type:"string"`

	// A string, up to one KB in size, that contains the reason a processing job
	// failed, if it failed.
	FailureReason *string `type:"string"`

	// A timestamp that indicates the last time the processing job was modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The time at which the processing job completed.
	ProcessingEndTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the processing job..
	//
	// ProcessingJobArn is a required field
	ProcessingJobArn *string `type:"string" required:"true"`

	// The name of the processing job.
	//
	// ProcessingJobName is a required field
	ProcessingJobName *string `min:"1" type:"string" required:"true"`

	// The status of the processing job.
	//
	// ProcessingJobStatus is a required field
	ProcessingJobStatus *string `type:"string" required:"true" enum:"ProcessingJobStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProcessingJobSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProcessingJobSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *ProcessingJobSummary) SetCreationTime(v time.Time) *ProcessingJobSummary {
	s.CreationTime = &v
	return s
}

// SetExitMessage sets the ExitMessage field's value.
func (s *ProcessingJobSummary) SetExitMessage(v string) *ProcessingJobSummary {
	s.ExitMessage = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *ProcessingJobSummary) SetFailureReason(v string) *ProcessingJobSummary {
	s.FailureReason = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *ProcessingJobSummary) SetLastModifiedTime(v time.Time) *ProcessingJobSummary {
	s.LastModifiedTime = &v
	return s
}

// SetProcessingEndTime sets the ProcessingEndTime field's value.
func (s *ProcessingJobSummary) SetProcessingEndTime(v time.Time) *ProcessingJobSummary {
	s.ProcessingEndTime = &v
	return s
}

// SetProcessingJobArn sets the ProcessingJobArn field's value.
func (s *ProcessingJobSummary) SetProcessingJobArn(v string) *ProcessingJobSummary {
	s.ProcessingJobArn = &v
	return s
}

// SetProcessingJobName sets the ProcessingJobName field's value.
func (s *ProcessingJobSummary) SetProcessingJobName(v string) *ProcessingJobSummary {
	s.ProcessingJobName = &v
	return s
}

// SetProcessingJobStatus sets the ProcessingJobStatus field's value.
func (s *ProcessingJobSummary) SetProcessingJobStatus(v string) *ProcessingJobSummary {
	s.ProcessingJobStatus = &v
	return s
}

// Describes the results of a processing job. The processing output must specify
// exactly one of either S3Output or FeatureStoreOutput types.
type ProcessingOutput struct {
	_ struct{} `type:"structure"`

	// When True, output operations such as data upload are managed natively by
	// the processing job application. When False (default), output operations are
	// managed by Amazon SageMaker.
	AppManaged *bool `type:"boolean"`

	// Configuration for processing job outputs in Amazon SageMaker Feature Store.
	// This processing output type is only supported when AppManaged is specified.
	FeatureStoreOutput *ProcessingFeatureStoreOutput `type:"structure"`

	// The name for the processing job output.
	//
	// OutputName is a required field
	OutputName *string `type:"string" required:"true"`

	// Configuration for processing job outputs in Amazon S3.
	S3Output *ProcessingS3Output `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProcessingOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProcessingOutput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ProcessingOutput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ProcessingOutput"}
	if s.OutputName == nil {
		invalidParams.Add(request.NewErrParamRequired("OutputName"))
	}
	if s.FeatureStoreOutput != nil {
		if err := s.FeatureStoreOutput.Validate(); err != nil {
			invalidParams.AddNested("FeatureStoreOutput", err.(request.ErrInvalidParams))
		}
	}
	if s.S3Output != nil {
		if err := s.S3Output.Validate(); err != nil {
			invalidParams.AddNested("S3Output", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppManaged sets the AppManaged field's value.
func (s *ProcessingOutput) SetAppManaged(v bool) *ProcessingOutput {
	s.AppManaged = &v
	return s
}

// SetFeatureStoreOutput sets the FeatureStoreOutput field's value.
func (s *ProcessingOutput) SetFeatureStoreOutput(v *ProcessingFeatureStoreOutput) *ProcessingOutput {
	s.FeatureStoreOutput = v
	return s
}

// SetOutputName sets the OutputName field's value.
func (s *ProcessingOutput) SetOutputName(v string) *ProcessingOutput {
	s.OutputName = &v
	return s
}

// SetS3Output sets the S3Output field's value.
func (s *ProcessingOutput) SetS3Output(v *ProcessingS3Output) *ProcessingOutput {
	s.S3Output = v
	return s
}

// Configuration for uploading output from the processing container.
type ProcessingOutputConfig struct {
	_ struct{} `type:"structure"`

	// The Amazon Web Services Key Management Service (Amazon Web Services KMS)
	// key that Amazon SageMaker uses to encrypt the processing job output. KmsKeyId
	// can be an ID of a KMS key, ARN of a KMS key, alias of a KMS key, or alias
	// of a KMS key. The KmsKeyId is applied to all outputs.
	KmsKeyId *string `type:"string"`

	// An array of outputs configuring the data to upload from the processing container.
	//
	// Outputs is a required field
	Outputs []*ProcessingOutput `type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProcessingOutputConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProcessingOutputConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ProcessingOutputConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ProcessingOutputConfig"}
	if s.Outputs == nil {
		invalidParams.Add(request.NewErrParamRequired("Outputs"))
	}
	if s.Outputs != nil {
		for i, v := range s.Outputs {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Outputs", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *ProcessingOutputConfig) SetKmsKeyId(v string) *ProcessingOutputConfig {
	s.KmsKeyId = &v
	return s
}

// SetOutputs sets the Outputs field's value.
func (s *ProcessingOutputConfig) SetOutputs(v []*ProcessingOutput) *ProcessingOutputConfig {
	s.Outputs = v
	return s
}

// Identifies the resources, ML compute instances, and ML storage volumes to
// deploy for a processing job. In distributed training, you specify more than
// one instance.
type ProcessingResources struct {
	_ struct{} `type:"structure"`

	// The configuration for the resources in a cluster used to run the processing
	// job.
	//
	// ClusterConfig is a required field
	ClusterConfig *ProcessingClusterConfig `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProcessingResources) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProcessingResources) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ProcessingResources) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ProcessingResources"}
	if s.ClusterConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("ClusterConfig"))
	}
	if s.ClusterConfig != nil {
		if err := s.ClusterConfig.Validate(); err != nil {
			invalidParams.AddNested("ClusterConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClusterConfig sets the ClusterConfig field's value.
func (s *ProcessingResources) SetClusterConfig(v *ProcessingClusterConfig) *ProcessingResources {
	s.ClusterConfig = v
	return s
}

// Configuration for downloading input data from Amazon S3 into the processing
// container.
type ProcessingS3Input struct {
	_ struct{} `type:"structure"`

	// The local path in your container where you want Amazon SageMaker to write
	// input data to. LocalPath is an absolute path to the input data and must begin
	// with /opt/ml/processing/. LocalPath is a required parameter when AppManaged
	// is False (default).
	LocalPath *string `type:"string"`

	// Whether to GZIP-decompress the data in Amazon S3 as it is streamed into the
	// processing container. Gzip can only be used when Pipe mode is specified as
	// the S3InputMode. In Pipe mode, Amazon SageMaker streams input data from the
	// source directly to your container without using the EBS volume.
	S3CompressionType *string `type:"string" enum:"ProcessingS3CompressionType"`

	// Whether to distribute the data from Amazon S3 to all processing instances
	// with FullyReplicated, or whether the data from Amazon S3 is shared by Amazon
	// S3 key, downloading one shard of data to each processing instance.
	S3DataDistributionType *string `type:"string" enum:"ProcessingS3DataDistributionType"`

	// Whether you use an S3Prefix or a ManifestFile for the data type. If you choose
	// S3Prefix, S3Uri identifies a key name prefix. Amazon SageMaker uses all objects
	// with the specified key name prefix for the processing job. If you choose
	// ManifestFile, S3Uri identifies an object that is a manifest file containing
	// a list of object keys that you want Amazon SageMaker to use for the processing
	// job.
	//
	// S3DataType is a required field
	S3DataType *string `type:"string" required:"true" enum:"ProcessingS3DataType"`

	// Whether to use File or Pipe input mode. In File mode, Amazon SageMaker copies
	// the data from the input source onto the local ML storage volume before starting
	// your processing container. This is the most commonly used input mode. In
	// Pipe mode, Amazon SageMaker streams input data from the source directly to
	// your processing container into named pipes without using the ML storage volume.
	S3InputMode *string `type:"string" enum:"ProcessingS3InputMode"`

	// The URI of the Amazon S3 prefix Amazon SageMaker downloads data required
	// to run a processing job.
	//
	// S3Uri is a required field
	S3Uri *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProcessingS3Input) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProcessingS3Input) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ProcessingS3Input) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ProcessingS3Input"}
	if s.S3DataType == nil {
		invalidParams.Add(request.NewErrParamRequired("S3DataType"))
	}
	if s.S3Uri == nil {
		invalidParams.Add(request.NewErrParamRequired("S3Uri"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetLocalPath sets the LocalPath field's value.
func (s *ProcessingS3Input) SetLocalPath(v string) *ProcessingS3Input {
	s.LocalPath = &v
	return s
}

// SetS3CompressionType sets the S3CompressionType field's value.
func (s *ProcessingS3Input) SetS3CompressionType(v string) *ProcessingS3Input {
	s.S3CompressionType = &v
	return s
}

// SetS3DataDistributionType sets the S3DataDistributionType field's value.
func (s *ProcessingS3Input) SetS3DataDistributionType(v string) *ProcessingS3Input {
	s.S3DataDistributionType = &v
	return s
}

// SetS3DataType sets the S3DataType field's value.
func (s *ProcessingS3Input) SetS3DataType(v string) *ProcessingS3Input {
	s.S3DataType = &v
	return s
}

// SetS3InputMode sets the S3InputMode field's value.
func (s *ProcessingS3Input) SetS3InputMode(v string) *ProcessingS3Input {
	s.S3InputMode = &v
	return s
}

// SetS3Uri sets the S3Uri field's value.
func (s *ProcessingS3Input) SetS3Uri(v string) *ProcessingS3Input {
	s.S3Uri = &v
	return s
}

// Configuration for uploading output data to Amazon S3 from the processing
// container.
type ProcessingS3Output struct {
	_ struct{} `type:"structure"`

	// The local path of a directory where you want Amazon SageMaker to upload its
	// contents to Amazon S3. LocalPath is an absolute path to a directory containing
	// output files. This directory will be created by the platform and exist when
	// your container's entrypoint is invoked.
	//
	// LocalPath is a required field
	LocalPath *string `type:"string" required:"true"`

	// Whether to upload the results of the processing job continuously or after
	// the job completes.
	//
	// S3UploadMode is a required field
	S3UploadMode *string `type:"string" required:"true" enum:"ProcessingS3UploadMode"`

	// A URI that identifies the Amazon S3 bucket where you want Amazon SageMaker
	// to save the results of a processing job.
	//
	// S3Uri is a required field
	S3Uri *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProcessingS3Output) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProcessingS3Output) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ProcessingS3Output) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ProcessingS3Output"}
	if s.LocalPath == nil {
		invalidParams.Add(request.NewErrParamRequired("LocalPath"))
	}
	if s.S3UploadMode == nil {
		invalidParams.Add(request.NewErrParamRequired("S3UploadMode"))
	}
	if s.S3Uri == nil {
		invalidParams.Add(request.NewErrParamRequired("S3Uri"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetLocalPath sets the LocalPath field's value.
func (s *ProcessingS3Output) SetLocalPath(v string) *ProcessingS3Output {
	s.LocalPath = &v
	return s
}

// SetS3UploadMode sets the S3UploadMode field's value.
func (s *ProcessingS3Output) SetS3UploadMode(v string) *ProcessingS3Output {
	s.S3UploadMode = &v
	return s
}

// SetS3Uri sets the S3Uri field's value.
func (s *ProcessingS3Output) SetS3Uri(v string) *ProcessingS3Output {
	s.S3Uri = &v
	return s
}

// Configures conditions under which the processing job should be stopped, such
// as how long the processing job has been running. After the condition is met,
// the processing job is stopped.
type ProcessingStoppingCondition struct {
	_ struct{} `type:"structure"`

	// Specifies the maximum runtime in seconds.
	//
	// MaxRuntimeInSeconds is a required field
	MaxRuntimeInSeconds *int64 `min:"1" type:"integer" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProcessingStoppingCondition) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProcessingStoppingCondition) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ProcessingStoppingCondition) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ProcessingStoppingCondition"}
	if s.MaxRuntimeInSeconds == nil {
		invalidParams.Add(request.NewErrParamRequired("MaxRuntimeInSeconds"))
	}
	if s.MaxRuntimeInSeconds != nil && *s.MaxRuntimeInSeconds < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxRuntimeInSeconds", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxRuntimeInSeconds sets the MaxRuntimeInSeconds field's value.
func (s *ProcessingStoppingCondition) SetMaxRuntimeInSeconds(v int64) *ProcessingStoppingCondition {
	s.MaxRuntimeInSeconds = &v
	return s
}

// Identifies a model that you want to host and the resources chosen to deploy
// for hosting it. If you are deploying multiple models, tell SageMaker how
// to distribute traffic among the models by specifying variant weights. For
// more information on production variants, check Production variants (https://docs.aws.amazon.com/sagemaker/latest/dg/model-ab-testing.html).
type ProductionVariant struct {
	_ struct{} `type:"structure"`

	// The size of the Elastic Inference (EI) instance to use for the production
	// variant. EI instances provide on-demand GPU computing for inference. For
	// more information, see Using Elastic Inference in Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html).
	AcceleratorType *string `type:"string" enum:"ProductionVariantAcceleratorType"`

	// The timeout value, in seconds, for your inference container to pass health
	// check by SageMaker Hosting. For more information about health check, see
	// How Your Container Should Respond to Health Check (Ping) Requests (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-inference-code.html#your-algorithms-inference-algo-ping-requests).
	ContainerStartupHealthCheckTimeoutInSeconds *int64 `min:"60" type:"integer"`

	// Specifies configuration for a core dump from the model container when the
	// process crashes.
	CoreDumpConfig *ProductionVariantCoreDumpConfig `type:"structure"`

	// You can use this parameter to turn on native Amazon Web Services Systems
	// Manager (SSM) access for a production variant behind an endpoint. By default,
	// SSM access is disabled for all production variants behind an endpoint. You
	// can turn on or turn off SSM access for a production variant behind an existing
	// endpoint by creating a new endpoint configuration and calling UpdateEndpoint.
	EnableSSMAccess *bool `type:"boolean"`

	// Number of instances to launch initially.
	InitialInstanceCount *int64 `min:"1" type:"integer"`

	// Determines initial traffic distribution among all of the models that you
	// specify in the endpoint configuration. The traffic to a production variant
	// is determined by the ratio of the VariantWeight to the sum of all VariantWeight
	// values across all ProductionVariants. If unspecified, it defaults to 1.0.
	InitialVariantWeight *float64 `type:"float"`

	// The ML compute instance type.
	InstanceType *string `type:"string" enum:"ProductionVariantInstanceType"`

	// Settings that control the range in the number of instances that the endpoint
	// provisions as it scales up or down to accommodate traffic.
	ManagedInstanceScaling *ProductionVariantManagedInstanceScaling `type:"structure"`

	// The timeout value, in seconds, to download and extract the model that you
	// want to host from Amazon S3 to the individual inference instance associated
	// with this production variant.
	ModelDataDownloadTimeoutInSeconds *int64 `min:"60" type:"integer"`

	// The name of the model that you want to host. This is the name that you specified
	// when creating the model.
	ModelName *string `type:"string"`

	// Settings that control how the endpoint routes incoming traffic to the instances
	// that the endpoint hosts.
	RoutingConfig *ProductionVariantRoutingConfig `type:"structure"`

	// The serverless configuration for an endpoint. Specifies a serverless endpoint
	// configuration instead of an instance-based endpoint configuration.
	ServerlessConfig *ProductionVariantServerlessConfig `type:"structure"`

	// The name of the production variant.
	//
	// VariantName is a required field
	VariantName *string `type:"string" required:"true"`

	// The size, in GB, of the ML storage volume attached to individual inference
	// instance associated with the production variant. Currently only Amazon EBS
	// gp2 storage volumes are supported.
	VolumeSizeInGB *int64 `min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProductionVariant) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProductionVariant) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ProductionVariant) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ProductionVariant"}
	if s.ContainerStartupHealthCheckTimeoutInSeconds != nil && *s.ContainerStartupHealthCheckTimeoutInSeconds < 60 {
		invalidParams.Add(request.NewErrParamMinValue("ContainerStartupHealthCheckTimeoutInSeconds", 60))
	}
	if s.InitialInstanceCount != nil && *s.InitialInstanceCount < 1 {
		invalidParams.Add(request.NewErrParamMinValue("InitialInstanceCount", 1))
	}
	if s.ModelDataDownloadTimeoutInSeconds != nil && *s.ModelDataDownloadTimeoutInSeconds < 60 {
		invalidParams.Add(request.NewErrParamMinValue("ModelDataDownloadTimeoutInSeconds", 60))
	}
	if s.VariantName == nil {
		invalidParams.Add(request.NewErrParamRequired("VariantName"))
	}
	if s.VolumeSizeInGB != nil && *s.VolumeSizeInGB < 1 {
		invalidParams.Add(request.NewErrParamMinValue("VolumeSizeInGB", 1))
	}
	if s.CoreDumpConfig != nil {
		if err := s.CoreDumpConfig.Validate(); err != nil {
			invalidParams.AddNested("CoreDumpConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.ManagedInstanceScaling != nil {
		if err := s.ManagedInstanceScaling.Validate(); err != nil {
			invalidParams.AddNested("ManagedInstanceScaling", err.(request.ErrInvalidParams))
		}
	}
	if s.RoutingConfig != nil {
		if err := s.RoutingConfig.Validate(); err != nil {
			invalidParams.AddNested("RoutingConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.ServerlessConfig != nil {
		if err := s.ServerlessConfig.Validate(); err != nil {
			invalidParams.AddNested("ServerlessConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAcceleratorType sets the AcceleratorType field's value.
func (s *ProductionVariant) SetAcceleratorType(v string) *ProductionVariant {
	s.AcceleratorType = &v
	return s
}

// SetContainerStartupHealthCheckTimeoutInSeconds sets the ContainerStartupHealthCheckTimeoutInSeconds field's value.
func (s *ProductionVariant) SetContainerStartupHealthCheckTimeoutInSeconds(v int64) *ProductionVariant {
	s.ContainerStartupHealthCheckTimeoutInSeconds = &v
	return s
}

// SetCoreDumpConfig sets the CoreDumpConfig field's value.
func (s *ProductionVariant) SetCoreDumpConfig(v *ProductionVariantCoreDumpConfig) *ProductionVariant {
	s.CoreDumpConfig = v
	return s
}

// SetEnableSSMAccess sets the EnableSSMAccess field's value.
func (s *ProductionVariant) SetEnableSSMAccess(v bool) *ProductionVariant {
	s.EnableSSMAccess = &v
	return s
}

// SetInitialInstanceCount sets the InitialInstanceCount field's value.
func (s *ProductionVariant) SetInitialInstanceCount(v int64) *ProductionVariant {
	s.InitialInstanceCount = &v
	return s
}

// SetInitialVariantWeight sets the InitialVariantWeight field's value.
func (s *ProductionVariant) SetInitialVariantWeight(v float64) *ProductionVariant {
	s.InitialVariantWeight = &v
	return s
}

// SetInstanceType sets the InstanceType field's value.
func (s *ProductionVariant) SetInstanceType(v string) *ProductionVariant {
	s.InstanceType = &v
	return s
}

// SetManagedInstanceScaling sets the ManagedInstanceScaling field's value.
func (s *ProductionVariant) SetManagedInstanceScaling(v *ProductionVariantManagedInstanceScaling) *ProductionVariant {
	s.ManagedInstanceScaling = v
	return s
}

// SetModelDataDownloadTimeoutInSeconds sets the ModelDataDownloadTimeoutInSeconds field's value.
func (s *ProductionVariant) SetModelDataDownloadTimeoutInSeconds(v int64) *ProductionVariant {
	s.ModelDataDownloadTimeoutInSeconds = &v
	return s
}

// SetModelName sets the ModelName field's value.
func (s *ProductionVariant) SetModelName(v string) *ProductionVariant {
	s.ModelName = &v
	return s
}

// SetRoutingConfig sets the RoutingConfig field's value.
func (s *ProductionVariant) SetRoutingConfig(v *ProductionVariantRoutingConfig) *ProductionVariant {
	s.RoutingConfig = v
	return s
}

// SetServerlessConfig sets the ServerlessConfig field's value.
func (s *ProductionVariant) SetServerlessConfig(v *ProductionVariantServerlessConfig) *ProductionVariant {
	s.ServerlessConfig = v
	return s
}

// SetVariantName sets the VariantName field's value.
func (s *ProductionVariant) SetVariantName(v string) *ProductionVariant {
	s.VariantName = &v
	return s
}

// SetVolumeSizeInGB sets the VolumeSizeInGB field's value.
func (s *ProductionVariant) SetVolumeSizeInGB(v int64) *ProductionVariant {
	s.VolumeSizeInGB = &v
	return s
}

// Specifies configuration for a core dump from the model container when the
// process crashes.
type ProductionVariantCoreDumpConfig struct {
	_ struct{} `type:"structure"`

	// The Amazon S3 bucket to send the core dump to.
	//
	// DestinationS3Uri is a required field
	DestinationS3Uri *string `type:"string" required:"true"`

	// The Amazon Web Services Key Management Service (Amazon Web Services KMS)
	// key that SageMaker uses to encrypt the core dump data at rest using Amazon
	// S3 server-side encryption. The KmsKeyId can be any of the following formats:
	//
	//    * // KMS Key ID "1234abcd-12ab-34cd-56ef-1234567890ab"
	//
	//    * // Amazon Resource Name (ARN) of a KMS Key "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
	//
	//    * // KMS Key Alias "alias/ExampleAlias"
	//
	//    * // Amazon Resource Name (ARN) of a KMS Key Alias "arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"
	//
	// If you use a KMS key ID or an alias of your KMS key, the SageMaker execution
	// role must include permissions to call kms:Encrypt. If you don't provide a
	// KMS key ID, SageMaker uses the default KMS key for Amazon S3 for your role's
	// account. SageMaker uses server-side encryption with KMS-managed keys for
	// OutputDataConfig. If you use a bucket policy with an s3:PutObject permission
	// that only allows objects with server-side encryption, set the condition key
	// of s3:x-amz-server-side-encryption to "aws:kms". For more information, see
	// KMS-Managed Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html)
	// in the Amazon Simple Storage Service Developer Guide.
	//
	// The KMS key policy must grant permission to the IAM role that you specify
	// in your CreateEndpoint and UpdateEndpoint requests. For more information,
	// see Using Key Policies in Amazon Web Services KMS (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)
	// in the Amazon Web Services Key Management Service Developer Guide.
	KmsKeyId *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProductionVariantCoreDumpConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProductionVariantCoreDumpConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ProductionVariantCoreDumpConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ProductionVariantCoreDumpConfig"}
	if s.DestinationS3Uri == nil {
		invalidParams.Add(request.NewErrParamRequired("DestinationS3Uri"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDestinationS3Uri sets the DestinationS3Uri field's value.
func (s *ProductionVariantCoreDumpConfig) SetDestinationS3Uri(v string) *ProductionVariantCoreDumpConfig {
	s.DestinationS3Uri = &v
	return s
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *ProductionVariantCoreDumpConfig) SetKmsKeyId(v string) *ProductionVariantCoreDumpConfig {
	s.KmsKeyId = &v
	return s
}

// Settings that control the range in the number of instances that the endpoint
// provisions as it scales up or down to accommodate traffic.
type ProductionVariantManagedInstanceScaling struct {
	_ struct{} `type:"structure"`

	// The maximum number of instances that the endpoint can provision when it scales
	// up to accommodate an increase in traffic.
	MaxInstanceCount *int64 `min:"1" type:"integer"`

	// The minimum number of instances that the endpoint must retain when it scales
	// down to accommodate a decrease in traffic.
	MinInstanceCount *int64 `min:"1" type:"integer"`

	// Indicates whether managed instance scaling is enabled.
	Status *string `type:"string" enum:"ManagedInstanceScalingStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProductionVariantManagedInstanceScaling) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProductionVariantManagedInstanceScaling) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ProductionVariantManagedInstanceScaling) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ProductionVariantManagedInstanceScaling"}
	if s.MaxInstanceCount != nil && *s.MaxInstanceCount < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxInstanceCount", 1))
	}
	if s.MinInstanceCount != nil && *s.MinInstanceCount < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MinInstanceCount", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxInstanceCount sets the MaxInstanceCount field's value.
func (s *ProductionVariantManagedInstanceScaling) SetMaxInstanceCount(v int64) *ProductionVariantManagedInstanceScaling {
	s.MaxInstanceCount = &v
	return s
}

// SetMinInstanceCount sets the MinInstanceCount field's value.
func (s *ProductionVariantManagedInstanceScaling) SetMinInstanceCount(v int64) *ProductionVariantManagedInstanceScaling {
	s.MinInstanceCount = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *ProductionVariantManagedInstanceScaling) SetStatus(v string) *ProductionVariantManagedInstanceScaling {
	s.Status = &v
	return s
}

// Settings that control how the endpoint routes incoming traffic to the instances
// that the endpoint hosts.
type ProductionVariantRoutingConfig struct {
	_ struct{} `type:"structure"`

	// Sets how the endpoint routes incoming traffic:
	//
	//    * LEAST_OUTSTANDING_REQUESTS: The endpoint routes requests to the specific
	//    instances that have more capacity to process them.
	//
	//    * RANDOM: The endpoint routes each request to a randomly chosen instance.
	//
	// RoutingStrategy is a required field
	RoutingStrategy *string `type:"string" required:"true" enum:"RoutingStrategy"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProductionVariantRoutingConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProductionVariantRoutingConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ProductionVariantRoutingConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ProductionVariantRoutingConfig"}
	if s.RoutingStrategy == nil {
		invalidParams.Add(request.NewErrParamRequired("RoutingStrategy"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetRoutingStrategy sets the RoutingStrategy field's value.
func (s *ProductionVariantRoutingConfig) SetRoutingStrategy(v string) *ProductionVariantRoutingConfig {
	s.RoutingStrategy = &v
	return s
}

// Specifies the serverless configuration for an endpoint variant.
type ProductionVariantServerlessConfig struct {
	_ struct{} `type:"structure"`

	// The maximum number of concurrent invocations your serverless endpoint can
	// process.
	//
	// MaxConcurrency is a required field
	MaxConcurrency *int64 `min:"1" type:"integer" required:"true"`

	// The memory size of your serverless endpoint. Valid values are in 1 GB increments:
	// 1024 MB, 2048 MB, 3072 MB, 4096 MB, 5120 MB, or 6144 MB.
	//
	// MemorySizeInMB is a required field
	MemorySizeInMB *int64 `min:"1024" type:"integer" required:"true"`

	// The amount of provisioned concurrency to allocate for the serverless endpoint.
	// Should be less than or equal to MaxConcurrency.
	//
	// This field is not supported for serverless endpoint recommendations for Inference
	// Recommender jobs. For more information about creating an Inference Recommender
	// job, see CreateInferenceRecommendationsJobs (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateInferenceRecommendationsJob.html).
	ProvisionedConcurrency *int64 `min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProductionVariantServerlessConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProductionVariantServerlessConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ProductionVariantServerlessConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ProductionVariantServerlessConfig"}
	if s.MaxConcurrency == nil {
		invalidParams.Add(request.NewErrParamRequired("MaxConcurrency"))
	}
	if s.MaxConcurrency != nil && *s.MaxConcurrency < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxConcurrency", 1))
	}
	if s.MemorySizeInMB == nil {
		invalidParams.Add(request.NewErrParamRequired("MemorySizeInMB"))
	}
	if s.MemorySizeInMB != nil && *s.MemorySizeInMB < 1024 {
		invalidParams.Add(request.NewErrParamMinValue("MemorySizeInMB", 1024))
	}
	if s.ProvisionedConcurrency != nil && *s.ProvisionedConcurrency < 1 {
		invalidParams.Add(request.NewErrParamMinValue("ProvisionedConcurrency", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxConcurrency sets the MaxConcurrency field's value.
func (s *ProductionVariantServerlessConfig) SetMaxConcurrency(v int64) *ProductionVariantServerlessConfig {
	s.MaxConcurrency = &v
	return s
}

// SetMemorySizeInMB sets the MemorySizeInMB field's value.
func (s *ProductionVariantServerlessConfig) SetMemorySizeInMB(v int64) *ProductionVariantServerlessConfig {
	s.MemorySizeInMB = &v
	return s
}

// SetProvisionedConcurrency sets the ProvisionedConcurrency field's value.
func (s *ProductionVariantServerlessConfig) SetProvisionedConcurrency(v int64) *ProductionVariantServerlessConfig {
	s.ProvisionedConcurrency = &v
	return s
}

// Specifies the serverless update concurrency configuration for an endpoint
// variant.
type ProductionVariantServerlessUpdateConfig struct {
	_ struct{} `type:"structure"`

	// The updated maximum number of concurrent invocations your serverless endpoint
	// can process.
	MaxConcurrency *int64 `min:"1" type:"integer"`

	// The updated amount of provisioned concurrency to allocate for the serverless
	// endpoint. Should be less than or equal to MaxConcurrency.
	ProvisionedConcurrency *int64 `min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProductionVariantServerlessUpdateConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProductionVariantServerlessUpdateConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ProductionVariantServerlessUpdateConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ProductionVariantServerlessUpdateConfig"}
	if s.MaxConcurrency != nil && *s.MaxConcurrency < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxConcurrency", 1))
	}
	if s.ProvisionedConcurrency != nil && *s.ProvisionedConcurrency < 1 {
		invalidParams.Add(request.NewErrParamMinValue("ProvisionedConcurrency", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxConcurrency sets the MaxConcurrency field's value.
func (s *ProductionVariantServerlessUpdateConfig) SetMaxConcurrency(v int64) *ProductionVariantServerlessUpdateConfig {
	s.MaxConcurrency = &v
	return s
}

// SetProvisionedConcurrency sets the ProvisionedConcurrency field's value.
func (s *ProductionVariantServerlessUpdateConfig) SetProvisionedConcurrency(v int64) *ProductionVariantServerlessUpdateConfig {
	s.ProvisionedConcurrency = &v
	return s
}

// Describes the status of the production variant.
type ProductionVariantStatus struct {
	_ struct{} `type:"structure"`

	// The start time of the current status change.
	StartTime *time.Time `type:"timestamp"`

	// The endpoint variant status which describes the current deployment stage
	// status or operational status.
	//
	//    * Creating: Creating inference resources for the production variant.
	//
	//    * Deleting: Terminating inference resources for the production variant.
	//
	//    * Updating: Updating capacity for the production variant.
	//
	//    * ActivatingTraffic: Turning on traffic for the production variant.
	//
	//    * Baking: Waiting period to monitor the CloudWatch alarms in the automatic
	//    rollback configuration.
	//
	// Status is a required field
	Status *string `type:"string" required:"true" enum:"VariantStatus"`

	// A message that describes the status of the production variant.
	StatusMessage *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProductionVariantStatus) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProductionVariantStatus) GoString() string {
	return s.String()
}

// SetStartTime sets the StartTime field's value.
func (s *ProductionVariantStatus) SetStartTime(v time.Time) *ProductionVariantStatus {
	s.StartTime = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *ProductionVariantStatus) SetStatus(v string) *ProductionVariantStatus {
	s.Status = &v
	return s
}

// SetStatusMessage sets the StatusMessage field's value.
func (s *ProductionVariantStatus) SetStatusMessage(v string) *ProductionVariantStatus {
	s.StatusMessage = &v
	return s
}

// Describes weight and capacities for a production variant associated with
// an endpoint. If you sent a request to the UpdateEndpointWeightsAndCapacities
// API and the endpoint status is Updating, you get different desired and current
// values.
type ProductionVariantSummary struct {
	_ struct{} `type:"structure"`

	// The number of instances associated with the variant.
	CurrentInstanceCount *int64 `type:"integer"`

	// The serverless configuration for the endpoint.
	CurrentServerlessConfig *ProductionVariantServerlessConfig `type:"structure"`

	// The weight associated with the variant.
	CurrentWeight *float64 `type:"float"`

	// An array of DeployedImage objects that specify the Amazon EC2 Container Registry
	// paths of the inference images deployed on instances of this ProductionVariant.
	DeployedImages []*DeployedImage `type:"list"`

	// The number of instances requested in the UpdateEndpointWeightsAndCapacities
	// request.
	DesiredInstanceCount *int64 `type:"integer"`

	// The serverless configuration requested for the endpoint update.
	DesiredServerlessConfig *ProductionVariantServerlessConfig `type:"structure"`

	// The requested weight, as specified in the UpdateEndpointWeightsAndCapacities
	// request.
	DesiredWeight *float64 `type:"float"`

	// Settings that control the range in the number of instances that the endpoint
	// provisions as it scales up or down to accommodate traffic.
	ManagedInstanceScaling *ProductionVariantManagedInstanceScaling `type:"structure"`

	// Settings that control how the endpoint routes incoming traffic to the instances
	// that the endpoint hosts.
	RoutingConfig *ProductionVariantRoutingConfig `type:"structure"`

	// The name of the variant.
	//
	// VariantName is a required field
	VariantName *string `type:"string" required:"true"`

	// The endpoint variant status which describes the current deployment stage
	// status or operational status.
	VariantStatus []*ProductionVariantStatus `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProductionVariantSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProductionVariantSummary) GoString() string {
	return s.String()
}

// SetCurrentInstanceCount sets the CurrentInstanceCount field's value.
func (s *ProductionVariantSummary) SetCurrentInstanceCount(v int64) *ProductionVariantSummary {
	s.CurrentInstanceCount = &v
	return s
}

// SetCurrentServerlessConfig sets the CurrentServerlessConfig field's value.
func (s *ProductionVariantSummary) SetCurrentServerlessConfig(v *ProductionVariantServerlessConfig) *ProductionVariantSummary {
	s.CurrentServerlessConfig = v
	return s
}

// SetCurrentWeight sets the CurrentWeight field's value.
func (s *ProductionVariantSummary) SetCurrentWeight(v float64) *ProductionVariantSummary {
	s.CurrentWeight = &v
	return s
}

// SetDeployedImages sets the DeployedImages field's value.
func (s *ProductionVariantSummary) SetDeployedImages(v []*DeployedImage) *ProductionVariantSummary {
	s.DeployedImages = v
	return s
}

// SetDesiredInstanceCount sets the DesiredInstanceCount field's value.
func (s *ProductionVariantSummary) SetDesiredInstanceCount(v int64) *ProductionVariantSummary {
	s.DesiredInstanceCount = &v
	return s
}

// SetDesiredServerlessConfig sets the DesiredServerlessConfig field's value.
func (s *ProductionVariantSummary) SetDesiredServerlessConfig(v *ProductionVariantServerlessConfig) *ProductionVariantSummary {
	s.DesiredServerlessConfig = v
	return s
}

// SetDesiredWeight sets the DesiredWeight field's value.
func (s *ProductionVariantSummary) SetDesiredWeight(v float64) *ProductionVariantSummary {
	s.DesiredWeight = &v
	return s
}

// SetManagedInstanceScaling sets the ManagedInstanceScaling field's value.
func (s *ProductionVariantSummary) SetManagedInstanceScaling(v *ProductionVariantManagedInstanceScaling) *ProductionVariantSummary {
	s.ManagedInstanceScaling = v
	return s
}

// SetRoutingConfig sets the RoutingConfig field's value.
func (s *ProductionVariantSummary) SetRoutingConfig(v *ProductionVariantRoutingConfig) *ProductionVariantSummary {
	s.RoutingConfig = v
	return s
}

// SetVariantName sets the VariantName field's value.
func (s *ProductionVariantSummary) SetVariantName(v string) *ProductionVariantSummary {
	s.VariantName = &v
	return s
}

// SetVariantStatus sets the VariantStatus field's value.
func (s *ProductionVariantSummary) SetVariantStatus(v []*ProductionVariantStatus) *ProductionVariantSummary {
	s.VariantStatus = v
	return s
}

// Configuration information for Amazon SageMaker Debugger system monitoring,
// framework profiling, and storage paths.
type ProfilerConfig struct {
	_ struct{} `type:"structure"`

	// Configuration to turn off Amazon SageMaker Debugger's system monitoring and
	// profiling functionality. To turn it off, set to True.
	DisableProfiler *bool `type:"boolean"`

	// A time interval for capturing system metrics in milliseconds. Available values
	// are 100, 200, 500, 1000 (1 second), 5000 (5 seconds), and 60000 (1 minute)
	// milliseconds. The default value is 500 milliseconds.
	ProfilingIntervalInMilliseconds *int64 `type:"long"`

	// Configuration information for capturing framework metrics. Available key
	// strings for different profiling options are DetailedProfilingConfig, PythonProfilingConfig,
	// and DataLoaderProfilingConfig. The following codes are configuration structures
	// for the ProfilingParameters parameter. To learn more about how to configure
	// the ProfilingParameters parameter, see Use the SageMaker and Debugger Configuration
	// API Operations to Create, Update, and Debug Your Training Job (https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html).
	ProfilingParameters map[string]*string `type:"map"`

	// Path to Amazon S3 storage location for system and framework metrics.
	S3OutputPath *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProfilerConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProfilerConfig) GoString() string {
	return s.String()
}

// SetDisableProfiler sets the DisableProfiler field's value.
func (s *ProfilerConfig) SetDisableProfiler(v bool) *ProfilerConfig {
	s.DisableProfiler = &v
	return s
}

// SetProfilingIntervalInMilliseconds sets the ProfilingIntervalInMilliseconds field's value.
func (s *ProfilerConfig) SetProfilingIntervalInMilliseconds(v int64) *ProfilerConfig {
	s.ProfilingIntervalInMilliseconds = &v
	return s
}

// SetProfilingParameters sets the ProfilingParameters field's value.
func (s *ProfilerConfig) SetProfilingParameters(v map[string]*string) *ProfilerConfig {
	s.ProfilingParameters = v
	return s
}

// SetS3OutputPath sets the S3OutputPath field's value.
func (s *ProfilerConfig) SetS3OutputPath(v string) *ProfilerConfig {
	s.S3OutputPath = &v
	return s
}

// Configuration information for updating the Amazon SageMaker Debugger profile
// parameters, system and framework metrics configurations, and storage paths.
type ProfilerConfigForUpdate struct {
	_ struct{} `type:"structure"`

	// To turn off Amazon SageMaker Debugger monitoring and profiling while a training
	// job is in progress, set to True.
	DisableProfiler *bool `type:"boolean"`

	// A time interval for capturing system metrics in milliseconds. Available values
	// are 100, 200, 500, 1000 (1 second), 5000 (5 seconds), and 60000 (1 minute)
	// milliseconds. The default value is 500 milliseconds.
	ProfilingIntervalInMilliseconds *int64 `type:"long"`

	// Configuration information for capturing framework metrics. Available key
	// strings for different profiling options are DetailedProfilingConfig, PythonProfilingConfig,
	// and DataLoaderProfilingConfig. The following codes are configuration structures
	// for the ProfilingParameters parameter. To learn more about how to configure
	// the ProfilingParameters parameter, see Use the SageMaker and Debugger Configuration
	// API Operations to Create, Update, and Debug Your Training Job (https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html).
	ProfilingParameters map[string]*string `type:"map"`

	// Path to Amazon S3 storage location for system and framework metrics.
	S3OutputPath *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProfilerConfigForUpdate) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProfilerConfigForUpdate) GoString() string {
	return s.String()
}

// SetDisableProfiler sets the DisableProfiler field's value.
func (s *ProfilerConfigForUpdate) SetDisableProfiler(v bool) *ProfilerConfigForUpdate {
	s.DisableProfiler = &v
	return s
}

// SetProfilingIntervalInMilliseconds sets the ProfilingIntervalInMilliseconds field's value.
func (s *ProfilerConfigForUpdate) SetProfilingIntervalInMilliseconds(v int64) *ProfilerConfigForUpdate {
	s.ProfilingIntervalInMilliseconds = &v
	return s
}

// SetProfilingParameters sets the ProfilingParameters field's value.
func (s *ProfilerConfigForUpdate) SetProfilingParameters(v map[string]*string) *ProfilerConfigForUpdate {
	s.ProfilingParameters = v
	return s
}

// SetS3OutputPath sets the S3OutputPath field's value.
func (s *ProfilerConfigForUpdate) SetS3OutputPath(v string) *ProfilerConfigForUpdate {
	s.S3OutputPath = &v
	return s
}

// Configuration information for profiling rules.
type ProfilerRuleConfiguration struct {
	_ struct{} `type:"structure"`

	// The instance type to deploy a custom rule for profiling a training job.
	InstanceType *string `type:"string" enum:"ProcessingInstanceType"`

	// Path to local storage location for output of rules. Defaults to /opt/ml/processing/output/rule/.
	LocalPath *string `type:"string"`

	// The name of the rule configuration. It must be unique relative to other rule
	// configuration names.
	//
	// RuleConfigurationName is a required field
	RuleConfigurationName *string `min:"1" type:"string" required:"true"`

	// The Amazon Elastic Container Registry Image for the managed rule evaluation.
	//
	// RuleEvaluatorImage is a required field
	RuleEvaluatorImage *string `type:"string" required:"true"`

	// Runtime configuration for rule container.
	RuleParameters map[string]*string `type:"map"`

	// Path to Amazon S3 storage location for rules.
	S3OutputPath *string `type:"string"`

	// The size, in GB, of the ML storage volume attached to the processing instance.
	VolumeSizeInGB *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProfilerRuleConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProfilerRuleConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ProfilerRuleConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ProfilerRuleConfiguration"}
	if s.RuleConfigurationName == nil {
		invalidParams.Add(request.NewErrParamRequired("RuleConfigurationName"))
	}
	if s.RuleConfigurationName != nil && len(*s.RuleConfigurationName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("RuleConfigurationName", 1))
	}
	if s.RuleEvaluatorImage == nil {
		invalidParams.Add(request.NewErrParamRequired("RuleEvaluatorImage"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetInstanceType sets the InstanceType field's value.
func (s *ProfilerRuleConfiguration) SetInstanceType(v string) *ProfilerRuleConfiguration {
	s.InstanceType = &v
	return s
}

// SetLocalPath sets the LocalPath field's value.
func (s *ProfilerRuleConfiguration) SetLocalPath(v string) *ProfilerRuleConfiguration {
	s.LocalPath = &v
	return s
}

// SetRuleConfigurationName sets the RuleConfigurationName field's value.
func (s *ProfilerRuleConfiguration) SetRuleConfigurationName(v string) *ProfilerRuleConfiguration {
	s.RuleConfigurationName = &v
	return s
}

// SetRuleEvaluatorImage sets the RuleEvaluatorImage field's value.
func (s *ProfilerRuleConfiguration) SetRuleEvaluatorImage(v string) *ProfilerRuleConfiguration {
	s.RuleEvaluatorImage = &v
	return s
}

// SetRuleParameters sets the RuleParameters field's value.
func (s *ProfilerRuleConfiguration) SetRuleParameters(v map[string]*string) *ProfilerRuleConfiguration {
	s.RuleParameters = v
	return s
}

// SetS3OutputPath sets the S3OutputPath field's value.
func (s *ProfilerRuleConfiguration) SetS3OutputPath(v string) *ProfilerRuleConfiguration {
	s.S3OutputPath = &v
	return s
}

// SetVolumeSizeInGB sets the VolumeSizeInGB field's value.
func (s *ProfilerRuleConfiguration) SetVolumeSizeInGB(v int64) *ProfilerRuleConfiguration {
	s.VolumeSizeInGB = &v
	return s
}

// Information about the status of the rule evaluation.
type ProfilerRuleEvaluationStatus struct {
	_ struct{} `type:"structure"`

	// Timestamp when the rule evaluation status was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The name of the rule configuration.
	RuleConfigurationName *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) of the rule evaluation job.
	RuleEvaluationJobArn *string `type:"string"`

	// Status of the rule evaluation.
	RuleEvaluationStatus *string `type:"string" enum:"RuleEvaluationStatus"`

	// Details from the rule evaluation.
	StatusDetails *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProfilerRuleEvaluationStatus) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProfilerRuleEvaluationStatus) GoString() string {
	return s.String()
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *ProfilerRuleEvaluationStatus) SetLastModifiedTime(v time.Time) *ProfilerRuleEvaluationStatus {
	s.LastModifiedTime = &v
	return s
}

// SetRuleConfigurationName sets the RuleConfigurationName field's value.
func (s *ProfilerRuleEvaluationStatus) SetRuleConfigurationName(v string) *ProfilerRuleEvaluationStatus {
	s.RuleConfigurationName = &v
	return s
}

// SetRuleEvaluationJobArn sets the RuleEvaluationJobArn field's value.
func (s *ProfilerRuleEvaluationStatus) SetRuleEvaluationJobArn(v string) *ProfilerRuleEvaluationStatus {
	s.RuleEvaluationJobArn = &v
	return s
}

// SetRuleEvaluationStatus sets the RuleEvaluationStatus field's value.
func (s *ProfilerRuleEvaluationStatus) SetRuleEvaluationStatus(v string) *ProfilerRuleEvaluationStatus {
	s.RuleEvaluationStatus = &v
	return s
}

// SetStatusDetails sets the StatusDetails field's value.
func (s *ProfilerRuleEvaluationStatus) SetStatusDetails(v string) *ProfilerRuleEvaluationStatus {
	s.StatusDetails = &v
	return s
}

// The properties of a project as returned by the Search API.
type Project struct {
	_ struct{} `type:"structure"`

	// Who created the project.
	CreatedBy *UserContext `type:"structure"`

	// A timestamp specifying when the project was created.
	CreationTime *time.Time `type:"timestamp"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	LastModifiedBy *UserContext `type:"structure"`

	// A timestamp container for when the project was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the project.
	ProjectArn *string `min:"1" type:"string"`

	// The description of the project.
	ProjectDescription *string `type:"string"`

	// The ID of the project.
	ProjectId *string `min:"1" type:"string"`

	// The name of the project.
	ProjectName *string `min:"1" type:"string"`

	// The status of the project.
	ProjectStatus *string `type:"string" enum:"ProjectStatus"`

	// Details of a provisioned service catalog product. For information about service
	// catalog, see What is Amazon Web Services Service Catalog (https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html).
	ServiceCatalogProvisionedProductDetails *ServiceCatalogProvisionedProductDetails `type:"structure"`

	// Details that you specify to provision a service catalog product. For information
	// about service catalog, see What is Amazon Web Services Service Catalog (https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html).
	ServiceCatalogProvisioningDetails *ServiceCatalogProvisioningDetails `type:"structure"`

	// An array of key-value pairs. You can use tags to categorize your Amazon Web
	// Services resources in different ways, for example, by purpose, owner, or
	// environment. For more information, see Tagging Amazon Web Services Resources
	// (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Project) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Project) GoString() string {
	return s.String()
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *Project) SetCreatedBy(v *UserContext) *Project {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *Project) SetCreationTime(v time.Time) *Project {
	s.CreationTime = &v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *Project) SetLastModifiedBy(v *UserContext) *Project {
	s.LastModifiedBy = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *Project) SetLastModifiedTime(v time.Time) *Project {
	s.LastModifiedTime = &v
	return s
}

// SetProjectArn sets the ProjectArn field's value.
func (s *Project) SetProjectArn(v string) *Project {
	s.ProjectArn = &v
	return s
}

// SetProjectDescription sets the ProjectDescription field's value.
func (s *Project) SetProjectDescription(v string) *Project {
	s.ProjectDescription = &v
	return s
}

// SetProjectId sets the ProjectId field's value.
func (s *Project) SetProjectId(v string) *Project {
	s.ProjectId = &v
	return s
}

// SetProjectName sets the ProjectName field's value.
func (s *Project) SetProjectName(v string) *Project {
	s.ProjectName = &v
	return s
}

// SetProjectStatus sets the ProjectStatus field's value.
func (s *Project) SetProjectStatus(v string) *Project {
	s.ProjectStatus = &v
	return s
}

// SetServiceCatalogProvisionedProductDetails sets the ServiceCatalogProvisionedProductDetails field's value.
func (s *Project) SetServiceCatalogProvisionedProductDetails(v *ServiceCatalogProvisionedProductDetails) *Project {
	s.ServiceCatalogProvisionedProductDetails = v
	return s
}

// SetServiceCatalogProvisioningDetails sets the ServiceCatalogProvisioningDetails field's value.
func (s *Project) SetServiceCatalogProvisioningDetails(v *ServiceCatalogProvisioningDetails) *Project {
	s.ServiceCatalogProvisioningDetails = v
	return s
}

// SetTags sets the Tags field's value.
func (s *Project) SetTags(v []*Tag) *Project {
	s.Tags = v
	return s
}

// Information about a project.
type ProjectSummary struct {
	_ struct{} `type:"structure"`

	// The time that the project was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// The Amazon Resource Name (ARN) of the project.
	//
	// ProjectArn is a required field
	ProjectArn *string `min:"1" type:"string" required:"true"`

	// The description of the project.
	ProjectDescription *string `type:"string"`

	// The ID of the project.
	//
	// ProjectId is a required field
	ProjectId *string `min:"1" type:"string" required:"true"`

	// The name of the project.
	//
	// ProjectName is a required field
	ProjectName *string `min:"1" type:"string" required:"true"`

	// The status of the project.
	//
	// ProjectStatus is a required field
	ProjectStatus *string `type:"string" required:"true" enum:"ProjectStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProjectSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProjectSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *ProjectSummary) SetCreationTime(v time.Time) *ProjectSummary {
	s.CreationTime = &v
	return s
}

// SetProjectArn sets the ProjectArn field's value.
func (s *ProjectSummary) SetProjectArn(v string) *ProjectSummary {
	s.ProjectArn = &v
	return s
}

// SetProjectDescription sets the ProjectDescription field's value.
func (s *ProjectSummary) SetProjectDescription(v string) *ProjectSummary {
	s.ProjectDescription = &v
	return s
}

// SetProjectId sets the ProjectId field's value.
func (s *ProjectSummary) SetProjectId(v string) *ProjectSummary {
	s.ProjectId = &v
	return s
}

// SetProjectName sets the ProjectName field's value.
func (s *ProjectSummary) SetProjectName(v string) *ProjectSummary {
	s.ProjectName = &v
	return s
}

// SetProjectStatus sets the ProjectStatus field's value.
func (s *ProjectSummary) SetProjectStatus(v string) *ProjectSummary {
	s.ProjectStatus = &v
	return s
}

// Part of the SuggestionQuery type. Specifies a hint for retrieving property
// names that begin with the specified text.
type PropertyNameQuery struct {
	_ struct{} `type:"structure"`

	// Text that begins a property's name.
	//
	// PropertyNameHint is a required field
	PropertyNameHint *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PropertyNameQuery) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PropertyNameQuery) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PropertyNameQuery) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PropertyNameQuery"}
	if s.PropertyNameHint == nil {
		invalidParams.Add(request.NewErrParamRequired("PropertyNameHint"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetPropertyNameHint sets the PropertyNameHint field's value.
func (s *PropertyNameQuery) SetPropertyNameHint(v string) *PropertyNameQuery {
	s.PropertyNameHint = &v
	return s
}

// A property name returned from a GetSearchSuggestions call that specifies
// a value in the PropertyNameQuery field.
type PropertyNameSuggestion struct {
	_ struct{} `type:"structure"`

	// A suggested property name based on what you entered in the search textbox
	// in the SageMaker console.
	PropertyName *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PropertyNameSuggestion) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PropertyNameSuggestion) GoString() string {
	return s.String()
}

// SetPropertyName sets the PropertyName field's value.
func (s *PropertyNameSuggestion) SetPropertyName(v string) *PropertyNameSuggestion {
	s.PropertyName = &v
	return s
}

// A key value pair used when you provision a project as a service catalog product.
// For information, see What is Amazon Web Services Service Catalog (https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html).
type ProvisioningParameter struct {
	_ struct{} `type:"structure"`

	// The key that identifies a provisioning parameter.
	Key *string `min:"1" type:"string"`

	// The value of the provisioning parameter.
	Value *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProvisioningParameter) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProvisioningParameter) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ProvisioningParameter) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ProvisioningParameter"}
	if s.Key != nil && len(*s.Key) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetKey sets the Key field's value.
func (s *ProvisioningParameter) SetKey(v string) *ProvisioningParameter {
	s.Key = &v
	return s
}

// SetValue sets the Value field's value.
func (s *ProvisioningParameter) SetValue(v string) *ProvisioningParameter {
	s.Value = &v
	return s
}

// Defines the amount of money paid to an Amazon Mechanical Turk worker for
// each task performed.
//
// Use one of the following prices for bounding box tasks. Prices are in US
// dollars and should be based on the complexity of the task; the longer it
// takes in your initial testing, the more you should offer.
//
//   - 0.036
//
//   - 0.048
//
//   - 0.060
//
//   - 0.072
//
//   - 0.120
//
//   - 0.240
//
//   - 0.360
//
//   - 0.480
//
//   - 0.600
//
//   - 0.720
//
//   - 0.840
//
//   - 0.960
//
//   - 1.080
//
//   - 1.200
//
// Use one of the following prices for image classification, text classification,
// and custom tasks. Prices are in US dollars.
//
//   - 0.012
//
//   - 0.024
//
//   - 0.036
//
//   - 0.048
//
//   - 0.060
//
//   - 0.072
//
//   - 0.120
//
//   - 0.240
//
//   - 0.360
//
//   - 0.480
//
//   - 0.600
//
//   - 0.720
//
//   - 0.840
//
//   - 0.960
//
//   - 1.080
//
//   - 1.200
//
// Use one of the following prices for semantic segmentation tasks. Prices are
// in US dollars.
//
//   - 0.840
//
//   - 0.960
//
//   - 1.080
//
//   - 1.200
//
// Use one of the following prices for Textract AnalyzeDocument Important Form
// Key Amazon Augmented AI review tasks. Prices are in US dollars.
//
//   - 2.400
//
//   - 2.280
//
//   - 2.160
//
//   - 2.040
//
//   - 1.920
//
//   - 1.800
//
//   - 1.680
//
//   - 1.560
//
//   - 1.440
//
//   - 1.320
//
//   - 1.200
//
//   - 1.080
//
//   - 0.960
//
//   - 0.840
//
//   - 0.720
//
//   - 0.600
//
//   - 0.480
//
//   - 0.360
//
//   - 0.240
//
//   - 0.120
//
//   - 0.072
//
//   - 0.060
//
//   - 0.048
//
//   - 0.036
//
//   - 0.024
//
//   - 0.012
//
// Use one of the following prices for Rekognition DetectModerationLabels Amazon
// Augmented AI review tasks. Prices are in US dollars.
//
//   - 1.200
//
//   - 1.080
//
//   - 0.960
//
//   - 0.840
//
//   - 0.720
//
//   - 0.600
//
//   - 0.480
//
//   - 0.360
//
//   - 0.240
//
//   - 0.120
//
//   - 0.072
//
//   - 0.060
//
//   - 0.048
//
//   - 0.036
//
//   - 0.024
//
//   - 0.012
//
// Use one of the following prices for Amazon Augmented AI custom human review
// tasks. Prices are in US dollars.
//
//   - 1.200
//
//   - 1.080
//
//   - 0.960
//
//   - 0.840
//
//   - 0.720
//
//   - 0.600
//
//   - 0.480
//
//   - 0.360
//
//   - 0.240
//
//   - 0.120
//
//   - 0.072
//
//   - 0.060
//
//   - 0.048
//
//   - 0.036
//
//   - 0.024
//
//   - 0.012
type PublicWorkforceTaskPrice struct {
	_ struct{} `type:"structure"`

	// Defines the amount of money paid to an Amazon Mechanical Turk worker in United
	// States dollars.
	AmountInUsd *USD `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PublicWorkforceTaskPrice) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PublicWorkforceTaskPrice) GoString() string {
	return s.String()
}

// SetAmountInUsd sets the AmountInUsd field's value.
func (s *PublicWorkforceTaskPrice) SetAmountInUsd(v *USD) *PublicWorkforceTaskPrice {
	s.AmountInUsd = v
	return s
}

type PutModelPackageGroupPolicyInput struct {
	_ struct{} `type:"structure"`

	// The name of the model group to add a resource policy to.
	//
	// ModelPackageGroupName is a required field
	ModelPackageGroupName *string `min:"1" type:"string" required:"true"`

	// The resource policy for the model group.
	//
	// ResourcePolicy is a required field
	ResourcePolicy *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutModelPackageGroupPolicyInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutModelPackageGroupPolicyInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PutModelPackageGroupPolicyInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PutModelPackageGroupPolicyInput"}
	if s.ModelPackageGroupName == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelPackageGroupName"))
	}
	if s.ModelPackageGroupName != nil && len(*s.ModelPackageGroupName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelPackageGroupName", 1))
	}
	if s.ResourcePolicy == nil {
		invalidParams.Add(request.NewErrParamRequired("ResourcePolicy"))
	}
	if s.ResourcePolicy != nil && len(*s.ResourcePolicy) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ResourcePolicy", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetModelPackageGroupName sets the ModelPackageGroupName field's value.
func (s *PutModelPackageGroupPolicyInput) SetModelPackageGroupName(v string) *PutModelPackageGroupPolicyInput {
	s.ModelPackageGroupName = &v
	return s
}

// SetResourcePolicy sets the ResourcePolicy field's value.
func (s *PutModelPackageGroupPolicyInput) SetResourcePolicy(v string) *PutModelPackageGroupPolicyInput {
	s.ResourcePolicy = &v
	return s
}

type PutModelPackageGroupPolicyOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the model package group.
	//
	// ModelPackageGroupArn is a required field
	ModelPackageGroupArn *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutModelPackageGroupPolicyOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutModelPackageGroupPolicyOutput) GoString() string {
	return s.String()
}

// SetModelPackageGroupArn sets the ModelPackageGroupArn field's value.
func (s *PutModelPackageGroupPolicyOutput) SetModelPackageGroupArn(v string) *PutModelPackageGroupPolicyOutput {
	s.ModelPackageGroupArn = &v
	return s
}

// Container for the metadata for a Quality check step. For more information,
// see the topic on QualityCheck step (https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-quality-check)
// in the Amazon SageMaker Developer Guide.
type QualityCheckStepMetadata struct {
	_ struct{} `type:"structure"`

	// The Amazon S3 URI of the baseline constraints file used for the drift check.
	BaselineUsedForDriftCheckConstraints *string `type:"string"`

	// The Amazon S3 URI of the baseline statistics file used for the drift check.
	BaselineUsedForDriftCheckStatistics *string `type:"string"`

	// The Amazon S3 URI of the newly calculated baseline constraints file.
	CalculatedBaselineConstraints *string `type:"string"`

	// The Amazon S3 URI of the newly calculated baseline statistics file.
	CalculatedBaselineStatistics *string `type:"string"`

	// The Amazon Resource Name (ARN) of the Quality check processing job that was
	// run by this step execution.
	CheckJobArn *string `type:"string"`

	// The type of the Quality check step.
	CheckType *string `type:"string"`

	// The model package group name.
	ModelPackageGroupName *string `type:"string"`

	// This flag indicates if a newly calculated baseline can be accessed through
	// step properties BaselineUsedForDriftCheckConstraints and BaselineUsedForDriftCheckStatistics.
	// If it is set to False, the previous baseline of the configured check type
	// must also be available. These can be accessed through the BaselineUsedForDriftCheckConstraints
	// and BaselineUsedForDriftCheckStatistics properties.
	RegisterNewBaseline *bool `type:"boolean"`

	// This flag indicates if the drift check against the previous baseline will
	// be skipped or not. If it is set to False, the previous baseline of the configured
	// check type must be available.
	SkipCheck *bool `type:"boolean"`

	// The Amazon S3 URI of violation report if violations are detected.
	ViolationReport *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QualityCheckStepMetadata) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QualityCheckStepMetadata) GoString() string {
	return s.String()
}

// SetBaselineUsedForDriftCheckConstraints sets the BaselineUsedForDriftCheckConstraints field's value.
func (s *QualityCheckStepMetadata) SetBaselineUsedForDriftCheckConstraints(v string) *QualityCheckStepMetadata {
	s.BaselineUsedForDriftCheckConstraints = &v
	return s
}

// SetBaselineUsedForDriftCheckStatistics sets the BaselineUsedForDriftCheckStatistics field's value.
func (s *QualityCheckStepMetadata) SetBaselineUsedForDriftCheckStatistics(v string) *QualityCheckStepMetadata {
	s.BaselineUsedForDriftCheckStatistics = &v
	return s
}

// SetCalculatedBaselineConstraints sets the CalculatedBaselineConstraints field's value.
func (s *QualityCheckStepMetadata) SetCalculatedBaselineConstraints(v string) *QualityCheckStepMetadata {
	s.CalculatedBaselineConstraints = &v
	return s
}

// SetCalculatedBaselineStatistics sets the CalculatedBaselineStatistics field's value.
func (s *QualityCheckStepMetadata) SetCalculatedBaselineStatistics(v string) *QualityCheckStepMetadata {
	s.CalculatedBaselineStatistics = &v
	return s
}

// SetCheckJobArn sets the CheckJobArn field's value.
func (s *QualityCheckStepMetadata) SetCheckJobArn(v string) *QualityCheckStepMetadata {
	s.CheckJobArn = &v
	return s
}

// SetCheckType sets the CheckType field's value.
func (s *QualityCheckStepMetadata) SetCheckType(v string) *QualityCheckStepMetadata {
	s.CheckType = &v
	return s
}

// SetModelPackageGroupName sets the ModelPackageGroupName field's value.
func (s *QualityCheckStepMetadata) SetModelPackageGroupName(v string) *QualityCheckStepMetadata {
	s.ModelPackageGroupName = &v
	return s
}

// SetRegisterNewBaseline sets the RegisterNewBaseline field's value.
func (s *QualityCheckStepMetadata) SetRegisterNewBaseline(v bool) *QualityCheckStepMetadata {
	s.RegisterNewBaseline = &v
	return s
}

// SetSkipCheck sets the SkipCheck field's value.
func (s *QualityCheckStepMetadata) SetSkipCheck(v bool) *QualityCheckStepMetadata {
	s.SkipCheck = &v
	return s
}

// SetViolationReport sets the ViolationReport field's value.
func (s *QualityCheckStepMetadata) SetViolationReport(v string) *QualityCheckStepMetadata {
	s.ViolationReport = &v
	return s
}

// A set of filters to narrow the set of lineage entities connected to the StartArn(s)
// returned by the QueryLineage API action.
type QueryFilters struct {
	_ struct{} `type:"structure"`

	// Filter the lineage entities connected to the StartArn(s) after the create
	// date.
	CreatedAfter *time.Time `type:"timestamp"`

	// Filter the lineage entities connected to the StartArn(s) by created date.
	CreatedBefore *time.Time `type:"timestamp"`

	// Filter the lineage entities connected to the StartArn(s) by the type of the
	// lineage entity.
	LineageTypes []*string `type:"list" enum:"LineageType"`

	// Filter the lineage entities connected to the StartArn(s) after the last modified
	// date.
	ModifiedAfter *time.Time `type:"timestamp"`

	// Filter the lineage entities connected to the StartArn(s) before the last
	// modified date.
	ModifiedBefore *time.Time `type:"timestamp"`

	// Filter the lineage entities connected to the StartArn(s) by a set if property
	// key value pairs. If multiple pairs are provided, an entity is included in
	// the results if it matches any of the provided pairs.
	Properties map[string]*string `type:"map"`

	// Filter the lineage entities connected to the StartArn by type. For example:
	// DataSet, Model, Endpoint, or ModelDeployment.
	Types []*string `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QueryFilters) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QueryFilters) GoString() string {
	return s.String()
}

// SetCreatedAfter sets the CreatedAfter field's value.
func (s *QueryFilters) SetCreatedAfter(v time.Time) *QueryFilters {
	s.CreatedAfter = &v
	return s
}

// SetCreatedBefore sets the CreatedBefore field's value.
func (s *QueryFilters) SetCreatedBefore(v time.Time) *QueryFilters {
	s.CreatedBefore = &v
	return s
}

// SetLineageTypes sets the LineageTypes field's value.
func (s *QueryFilters) SetLineageTypes(v []*string) *QueryFilters {
	s.LineageTypes = v
	return s
}

// SetModifiedAfter sets the ModifiedAfter field's value.
func (s *QueryFilters) SetModifiedAfter(v time.Time) *QueryFilters {
	s.ModifiedAfter = &v
	return s
}

// SetModifiedBefore sets the ModifiedBefore field's value.
func (s *QueryFilters) SetModifiedBefore(v time.Time) *QueryFilters {
	s.ModifiedBefore = &v
	return s
}

// SetProperties sets the Properties field's value.
func (s *QueryFilters) SetProperties(v map[string]*string) *QueryFilters {
	s.Properties = v
	return s
}

// SetTypes sets the Types field's value.
func (s *QueryFilters) SetTypes(v []*string) *QueryFilters {
	s.Types = v
	return s
}

type QueryLineageInput struct {
	_ struct{} `type:"structure"`

	// Associations between lineage entities have a direction. This parameter determines
	// the direction from the StartArn(s) that the query traverses.
	Direction *string `type:"string" enum:"Direction"`

	// A set of filtering parameters that allow you to specify which entities should
	// be returned.
	//
	//    * Properties - Key-value pairs to match on the lineage entities' properties.
	//
	//    * LineageTypes - A set of lineage entity types to match on. For example:
	//    TrialComponent, Artifact, or Context.
	//
	//    * CreatedBefore - Filter entities created before this date.
	//
	//    * ModifiedBefore - Filter entities modified before this date.
	//
	//    * ModifiedAfter - Filter entities modified after this date.
	Filters *QueryFilters `type:"structure"`

	// Setting this value to True retrieves not only the entities of interest but
	// also the Associations (https://docs.aws.amazon.com/sagemaker/latest/dg/lineage-tracking-entities.html)
	// and lineage entities on the path. Set to False to only return lineage entities
	// that match your query.
	IncludeEdges *bool `type:"boolean"`

	// The maximum depth in lineage relationships from the StartArns that are traversed.
	// Depth is a measure of the number of Associations from the StartArn entity
	// to the matched results.
	MaxDepth *int64 `type:"integer"`

	// Limits the number of vertices in the results. Use the NextToken in a response
	// to to retrieve the next page of results.
	MaxResults *int64 `type:"integer"`

	// Limits the number of vertices in the request. Use the NextToken in a response
	// to to retrieve the next page of results.
	NextToken *string `type:"string"`

	// A list of resource Amazon Resource Name (ARN) that represent the starting
	// point for your lineage query.
	StartArns []*string `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QueryLineageInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QueryLineageInput) GoString() string {
	return s.String()
}

// SetDirection sets the Direction field's value.
func (s *QueryLineageInput) SetDirection(v string) *QueryLineageInput {
	s.Direction = &v
	return s
}

// SetFilters sets the Filters field's value.
func (s *QueryLineageInput) SetFilters(v *QueryFilters) *QueryLineageInput {
	s.Filters = v
	return s
}

// SetIncludeEdges sets the IncludeEdges field's value.
func (s *QueryLineageInput) SetIncludeEdges(v bool) *QueryLineageInput {
	s.IncludeEdges = &v
	return s
}

// SetMaxDepth sets the MaxDepth field's value.
func (s *QueryLineageInput) SetMaxDepth(v int64) *QueryLineageInput {
	s.MaxDepth = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *QueryLineageInput) SetMaxResults(v int64) *QueryLineageInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *QueryLineageInput) SetNextToken(v string) *QueryLineageInput {
	s.NextToken = &v
	return s
}

// SetStartArns sets the StartArns field's value.
func (s *QueryLineageInput) SetStartArns(v []*string) *QueryLineageInput {
	s.StartArns = v
	return s
}

type QueryLineageOutput struct {
	_ struct{} `type:"structure"`

	// A list of edges that connect vertices in the response.
	Edges []*Edge `type:"list"`

	// Limits the number of vertices in the response. Use the NextToken in a response
	// to to retrieve the next page of results.
	NextToken *string `type:"string"`

	// A list of vertices connected to the start entity(ies) in the lineage graph.
	Vertices []*Vertex `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QueryLineageOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s QueryLineageOutput) GoString() string {
	return s.String()
}

// SetEdges sets the Edges field's value.
func (s *QueryLineageOutput) SetEdges(v []*Edge) *QueryLineageOutput {
	s.Edges = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *QueryLineageOutput) SetNextToken(v string) *QueryLineageOutput {
	s.NextToken = &v
	return s
}

// SetVertices sets the Vertices field's value.
func (s *QueryLineageOutput) SetVertices(v []*Vertex) *QueryLineageOutput {
	s.Vertices = v
	return s
}

// A collection of settings that apply to an RSessionGateway app.
type RSessionAppSettings struct {
	_ struct{} `type:"structure"`

	// A list of custom SageMaker images that are configured to run as a RSession
	// app.
	CustomImages []*CustomImage `type:"list"`

	// Specifies the ARN's of a SageMaker image and SageMaker image version, and
	// the instance type that the version runs on.
	DefaultResourceSpec *ResourceSpec `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RSessionAppSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RSessionAppSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RSessionAppSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RSessionAppSettings"}
	if s.CustomImages != nil {
		for i, v := range s.CustomImages {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CustomImages", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.DefaultResourceSpec != nil {
		if err := s.DefaultResourceSpec.Validate(); err != nil {
			invalidParams.AddNested("DefaultResourceSpec", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCustomImages sets the CustomImages field's value.
func (s *RSessionAppSettings) SetCustomImages(v []*CustomImage) *RSessionAppSettings {
	s.CustomImages = v
	return s
}

// SetDefaultResourceSpec sets the DefaultResourceSpec field's value.
func (s *RSessionAppSettings) SetDefaultResourceSpec(v *ResourceSpec) *RSessionAppSettings {
	s.DefaultResourceSpec = v
	return s
}

// A collection of settings that configure user interaction with the RStudioServerPro
// app.
type RStudioServerProAppSettings struct {
	_ struct{} `type:"structure"`

	// Indicates whether the current user has access to the RStudioServerPro app.
	AccessStatus *string `type:"string" enum:"RStudioServerProAccessStatus"`

	// The level of permissions that the user has within the RStudioServerPro app.
	// This value defaults to `User`. The `Admin` value allows the user access to
	// the RStudio Administrative Dashboard.
	UserGroup *string `type:"string" enum:"RStudioServerProUserGroup"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RStudioServerProAppSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RStudioServerProAppSettings) GoString() string {
	return s.String()
}

// SetAccessStatus sets the AccessStatus field's value.
func (s *RStudioServerProAppSettings) SetAccessStatus(v string) *RStudioServerProAppSettings {
	s.AccessStatus = &v
	return s
}

// SetUserGroup sets the UserGroup field's value.
func (s *RStudioServerProAppSettings) SetUserGroup(v string) *RStudioServerProAppSettings {
	s.UserGroup = &v
	return s
}

// A collection of settings that configure the RStudioServerPro Domain-level
// app.
type RStudioServerProDomainSettings struct {
	_ struct{} `type:"structure"`

	// Specifies the ARN's of a SageMaker image and SageMaker image version, and
	// the instance type that the version runs on.
	DefaultResourceSpec *ResourceSpec `type:"structure"`

	// The ARN of the execution role for the RStudioServerPro Domain-level app.
	//
	// DomainExecutionRoleArn is a required field
	DomainExecutionRoleArn *string `min:"20" type:"string" required:"true"`

	// A URL pointing to an RStudio Connect server.
	RStudioConnectUrl *string `type:"string"`

	// A URL pointing to an RStudio Package Manager server.
	RStudioPackageManagerUrl *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RStudioServerProDomainSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RStudioServerProDomainSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RStudioServerProDomainSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RStudioServerProDomainSettings"}
	if s.DomainExecutionRoleArn == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainExecutionRoleArn"))
	}
	if s.DomainExecutionRoleArn != nil && len(*s.DomainExecutionRoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("DomainExecutionRoleArn", 20))
	}
	if s.DefaultResourceSpec != nil {
		if err := s.DefaultResourceSpec.Validate(); err != nil {
			invalidParams.AddNested("DefaultResourceSpec", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDefaultResourceSpec sets the DefaultResourceSpec field's value.
func (s *RStudioServerProDomainSettings) SetDefaultResourceSpec(v *ResourceSpec) *RStudioServerProDomainSettings {
	s.DefaultResourceSpec = v
	return s
}

// SetDomainExecutionRoleArn sets the DomainExecutionRoleArn field's value.
func (s *RStudioServerProDomainSettings) SetDomainExecutionRoleArn(v string) *RStudioServerProDomainSettings {
	s.DomainExecutionRoleArn = &v
	return s
}

// SetRStudioConnectUrl sets the RStudioConnectUrl field's value.
func (s *RStudioServerProDomainSettings) SetRStudioConnectUrl(v string) *RStudioServerProDomainSettings {
	s.RStudioConnectUrl = &v
	return s
}

// SetRStudioPackageManagerUrl sets the RStudioPackageManagerUrl field's value.
func (s *RStudioServerProDomainSettings) SetRStudioPackageManagerUrl(v string) *RStudioServerProDomainSettings {
	s.RStudioPackageManagerUrl = &v
	return s
}

// A collection of settings that update the current configuration for the RStudioServerPro
// Domain-level app.
type RStudioServerProDomainSettingsForUpdate struct {
	_ struct{} `type:"structure"`

	// Specifies the ARN's of a SageMaker image and SageMaker image version, and
	// the instance type that the version runs on.
	DefaultResourceSpec *ResourceSpec `type:"structure"`

	// The execution role for the RStudioServerPro Domain-level app.
	//
	// DomainExecutionRoleArn is a required field
	DomainExecutionRoleArn *string `min:"20" type:"string" required:"true"`

	// A URL pointing to an RStudio Connect server.
	RStudioConnectUrl *string `type:"string"`

	// A URL pointing to an RStudio Package Manager server.
	RStudioPackageManagerUrl *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RStudioServerProDomainSettingsForUpdate) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RStudioServerProDomainSettingsForUpdate) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RStudioServerProDomainSettingsForUpdate) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RStudioServerProDomainSettingsForUpdate"}
	if s.DomainExecutionRoleArn == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainExecutionRoleArn"))
	}
	if s.DomainExecutionRoleArn != nil && len(*s.DomainExecutionRoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("DomainExecutionRoleArn", 20))
	}
	if s.DefaultResourceSpec != nil {
		if err := s.DefaultResourceSpec.Validate(); err != nil {
			invalidParams.AddNested("DefaultResourceSpec", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDefaultResourceSpec sets the DefaultResourceSpec field's value.
func (s *RStudioServerProDomainSettingsForUpdate) SetDefaultResourceSpec(v *ResourceSpec) *RStudioServerProDomainSettingsForUpdate {
	s.DefaultResourceSpec = v
	return s
}

// SetDomainExecutionRoleArn sets the DomainExecutionRoleArn field's value.
func (s *RStudioServerProDomainSettingsForUpdate) SetDomainExecutionRoleArn(v string) *RStudioServerProDomainSettingsForUpdate {
	s.DomainExecutionRoleArn = &v
	return s
}

// SetRStudioConnectUrl sets the RStudioConnectUrl field's value.
func (s *RStudioServerProDomainSettingsForUpdate) SetRStudioConnectUrl(v string) *RStudioServerProDomainSettingsForUpdate {
	s.RStudioConnectUrl = &v
	return s
}

// SetRStudioPackageManagerUrl sets the RStudioPackageManagerUrl field's value.
func (s *RStudioServerProDomainSettingsForUpdate) SetRStudioPackageManagerUrl(v string) *RStudioServerProDomainSettingsForUpdate {
	s.RStudioPackageManagerUrl = &v
	return s
}

// The infrastructure configuration for deploying the model to a real-time inference
// endpoint.
type RealTimeInferenceConfig struct {
	_ struct{} `type:"structure"`

	// The number of instances of the type specified by InstanceType.
	//
	// InstanceCount is a required field
	InstanceCount *int64 `type:"integer" required:"true"`

	// The instance type the model is deployed to.
	//
	// InstanceType is a required field
	InstanceType *string `type:"string" required:"true" enum:"InstanceType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RealTimeInferenceConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RealTimeInferenceConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RealTimeInferenceConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RealTimeInferenceConfig"}
	if s.InstanceCount == nil {
		invalidParams.Add(request.NewErrParamRequired("InstanceCount"))
	}
	if s.InstanceType == nil {
		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetInstanceCount sets the InstanceCount field's value.
func (s *RealTimeInferenceConfig) SetInstanceCount(v int64) *RealTimeInferenceConfig {
	s.InstanceCount = &v
	return s
}

// SetInstanceType sets the InstanceType field's value.
func (s *RealTimeInferenceConfig) SetInstanceType(v string) *RealTimeInferenceConfig {
	s.InstanceType = &v
	return s
}

// The recommended configuration to use for Real-Time Inference.
type RealTimeInferenceRecommendation struct {
	_ struct{} `type:"structure"`

	// The recommended environment variables to set in the model container for Real-Time
	// Inference.
	Environment map[string]*string `type:"map"`

	// The recommended instance type for Real-Time Inference.
	//
	// InstanceType is a required field
	InstanceType *string `type:"string" required:"true" enum:"ProductionVariantInstanceType"`

	// The recommendation ID which uniquely identifies each recommendation.
	//
	// RecommendationId is a required field
	RecommendationId *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RealTimeInferenceRecommendation) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RealTimeInferenceRecommendation) GoString() string {
	return s.String()
}

// SetEnvironment sets the Environment field's value.
func (s *RealTimeInferenceRecommendation) SetEnvironment(v map[string]*string) *RealTimeInferenceRecommendation {
	s.Environment = v
	return s
}

// SetInstanceType sets the InstanceType field's value.
func (s *RealTimeInferenceRecommendation) SetInstanceType(v string) *RealTimeInferenceRecommendation {
	s.InstanceType = &v
	return s
}

// SetRecommendationId sets the RecommendationId field's value.
func (s *RealTimeInferenceRecommendation) SetRecommendationId(v string) *RealTimeInferenceRecommendation {
	s.RecommendationId = &v
	return s
}

// Provides information about the output configuration for the compiled model.
type RecommendationJobCompiledOutputConfig struct {
	_ struct{} `type:"structure"`

	// Identifies the Amazon S3 bucket where you want SageMaker to store the compiled
	// model artifacts.
	S3OutputUri *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationJobCompiledOutputConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationJobCompiledOutputConfig) GoString() string {
	return s.String()
}

// SetS3OutputUri sets the S3OutputUri field's value.
func (s *RecommendationJobCompiledOutputConfig) SetS3OutputUri(v string) *RecommendationJobCompiledOutputConfig {
	s.S3OutputUri = &v
	return s
}

// Specifies mandatory fields for running an Inference Recommender job directly
// in the CreateInferenceRecommendationsJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateInferenceRecommendationsJob.html)
// API. The fields specified in ContainerConfig override the corresponding fields
// in the model package. Use ContainerConfig if you want to specify these fields
// for the recommendation job but don't want to edit them in your model package.
type RecommendationJobContainerConfig struct {
	_ struct{} `type:"structure"`

	// Specifies the name and shape of the expected data inputs for your trained
	// model with a JSON dictionary form. This field is used for optimizing your
	// model using SageMaker Neo. For more information, see DataInputConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_InputConfig.html#sagemaker-Type-InputConfig-DataInputConfig).
	DataInputConfig *string `min:"1" type:"string"`

	// The machine learning domain of the model and its components.
	//
	// Valid Values: COMPUTER_VISION | NATURAL_LANGUAGE_PROCESSING | MACHINE_LEARNING
	Domain *string `type:"string"`

	// The machine learning framework of the container image.
	//
	// Valid Values: TENSORFLOW | PYTORCH | XGBOOST | SAGEMAKER-SCIKIT-LEARN
	Framework *string `type:"string"`

	// The framework version of the container image.
	FrameworkVersion *string `min:"3" type:"string"`

	// The name of a pre-trained machine learning model benchmarked by Amazon SageMaker
	// Inference Recommender that matches your model.
	//
	// Valid Values: efficientnetb7 | unet | xgboost | faster-rcnn-resnet101 | nasnetlarge
	// | vgg16 | inception-v3 | mask-rcnn | sagemaker-scikit-learn | densenet201-gluon
	// | resnet18v2-gluon | xception | densenet201 | yolov4 | resnet152 | bert-base-cased
	// | xceptionV1-keras | resnet50 | retinanet
	NearestModelName *string `type:"string"`

	// Specifies the SamplePayloadUrl and all other sample payload-related fields.
	PayloadConfig *RecommendationJobPayloadConfig `type:"structure"`

	// The endpoint type to receive recommendations for. By default this is null,
	// and the results of the inference recommendation job return a combined list
	// of both real-time and serverless benchmarks. By specifying a value for this
	// field, you can receive a longer list of benchmarks for the desired endpoint
	// type.
	SupportedEndpointType *string `type:"string" enum:"RecommendationJobSupportedEndpointType"`

	// A list of the instance types that are used to generate inferences in real-time.
	SupportedInstanceTypes []*string `type:"list"`

	// The supported MIME types for the output data.
	SupportedResponseMIMETypes []*string `type:"list"`

	// The machine learning task that the model accomplishes.
	//
	// Valid Values: IMAGE_CLASSIFICATION | OBJECT_DETECTION | TEXT_GENERATION |
	// IMAGE_SEGMENTATION | FILL_MASK | CLASSIFICATION | REGRESSION | OTHER
	Task *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationJobContainerConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationJobContainerConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RecommendationJobContainerConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RecommendationJobContainerConfig"}
	if s.DataInputConfig != nil && len(*s.DataInputConfig) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DataInputConfig", 1))
	}
	if s.FrameworkVersion != nil && len(*s.FrameworkVersion) < 3 {
		invalidParams.Add(request.NewErrParamMinLen("FrameworkVersion", 3))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDataInputConfig sets the DataInputConfig field's value.
func (s *RecommendationJobContainerConfig) SetDataInputConfig(v string) *RecommendationJobContainerConfig {
	s.DataInputConfig = &v
	return s
}

// SetDomain sets the Domain field's value.
func (s *RecommendationJobContainerConfig) SetDomain(v string) *RecommendationJobContainerConfig {
	s.Domain = &v
	return s
}

// SetFramework sets the Framework field's value.
func (s *RecommendationJobContainerConfig) SetFramework(v string) *RecommendationJobContainerConfig {
	s.Framework = &v
	return s
}

// SetFrameworkVersion sets the FrameworkVersion field's value.
func (s *RecommendationJobContainerConfig) SetFrameworkVersion(v string) *RecommendationJobContainerConfig {
	s.FrameworkVersion = &v
	return s
}

// SetNearestModelName sets the NearestModelName field's value.
func (s *RecommendationJobContainerConfig) SetNearestModelName(v string) *RecommendationJobContainerConfig {
	s.NearestModelName = &v
	return s
}

// SetPayloadConfig sets the PayloadConfig field's value.
func (s *RecommendationJobContainerConfig) SetPayloadConfig(v *RecommendationJobPayloadConfig) *RecommendationJobContainerConfig {
	s.PayloadConfig = v
	return s
}

// SetSupportedEndpointType sets the SupportedEndpointType field's value.
func (s *RecommendationJobContainerConfig) SetSupportedEndpointType(v string) *RecommendationJobContainerConfig {
	s.SupportedEndpointType = &v
	return s
}

// SetSupportedInstanceTypes sets the SupportedInstanceTypes field's value.
func (s *RecommendationJobContainerConfig) SetSupportedInstanceTypes(v []*string) *RecommendationJobContainerConfig {
	s.SupportedInstanceTypes = v
	return s
}

// SetSupportedResponseMIMETypes sets the SupportedResponseMIMETypes field's value.
func (s *RecommendationJobContainerConfig) SetSupportedResponseMIMETypes(v []*string) *RecommendationJobContainerConfig {
	s.SupportedResponseMIMETypes = v
	return s
}

// SetTask sets the Task field's value.
func (s *RecommendationJobContainerConfig) SetTask(v string) *RecommendationJobContainerConfig {
	s.Task = &v
	return s
}

// The details for a specific benchmark from an Inference Recommender job.
type RecommendationJobInferenceBenchmark struct {
	_ struct{} `type:"structure"`

	// The endpoint configuration made by Inference Recommender during a recommendation
	// job.
	EndpointConfiguration *EndpointOutputConfiguration `type:"structure"`

	// The metrics for an existing endpoint compared in an Inference Recommender
	// job.
	EndpointMetrics *InferenceMetrics `type:"structure"`

	// The reason why a benchmark failed.
	FailureReason *string `type:"string"`

	// A timestamp that shows when the benchmark completed.
	InvocationEndTime *time.Time `type:"timestamp"`

	// A timestamp that shows when the benchmark started.
	InvocationStartTime *time.Time `type:"timestamp"`

	// The metrics of recommendations.
	Metrics *RecommendationMetrics `type:"structure"`

	// Defines the model configuration. Includes the specification name and environment
	// parameters.
	//
	// ModelConfiguration is a required field
	ModelConfiguration *ModelConfiguration `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationJobInferenceBenchmark) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationJobInferenceBenchmark) GoString() string {
	return s.String()
}

// SetEndpointConfiguration sets the EndpointConfiguration field's value.
func (s *RecommendationJobInferenceBenchmark) SetEndpointConfiguration(v *EndpointOutputConfiguration) *RecommendationJobInferenceBenchmark {
	s.EndpointConfiguration = v
	return s
}

// SetEndpointMetrics sets the EndpointMetrics field's value.
func (s *RecommendationJobInferenceBenchmark) SetEndpointMetrics(v *InferenceMetrics) *RecommendationJobInferenceBenchmark {
	s.EndpointMetrics = v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *RecommendationJobInferenceBenchmark) SetFailureReason(v string) *RecommendationJobInferenceBenchmark {
	s.FailureReason = &v
	return s
}

// SetInvocationEndTime sets the InvocationEndTime field's value.
func (s *RecommendationJobInferenceBenchmark) SetInvocationEndTime(v time.Time) *RecommendationJobInferenceBenchmark {
	s.InvocationEndTime = &v
	return s
}

// SetInvocationStartTime sets the InvocationStartTime field's value.
func (s *RecommendationJobInferenceBenchmark) SetInvocationStartTime(v time.Time) *RecommendationJobInferenceBenchmark {
	s.InvocationStartTime = &v
	return s
}

// SetMetrics sets the Metrics field's value.
func (s *RecommendationJobInferenceBenchmark) SetMetrics(v *RecommendationMetrics) *RecommendationJobInferenceBenchmark {
	s.Metrics = v
	return s
}

// SetModelConfiguration sets the ModelConfiguration field's value.
func (s *RecommendationJobInferenceBenchmark) SetModelConfiguration(v *ModelConfiguration) *RecommendationJobInferenceBenchmark {
	s.ModelConfiguration = v
	return s
}

// The input configuration of the recommendation job.
type RecommendationJobInputConfig struct {
	_ struct{} `type:"structure"`

	// Specifies mandatory fields for running an Inference Recommender job. The
	// fields specified in ContainerConfig override the corresponding fields in
	// the model package.
	ContainerConfig *RecommendationJobContainerConfig `type:"structure"`

	// Specifies the endpoint configuration to use for a job.
	EndpointConfigurations []*EndpointInputConfiguration `min:"1" type:"list"`

	// Existing customer endpoints on which to run an Inference Recommender job.
	Endpoints []*EndpointInfo `type:"list"`

	// Specifies the maximum duration of the job, in seconds. The maximum value
	// is 18,000 seconds.
	JobDurationInSeconds *int64 `min:"1" type:"integer"`

	// The name of the created model.
	ModelName *string `type:"string"`

	// The Amazon Resource Name (ARN) of a versioned model package.
	ModelPackageVersionArn *string `min:"1" type:"string"`

	// Defines the resource limit of the job.
	ResourceLimit *RecommendationJobResourceLimit `type:"structure"`

	// Specifies the traffic pattern of the job.
	TrafficPattern *TrafficPattern `type:"structure"`

	// The Amazon Resource Name (ARN) of a Amazon Web Services Key Management Service
	// (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data
	// on the storage volume attached to the ML compute instance that hosts the
	// endpoint. This key will be passed to SageMaker Hosting for endpoint creation.
	//
	// The SageMaker execution role must have kms:CreateGrant permission in order
	// to encrypt data on the storage volume of the endpoints created for inference
	// recommendation. The inference recommendation job will fail asynchronously
	// during endpoint configuration creation if the role passed does not have kms:CreateGrant
	// permission.
	//
	// The KmsKeyId can be any of the following formats:
	//
	//    * // KMS Key ID "1234abcd-12ab-34cd-56ef-1234567890ab"
	//
	//    * // Amazon Resource Name (ARN) of a KMS Key "arn:aws:kms:<region>:<account>:key/<key-id-12ab-34cd-56ef-1234567890ab>"
	//
	//    * // KMS Key Alias "alias/ExampleAlias"
	//
	//    * // Amazon Resource Name (ARN) of a KMS Key Alias "arn:aws:kms:<region>:<account>:alias/<ExampleAlias>"
	//
	// For more information about key identifiers, see Key identifiers (KeyID) (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id)
	// in the Amazon Web Services Key Management Service (Amazon Web Services KMS)
	// documentation.
	VolumeKmsKeyId *string `type:"string"`

	// Inference Recommender provisions SageMaker endpoints with access to VPC in
	// the inference recommendation job.
	VpcConfig *RecommendationJobVpcConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationJobInputConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationJobInputConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RecommendationJobInputConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RecommendationJobInputConfig"}
	if s.EndpointConfigurations != nil && len(s.EndpointConfigurations) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("EndpointConfigurations", 1))
	}
	if s.JobDurationInSeconds != nil && *s.JobDurationInSeconds < 1 {
		invalidParams.Add(request.NewErrParamMinValue("JobDurationInSeconds", 1))
	}
	if s.ModelPackageVersionArn != nil && len(*s.ModelPackageVersionArn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelPackageVersionArn", 1))
	}
	if s.ContainerConfig != nil {
		if err := s.ContainerConfig.Validate(); err != nil {
			invalidParams.AddNested("ContainerConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.EndpointConfigurations != nil {
		for i, v := range s.EndpointConfigurations {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EndpointConfigurations", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.ResourceLimit != nil {
		if err := s.ResourceLimit.Validate(); err != nil {
			invalidParams.AddNested("ResourceLimit", err.(request.ErrInvalidParams))
		}
	}
	if s.TrafficPattern != nil {
		if err := s.TrafficPattern.Validate(); err != nil {
			invalidParams.AddNested("TrafficPattern", err.(request.ErrInvalidParams))
		}
	}
	if s.VpcConfig != nil {
		if err := s.VpcConfig.Validate(); err != nil {
			invalidParams.AddNested("VpcConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContainerConfig sets the ContainerConfig field's value.
func (s *RecommendationJobInputConfig) SetContainerConfig(v *RecommendationJobContainerConfig) *RecommendationJobInputConfig {
	s.ContainerConfig = v
	return s
}

// SetEndpointConfigurations sets the EndpointConfigurations field's value.
func (s *RecommendationJobInputConfig) SetEndpointConfigurations(v []*EndpointInputConfiguration) *RecommendationJobInputConfig {
	s.EndpointConfigurations = v
	return s
}

// SetEndpoints sets the Endpoints field's value.
func (s *RecommendationJobInputConfig) SetEndpoints(v []*EndpointInfo) *RecommendationJobInputConfig {
	s.Endpoints = v
	return s
}

// SetJobDurationInSeconds sets the JobDurationInSeconds field's value.
func (s *RecommendationJobInputConfig) SetJobDurationInSeconds(v int64) *RecommendationJobInputConfig {
	s.JobDurationInSeconds = &v
	return s
}

// SetModelName sets the ModelName field's value.
func (s *RecommendationJobInputConfig) SetModelName(v string) *RecommendationJobInputConfig {
	s.ModelName = &v
	return s
}

// SetModelPackageVersionArn sets the ModelPackageVersionArn field's value.
func (s *RecommendationJobInputConfig) SetModelPackageVersionArn(v string) *RecommendationJobInputConfig {
	s.ModelPackageVersionArn = &v
	return s
}

// SetResourceLimit sets the ResourceLimit field's value.
func (s *RecommendationJobInputConfig) SetResourceLimit(v *RecommendationJobResourceLimit) *RecommendationJobInputConfig {
	s.ResourceLimit = v
	return s
}

// SetTrafficPattern sets the TrafficPattern field's value.
func (s *RecommendationJobInputConfig) SetTrafficPattern(v *TrafficPattern) *RecommendationJobInputConfig {
	s.TrafficPattern = v
	return s
}

// SetVolumeKmsKeyId sets the VolumeKmsKeyId field's value.
func (s *RecommendationJobInputConfig) SetVolumeKmsKeyId(v string) *RecommendationJobInputConfig {
	s.VolumeKmsKeyId = &v
	return s
}

// SetVpcConfig sets the VpcConfig field's value.
func (s *RecommendationJobInputConfig) SetVpcConfig(v *RecommendationJobVpcConfig) *RecommendationJobInputConfig {
	s.VpcConfig = v
	return s
}

// Provides information about the output configuration for the compiled model.
type RecommendationJobOutputConfig struct {
	_ struct{} `type:"structure"`

	// Provides information about the output configuration for the compiled model.
	CompiledOutputConfig *RecommendationJobCompiledOutputConfig `type:"structure"`

	// The Amazon Resource Name (ARN) of a Amazon Web Services Key Management Service
	// (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt your
	// output artifacts with Amazon S3 server-side encryption. The SageMaker execution
	// role must have kms:GenerateDataKey permission.
	//
	// The KmsKeyId can be any of the following formats:
	//
	//    * // KMS Key ID "1234abcd-12ab-34cd-56ef-1234567890ab"
	//
	//    * // Amazon Resource Name (ARN) of a KMS Key "arn:aws:kms:<region>:<account>:key/<key-id-12ab-34cd-56ef-1234567890ab>"
	//
	//    * // KMS Key Alias "alias/ExampleAlias"
	//
	//    * // Amazon Resource Name (ARN) of a KMS Key Alias "arn:aws:kms:<region>:<account>:alias/<ExampleAlias>"
	//
	// For more information about key identifiers, see Key identifiers (KeyID) (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id)
	// in the Amazon Web Services Key Management Service (Amazon Web Services KMS)
	// documentation.
	KmsKeyId *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationJobOutputConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationJobOutputConfig) GoString() string {
	return s.String()
}

// SetCompiledOutputConfig sets the CompiledOutputConfig field's value.
func (s *RecommendationJobOutputConfig) SetCompiledOutputConfig(v *RecommendationJobCompiledOutputConfig) *RecommendationJobOutputConfig {
	s.CompiledOutputConfig = v
	return s
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *RecommendationJobOutputConfig) SetKmsKeyId(v string) *RecommendationJobOutputConfig {
	s.KmsKeyId = &v
	return s
}

// The configuration for the payload for a recommendation job.
type RecommendationJobPayloadConfig struct {
	_ struct{} `type:"structure"`

	// The Amazon Simple Storage Service (Amazon S3) path where the sample payload
	// is stored. This path must point to a single gzip compressed tar archive (.tar.gz
	// suffix).
	SamplePayloadUrl *string `type:"string"`

	// The supported MIME types for the input data.
	SupportedContentTypes []*string `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationJobPayloadConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationJobPayloadConfig) GoString() string {
	return s.String()
}

// SetSamplePayloadUrl sets the SamplePayloadUrl field's value.
func (s *RecommendationJobPayloadConfig) SetSamplePayloadUrl(v string) *RecommendationJobPayloadConfig {
	s.SamplePayloadUrl = &v
	return s
}

// SetSupportedContentTypes sets the SupportedContentTypes field's value.
func (s *RecommendationJobPayloadConfig) SetSupportedContentTypes(v []*string) *RecommendationJobPayloadConfig {
	s.SupportedContentTypes = v
	return s
}

// Specifies the maximum number of jobs that can run in parallel and the maximum
// number of jobs that can run.
type RecommendationJobResourceLimit struct {
	_ struct{} `type:"structure"`

	// Defines the maximum number of load tests.
	MaxNumberOfTests *int64 `min:"1" type:"integer"`

	// Defines the maximum number of parallel load tests.
	MaxParallelOfTests *int64 `min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationJobResourceLimit) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationJobResourceLimit) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RecommendationJobResourceLimit) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RecommendationJobResourceLimit"}
	if s.MaxNumberOfTests != nil && *s.MaxNumberOfTests < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxNumberOfTests", 1))
	}
	if s.MaxParallelOfTests != nil && *s.MaxParallelOfTests < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxParallelOfTests", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxNumberOfTests sets the MaxNumberOfTests field's value.
func (s *RecommendationJobResourceLimit) SetMaxNumberOfTests(v int64) *RecommendationJobResourceLimit {
	s.MaxNumberOfTests = &v
	return s
}

// SetMaxParallelOfTests sets the MaxParallelOfTests field's value.
func (s *RecommendationJobResourceLimit) SetMaxParallelOfTests(v int64) *RecommendationJobResourceLimit {
	s.MaxParallelOfTests = &v
	return s
}

// Specifies conditions for stopping a job. When a job reaches a stopping condition
// limit, SageMaker ends the job.
type RecommendationJobStoppingConditions struct {
	_ struct{} `type:"structure"`

	// Stops a load test when the number of invocations (TPS) peaks and flattens,
	// which means that the instance has reached capacity. The default value is
	// Stop. If you want the load test to continue after invocations have flattened,
	// set the value to Continue.
	FlatInvocations *string `type:"string" enum:"FlatInvocations"`

	// The maximum number of requests per minute expected for the endpoint.
	MaxInvocations *int64 `type:"integer"`

	// The interval of time taken by a model to respond as viewed from SageMaker.
	// The interval includes the local communication time taken to send the request
	// and to fetch the response from the container of a model and the time taken
	// to complete the inference in the container.
	ModelLatencyThresholds []*ModelLatencyThreshold `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationJobStoppingConditions) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationJobStoppingConditions) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RecommendationJobStoppingConditions) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RecommendationJobStoppingConditions"}
	if s.ModelLatencyThresholds != nil && len(s.ModelLatencyThresholds) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelLatencyThresholds", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFlatInvocations sets the FlatInvocations field's value.
func (s *RecommendationJobStoppingConditions) SetFlatInvocations(v string) *RecommendationJobStoppingConditions {
	s.FlatInvocations = &v
	return s
}

// SetMaxInvocations sets the MaxInvocations field's value.
func (s *RecommendationJobStoppingConditions) SetMaxInvocations(v int64) *RecommendationJobStoppingConditions {
	s.MaxInvocations = &v
	return s
}

// SetModelLatencyThresholds sets the ModelLatencyThresholds field's value.
func (s *RecommendationJobStoppingConditions) SetModelLatencyThresholds(v []*ModelLatencyThreshold) *RecommendationJobStoppingConditions {
	s.ModelLatencyThresholds = v
	return s
}

// Inference Recommender provisions SageMaker endpoints with access to VPC in
// the inference recommendation job.
type RecommendationJobVpcConfig struct {
	_ struct{} `type:"structure"`

	// The VPC security group IDs. IDs have the form of sg-xxxxxxxx. Specify the
	// security groups for the VPC that is specified in the Subnets field.
	//
	// SecurityGroupIds is a required field
	SecurityGroupIds []*string `min:"1" type:"list" required:"true"`

	// The ID of the subnets in the VPC to which you want to connect your model.
	//
	// Subnets is a required field
	Subnets []*string `min:"1" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationJobVpcConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationJobVpcConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RecommendationJobVpcConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RecommendationJobVpcConfig"}
	if s.SecurityGroupIds == nil {
		invalidParams.Add(request.NewErrParamRequired("SecurityGroupIds"))
	}
	if s.SecurityGroupIds != nil && len(s.SecurityGroupIds) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SecurityGroupIds", 1))
	}
	if s.Subnets == nil {
		invalidParams.Add(request.NewErrParamRequired("Subnets"))
	}
	if s.Subnets != nil && len(s.Subnets) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Subnets", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSecurityGroupIds sets the SecurityGroupIds field's value.
func (s *RecommendationJobVpcConfig) SetSecurityGroupIds(v []*string) *RecommendationJobVpcConfig {
	s.SecurityGroupIds = v
	return s
}

// SetSubnets sets the Subnets field's value.
func (s *RecommendationJobVpcConfig) SetSubnets(v []*string) *RecommendationJobVpcConfig {
	s.Subnets = v
	return s
}

// The metrics of recommendations.
type RecommendationMetrics struct {
	_ struct{} `type:"structure"`

	// Defines the cost per hour for the instance.
	//
	// CostPerHour is a required field
	CostPerHour *float64 `type:"float" required:"true"`

	// Defines the cost per inference for the instance .
	//
	// CostPerInference is a required field
	CostPerInference *float64 `type:"float" required:"true"`

	// The expected CPU utilization at maximum invocations per minute for the instance.
	//
	// NaN indicates that the value is not available.
	CpuUtilization *float64 `type:"float"`

	// The expected maximum number of requests per minute for the instance.
	//
	// MaxInvocations is a required field
	MaxInvocations *int64 `type:"integer" required:"true"`

	// The expected memory utilization at maximum invocations per minute for the
	// instance.
	//
	// NaN indicates that the value is not available.
	MemoryUtilization *float64 `type:"float"`

	// The expected model latency at maximum invocation per minute for the instance.
	//
	// ModelLatency is a required field
	ModelLatency *int64 `type:"integer" required:"true"`

	// The time it takes to launch new compute resources for a serverless endpoint.
	// The time can vary depending on the model size, how long it takes to download
	// the model, and the start-up time of the container.
	//
	// NaN indicates that the value is not available.
	ModelSetupTime *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationMetrics) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationMetrics) GoString() string {
	return s.String()
}

// SetCostPerHour sets the CostPerHour field's value.
func (s *RecommendationMetrics) SetCostPerHour(v float64) *RecommendationMetrics {
	s.CostPerHour = &v
	return s
}

// SetCostPerInference sets the CostPerInference field's value.
func (s *RecommendationMetrics) SetCostPerInference(v float64) *RecommendationMetrics {
	s.CostPerInference = &v
	return s
}

// SetCpuUtilization sets the CpuUtilization field's value.
func (s *RecommendationMetrics) SetCpuUtilization(v float64) *RecommendationMetrics {
	s.CpuUtilization = &v
	return s
}

// SetMaxInvocations sets the MaxInvocations field's value.
func (s *RecommendationMetrics) SetMaxInvocations(v int64) *RecommendationMetrics {
	s.MaxInvocations = &v
	return s
}

// SetMemoryUtilization sets the MemoryUtilization field's value.
func (s *RecommendationMetrics) SetMemoryUtilization(v float64) *RecommendationMetrics {
	s.MemoryUtilization = &v
	return s
}

// SetModelLatency sets the ModelLatency field's value.
func (s *RecommendationMetrics) SetModelLatency(v int64) *RecommendationMetrics {
	s.ModelLatency = &v
	return s
}

// SetModelSetupTime sets the ModelSetupTime field's value.
func (s *RecommendationMetrics) SetModelSetupTime(v int64) *RecommendationMetrics {
	s.ModelSetupTime = &v
	return s
}

// Configuration for Redshift Dataset Definition input.
type RedshiftDatasetDefinition struct {
	_ struct{} `type:"structure"`

	// The Redshift cluster Identifier.
	//
	// ClusterId is a required field
	ClusterId *string `min:"1" type:"string" required:"true"`

	// The IAM role attached to your Redshift cluster that Amazon SageMaker uses
	// to generate datasets.
	//
	// ClusterRoleArn is a required field
	ClusterRoleArn *string `min:"20" type:"string" required:"true"`

	// The name of the Redshift database used in Redshift query execution.
	//
	// Database is a required field
	Database *string `min:"1" type:"string" required:"true"`

	// The database user name used in Redshift query execution.
	//
	// DbUser is a required field
	DbUser *string `min:"1" type:"string" required:"true"`

	// The Amazon Web Services Key Management Service (Amazon Web Services KMS)
	// key that Amazon SageMaker uses to encrypt data from a Redshift execution.
	KmsKeyId *string `type:"string"`

	// The compression used for Redshift query results.
	OutputCompression *string `type:"string" enum:"RedshiftResultCompressionType"`

	// The data storage format for Redshift query results.
	//
	// OutputFormat is a required field
	OutputFormat *string `type:"string" required:"true" enum:"RedshiftResultFormat"`

	// The location in Amazon S3 where the Redshift query results are stored.
	//
	// OutputS3Uri is a required field
	OutputS3Uri *string `type:"string" required:"true"`

	// The SQL query statements to be executed.
	//
	// QueryString is a required field
	QueryString *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RedshiftDatasetDefinition) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RedshiftDatasetDefinition) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RedshiftDatasetDefinition) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RedshiftDatasetDefinition"}
	if s.ClusterId == nil {
		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
	}
	if s.ClusterId != nil && len(*s.ClusterId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ClusterId", 1))
	}
	if s.ClusterRoleArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ClusterRoleArn"))
	}
	if s.ClusterRoleArn != nil && len(*s.ClusterRoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("ClusterRoleArn", 20))
	}
	if s.Database == nil {
		invalidParams.Add(request.NewErrParamRequired("Database"))
	}
	if s.Database != nil && len(*s.Database) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Database", 1))
	}
	if s.DbUser == nil {
		invalidParams.Add(request.NewErrParamRequired("DbUser"))
	}
	if s.DbUser != nil && len(*s.DbUser) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DbUser", 1))
	}
	if s.OutputFormat == nil {
		invalidParams.Add(request.NewErrParamRequired("OutputFormat"))
	}
	if s.OutputS3Uri == nil {
		invalidParams.Add(request.NewErrParamRequired("OutputS3Uri"))
	}
	if s.QueryString == nil {
		invalidParams.Add(request.NewErrParamRequired("QueryString"))
	}
	if s.QueryString != nil && len(*s.QueryString) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClusterId sets the ClusterId field's value.
func (s *RedshiftDatasetDefinition) SetClusterId(v string) *RedshiftDatasetDefinition {
	s.ClusterId = &v
	return s
}

// SetClusterRoleArn sets the ClusterRoleArn field's value.
func (s *RedshiftDatasetDefinition) SetClusterRoleArn(v string) *RedshiftDatasetDefinition {
	s.ClusterRoleArn = &v
	return s
}

// SetDatabase sets the Database field's value.
func (s *RedshiftDatasetDefinition) SetDatabase(v string) *RedshiftDatasetDefinition {
	s.Database = &v
	return s
}

// SetDbUser sets the DbUser field's value.
func (s *RedshiftDatasetDefinition) SetDbUser(v string) *RedshiftDatasetDefinition {
	s.DbUser = &v
	return s
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *RedshiftDatasetDefinition) SetKmsKeyId(v string) *RedshiftDatasetDefinition {
	s.KmsKeyId = &v
	return s
}

// SetOutputCompression sets the OutputCompression field's value.
func (s *RedshiftDatasetDefinition) SetOutputCompression(v string) *RedshiftDatasetDefinition {
	s.OutputCompression = &v
	return s
}

// SetOutputFormat sets the OutputFormat field's value.
func (s *RedshiftDatasetDefinition) SetOutputFormat(v string) *RedshiftDatasetDefinition {
	s.OutputFormat = &v
	return s
}

// SetOutputS3Uri sets the OutputS3Uri field's value.
func (s *RedshiftDatasetDefinition) SetOutputS3Uri(v string) *RedshiftDatasetDefinition {
	s.OutputS3Uri = &v
	return s
}

// SetQueryString sets the QueryString field's value.
func (s *RedshiftDatasetDefinition) SetQueryString(v string) *RedshiftDatasetDefinition {
	s.QueryString = &v
	return s
}

type RegisterDevicesInput struct {
	_ struct{} `type:"structure"`

	// The name of the fleet.
	//
	// DeviceFleetName is a required field
	DeviceFleetName *string `min:"1" type:"string" required:"true"`

	// A list of devices to register with SageMaker Edge Manager.
	//
	// Devices is a required field
	Devices []*Device `type:"list" required:"true"`

	// The tags associated with devices.
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RegisterDevicesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RegisterDevicesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RegisterDevicesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RegisterDevicesInput"}
	if s.DeviceFleetName == nil {
		invalidParams.Add(request.NewErrParamRequired("DeviceFleetName"))
	}
	if s.DeviceFleetName != nil && len(*s.DeviceFleetName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DeviceFleetName", 1))
	}
	if s.Devices == nil {
		invalidParams.Add(request.NewErrParamRequired("Devices"))
	}
	if s.Devices != nil {
		for i, v := range s.Devices {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Devices", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDeviceFleetName sets the DeviceFleetName field's value.
func (s *RegisterDevicesInput) SetDeviceFleetName(v string) *RegisterDevicesInput {
	s.DeviceFleetName = &v
	return s
}

// SetDevices sets the Devices field's value.
func (s *RegisterDevicesInput) SetDevices(v []*Device) *RegisterDevicesInput {
	s.Devices = v
	return s
}

// SetTags sets the Tags field's value.
func (s *RegisterDevicesInput) SetTags(v []*Tag) *RegisterDevicesInput {
	s.Tags = v
	return s
}

type RegisterDevicesOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RegisterDevicesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RegisterDevicesOutput) GoString() string {
	return s.String()
}

// Metadata for a register model job step.
type RegisterModelStepMetadata struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the model package.
	Arn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RegisterModelStepMetadata) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RegisterModelStepMetadata) GoString() string {
	return s.String()
}

// SetArn sets the Arn field's value.
func (s *RegisterModelStepMetadata) SetArn(v string) *RegisterModelStepMetadata {
	s.Arn = &v
	return s
}

// Configuration for remote debugging for the CreateTrainingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)
// API. To learn more about the remote debugging functionality of SageMaker,
// see Access a training container through Amazon Web Services Systems Manager
// (SSM) for remote debugging (https://docs.aws.amazon.com/sagemaker/latest/dg/train-remote-debugging.html).
type RemoteDebugConfig struct {
	_ struct{} `type:"structure"`

	// If set to True, enables remote debugging.
	EnableRemoteDebug *bool `type:"boolean"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RemoteDebugConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RemoteDebugConfig) GoString() string {
	return s.String()
}

// SetEnableRemoteDebug sets the EnableRemoteDebug field's value.
func (s *RemoteDebugConfig) SetEnableRemoteDebug(v bool) *RemoteDebugConfig {
	s.EnableRemoteDebug = &v
	return s
}

// Configuration for remote debugging for the UpdateTrainingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateTrainingJob.html)
// API. To learn more about the remote debugging functionality of SageMaker,
// see Access a training container through Amazon Web Services Systems Manager
// (SSM) for remote debugging (https://docs.aws.amazon.com/sagemaker/latest/dg/train-remote-debugging.html).
type RemoteDebugConfigForUpdate struct {
	_ struct{} `type:"structure"`

	// If set to True, enables remote debugging.
	EnableRemoteDebug *bool `type:"boolean"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RemoteDebugConfigForUpdate) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RemoteDebugConfigForUpdate) GoString() string {
	return s.String()
}

// SetEnableRemoteDebug sets the EnableRemoteDebug field's value.
func (s *RemoteDebugConfigForUpdate) SetEnableRemoteDebug(v bool) *RemoteDebugConfigForUpdate {
	s.EnableRemoteDebug = &v
	return s
}

type RenderUiTemplateInput struct {
	_ struct{} `type:"structure"`

	// The HumanTaskUiArn of the worker UI that you want to render. Do not provide
	// a HumanTaskUiArn if you use the UiTemplate parameter.
	//
	// See a list of available Human Ui Amazon Resource Names (ARNs) in UiConfig
	// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UiConfig.html).
	HumanTaskUiArn *string `type:"string"`

	// The Amazon Resource Name (ARN) that has access to the S3 objects that are
	// used by the template.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// A RenderableTask object containing a representative task to render.
	//
	// Task is a required field
	Task *RenderableTask `type:"structure" required:"true"`

	// A Template object containing the worker UI template to render.
	UiTemplate *UiTemplate `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RenderUiTemplateInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RenderUiTemplateInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RenderUiTemplateInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RenderUiTemplateInput"}
	if s.RoleArn == nil {
		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.Task == nil {
		invalidParams.Add(request.NewErrParamRequired("Task"))
	}
	if s.Task != nil {
		if err := s.Task.Validate(); err != nil {
			invalidParams.AddNested("Task", err.(request.ErrInvalidParams))
		}
	}
	if s.UiTemplate != nil {
		if err := s.UiTemplate.Validate(); err != nil {
			invalidParams.AddNested("UiTemplate", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetHumanTaskUiArn sets the HumanTaskUiArn field's value.
func (s *RenderUiTemplateInput) SetHumanTaskUiArn(v string) *RenderUiTemplateInput {
	s.HumanTaskUiArn = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *RenderUiTemplateInput) SetRoleArn(v string) *RenderUiTemplateInput {
	s.RoleArn = &v
	return s
}

// SetTask sets the Task field's value.
func (s *RenderUiTemplateInput) SetTask(v *RenderableTask) *RenderUiTemplateInput {
	s.Task = v
	return s
}

// SetUiTemplate sets the UiTemplate field's value.
func (s *RenderUiTemplateInput) SetUiTemplate(v *UiTemplate) *RenderUiTemplateInput {
	s.UiTemplate = v
	return s
}

type RenderUiTemplateOutput struct {
	_ struct{} `type:"structure"`

	// A list of one or more RenderingError objects if any were encountered while
	// rendering the template. If there were no errors, the list is empty.
	//
	// Errors is a required field
	Errors []*RenderingError `type:"list" required:"true"`

	// A Liquid template that renders the HTML for the worker UI.
	//
	// RenderedContent is a required field
	RenderedContent *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RenderUiTemplateOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RenderUiTemplateOutput) GoString() string {
	return s.String()
}

// SetErrors sets the Errors field's value.
func (s *RenderUiTemplateOutput) SetErrors(v []*RenderingError) *RenderUiTemplateOutput {
	s.Errors = v
	return s
}

// SetRenderedContent sets the RenderedContent field's value.
func (s *RenderUiTemplateOutput) SetRenderedContent(v string) *RenderUiTemplateOutput {
	s.RenderedContent = &v
	return s
}

// Contains input values for a task.
type RenderableTask struct {
	_ struct{} `type:"structure"`

	// A JSON object that contains values for the variables defined in the template.
	// It is made available to the template under the substitution variable task.input.
	// For example, if you define a variable task.input.text in your template, you
	// can supply the variable in the JSON object as "text": "sample text".
	//
	// Input is a required field
	Input *string `min:"2" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RenderableTask) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RenderableTask) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RenderableTask) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RenderableTask"}
	if s.Input == nil {
		invalidParams.Add(request.NewErrParamRequired("Input"))
	}
	if s.Input != nil && len(*s.Input) < 2 {
		invalidParams.Add(request.NewErrParamMinLen("Input", 2))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetInput sets the Input field's value.
func (s *RenderableTask) SetInput(v string) *RenderableTask {
	s.Input = &v
	return s
}

// A description of an error that occurred while rendering the template.
type RenderingError struct {
	_ struct{} `type:"structure"`

	// A unique identifier for a specific class of errors.
	//
	// Code is a required field
	Code *string `type:"string" required:"true"`

	// A human-readable message describing the error.
	//
	// Message is a required field
	Message *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RenderingError) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RenderingError) GoString() string {
	return s.String()
}

// SetCode sets the Code field's value.
func (s *RenderingError) SetCode(v string) *RenderingError {
	s.Code = &v
	return s
}

// SetMessage sets the Message field's value.
func (s *RenderingError) SetMessage(v string) *RenderingError {
	s.Message = &v
	return s
}

// Specifies an authentication configuration for the private docker registry
// where your model image is hosted. Specify a value for this property only
// if you specified Vpc as the value for the RepositoryAccessMode field of the
// ImageConfig object that you passed to a call to CreateModel and the private
// Docker registry where the model image is hosted requires authentication.
type RepositoryAuthConfig struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of an Amazon Web Services Lambda function
	// that provides credentials to authenticate to the private Docker registry
	// where your model image is hosted. For information about how to create an
	// Amazon Web Services Lambda function, see Create a Lambda function with the
	// console (https://docs.aws.amazon.com/lambda/latest/dg/getting-started-create-function.html)
	// in the Amazon Web Services Lambda Developer Guide.
	//
	// RepositoryCredentialsProviderArn is a required field
	RepositoryCredentialsProviderArn *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RepositoryAuthConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RepositoryAuthConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RepositoryAuthConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RepositoryAuthConfig"}
	if s.RepositoryCredentialsProviderArn == nil {
		invalidParams.Add(request.NewErrParamRequired("RepositoryCredentialsProviderArn"))
	}
	if s.RepositoryCredentialsProviderArn != nil && len(*s.RepositoryCredentialsProviderArn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("RepositoryCredentialsProviderArn", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetRepositoryCredentialsProviderArn sets the RepositoryCredentialsProviderArn field's value.
func (s *RepositoryAuthConfig) SetRepositoryCredentialsProviderArn(v string) *RepositoryAuthConfig {
	s.RepositoryCredentialsProviderArn = &v
	return s
}

// The resolved attributes.
type ResolvedAttributes struct {
	_ struct{} `type:"structure"`

	// Specifies a metric to minimize or maximize as the objective of an AutoML
	// job.
	AutoMLJobObjective *AutoMLJobObjective `type:"structure"`

	// How long a job is allowed to run, or how many candidates a job is allowed
	// to generate.
	CompletionCriteria *AutoMLJobCompletionCriteria `type:"structure"`

	// The problem type.
	ProblemType *string `type:"string" enum:"ProblemType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResolvedAttributes) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResolvedAttributes) GoString() string {
	return s.String()
}

// SetAutoMLJobObjective sets the AutoMLJobObjective field's value.
func (s *ResolvedAttributes) SetAutoMLJobObjective(v *AutoMLJobObjective) *ResolvedAttributes {
	s.AutoMLJobObjective = v
	return s
}

// SetCompletionCriteria sets the CompletionCriteria field's value.
func (s *ResolvedAttributes) SetCompletionCriteria(v *AutoMLJobCompletionCriteria) *ResolvedAttributes {
	s.CompletionCriteria = v
	return s
}

// SetProblemType sets the ProblemType field's value.
func (s *ResolvedAttributes) SetProblemType(v string) *ResolvedAttributes {
	s.ProblemType = &v
	return s
}

// A resource catalog containing all of the resources of a specific resource
// type within a resource owner account. For an example on sharing the Amazon
// SageMaker Feature Store DefaultFeatureGroupCatalog, see Share Amazon SageMaker
// Catalog resource type (https://docs.aws.amazon.com/sagemaker/latest/APIReference/feature-store-cross-account-discoverability-share-sagemaker-catalog.html)
// in the Amazon SageMaker Developer Guide.
type ResourceCatalog struct {
	_ struct{} `type:"structure"`

	// The time the ResourceCatalog was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// A free form description of the ResourceCatalog.
	//
	// Description is a required field
	Description *string `type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of the ResourceCatalog.
	//
	// ResourceCatalogArn is a required field
	ResourceCatalogArn *string `type:"string" required:"true"`

	// The name of the ResourceCatalog.
	//
	// ResourceCatalogName is a required field
	ResourceCatalogName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceCatalog) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceCatalog) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *ResourceCatalog) SetCreationTime(v time.Time) *ResourceCatalog {
	s.CreationTime = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *ResourceCatalog) SetDescription(v string) *ResourceCatalog {
	s.Description = &v
	return s
}

// SetResourceCatalogArn sets the ResourceCatalogArn field's value.
func (s *ResourceCatalog) SetResourceCatalogArn(v string) *ResourceCatalog {
	s.ResourceCatalogArn = &v
	return s
}

// SetResourceCatalogName sets the ResourceCatalogName field's value.
func (s *ResourceCatalog) SetResourceCatalogName(v string) *ResourceCatalog {
	s.ResourceCatalogName = &v
	return s
}

// Describes the resources, including machine learning (ML) compute instances
// and ML storage volumes, to use for model training.
type ResourceConfig struct {
	_ struct{} `type:"structure"`

	// The number of ML compute instances to use. For distributed training, provide
	// a value greater than 1.
	InstanceCount *int64 `type:"integer"`

	// The configuration of a heterogeneous cluster in JSON format.
	InstanceGroups []*InstanceGroup `type:"list"`

	// The ML compute instance type.
	//
	// SageMaker Training on Amazon Elastic Compute Cloud (EC2) P4de instances is
	// in preview release starting December 9th, 2022.
	//
	// Amazon EC2 P4de instances (http://aws.amazon.com/ec2/instance-types/p4/)
	// (currently in preview) are powered by 8 NVIDIA A100 GPUs with 80GB high-performance
	// HBM2e GPU memory, which accelerate the speed of training ML models that need
	// to be trained on large datasets of high-resolution data. In this preview
	// release, Amazon SageMaker supports ML training jobs on P4de instances (ml.p4de.24xlarge)
	// to reduce model training time. The ml.p4de.24xlarge instances are available
	// in the following Amazon Web Services Regions.
	//
	//    * US East (N. Virginia) (us-east-1)
	//
	//    * US West (Oregon) (us-west-2)
	//
	// To request quota limit increase and start using P4de instances, contact the
	// SageMaker Training service team through your account team.
	InstanceType *string `type:"string" enum:"TrainingInstanceType"`

	// The duration of time in seconds to retain configured resources in a warm
	// pool for subsequent training jobs.
	KeepAlivePeriodInSeconds *int64 `type:"integer"`

	// The Amazon Web Services KMS key that SageMaker uses to encrypt data on the
	// storage volume attached to the ML compute instance(s) that run the training
	// job.
	//
	// Certain Nitro-based instances include local storage, dependent on the instance
	// type. Local storage volumes are encrypted using a hardware module on the
	// instance. You can't request a VolumeKmsKeyId when using an instance type
	// with local storage.
	//
	// For a list of instance types that support local instance storage, see Instance
	// Store Volumes (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes).
	//
	// For more information about local instance storage encryption, see SSD Instance
	// Store Volumes (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html).
	//
	// The VolumeKmsKeyId can be in any of the following formats:
	//
	//    * // KMS Key ID "1234abcd-12ab-34cd-56ef-1234567890ab"
	//
	//    * // Amazon Resource Name (ARN) of a KMS Key "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
	VolumeKmsKeyId *string `type:"string"`

	// The size of the ML storage volume that you want to provision.
	//
	// ML storage volumes store model artifacts and incremental states. Training
	// algorithms might also use the ML storage volume for scratch space. If you
	// want to store the training data in the ML storage volume, choose File as
	// the TrainingInputMode in the algorithm specification.
	//
	// When using an ML instance with NVMe SSD volumes (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html#nvme-ssd-volumes),
	// SageMaker doesn't provision Amazon EBS General Purpose SSD (gp2) storage.
	// Available storage is fixed to the NVMe-type instance's storage capacity.
	// SageMaker configures storage paths for training datasets, checkpoints, model
	// artifacts, and outputs to use the entire capacity of the instance storage.
	// For example, ML instance families with the NVMe-type instance storage include
	// ml.p4d, ml.g4dn, and ml.g5.
	//
	// When using an ML instance with the EBS-only storage option and without instance
	// storage, you must define the size of EBS volume through VolumeSizeInGB in
	// the ResourceConfig API. For example, ML instance families that use EBS volumes
	// include ml.c5 and ml.p2.
	//
	// To look up instance types and their instance storage types and volumes, see
	// Amazon EC2 Instance Types (http://aws.amazon.com/ec2/instance-types/).
	//
	// To find the default local paths defined by the SageMaker training platform,
	// see Amazon SageMaker Training Storage Folders for Training Datasets, Checkpoints,
	// Model Artifacts, and Outputs (https://docs.aws.amazon.com/sagemaker/latest/dg/model-train-storage.html).
	//
	// VolumeSizeInGB is a required field
	VolumeSizeInGB *int64 `min:"1" type:"integer" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ResourceConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ResourceConfig"}
	if s.VolumeSizeInGB == nil {
		invalidParams.Add(request.NewErrParamRequired("VolumeSizeInGB"))
	}
	if s.VolumeSizeInGB != nil && *s.VolumeSizeInGB < 1 {
		invalidParams.Add(request.NewErrParamMinValue("VolumeSizeInGB", 1))
	}
	if s.InstanceGroups != nil {
		for i, v := range s.InstanceGroups {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceGroups", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetInstanceCount sets the InstanceCount field's value.
func (s *ResourceConfig) SetInstanceCount(v int64) *ResourceConfig {
	s.InstanceCount = &v
	return s
}

// SetInstanceGroups sets the InstanceGroups field's value.
func (s *ResourceConfig) SetInstanceGroups(v []*InstanceGroup) *ResourceConfig {
	s.InstanceGroups = v
	return s
}

// SetInstanceType sets the InstanceType field's value.
func (s *ResourceConfig) SetInstanceType(v string) *ResourceConfig {
	s.InstanceType = &v
	return s
}

// SetKeepAlivePeriodInSeconds sets the KeepAlivePeriodInSeconds field's value.
func (s *ResourceConfig) SetKeepAlivePeriodInSeconds(v int64) *ResourceConfig {
	s.KeepAlivePeriodInSeconds = &v
	return s
}

// SetVolumeKmsKeyId sets the VolumeKmsKeyId field's value.
func (s *ResourceConfig) SetVolumeKmsKeyId(v string) *ResourceConfig {
	s.VolumeKmsKeyId = &v
	return s
}

// SetVolumeSizeInGB sets the VolumeSizeInGB field's value.
func (s *ResourceConfig) SetVolumeSizeInGB(v int64) *ResourceConfig {
	s.VolumeSizeInGB = &v
	return s
}

// The ResourceConfig to update KeepAlivePeriodInSeconds. Other fields in the
// ResourceConfig cannot be updated.
type ResourceConfigForUpdate struct {
	_ struct{} `type:"structure"`

	// The KeepAlivePeriodInSeconds value specified in the ResourceConfig to update.
	//
	// KeepAlivePeriodInSeconds is a required field
	KeepAlivePeriodInSeconds *int64 `type:"integer" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceConfigForUpdate) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceConfigForUpdate) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ResourceConfigForUpdate) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ResourceConfigForUpdate"}
	if s.KeepAlivePeriodInSeconds == nil {
		invalidParams.Add(request.NewErrParamRequired("KeepAlivePeriodInSeconds"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetKeepAlivePeriodInSeconds sets the KeepAlivePeriodInSeconds field's value.
func (s *ResourceConfigForUpdate) SetKeepAlivePeriodInSeconds(v int64) *ResourceConfigForUpdate {
	s.KeepAlivePeriodInSeconds = &v
	return s
}

// Resource being accessed is in use.
type ResourceInUse struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceInUse) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceInUse) GoString() string {
	return s.String()
}

func newErrorResourceInUse(v protocol.ResponseMetadata) error {
	return &ResourceInUse{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ResourceInUse) Code() string {
	return "ResourceInUse"
}

// Message returns the exception's message.
func (s *ResourceInUse) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ResourceInUse) OrigErr() error {
	return nil
}

func (s *ResourceInUse) Error() string {
	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ResourceInUse) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ResourceInUse) RequestID() string {
	return s.RespMetadata.RequestID
}

// You have exceeded an SageMaker resource limit. For example, you might have
// too many training jobs created.
type ResourceLimitExceeded struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceLimitExceeded) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceLimitExceeded) GoString() string {
	return s.String()
}

func newErrorResourceLimitExceeded(v protocol.ResponseMetadata) error {
	return &ResourceLimitExceeded{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ResourceLimitExceeded) Code() string {
	return "ResourceLimitExceeded"
}

// Message returns the exception's message.
func (s *ResourceLimitExceeded) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ResourceLimitExceeded) OrigErr() error {
	return nil
}

func (s *ResourceLimitExceeded) Error() string {
	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ResourceLimitExceeded) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ResourceLimitExceeded) RequestID() string {
	return s.RespMetadata.RequestID
}

// Specifies the maximum number of training jobs and parallel training jobs
// that a hyperparameter tuning job can launch.
type ResourceLimits struct {
	_ struct{} `type:"structure"`

	// The maximum number of training jobs that a hyperparameter tuning job can
	// launch.
	MaxNumberOfTrainingJobs *int64 `min:"1" type:"integer"`

	// The maximum number of concurrent training jobs that a hyperparameter tuning
	// job can launch.
	//
	// MaxParallelTrainingJobs is a required field
	MaxParallelTrainingJobs *int64 `min:"1" type:"integer" required:"true"`

	// The maximum time in seconds that a hyperparameter tuning job can run.
	MaxRuntimeInSeconds *int64 `min:"120" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceLimits) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceLimits) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ResourceLimits) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ResourceLimits"}
	if s.MaxNumberOfTrainingJobs != nil && *s.MaxNumberOfTrainingJobs < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxNumberOfTrainingJobs", 1))
	}
	if s.MaxParallelTrainingJobs == nil {
		invalidParams.Add(request.NewErrParamRequired("MaxParallelTrainingJobs"))
	}
	if s.MaxParallelTrainingJobs != nil && *s.MaxParallelTrainingJobs < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxParallelTrainingJobs", 1))
	}
	if s.MaxRuntimeInSeconds != nil && *s.MaxRuntimeInSeconds < 120 {
		invalidParams.Add(request.NewErrParamMinValue("MaxRuntimeInSeconds", 120))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxNumberOfTrainingJobs sets the MaxNumberOfTrainingJobs field's value.
func (s *ResourceLimits) SetMaxNumberOfTrainingJobs(v int64) *ResourceLimits {
	s.MaxNumberOfTrainingJobs = &v
	return s
}

// SetMaxParallelTrainingJobs sets the MaxParallelTrainingJobs field's value.
func (s *ResourceLimits) SetMaxParallelTrainingJobs(v int64) *ResourceLimits {
	s.MaxParallelTrainingJobs = &v
	return s
}

// SetMaxRuntimeInSeconds sets the MaxRuntimeInSeconds field's value.
func (s *ResourceLimits) SetMaxRuntimeInSeconds(v int64) *ResourceLimits {
	s.MaxRuntimeInSeconds = &v
	return s
}

// Resource being access is not found.
type ResourceNotFound struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceNotFound) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceNotFound) GoString() string {
	return s.String()
}

func newErrorResourceNotFound(v protocol.ResponseMetadata) error {
	return &ResourceNotFound{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ResourceNotFound) Code() string {
	return "ResourceNotFound"
}

// Message returns the exception's message.
func (s *ResourceNotFound) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ResourceNotFound) OrigErr() error {
	return nil
}

func (s *ResourceNotFound) Error() string {
	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ResourceNotFound) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ResourceNotFound) RequestID() string {
	return s.RespMetadata.RequestID
}

// Specifies the ARN's of a SageMaker image and SageMaker image version, and
// the instance type that the version runs on.
type ResourceSpec struct {
	_ struct{} `type:"structure"`

	// The instance type that the image version runs on.
	//
	// JupyterServer apps only support the system value.
	//
	// For KernelGateway apps, the system value is translated to ml.t3.medium. KernelGateway
	// apps also support all other values for available instance types.
	InstanceType *string `type:"string" enum:"AppInstanceType"`

	// The Amazon Resource Name (ARN) of the Lifecycle Configuration attached to
	// the Resource.
	LifecycleConfigArn *string `type:"string"`

	// The ARN of the SageMaker image that the image version belongs to.
	SageMakerImageArn *string `type:"string"`

	// The SageMakerImageVersionAlias of the image to launch with. This value is
	// in SemVer 2.0.0 versioning format.
	SageMakerImageVersionAlias *string `min:"1" type:"string"`

	// The ARN of the image version created on the instance.
	SageMakerImageVersionArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceSpec) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceSpec) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ResourceSpec) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ResourceSpec"}
	if s.SageMakerImageVersionAlias != nil && len(*s.SageMakerImageVersionAlias) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SageMakerImageVersionAlias", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetInstanceType sets the InstanceType field's value.
func (s *ResourceSpec) SetInstanceType(v string) *ResourceSpec {
	s.InstanceType = &v
	return s
}

// SetLifecycleConfigArn sets the LifecycleConfigArn field's value.
func (s *ResourceSpec) SetLifecycleConfigArn(v string) *ResourceSpec {
	s.LifecycleConfigArn = &v
	return s
}

// SetSageMakerImageArn sets the SageMakerImageArn field's value.
func (s *ResourceSpec) SetSageMakerImageArn(v string) *ResourceSpec {
	s.SageMakerImageArn = &v
	return s
}

// SetSageMakerImageVersionAlias sets the SageMakerImageVersionAlias field's value.
func (s *ResourceSpec) SetSageMakerImageVersionAlias(v string) *ResourceSpec {
	s.SageMakerImageVersionAlias = &v
	return s
}

// SetSageMakerImageVersionArn sets the SageMakerImageVersionArn field's value.
func (s *ResourceSpec) SetSageMakerImageVersionArn(v string) *ResourceSpec {
	s.SageMakerImageVersionArn = &v
	return s
}

// The retention policy for data stored on an Amazon Elastic File System (EFS)
// volume.
type RetentionPolicy struct {
	_ struct{} `type:"structure"`

	// The default is Retain, which specifies to keep the data stored on the EFS
	// volume.
	//
	// Specify Delete to delete the data stored on the EFS volume.
	HomeEfsFileSystem *string `type:"string" enum:"RetentionType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RetentionPolicy) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RetentionPolicy) GoString() string {
	return s.String()
}

// SetHomeEfsFileSystem sets the HomeEfsFileSystem field's value.
func (s *RetentionPolicy) SetHomeEfsFileSystem(v string) *RetentionPolicy {
	s.HomeEfsFileSystem = &v
	return s
}

type RetryPipelineExecutionInput struct {
	_ struct{} `type:"structure"`

	// A unique, case-sensitive identifier that you provide to ensure the idempotency
	// of the operation. An idempotent operation completes no more than once.
	ClientRequestToken *string `min:"32" type:"string" idempotencyToken:"true"`

	// This configuration, if specified, overrides the parallelism configuration
	// of the parent pipeline.
	ParallelismConfiguration *ParallelismConfiguration `type:"structure"`

	// The Amazon Resource Name (ARN) of the pipeline execution.
	//
	// PipelineExecutionArn is a required field
	PipelineExecutionArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RetryPipelineExecutionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RetryPipelineExecutionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RetryPipelineExecutionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RetryPipelineExecutionInput"}
	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 32 {
		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 32))
	}
	if s.PipelineExecutionArn == nil {
		invalidParams.Add(request.NewErrParamRequired("PipelineExecutionArn"))
	}
	if s.ParallelismConfiguration != nil {
		if err := s.ParallelismConfiguration.Validate(); err != nil {
			invalidParams.AddNested("ParallelismConfiguration", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClientRequestToken sets the ClientRequestToken field's value.
func (s *RetryPipelineExecutionInput) SetClientRequestToken(v string) *RetryPipelineExecutionInput {
	s.ClientRequestToken = &v
	return s
}

// SetParallelismConfiguration sets the ParallelismConfiguration field's value.
func (s *RetryPipelineExecutionInput) SetParallelismConfiguration(v *ParallelismConfiguration) *RetryPipelineExecutionInput {
	s.ParallelismConfiguration = v
	return s
}

// SetPipelineExecutionArn sets the PipelineExecutionArn field's value.
func (s *RetryPipelineExecutionInput) SetPipelineExecutionArn(v string) *RetryPipelineExecutionInput {
	s.PipelineExecutionArn = &v
	return s
}

type RetryPipelineExecutionOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the pipeline execution.
	PipelineExecutionArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RetryPipelineExecutionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RetryPipelineExecutionOutput) GoString() string {
	return s.String()
}

// SetPipelineExecutionArn sets the PipelineExecutionArn field's value.
func (s *RetryPipelineExecutionOutput) SetPipelineExecutionArn(v string) *RetryPipelineExecutionOutput {
	s.PipelineExecutionArn = &v
	return s
}

// The retry strategy to use when a training job fails due to an InternalServerError.
// RetryStrategy is specified as part of the CreateTrainingJob and CreateHyperParameterTuningJob
// requests. You can add the StoppingCondition parameter to the request to limit
// the training time for the complete job.
type RetryStrategy struct {
	_ struct{} `type:"structure"`

	// The number of times to retry the job. When the job is retried, it's SecondaryStatus
	// is changed to STARTING.
	//
	// MaximumRetryAttempts is a required field
	MaximumRetryAttempts *int64 `min:"1" type:"integer" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RetryStrategy) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RetryStrategy) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RetryStrategy) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RetryStrategy"}
	if s.MaximumRetryAttempts == nil {
		invalidParams.Add(request.NewErrParamRequired("MaximumRetryAttempts"))
	}
	if s.MaximumRetryAttempts != nil && *s.MaximumRetryAttempts < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaximumRetryAttempts", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaximumRetryAttempts sets the MaximumRetryAttempts field's value.
func (s *RetryStrategy) SetMaximumRetryAttempts(v int64) *RetryStrategy {
	s.MaximumRetryAttempts = &v
	return s
}

// Specifies a rolling deployment strategy for updating a SageMaker endpoint.
type RollingUpdatePolicy struct {
	_ struct{} `type:"structure"`

	// Batch size for each rolling step to provision capacity and turn on traffic
	// on the new endpoint fleet, and terminate capacity on the old endpoint fleet.
	// Value must be between 5% to 50% of the variant's total instance count.
	//
	// MaximumBatchSize is a required field
	MaximumBatchSize *CapacitySize `type:"structure" required:"true"`

	// The time limit for the total deployment. Exceeding this limit causes a timeout.
	MaximumExecutionTimeoutInSeconds *int64 `min:"600" type:"integer"`

	// Batch size for rollback to the old endpoint fleet. Each rolling step to provision
	// capacity and turn on traffic on the old endpoint fleet, and terminate capacity
	// on the new endpoint fleet. If this field is absent, the default value will
	// be set to 100% of total capacity which means to bring up the whole capacity
	// of the old fleet at once during rollback.
	RollbackMaximumBatchSize *CapacitySize `type:"structure"`

	// The length of the baking period, during which SageMaker monitors alarms for
	// each batch on the new fleet.
	//
	// WaitIntervalInSeconds is a required field
	WaitIntervalInSeconds *int64 `type:"integer" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RollingUpdatePolicy) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RollingUpdatePolicy) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RollingUpdatePolicy) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RollingUpdatePolicy"}
	if s.MaximumBatchSize == nil {
		invalidParams.Add(request.NewErrParamRequired("MaximumBatchSize"))
	}
	if s.MaximumExecutionTimeoutInSeconds != nil && *s.MaximumExecutionTimeoutInSeconds < 600 {
		invalidParams.Add(request.NewErrParamMinValue("MaximumExecutionTimeoutInSeconds", 600))
	}
	if s.WaitIntervalInSeconds == nil {
		invalidParams.Add(request.NewErrParamRequired("WaitIntervalInSeconds"))
	}
	if s.MaximumBatchSize != nil {
		if err := s.MaximumBatchSize.Validate(); err != nil {
			invalidParams.AddNested("MaximumBatchSize", err.(request.ErrInvalidParams))
		}
	}
	if s.RollbackMaximumBatchSize != nil {
		if err := s.RollbackMaximumBatchSize.Validate(); err != nil {
			invalidParams.AddNested("RollbackMaximumBatchSize", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaximumBatchSize sets the MaximumBatchSize field's value.
func (s *RollingUpdatePolicy) SetMaximumBatchSize(v *CapacitySize) *RollingUpdatePolicy {
	s.MaximumBatchSize = v
	return s
}

// SetMaximumExecutionTimeoutInSeconds sets the MaximumExecutionTimeoutInSeconds field's value.
func (s *RollingUpdatePolicy) SetMaximumExecutionTimeoutInSeconds(v int64) *RollingUpdatePolicy {
	s.MaximumExecutionTimeoutInSeconds = &v
	return s
}

// SetRollbackMaximumBatchSize sets the RollbackMaximumBatchSize field's value.
func (s *RollingUpdatePolicy) SetRollbackMaximumBatchSize(v *CapacitySize) *RollingUpdatePolicy {
	s.RollbackMaximumBatchSize = v
	return s
}

// SetWaitIntervalInSeconds sets the WaitIntervalInSeconds field's value.
func (s *RollingUpdatePolicy) SetWaitIntervalInSeconds(v int64) *RollingUpdatePolicy {
	s.WaitIntervalInSeconds = &v
	return s
}

// Describes the S3 data source.
//
// Your input bucket must be in the same Amazon Web Services region as your
// training job.
type S3DataSource struct {
	_ struct{} `type:"structure"`

	// A list of one or more attribute names to use that are found in a specified
	// augmented manifest file.
	AttributeNames []*string `type:"list"`

	// A list of names of instance groups that get data from the S3 data source.
	InstanceGroupNames []*string `type:"list"`

	// If you want SageMaker to replicate the entire dataset on each ML compute
	// instance that is launched for model training, specify FullyReplicated.
	//
	// If you want SageMaker to replicate a subset of data on each ML compute instance
	// that is launched for model training, specify ShardedByS3Key. If there are
	// n ML compute instances launched for a training job, each instance gets approximately
	// 1/n of the number of S3 objects. In this case, model training on each machine
	// uses only the subset of training data.
	//
	// Don't choose more ML compute instances for training than available S3 objects.
	// If you do, some nodes won't get any data and you will pay for nodes that
	// aren't getting any training data. This applies in both File and Pipe modes.
	// Keep this in mind when developing algorithms.
	//
	// In distributed training, where you use multiple ML compute EC2 instances,
	// you might choose ShardedByS3Key. If the algorithm requires copying training
	// data to the ML storage volume (when TrainingInputMode is set to File), this
	// copies 1/n of the number of objects.
	S3DataDistributionType *string `type:"string" enum:"S3DataDistribution"`

	// If you choose S3Prefix, S3Uri identifies a key name prefix. SageMaker uses
	// all objects that match the specified key name prefix for model training.
	//
	// If you choose ManifestFile, S3Uri identifies an object that is a manifest
	// file containing a list of object keys that you want SageMaker to use for
	// model training.
	//
	// If you choose AugmentedManifestFile, S3Uri identifies an object that is an
	// augmented manifest file in JSON lines format. This file contains the data
	// you want to use for model training. AugmentedManifestFile can only be used
	// if the Channel's input mode is Pipe.
	//
	// S3DataType is a required field
	S3DataType *string `type:"string" required:"true" enum:"S3DataType"`

	// Depending on the value specified for the S3DataType, identifies either a
	// key name prefix or a manifest. For example:
	//
	//    * A key name prefix might look like this: s3://bucketname/exampleprefix/
	//
	//    * A manifest might look like this: s3://bucketname/example.manifest A
	//    manifest is an S3 object which is a JSON file consisting of an array of
	//    elements. The first element is a prefix which is followed by one or more
	//    suffixes. SageMaker appends the suffix elements to the prefix to get a
	//    full set of S3Uri. Note that the prefix must be a valid non-empty S3Uri
	//    that precludes users from specifying a manifest whose individual S3Uri
	//    is sourced from different S3 buckets. The following code example shows
	//    a valid manifest format: [ {"prefix": "s3://customer_bucket/some/prefix/"},
	//    "relative/path/to/custdata-1", "relative/path/custdata-2", ... "relative/path/custdata-N"
	//    ] This JSON is equivalent to the following S3Uri list: s3://customer_bucket/some/prefix/relative/path/to/custdata-1
	//    s3://customer_bucket/some/prefix/relative/path/custdata-2 ... s3://customer_bucket/some/prefix/relative/path/custdata-N
	//    The complete set of S3Uri in this manifest is the input data for the channel
	//    for this data source. The object that each S3Uri points to must be readable
	//    by the IAM role that SageMaker uses to perform tasks on your behalf.
	//
	// Your input bucket must be located in same Amazon Web Services region as your
	// training job.
	//
	// S3Uri is a required field
	S3Uri *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s S3DataSource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s S3DataSource) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *S3DataSource) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "S3DataSource"}
	if s.S3DataType == nil {
		invalidParams.Add(request.NewErrParamRequired("S3DataType"))
	}
	if s.S3Uri == nil {
		invalidParams.Add(request.NewErrParamRequired("S3Uri"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAttributeNames sets the AttributeNames field's value.
func (s *S3DataSource) SetAttributeNames(v []*string) *S3DataSource {
	s.AttributeNames = v
	return s
}

// SetInstanceGroupNames sets the InstanceGroupNames field's value.
func (s *S3DataSource) SetInstanceGroupNames(v []*string) *S3DataSource {
	s.InstanceGroupNames = v
	return s
}

// SetS3DataDistributionType sets the S3DataDistributionType field's value.
func (s *S3DataSource) SetS3DataDistributionType(v string) *S3DataSource {
	s.S3DataDistributionType = &v
	return s
}

// SetS3DataType sets the S3DataType field's value.
func (s *S3DataSource) SetS3DataType(v string) *S3DataSource {
	s.S3DataType = &v
	return s
}

// SetS3Uri sets the S3Uri field's value.
func (s *S3DataSource) SetS3Uri(v string) *S3DataSource {
	s.S3Uri = &v
	return s
}

// Specifies the S3 location of ML model data to deploy.
type S3ModelDataSource struct {
	_ struct{} `type:"structure"`

	// Specifies how the ML model data is prepared.
	//
	// If you choose Gzip and choose S3Object as the value of S3DataType, S3Uri
	// identifies an object that is a gzip-compressed TAR archive. SageMaker will
	// attempt to decompress and untar the object during model deployment.
	//
	// If you choose None and chooose S3Object as the value of S3DataType, S3Uri
	// identifies an object that represents an uncompressed ML model to deploy.
	//
	// If you choose None and choose S3Prefix as the value of S3DataType, S3Uri
	// identifies a key name prefix, under which all objects represents the uncompressed
	// ML model to deploy.
	//
	// If you choose None, then SageMaker will follow rules below when creating
	// model data files under /opt/ml/model directory for use by your inference
	// code:
	//
	//    * If you choose S3Object as the value of S3DataType, then SageMaker will
	//    split the key of the S3 object referenced by S3Uri by slash (/), and use
	//    the last part as the filename of the file holding the content of the S3
	//    object.
	//
	//    * If you choose S3Prefix as the value of S3DataType, then for each S3
	//    object under the key name pefix referenced by S3Uri, SageMaker will trim
	//    its key by the prefix, and use the remainder as the path (relative to
	//    /opt/ml/model) of the file holding the content of the S3 object. SageMaker
	//    will split the remainder by slash (/), using intermediate parts as directory
	//    names and the last part as filename of the file holding the content of
	//    the S3 object.
	//
	//    * Do not use any of the following as file names or directory names: An
	//    empty or blank string A string which contains null bytes A string longer
	//    than 255 bytes A single dot (.) A double dot (..)
	//
	//    * Ambiguous file names will result in model deployment failure. For example,
	//    if your uncompressed ML model consists of two S3 objects s3://mybucket/model/weights
	//    and s3://mybucket/model/weights/part1 and you specify s3://mybucket/model/
	//    as the value of S3Uri and S3Prefix as the value of S3DataType, then it
	//    will result in name clash between /opt/ml/model/weights (a regular file)
	//    and /opt/ml/model/weights/ (a directory).
	//
	//    * Do not organize the model artifacts in S3 console using folders (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-folders.html).
	//    When you create a folder in S3 console, S3 creates a 0-byte object with
	//    a key set to the folder name you provide. They key of the 0-byte object
	//    ends with a slash (/) which violates SageMaker restrictions on model artifact
	//    file names, leading to model deployment failure.
	//
	// CompressionType is a required field
	CompressionType *string `type:"string" required:"true" enum:"ModelCompressionType"`

	// Specifies the access configuration file for the ML model. You can explicitly
	// accept the model end-user license agreement (EULA) within the ModelAccessConfig.
	// You are responsible for reviewing and complying with any applicable license
	// terms and making sure they are acceptable for your use case before downloading
	// or using a model.
	ModelAccessConfig *ModelAccessConfig `type:"structure"`

	// Specifies the type of ML model data to deploy.
	//
	// If you choose S3Prefix, S3Uri identifies a key name prefix. SageMaker uses
	// all objects that match the specified key name prefix as part of the ML model
	// data to deploy. A valid key name prefix identified by S3Uri always ends with
	// a forward slash (/).
	//
	// If you choose S3Object, S3Uri identifies an object that is the ML model data
	// to deploy.
	//
	// S3DataType is a required field
	S3DataType *string `type:"string" required:"true" enum:"S3ModelDataType"`

	// Specifies the S3 path of ML model data to deploy.
	//
	// S3Uri is a required field
	S3Uri *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s S3ModelDataSource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s S3ModelDataSource) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *S3ModelDataSource) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "S3ModelDataSource"}
	if s.CompressionType == nil {
		invalidParams.Add(request.NewErrParamRequired("CompressionType"))
	}
	if s.S3DataType == nil {
		invalidParams.Add(request.NewErrParamRequired("S3DataType"))
	}
	if s.S3Uri == nil {
		invalidParams.Add(request.NewErrParamRequired("S3Uri"))
	}
	if s.ModelAccessConfig != nil {
		if err := s.ModelAccessConfig.Validate(); err != nil {
			invalidParams.AddNested("ModelAccessConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCompressionType sets the CompressionType field's value.
func (s *S3ModelDataSource) SetCompressionType(v string) *S3ModelDataSource {
	s.CompressionType = &v
	return s
}

// SetModelAccessConfig sets the ModelAccessConfig field's value.
func (s *S3ModelDataSource) SetModelAccessConfig(v *ModelAccessConfig) *S3ModelDataSource {
	s.ModelAccessConfig = v
	return s
}

// SetS3DataType sets the S3DataType field's value.
func (s *S3ModelDataSource) SetS3DataType(v string) *S3ModelDataSource {
	s.S3DataType = &v
	return s
}

// SetS3Uri sets the S3Uri field's value.
func (s *S3ModelDataSource) SetS3Uri(v string) *S3ModelDataSource {
	s.S3Uri = &v
	return s
}

// The Amazon Simple Storage (Amazon S3) location and and security configuration
// for OfflineStore.
type S3StorageConfig struct {
	_ struct{} `type:"structure"`

	// The Amazon Web Services Key Management Service (KMS) key ARN of the key used
	// to encrypt any objects written into the OfflineStore S3 location.
	//
	// The IAM roleARN that is passed as a parameter to CreateFeatureGroup must
	// have below permissions to the KmsKeyId:
	//
	//    * "kms:GenerateDataKey"
	KmsKeyId *string `type:"string"`

	// The S3 path where offline records are written.
	ResolvedOutputS3Uri *string `type:"string"`

	// The S3 URI, or location in Amazon S3, of OfflineStore.
	//
	// S3 URIs have a format similar to the following: s3://example-bucket/prefix/.
	//
	// S3Uri is a required field
	S3Uri *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s S3StorageConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s S3StorageConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *S3StorageConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "S3StorageConfig"}
	if s.S3Uri == nil {
		invalidParams.Add(request.NewErrParamRequired("S3Uri"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *S3StorageConfig) SetKmsKeyId(v string) *S3StorageConfig {
	s.KmsKeyId = &v
	return s
}

// SetResolvedOutputS3Uri sets the ResolvedOutputS3Uri field's value.
func (s *S3StorageConfig) SetResolvedOutputS3Uri(v string) *S3StorageConfig {
	s.ResolvedOutputS3Uri = &v
	return s
}

// SetS3Uri sets the S3Uri field's value.
func (s *S3StorageConfig) SetS3Uri(v string) *S3StorageConfig {
	s.S3Uri = &v
	return s
}

// An object containing a recommended scaling policy.
type ScalingPolicy struct {
	_ struct{} `type:"structure"`

	// A target tracking scaling policy. Includes support for predefined or customized
	// metrics.
	TargetTracking *TargetTrackingScalingPolicyConfiguration `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ScalingPolicy) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ScalingPolicy) GoString() string {
	return s.String()
}

// SetTargetTracking sets the TargetTracking field's value.
func (s *ScalingPolicy) SetTargetTracking(v *TargetTrackingScalingPolicyConfiguration) *ScalingPolicy {
	s.TargetTracking = v
	return s
}

// The metric for a scaling policy.
type ScalingPolicyMetric struct {
	_ struct{} `type:"structure"`

	// The number of invocations sent to a model, normalized by InstanceCount in
	// each ProductionVariant. 1/numberOfInstances is sent as the value on each
	// request, where numberOfInstances is the number of active instances for the
	// ProductionVariant behind the endpoint at the time of the request.
	InvocationsPerInstance *int64 `type:"integer"`

	// The interval of time taken by a model to respond as viewed from SageMaker.
	// This interval includes the local communication times taken to send the request
	// and to fetch the response from the container of a model and the time taken
	// to complete the inference in the container.
	ModelLatency *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ScalingPolicyMetric) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ScalingPolicyMetric) GoString() string {
	return s.String()
}

// SetInvocationsPerInstance sets the InvocationsPerInstance field's value.
func (s *ScalingPolicyMetric) SetInvocationsPerInstance(v int64) *ScalingPolicyMetric {
	s.InvocationsPerInstance = &v
	return s
}

// SetModelLatency sets the ModelLatency field's value.
func (s *ScalingPolicyMetric) SetModelLatency(v int64) *ScalingPolicyMetric {
	s.ModelLatency = &v
	return s
}

// An object where you specify the anticipated traffic pattern for an endpoint.
type ScalingPolicyObjective struct {
	_ struct{} `type:"structure"`

	// The maximum number of expected requests to your endpoint per minute.
	MaxInvocationsPerMinute *int64 `type:"integer"`

	// The minimum number of expected requests to your endpoint per minute.
	MinInvocationsPerMinute *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ScalingPolicyObjective) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ScalingPolicyObjective) GoString() string {
	return s.String()
}

// SetMaxInvocationsPerMinute sets the MaxInvocationsPerMinute field's value.
func (s *ScalingPolicyObjective) SetMaxInvocationsPerMinute(v int64) *ScalingPolicyObjective {
	s.MaxInvocationsPerMinute = &v
	return s
}

// SetMinInvocationsPerMinute sets the MinInvocationsPerMinute field's value.
func (s *ScalingPolicyObjective) SetMinInvocationsPerMinute(v int64) *ScalingPolicyObjective {
	s.MinInvocationsPerMinute = &v
	return s
}

// Configuration details about the monitoring schedule.
type ScheduleConfig struct {
	_ struct{} `type:"structure"`

	// Sets the end time for a monitoring job window. Express this time as an offset
	// to the times that you schedule your monitoring jobs to run. You schedule
	// monitoring jobs with the ScheduleExpression parameter. Specify this offset
	// in ISO 8601 duration format. For example, if you want to end the window one
	// hour before the start of each monitoring job, you would specify: "-PT1H".
	//
	// The end time that you specify must not follow the start time that you specify
	// by more than 24 hours. You specify the start time with the DataAnalysisStartTime
	// parameter.
	//
	// If you set ScheduleExpression to NOW, this parameter is required.
	DataAnalysisEndTime *string `type:"string"`

	// Sets the start time for a monitoring job window. Express this time as an
	// offset to the times that you schedule your monitoring jobs to run. You schedule
	// monitoring jobs with the ScheduleExpression parameter. Specify this offset
	// in ISO 8601 duration format. For example, if you want to monitor the five
	// hours of data in your dataset that precede the start of each monitoring job,
	// you would specify: "-PT5H".
	//
	// The start time that you specify must not precede the end time that you specify
	// by more than 24 hours. You specify the end time with the DataAnalysisEndTime
	// parameter.
	//
	// If you set ScheduleExpression to NOW, this parameter is required.
	DataAnalysisStartTime *string `type:"string"`

	// A cron expression that describes details about the monitoring schedule.
	//
	// The supported cron expressions are:
	//
	//    * If you want to set the job to start every hour, use the following: Hourly:
	//    cron(0 * ? * * *)
	//
	//    * If you want to start the job daily: cron(0 [00-23] ? * * *)
	//
	//    * If you want to run the job one time, immediately, use the following
	//    keyword: NOW
	//
	// For example, the following are valid cron expressions:
	//
	//    * Daily at noon UTC: cron(0 12 ? * * *)
	//
	//    * Daily at midnight UTC: cron(0 0 ? * * *)
	//
	// To support running every 6, 12 hours, the following are also supported:
	//
	// cron(0 [00-23]/[01-24] ? * * *)
	//
	// For example, the following are valid cron expressions:
	//
	//    * Every 12 hours, starting at 5pm UTC: cron(0 17/12 ? * * *)
	//
	//    * Every two hours starting at midnight: cron(0 0/2 ? * * *)
	//
	//    * Even though the cron expression is set to start at 5PM UTC, note that
	//    there could be a delay of 0-20 minutes from the actual requested time
	//    to run the execution.
	//
	//    * We recommend that if you would like a daily schedule, you do not provide
	//    this parameter. Amazon SageMaker will pick a time for running every day.
	//
	// You can also specify the keyword NOW to run the monitoring job immediately,
	// one time, without recurring.
	//
	// ScheduleExpression is a required field
	ScheduleExpression *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ScheduleConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ScheduleConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ScheduleConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ScheduleConfig"}
	if s.ScheduleExpression == nil {
		invalidParams.Add(request.NewErrParamRequired("ScheduleExpression"))
	}
	if s.ScheduleExpression != nil && len(*s.ScheduleExpression) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ScheduleExpression", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDataAnalysisEndTime sets the DataAnalysisEndTime field's value.
func (s *ScheduleConfig) SetDataAnalysisEndTime(v string) *ScheduleConfig {
	s.DataAnalysisEndTime = &v
	return s
}

// SetDataAnalysisStartTime sets the DataAnalysisStartTime field's value.
func (s *ScheduleConfig) SetDataAnalysisStartTime(v string) *ScheduleConfig {
	s.DataAnalysisStartTime = &v
	return s
}

// SetScheduleExpression sets the ScheduleExpression field's value.
func (s *ScheduleConfig) SetScheduleExpression(v string) *ScheduleConfig {
	s.ScheduleExpression = &v
	return s
}

// A multi-expression that searches for the specified resource or resources
// in a search. All resource objects that satisfy the expression's condition
// are included in the search results. You must specify at least one subexpression,
// filter, or nested filter. A SearchExpression can contain up to twenty elements.
//
// A SearchExpression contains the following components:
//
//   - A list of Filter objects. Each filter defines a simple Boolean expression
//     comprised of a resource property name, Boolean operator, and value.
//
//   - A list of NestedFilter objects. Each nested filter defines a list of
//     Boolean expressions using a list of resource properties. A nested filter
//     is satisfied if a single object in the list satisfies all Boolean expressions.
//
//   - A list of SearchExpression objects. A search expression object can be
//     nested in a list of search expression objects.
//
//   - A Boolean operator: And or Or.
type SearchExpression struct {
	_ struct{} `type:"structure"`

	// A list of filter objects.
	Filters []*Filter `min:"1" type:"list"`

	// A list of nested filter objects.
	NestedFilters []*NestedFilters `min:"1" type:"list"`

	// A Boolean operator used to evaluate the search expression. If you want every
	// conditional statement in all lists to be satisfied for the entire search
	// expression to be true, specify And. If only a single conditional statement
	// needs to be true for the entire search expression to be true, specify Or.
	// The default value is And.
	Operator *string `type:"string" enum:"BooleanOperator"`

	// A list of search expression objects.
	SubExpressions []*SearchExpression `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchExpression) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchExpression) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SearchExpression) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SearchExpression"}
	if s.Filters != nil && len(s.Filters) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Filters", 1))
	}
	if s.NestedFilters != nil && len(s.NestedFilters) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NestedFilters", 1))
	}
	if s.SubExpressions != nil && len(s.SubExpressions) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SubExpressions", 1))
	}
	if s.Filters != nil {
		for i, v := range s.Filters {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.NestedFilters != nil {
		for i, v := range s.NestedFilters {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "NestedFilters", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.SubExpressions != nil {
		for i, v := range s.SubExpressions {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SubExpressions", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFilters sets the Filters field's value.
func (s *SearchExpression) SetFilters(v []*Filter) *SearchExpression {
	s.Filters = v
	return s
}

// SetNestedFilters sets the NestedFilters field's value.
func (s *SearchExpression) SetNestedFilters(v []*NestedFilters) *SearchExpression {
	s.NestedFilters = v
	return s
}

// SetOperator sets the Operator field's value.
func (s *SearchExpression) SetOperator(v string) *SearchExpression {
	s.Operator = &v
	return s
}

// SetSubExpressions sets the SubExpressions field's value.
func (s *SearchExpression) SetSubExpressions(v []*SearchExpression) *SearchExpression {
	s.SubExpressions = v
	return s
}

type SearchInput struct {
	_ struct{} `type:"structure"`

	// A cross account filter option. When the value is "CrossAccount" the search
	// results will only include resources made discoverable to you from other accounts.
	// When the value is "SameAccount" or null the search results will only include
	// resources from your account. Default is null. For more information on searching
	// for resources made discoverable to your account, see Search discoverable
	// resources (https://docs.aws.amazon.com/sagemaker/latest/dg/feature-store-cross-account-discoverability-use.html)
	// in the SageMaker Developer Guide. The maximum number of ResourceCatalogs
	// viewable is 1000.
	CrossAccountFilterOption *string `type:"string" enum:"CrossAccountFilterOption"`

	// The maximum number of results to return.
	MaxResults *int64 `min:"1" type:"integer"`

	// If more than MaxResults resources match the specified SearchExpression, the
	// response includes a NextToken. The NextToken can be passed to the next SearchRequest
	// to continue retrieving results.
	NextToken *string `type:"string"`

	// The name of the SageMaker resource to search for.
	//
	// Resource is a required field
	Resource *string `type:"string" required:"true" enum:"ResourceType"`

	// A Boolean conditional statement. Resources must satisfy this condition to
	// be included in search results. You must provide at least one subexpression,
	// filter, or nested filter. The maximum number of recursive SubExpressions,
	// NestedFilters, and Filters that can be included in a SearchExpression object
	// is 50.
	SearchExpression *SearchExpression `type:"structure"`

	// The name of the resource property used to sort the SearchResults. The default
	// is LastModifiedTime.
	SortBy *string `min:"1" type:"string"`

	// How SearchResults are ordered. Valid values are Ascending or Descending.
	// The default is Descending.
	SortOrder *string `type:"string" enum:"SearchSortOrder"`

	// Limits the results of your search request to the resources that you can access.
	VisibilityConditions []*VisibilityConditions `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SearchInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SearchInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.Resource == nil {
		invalidParams.Add(request.NewErrParamRequired("Resource"))
	}
	if s.SortBy != nil && len(*s.SortBy) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SortBy", 1))
	}
	if s.VisibilityConditions != nil && len(s.VisibilityConditions) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("VisibilityConditions", 1))
	}
	if s.SearchExpression != nil {
		if err := s.SearchExpression.Validate(); err != nil {
			invalidParams.AddNested("SearchExpression", err.(request.ErrInvalidParams))
		}
	}
	if s.VisibilityConditions != nil {
		for i, v := range s.VisibilityConditions {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "VisibilityConditions", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCrossAccountFilterOption sets the CrossAccountFilterOption field's value.
func (s *SearchInput) SetCrossAccountFilterOption(v string) *SearchInput {
	s.CrossAccountFilterOption = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *SearchInput) SetMaxResults(v int64) *SearchInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *SearchInput) SetNextToken(v string) *SearchInput {
	s.NextToken = &v
	return s
}

// SetResource sets the Resource field's value.
func (s *SearchInput) SetResource(v string) *SearchInput {
	s.Resource = &v
	return s
}

// SetSearchExpression sets the SearchExpression field's value.
func (s *SearchInput) SetSearchExpression(v *SearchExpression) *SearchInput {
	s.SearchExpression = v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *SearchInput) SetSortBy(v string) *SearchInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *SearchInput) SetSortOrder(v string) *SearchInput {
	s.SortOrder = &v
	return s
}

// SetVisibilityConditions sets the VisibilityConditions field's value.
func (s *SearchInput) SetVisibilityConditions(v []*VisibilityConditions) *SearchInput {
	s.VisibilityConditions = v
	return s
}

type SearchOutput struct {
	_ struct{} `type:"structure"`

	// If the result of the previous Search request was truncated, the response
	// includes a NextToken. To retrieve the next set of results, use the token
	// in the next request.
	NextToken *string `type:"string"`

	// A list of SearchRecord objects.
	Results []*SearchRecord `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *SearchOutput) SetNextToken(v string) *SearchOutput {
	s.NextToken = &v
	return s
}

// SetResults sets the Results field's value.
func (s *SearchOutput) SetResults(v []*SearchRecord) *SearchOutput {
	s.Results = v
	return s
}

// A single resource returned as part of the Search (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html)
// API response.
type SearchRecord struct {
	_ struct{} `type:"structure"`

	// A hosted endpoint for real-time inference.
	Endpoint *Endpoint `type:"structure"`

	// The properties of an experiment.
	Experiment *Experiment `type:"structure"`

	// Amazon SageMaker Feature Store stores features in a collection called Feature
	// Group. A Feature Group can be visualized as a table which has rows, with
	// a unique identifier for each row where each column in the table is a feature.
	// In principle, a Feature Group is composed of features and values per features.
	FeatureGroup *FeatureGroup `type:"structure"`

	// The feature metadata used to search through the features.
	FeatureMetadata *FeatureMetadata `type:"structure"`

	// The properties of a hyperparameter tuning job.
	HyperParameterTuningJob *HyperParameterTuningJobSearchEntity `type:"structure"`

	// A model displayed in the Amazon SageMaker Model Dashboard.
	Model *ModelDashboardModel `type:"structure"`

	// An Amazon SageMaker Model Card that documents details about a machine learning
	// model.
	ModelCard *ModelCard `type:"structure"`

	// A versioned model that can be deployed for SageMaker inference.
	ModelPackage *ModelPackage `type:"structure"`

	// A group of versioned models in the model registry.
	ModelPackageGroup *ModelPackageGroup `type:"structure"`

	// A SageMaker Model Building Pipeline instance.
	Pipeline *Pipeline `type:"structure"`

	// An execution of a pipeline.
	PipelineExecution *PipelineExecution `type:"structure"`

	// The properties of a project.
	Project *Project `type:"structure"`

	// The properties of a training job.
	TrainingJob *TrainingJob `type:"structure"`

	// The properties of a trial.
	Trial *Trial `type:"structure"`

	// The properties of a trial component.
	TrialComponent *TrialComponent `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchRecord) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchRecord) GoString() string {
	return s.String()
}

// SetEndpoint sets the Endpoint field's value.
func (s *SearchRecord) SetEndpoint(v *Endpoint) *SearchRecord {
	s.Endpoint = v
	return s
}

// SetExperiment sets the Experiment field's value.
func (s *SearchRecord) SetExperiment(v *Experiment) *SearchRecord {
	s.Experiment = v
	return s
}

// SetFeatureGroup sets the FeatureGroup field's value.
func (s *SearchRecord) SetFeatureGroup(v *FeatureGroup) *SearchRecord {
	s.FeatureGroup = v
	return s
}

// SetFeatureMetadata sets the FeatureMetadata field's value.
func (s *SearchRecord) SetFeatureMetadata(v *FeatureMetadata) *SearchRecord {
	s.FeatureMetadata = v
	return s
}

// SetHyperParameterTuningJob sets the HyperParameterTuningJob field's value.
func (s *SearchRecord) SetHyperParameterTuningJob(v *HyperParameterTuningJobSearchEntity) *SearchRecord {
	s.HyperParameterTuningJob = v
	return s
}

// SetModel sets the Model field's value.
func (s *SearchRecord) SetModel(v *ModelDashboardModel) *SearchRecord {
	s.Model = v
	return s
}

// SetModelCard sets the ModelCard field's value.
func (s *SearchRecord) SetModelCard(v *ModelCard) *SearchRecord {
	s.ModelCard = v
	return s
}

// SetModelPackage sets the ModelPackage field's value.
func (s *SearchRecord) SetModelPackage(v *ModelPackage) *SearchRecord {
	s.ModelPackage = v
	return s
}

// SetModelPackageGroup sets the ModelPackageGroup field's value.
func (s *SearchRecord) SetModelPackageGroup(v *ModelPackageGroup) *SearchRecord {
	s.ModelPackageGroup = v
	return s
}

// SetPipeline sets the Pipeline field's value.
func (s *SearchRecord) SetPipeline(v *Pipeline) *SearchRecord {
	s.Pipeline = v
	return s
}

// SetPipelineExecution sets the PipelineExecution field's value.
func (s *SearchRecord) SetPipelineExecution(v *PipelineExecution) *SearchRecord {
	s.PipelineExecution = v
	return s
}

// SetProject sets the Project field's value.
func (s *SearchRecord) SetProject(v *Project) *SearchRecord {
	s.Project = v
	return s
}

// SetTrainingJob sets the TrainingJob field's value.
func (s *SearchRecord) SetTrainingJob(v *TrainingJob) *SearchRecord {
	s.TrainingJob = v
	return s
}

// SetTrial sets the Trial field's value.
func (s *SearchRecord) SetTrial(v *Trial) *SearchRecord {
	s.Trial = v
	return s
}

// SetTrialComponent sets the TrialComponent field's value.
func (s *SearchRecord) SetTrialComponent(v *TrialComponent) *SearchRecord {
	s.TrialComponent = v
	return s
}

// An array element of SecondaryStatusTransitions for DescribeTrainingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrainingJob.html).
// It provides additional details about a status that the training job has transitioned
// through. A training job can be in one of several states, for example, starting,
// downloading, training, or uploading. Within each state, there are a number
// of intermediate states. For example, within the starting state, SageMaker
// could be starting the training job or launching the ML instances. These transitional
// states are referred to as the job's secondary status.
type SecondaryStatusTransition struct {
	_ struct{} `type:"structure"`

	// A timestamp that shows when the training job transitioned out of this secondary
	// status state into another secondary status state or when the training job
	// has ended.
	EndTime *time.Time `type:"timestamp"`

	// A timestamp that shows when the training job transitioned to the current
	// secondary status state.
	//
	// StartTime is a required field
	StartTime *time.Time `type:"timestamp" required:"true"`

	// Contains a secondary status information from a training job.
	//
	// Status might be one of the following secondary statuses:
	//
	// InProgress
	//
	//    * Starting - Starting the training job.
	//
	//    * Downloading - An optional stage for algorithms that support File training
	//    input mode. It indicates that data is being downloaded to the ML storage
	//    volumes.
	//
	//    * Training - Training is in progress.
	//
	//    * Uploading - Training is complete and the model artifacts are being uploaded
	//    to the S3 location.
	//
	// Completed
	//
	//    * Completed - The training job has completed.
	//
	// Failed
	//
	//    * Failed - The training job has failed. The reason for the failure is
	//    returned in the FailureReason field of DescribeTrainingJobResponse.
	//
	// Stopped
	//
	//    * MaxRuntimeExceeded - The job stopped because it exceeded the maximum
	//    allowed runtime.
	//
	//    * Stopped - The training job has stopped.
	//
	// Stopping
	//
	//    * Stopping - Stopping the training job.
	//
	// We no longer support the following secondary statuses:
	//
	//    * LaunchingMLInstances
	//
	//    * PreparingTrainingStack
	//
	//    * DownloadingTrainingImage
	//
	// Status is a required field
	Status *string `type:"string" required:"true" enum:"SecondaryStatus"`

	// A detailed description of the progress within a secondary status.
	//
	// SageMaker provides secondary statuses and status messages that apply to each
	// of them:
	//
	// Starting
	//
	//    * Starting the training job.
	//
	//    * Launching requested ML instances.
	//
	//    * Insufficient capacity error from EC2 while launching instances, retrying!
	//
	//    * Launched instance was unhealthy, replacing it!
	//
	//    * Preparing the instances for training.
	//
	// Training
	//
	//    * Training image download completed. Training in progress.
	//
	// Status messages are subject to change. Therefore, we recommend not including
	// them in code that programmatically initiates actions. For examples, don't
	// use status messages in if statements.
	//
	// To have an overview of your training job's progress, view TrainingJobStatus
	// and SecondaryStatus in DescribeTrainingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrainingJob.html),
	// and StatusMessage together. For example, at the start of a training job,
	// you might see the following:
	//
	//    * TrainingJobStatus - InProgress
	//
	//    * SecondaryStatus - Training
	//
	//    * StatusMessage - Downloading the training image
	StatusMessage *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SecondaryStatusTransition) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SecondaryStatusTransition) GoString() string {
	return s.String()
}

// SetEndTime sets the EndTime field's value.
func (s *SecondaryStatusTransition) SetEndTime(v time.Time) *SecondaryStatusTransition {
	s.EndTime = &v
	return s
}

// SetStartTime sets the StartTime field's value.
func (s *SecondaryStatusTransition) SetStartTime(v time.Time) *SecondaryStatusTransition {
	s.StartTime = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *SecondaryStatusTransition) SetStatus(v string) *SecondaryStatusTransition {
	s.Status = &v
	return s
}

// SetStatusMessage sets the StatusMessage field's value.
func (s *SecondaryStatusTransition) SetStatusMessage(v string) *SecondaryStatusTransition {
	s.StatusMessage = &v
	return s
}

// A step selected to run in selective execution mode.
type SelectedStep struct {
	_ struct{} `type:"structure"`

	// The name of the pipeline step.
	//
	// StepName is a required field
	StepName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SelectedStep) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SelectedStep) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SelectedStep) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SelectedStep"}
	if s.StepName == nil {
		invalidParams.Add(request.NewErrParamRequired("StepName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetStepName sets the StepName field's value.
func (s *SelectedStep) SetStepName(v string) *SelectedStep {
	s.StepName = &v
	return s
}

// The selective execution configuration applied to the pipeline run.
type SelectiveExecutionConfig struct {
	_ struct{} `type:"structure"`

	// A list of pipeline steps to run. All step(s) in all path(s) between two selected
	// steps should be included.
	//
	// SelectedSteps is a required field
	SelectedSteps []*SelectedStep `min:"1" type:"list" required:"true"`

	// The ARN from a reference execution of the current pipeline. Used to copy
	// input collaterals needed for the selected steps to run. The execution status
	// of the pipeline can be either Failed or Success.
	//
	// This field is required if the steps you specify for SelectedSteps depend
	// on output collaterals from any non-specified pipeline steps. For more information,
	// see Selective Execution for Pipeline Steps (https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-selective-ex.html).
	SourcePipelineExecutionArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SelectiveExecutionConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SelectiveExecutionConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SelectiveExecutionConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SelectiveExecutionConfig"}
	if s.SelectedSteps == nil {
		invalidParams.Add(request.NewErrParamRequired("SelectedSteps"))
	}
	if s.SelectedSteps != nil && len(s.SelectedSteps) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SelectedSteps", 1))
	}
	if s.SelectedSteps != nil {
		for i, v := range s.SelectedSteps {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SelectedSteps", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSelectedSteps sets the SelectedSteps field's value.
func (s *SelectiveExecutionConfig) SetSelectedSteps(v []*SelectedStep) *SelectiveExecutionConfig {
	s.SelectedSteps = v
	return s
}

// SetSourcePipelineExecutionArn sets the SourcePipelineExecutionArn field's value.
func (s *SelectiveExecutionConfig) SetSourcePipelineExecutionArn(v string) *SelectiveExecutionConfig {
	s.SourcePipelineExecutionArn = &v
	return s
}

// The ARN from an execution of the current pipeline.
type SelectiveExecutionResult struct {
	_ struct{} `type:"structure"`

	// The ARN from an execution of the current pipeline.
	SourcePipelineExecutionArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SelectiveExecutionResult) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SelectiveExecutionResult) GoString() string {
	return s.String()
}

// SetSourcePipelineExecutionArn sets the SourcePipelineExecutionArn field's value.
func (s *SelectiveExecutionResult) SetSourcePipelineExecutionArn(v string) *SelectiveExecutionResult {
	s.SourcePipelineExecutionArn = &v
	return s
}

type SendPipelineExecutionStepFailureInput struct {
	_ struct{} `type:"structure"`

	// The pipeline generated token from the Amazon SQS queue.
	//
	// CallbackToken is a required field
	CallbackToken *string `min:"10" type:"string" required:"true"`

	// A unique, case-sensitive identifier that you provide to ensure the idempotency
	// of the operation. An idempotent operation completes no more than one time.
	ClientRequestToken *string `min:"32" type:"string" idempotencyToken:"true"`

	// A message describing why the step failed.
	FailureReason *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SendPipelineExecutionStepFailureInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SendPipelineExecutionStepFailureInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SendPipelineExecutionStepFailureInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SendPipelineExecutionStepFailureInput"}
	if s.CallbackToken == nil {
		invalidParams.Add(request.NewErrParamRequired("CallbackToken"))
	}
	if s.CallbackToken != nil && len(*s.CallbackToken) < 10 {
		invalidParams.Add(request.NewErrParamMinLen("CallbackToken", 10))
	}
	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 32 {
		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 32))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCallbackToken sets the CallbackToken field's value.
func (s *SendPipelineExecutionStepFailureInput) SetCallbackToken(v string) *SendPipelineExecutionStepFailureInput {
	s.CallbackToken = &v
	return s
}

// SetClientRequestToken sets the ClientRequestToken field's value.
func (s *SendPipelineExecutionStepFailureInput) SetClientRequestToken(v string) *SendPipelineExecutionStepFailureInput {
	s.ClientRequestToken = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *SendPipelineExecutionStepFailureInput) SetFailureReason(v string) *SendPipelineExecutionStepFailureInput {
	s.FailureReason = &v
	return s
}

type SendPipelineExecutionStepFailureOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the pipeline execution.
	PipelineExecutionArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SendPipelineExecutionStepFailureOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SendPipelineExecutionStepFailureOutput) GoString() string {
	return s.String()
}

// SetPipelineExecutionArn sets the PipelineExecutionArn field's value.
func (s *SendPipelineExecutionStepFailureOutput) SetPipelineExecutionArn(v string) *SendPipelineExecutionStepFailureOutput {
	s.PipelineExecutionArn = &v
	return s
}

type SendPipelineExecutionStepSuccessInput struct {
	_ struct{} `type:"structure"`

	// The pipeline generated token from the Amazon SQS queue.
	//
	// CallbackToken is a required field
	CallbackToken *string `min:"10" type:"string" required:"true"`

	// A unique, case-sensitive identifier that you provide to ensure the idempotency
	// of the operation. An idempotent operation completes no more than one time.
	ClientRequestToken *string `min:"32" type:"string" idempotencyToken:"true"`

	// A list of the output parameters of the callback step.
	OutputParameters []*OutputParameter `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SendPipelineExecutionStepSuccessInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SendPipelineExecutionStepSuccessInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SendPipelineExecutionStepSuccessInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SendPipelineExecutionStepSuccessInput"}
	if s.CallbackToken == nil {
		invalidParams.Add(request.NewErrParamRequired("CallbackToken"))
	}
	if s.CallbackToken != nil && len(*s.CallbackToken) < 10 {
		invalidParams.Add(request.NewErrParamMinLen("CallbackToken", 10))
	}
	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 32 {
		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 32))
	}
	if s.OutputParameters != nil {
		for i, v := range s.OutputParameters {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OutputParameters", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCallbackToken sets the CallbackToken field's value.
func (s *SendPipelineExecutionStepSuccessInput) SetCallbackToken(v string) *SendPipelineExecutionStepSuccessInput {
	s.CallbackToken = &v
	return s
}

// SetClientRequestToken sets the ClientRequestToken field's value.
func (s *SendPipelineExecutionStepSuccessInput) SetClientRequestToken(v string) *SendPipelineExecutionStepSuccessInput {
	s.ClientRequestToken = &v
	return s
}

// SetOutputParameters sets the OutputParameters field's value.
func (s *SendPipelineExecutionStepSuccessInput) SetOutputParameters(v []*OutputParameter) *SendPipelineExecutionStepSuccessInput {
	s.OutputParameters = v
	return s
}

type SendPipelineExecutionStepSuccessOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the pipeline execution.
	PipelineExecutionArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SendPipelineExecutionStepSuccessOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SendPipelineExecutionStepSuccessOutput) GoString() string {
	return s.String()
}

// SetPipelineExecutionArn sets the PipelineExecutionArn field's value.
func (s *SendPipelineExecutionStepSuccessOutput) SetPipelineExecutionArn(v string) *SendPipelineExecutionStepSuccessOutput {
	s.PipelineExecutionArn = &v
	return s
}

// Details of a provisioned service catalog product. For information about service
// catalog, see What is Amazon Web Services Service Catalog (https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html).
type ServiceCatalogProvisionedProductDetails struct {
	_ struct{} `type:"structure"`

	// The ID of the provisioned product.
	ProvisionedProductId *string `min:"1" type:"string"`

	// The current status of the product.
	//
	//    * AVAILABLE - Stable state, ready to perform any operation. The most recent
	//    operation succeeded and completed.
	//
	//    * UNDER_CHANGE - Transitive state. Operations performed might not have
	//    valid results. Wait for an AVAILABLE status before performing operations.
	//
	//    * TAINTED - Stable state, ready to perform any operation. The stack has
	//    completed the requested operation but is not exactly what was requested.
	//    For example, a request to update to a new version failed and the stack
	//    rolled back to the current version.
	//
	//    * ERROR - An unexpected error occurred. The provisioned product exists
	//    but the stack is not running. For example, CloudFormation received a parameter
	//    value that was not valid and could not launch the stack.
	//
	//    * PLAN_IN_PROGRESS - Transitive state. The plan operations were performed
	//    to provision a new product, but resources have not yet been created. After
	//    reviewing the list of resources to be created, execute the plan. Wait
	//    for an AVAILABLE status before performing operations.
	ProvisionedProductStatusMessage *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ServiceCatalogProvisionedProductDetails) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ServiceCatalogProvisionedProductDetails) GoString() string {
	return s.String()
}

// SetProvisionedProductId sets the ProvisionedProductId field's value.
func (s *ServiceCatalogProvisionedProductDetails) SetProvisionedProductId(v string) *ServiceCatalogProvisionedProductDetails {
	s.ProvisionedProductId = &v
	return s
}

// SetProvisionedProductStatusMessage sets the ProvisionedProductStatusMessage field's value.
func (s *ServiceCatalogProvisionedProductDetails) SetProvisionedProductStatusMessage(v string) *ServiceCatalogProvisionedProductDetails {
	s.ProvisionedProductStatusMessage = &v
	return s
}

// Details that you specify to provision a service catalog product. For information
// about service catalog, see What is Amazon Web Services Service Catalog (https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html).
type ServiceCatalogProvisioningDetails struct {
	_ struct{} `type:"structure"`

	// The path identifier of the product. This value is optional if the product
	// has a default path, and required if the product has more than one path.
	PathId *string `min:"1" type:"string"`

	// The ID of the product to provision.
	//
	// ProductId is a required field
	ProductId *string `min:"1" type:"string" required:"true"`

	// The ID of the provisioning artifact.
	ProvisioningArtifactId *string `min:"1" type:"string"`

	// A list of key value pairs that you specify when you provision a product.
	ProvisioningParameters []*ProvisioningParameter `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ServiceCatalogProvisioningDetails) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ServiceCatalogProvisioningDetails) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ServiceCatalogProvisioningDetails) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ServiceCatalogProvisioningDetails"}
	if s.PathId != nil && len(*s.PathId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("PathId", 1))
	}
	if s.ProductId == nil {
		invalidParams.Add(request.NewErrParamRequired("ProductId"))
	}
	if s.ProductId != nil && len(*s.ProductId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ProductId", 1))
	}
	if s.ProvisioningArtifactId != nil && len(*s.ProvisioningArtifactId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ProvisioningArtifactId", 1))
	}
	if s.ProvisioningParameters != nil {
		for i, v := range s.ProvisioningParameters {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ProvisioningParameters", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetPathId sets the PathId field's value.
func (s *ServiceCatalogProvisioningDetails) SetPathId(v string) *ServiceCatalogProvisioningDetails {
	s.PathId = &v
	return s
}

// SetProductId sets the ProductId field's value.
func (s *ServiceCatalogProvisioningDetails) SetProductId(v string) *ServiceCatalogProvisioningDetails {
	s.ProductId = &v
	return s
}

// SetProvisioningArtifactId sets the ProvisioningArtifactId field's value.
func (s *ServiceCatalogProvisioningDetails) SetProvisioningArtifactId(v string) *ServiceCatalogProvisioningDetails {
	s.ProvisioningArtifactId = &v
	return s
}

// SetProvisioningParameters sets the ProvisioningParameters field's value.
func (s *ServiceCatalogProvisioningDetails) SetProvisioningParameters(v []*ProvisioningParameter) *ServiceCatalogProvisioningDetails {
	s.ProvisioningParameters = v
	return s
}

// Details that you specify to provision a service catalog product. For information
// about service catalog, see What is Amazon Web Services Service Catalog (https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html).
type ServiceCatalogProvisioningUpdateDetails struct {
	_ struct{} `type:"structure"`

	// The ID of the provisioning artifact.
	ProvisioningArtifactId *string `min:"1" type:"string"`

	// A list of key value pairs that you specify when you provision a product.
	ProvisioningParameters []*ProvisioningParameter `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ServiceCatalogProvisioningUpdateDetails) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ServiceCatalogProvisioningUpdateDetails) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ServiceCatalogProvisioningUpdateDetails) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ServiceCatalogProvisioningUpdateDetails"}
	if s.ProvisioningArtifactId != nil && len(*s.ProvisioningArtifactId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ProvisioningArtifactId", 1))
	}
	if s.ProvisioningParameters != nil {
		for i, v := range s.ProvisioningParameters {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ProvisioningParameters", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetProvisioningArtifactId sets the ProvisioningArtifactId field's value.
func (s *ServiceCatalogProvisioningUpdateDetails) SetProvisioningArtifactId(v string) *ServiceCatalogProvisioningUpdateDetails {
	s.ProvisioningArtifactId = &v
	return s
}

// SetProvisioningParameters sets the ProvisioningParameters field's value.
func (s *ServiceCatalogProvisioningUpdateDetails) SetProvisioningParameters(v []*ProvisioningParameter) *ServiceCatalogProvisioningUpdateDetails {
	s.ProvisioningParameters = v
	return s
}

// The configuration of ShadowMode inference experiment type, which specifies
// a production variant to take all the inference requests, and a shadow variant
// to which Amazon SageMaker replicates a percentage of the inference requests.
// For the shadow variant it also specifies the percentage of requests that
// Amazon SageMaker replicates.
type ShadowModeConfig struct {
	_ struct{} `type:"structure"`

	// List of shadow variant configurations.
	//
	// ShadowModelVariants is a required field
	ShadowModelVariants []*ShadowModelVariantConfig `min:"1" type:"list" required:"true"`

	// The name of the production variant, which takes all the inference requests.
	//
	// SourceModelVariantName is a required field
	SourceModelVariantName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ShadowModeConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ShadowModeConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ShadowModeConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ShadowModeConfig"}
	if s.ShadowModelVariants == nil {
		invalidParams.Add(request.NewErrParamRequired("ShadowModelVariants"))
	}
	if s.ShadowModelVariants != nil && len(s.ShadowModelVariants) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ShadowModelVariants", 1))
	}
	if s.SourceModelVariantName == nil {
		invalidParams.Add(request.NewErrParamRequired("SourceModelVariantName"))
	}
	if s.ShadowModelVariants != nil {
		for i, v := range s.ShadowModelVariants {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ShadowModelVariants", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetShadowModelVariants sets the ShadowModelVariants field's value.
func (s *ShadowModeConfig) SetShadowModelVariants(v []*ShadowModelVariantConfig) *ShadowModeConfig {
	s.ShadowModelVariants = v
	return s
}

// SetSourceModelVariantName sets the SourceModelVariantName field's value.
func (s *ShadowModeConfig) SetSourceModelVariantName(v string) *ShadowModeConfig {
	s.SourceModelVariantName = &v
	return s
}

// The name and sampling percentage of a shadow variant.
type ShadowModelVariantConfig struct {
	_ struct{} `type:"structure"`

	// The percentage of inference requests that Amazon SageMaker replicates from
	// the production variant to the shadow variant.
	//
	// SamplingPercentage is a required field
	SamplingPercentage *int64 `type:"integer" required:"true"`

	// The name of the shadow variant.
	//
	// ShadowModelVariantName is a required field
	ShadowModelVariantName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ShadowModelVariantConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ShadowModelVariantConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ShadowModelVariantConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ShadowModelVariantConfig"}
	if s.SamplingPercentage == nil {
		invalidParams.Add(request.NewErrParamRequired("SamplingPercentage"))
	}
	if s.ShadowModelVariantName == nil {
		invalidParams.Add(request.NewErrParamRequired("ShadowModelVariantName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSamplingPercentage sets the SamplingPercentage field's value.
func (s *ShadowModelVariantConfig) SetSamplingPercentage(v int64) *ShadowModelVariantConfig {
	s.SamplingPercentage = &v
	return s
}

// SetShadowModelVariantName sets the ShadowModelVariantName field's value.
func (s *ShadowModelVariantConfig) SetShadowModelVariantName(v string) *ShadowModelVariantConfig {
	s.ShadowModelVariantName = &v
	return s
}

// Specifies options for sharing Amazon SageMaker Studio notebooks. These settings
// are specified as part of DefaultUserSettings when the CreateDomain API is
// called, and as part of UserSettings when the CreateUserProfile API is called.
// When SharingSettings is not specified, notebook sharing isn't allowed.
type SharingSettings struct {
	_ struct{} `type:"structure"`

	// Whether to include the notebook cell output when sharing the notebook. The
	// default is Disabled.
	NotebookOutputOption *string `type:"string" enum:"NotebookOutputOption"`

	// When NotebookOutputOption is Allowed, the Amazon Web Services Key Management
	// Service (KMS) encryption key ID used to encrypt the notebook cell output
	// in the Amazon S3 bucket.
	S3KmsKeyId *string `type:"string"`

	// When NotebookOutputOption is Allowed, the Amazon S3 bucket used to store
	// the shared notebook snapshots.
	S3OutputPath *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SharingSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SharingSettings) GoString() string {
	return s.String()
}

// SetNotebookOutputOption sets the NotebookOutputOption field's value.
func (s *SharingSettings) SetNotebookOutputOption(v string) *SharingSettings {
	s.NotebookOutputOption = &v
	return s
}

// SetS3KmsKeyId sets the S3KmsKeyId field's value.
func (s *SharingSettings) SetS3KmsKeyId(v string) *SharingSettings {
	s.S3KmsKeyId = &v
	return s
}

// SetS3OutputPath sets the S3OutputPath field's value.
func (s *SharingSettings) SetS3OutputPath(v string) *SharingSettings {
	s.S3OutputPath = &v
	return s
}

// A configuration for a shuffle option for input data in a channel. If you
// use S3Prefix for S3DataType, the results of the S3 key prefix matches are
// shuffled. If you use ManifestFile, the order of the S3 object references
// in the ManifestFile is shuffled. If you use AugmentedManifestFile, the order
// of the JSON lines in the AugmentedManifestFile is shuffled. The shuffling
// order is determined using the Seed value.
//
// For Pipe input mode, when ShuffleConfig is specified shuffling is done at
// the start of every epoch. With large datasets, this ensures that the order
// of the training data is different for each epoch, and it helps reduce bias
// and possible overfitting. In a multi-node training job when ShuffleConfig
// is combined with S3DataDistributionType of ShardedByS3Key, the data is shuffled
// across nodes so that the content sent to a particular node on the first epoch
// might be sent to a different node on the second epoch.
type ShuffleConfig struct {
	_ struct{} `type:"structure"`

	// Determines the shuffling order in ShuffleConfig value.
	//
	// Seed is a required field
	Seed *int64 `type:"long" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ShuffleConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ShuffleConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ShuffleConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ShuffleConfig"}
	if s.Seed == nil {
		invalidParams.Add(request.NewErrParamRequired("Seed"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSeed sets the Seed field's value.
func (s *ShuffleConfig) SetSeed(v int64) *ShuffleConfig {
	s.Seed = &v
	return s
}

// Specifies an algorithm that was used to create the model package. The algorithm
// must be either an algorithm resource in your SageMaker account or an algorithm
// in Amazon Web Services Marketplace that you are subscribed to.
type SourceAlgorithm struct {
	_ struct{} `type:"structure"`

	// The name of an algorithm that was used to create the model package. The algorithm
	// must be either an algorithm resource in your SageMaker account or an algorithm
	// in Amazon Web Services Marketplace that you are subscribed to.
	//
	// AlgorithmName is a required field
	AlgorithmName *string `min:"1" type:"string" required:"true"`

	// The Amazon S3 path where the model artifacts, which result from model training,
	// are stored. This path must point to a single gzip compressed tar archive
	// (.tar.gz suffix).
	//
	// The model artifacts must be in an S3 bucket that is in the same Amazon Web
	// Services region as the algorithm.
	ModelDataUrl *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SourceAlgorithm) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SourceAlgorithm) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SourceAlgorithm) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SourceAlgorithm"}
	if s.AlgorithmName == nil {
		invalidParams.Add(request.NewErrParamRequired("AlgorithmName"))
	}
	if s.AlgorithmName != nil && len(*s.AlgorithmName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AlgorithmName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAlgorithmName sets the AlgorithmName field's value.
func (s *SourceAlgorithm) SetAlgorithmName(v string) *SourceAlgorithm {
	s.AlgorithmName = &v
	return s
}

// SetModelDataUrl sets the ModelDataUrl field's value.
func (s *SourceAlgorithm) SetModelDataUrl(v string) *SourceAlgorithm {
	s.ModelDataUrl = &v
	return s
}

// A list of algorithms that were used to create a model package.
type SourceAlgorithmSpecification struct {
	_ struct{} `type:"structure"`

	// A list of the algorithms that were used to create a model package.
	//
	// SourceAlgorithms is a required field
	SourceAlgorithms []*SourceAlgorithm `min:"1" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SourceAlgorithmSpecification) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SourceAlgorithmSpecification) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SourceAlgorithmSpecification) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SourceAlgorithmSpecification"}
	if s.SourceAlgorithms == nil {
		invalidParams.Add(request.NewErrParamRequired("SourceAlgorithms"))
	}
	if s.SourceAlgorithms != nil && len(s.SourceAlgorithms) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SourceAlgorithms", 1))
	}
	if s.SourceAlgorithms != nil {
		for i, v := range s.SourceAlgorithms {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SourceAlgorithms", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSourceAlgorithms sets the SourceAlgorithms field's value.
func (s *SourceAlgorithmSpecification) SetSourceAlgorithms(v []*SourceAlgorithm) *SourceAlgorithmSpecification {
	s.SourceAlgorithms = v
	return s
}

// A list of IP address ranges (CIDRs (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)).
// Used to create an allow list of IP addresses for a private workforce. Workers
// will only be able to login to their worker portal from an IP address within
// this range. By default, a workforce isn't restricted to specific IP addresses.
type SourceIpConfig struct {
	_ struct{} `type:"structure"`

	// A list of one to ten Classless Inter-Domain Routing (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)
	// (CIDR) values.
	//
	// Maximum: Ten CIDR values
	//
	// The following Length Constraints apply to individual CIDR values in the CIDR
	// value list.
	//
	// Cidrs is a required field
	Cidrs []*string `type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SourceIpConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SourceIpConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SourceIpConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SourceIpConfig"}
	if s.Cidrs == nil {
		invalidParams.Add(request.NewErrParamRequired("Cidrs"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCidrs sets the Cidrs field's value.
func (s *SourceIpConfig) SetCidrs(v []*string) *SourceIpConfig {
	s.Cidrs = v
	return s
}

// The application settings for a Code Editor space.
type SpaceCodeEditorAppSettings struct {
	_ struct{} `type:"structure"`

	// Specifies the ARN's of a SageMaker image and SageMaker image version, and
	// the instance type that the version runs on.
	DefaultResourceSpec *ResourceSpec `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SpaceCodeEditorAppSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SpaceCodeEditorAppSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SpaceCodeEditorAppSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SpaceCodeEditorAppSettings"}
	if s.DefaultResourceSpec != nil {
		if err := s.DefaultResourceSpec.Validate(); err != nil {
			invalidParams.AddNested("DefaultResourceSpec", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDefaultResourceSpec sets the DefaultResourceSpec field's value.
func (s *SpaceCodeEditorAppSettings) SetDefaultResourceSpec(v *ResourceSpec) *SpaceCodeEditorAppSettings {
	s.DefaultResourceSpec = v
	return s
}

// The space's details.
type SpaceDetails struct {
	_ struct{} `type:"structure"`

	// The creation time.
	CreationTime *time.Time `type:"timestamp"`

	// The ID of the associated Domain.
	DomainId *string `type:"string"`

	// The last modified time.
	LastModifiedTime *time.Time `type:"timestamp"`

	// Specifies summary information about the ownership settings.
	OwnershipSettingsSummary *OwnershipSettingsSummary `type:"structure"`

	// The name of the space that appears in the Studio UI.
	SpaceDisplayName *string `type:"string"`

	// The name of the space.
	SpaceName *string `type:"string"`

	// Specifies summary information about the space settings.
	SpaceSettingsSummary *SpaceSettingsSummary `type:"structure"`

	// Specifies summary information about the space sharing settings.
	SpaceSharingSettingsSummary *SpaceSharingSettingsSummary `type:"structure"`

	// The status.
	Status *string `type:"string" enum:"SpaceStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SpaceDetails) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SpaceDetails) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *SpaceDetails) SetCreationTime(v time.Time) *SpaceDetails {
	s.CreationTime = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *SpaceDetails) SetDomainId(v string) *SpaceDetails {
	s.DomainId = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *SpaceDetails) SetLastModifiedTime(v time.Time) *SpaceDetails {
	s.LastModifiedTime = &v
	return s
}

// SetOwnershipSettingsSummary sets the OwnershipSettingsSummary field's value.
func (s *SpaceDetails) SetOwnershipSettingsSummary(v *OwnershipSettingsSummary) *SpaceDetails {
	s.OwnershipSettingsSummary = v
	return s
}

// SetSpaceDisplayName sets the SpaceDisplayName field's value.
func (s *SpaceDetails) SetSpaceDisplayName(v string) *SpaceDetails {
	s.SpaceDisplayName = &v
	return s
}

// SetSpaceName sets the SpaceName field's value.
func (s *SpaceDetails) SetSpaceName(v string) *SpaceDetails {
	s.SpaceName = &v
	return s
}

// SetSpaceSettingsSummary sets the SpaceSettingsSummary field's value.
func (s *SpaceDetails) SetSpaceSettingsSummary(v *SpaceSettingsSummary) *SpaceDetails {
	s.SpaceSettingsSummary = v
	return s
}

// SetSpaceSharingSettingsSummary sets the SpaceSharingSettingsSummary field's value.
func (s *SpaceDetails) SetSpaceSharingSettingsSummary(v *SpaceSharingSettingsSummary) *SpaceDetails {
	s.SpaceSharingSettingsSummary = v
	return s
}

// SetStatus sets the Status field's value.
func (s *SpaceDetails) SetStatus(v string) *SpaceDetails {
	s.Status = &v
	return s
}

// The settings for the JupyterLab application within a space.
type SpaceJupyterLabAppSettings struct {
	_ struct{} `type:"structure"`

	// A list of Git repositories that SageMaker automatically displays to users
	// for cloning in the JupyterLab application.
	CodeRepositories []*CodeRepository `type:"list"`

	// Specifies the ARN's of a SageMaker image and SageMaker image version, and
	// the instance type that the version runs on.
	DefaultResourceSpec *ResourceSpec `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SpaceJupyterLabAppSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SpaceJupyterLabAppSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SpaceJupyterLabAppSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SpaceJupyterLabAppSettings"}
	if s.CodeRepositories != nil {
		for i, v := range s.CodeRepositories {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CodeRepositories", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.DefaultResourceSpec != nil {
		if err := s.DefaultResourceSpec.Validate(); err != nil {
			invalidParams.AddNested("DefaultResourceSpec", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCodeRepositories sets the CodeRepositories field's value.
func (s *SpaceJupyterLabAppSettings) SetCodeRepositories(v []*CodeRepository) *SpaceJupyterLabAppSettings {
	s.CodeRepositories = v
	return s
}

// SetDefaultResourceSpec sets the DefaultResourceSpec field's value.
func (s *SpaceJupyterLabAppSettings) SetDefaultResourceSpec(v *ResourceSpec) *SpaceJupyterLabAppSettings {
	s.DefaultResourceSpec = v
	return s
}

// A collection of space settings.
type SpaceSettings struct {
	_ struct{} `type:"structure"`

	// The type of app created within the space.
	AppType *string `type:"string" enum:"AppType"`

	// The Code Editor application settings.
	CodeEditorAppSettings *SpaceCodeEditorAppSettings `type:"structure"`

	// A file system, created by you, that you assign to a space for an Amazon SageMaker
	// Domain. Permitted users can access this file system in Amazon SageMaker Studio.
	CustomFileSystems []*CustomFileSystem `type:"list"`

	// The settings for the JupyterLab application.
	JupyterLabAppSettings *SpaceJupyterLabAppSettings `type:"structure"`

	// The JupyterServer app settings.
	JupyterServerAppSettings *JupyterServerAppSettings `type:"structure"`

	// The KernelGateway app settings.
	KernelGatewayAppSettings *KernelGatewayAppSettings `type:"structure"`

	// The storage settings for a private space.
	SpaceStorageSettings *SpaceStorageSettings `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SpaceSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SpaceSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SpaceSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SpaceSettings"}
	if s.CodeEditorAppSettings != nil {
		if err := s.CodeEditorAppSettings.Validate(); err != nil {
			invalidParams.AddNested("CodeEditorAppSettings", err.(request.ErrInvalidParams))
		}
	}
	if s.CustomFileSystems != nil {
		for i, v := range s.CustomFileSystems {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CustomFileSystems", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.JupyterLabAppSettings != nil {
		if err := s.JupyterLabAppSettings.Validate(); err != nil {
			invalidParams.AddNested("JupyterLabAppSettings", err.(request.ErrInvalidParams))
		}
	}
	if s.JupyterServerAppSettings != nil {
		if err := s.JupyterServerAppSettings.Validate(); err != nil {
			invalidParams.AddNested("JupyterServerAppSettings", err.(request.ErrInvalidParams))
		}
	}
	if s.KernelGatewayAppSettings != nil {
		if err := s.KernelGatewayAppSettings.Validate(); err != nil {
			invalidParams.AddNested("KernelGatewayAppSettings", err.(request.ErrInvalidParams))
		}
	}
	if s.SpaceStorageSettings != nil {
		if err := s.SpaceStorageSettings.Validate(); err != nil {
			invalidParams.AddNested("SpaceStorageSettings", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppType sets the AppType field's value.
func (s *SpaceSettings) SetAppType(v string) *SpaceSettings {
	s.AppType = &v
	return s
}

// SetCodeEditorAppSettings sets the CodeEditorAppSettings field's value.
func (s *SpaceSettings) SetCodeEditorAppSettings(v *SpaceCodeEditorAppSettings) *SpaceSettings {
	s.CodeEditorAppSettings = v
	return s
}

// SetCustomFileSystems sets the CustomFileSystems field's value.
func (s *SpaceSettings) SetCustomFileSystems(v []*CustomFileSystem) *SpaceSettings {
	s.CustomFileSystems = v
	return s
}

// SetJupyterLabAppSettings sets the JupyterLabAppSettings field's value.
func (s *SpaceSettings) SetJupyterLabAppSettings(v *SpaceJupyterLabAppSettings) *SpaceSettings {
	s.JupyterLabAppSettings = v
	return s
}

// SetJupyterServerAppSettings sets the JupyterServerAppSettings field's value.
func (s *SpaceSettings) SetJupyterServerAppSettings(v *JupyterServerAppSettings) *SpaceSettings {
	s.JupyterServerAppSettings = v
	return s
}

// SetKernelGatewayAppSettings sets the KernelGatewayAppSettings field's value.
func (s *SpaceSettings) SetKernelGatewayAppSettings(v *KernelGatewayAppSettings) *SpaceSettings {
	s.KernelGatewayAppSettings = v
	return s
}

// SetSpaceStorageSettings sets the SpaceStorageSettings field's value.
func (s *SpaceSettings) SetSpaceStorageSettings(v *SpaceStorageSettings) *SpaceSettings {
	s.SpaceStorageSettings = v
	return s
}

// Specifies summary information about the space settings.
type SpaceSettingsSummary struct {
	_ struct{} `type:"structure"`

	// The type of app created within the space.
	AppType *string `type:"string" enum:"AppType"`

	// The storage settings for a private space.
	SpaceStorageSettings *SpaceStorageSettings `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SpaceSettingsSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SpaceSettingsSummary) GoString() string {
	return s.String()
}

// SetAppType sets the AppType field's value.
func (s *SpaceSettingsSummary) SetAppType(v string) *SpaceSettingsSummary {
	s.AppType = &v
	return s
}

// SetSpaceStorageSettings sets the SpaceStorageSettings field's value.
func (s *SpaceSettingsSummary) SetSpaceStorageSettings(v *SpaceStorageSettings) *SpaceSettingsSummary {
	s.SpaceStorageSettings = v
	return s
}

// A collection of space sharing settings.
type SpaceSharingSettings struct {
	_ struct{} `type:"structure"`

	// Specifies the sharing type of the space.
	//
	// SharingType is a required field
	SharingType *string `type:"string" required:"true" enum:"SharingType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SpaceSharingSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SpaceSharingSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SpaceSharingSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SpaceSharingSettings"}
	if s.SharingType == nil {
		invalidParams.Add(request.NewErrParamRequired("SharingType"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSharingType sets the SharingType field's value.
func (s *SpaceSharingSettings) SetSharingType(v string) *SpaceSharingSettings {
	s.SharingType = &v
	return s
}

// Specifies summary information about the space sharing settings.
type SpaceSharingSettingsSummary struct {
	_ struct{} `type:"structure"`

	// Specifies the sharing type of the space.
	SharingType *string `type:"string" enum:"SharingType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SpaceSharingSettingsSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SpaceSharingSettingsSummary) GoString() string {
	return s.String()
}

// SetSharingType sets the SharingType field's value.
func (s *SpaceSharingSettingsSummary) SetSharingType(v string) *SpaceSharingSettingsSummary {
	s.SharingType = &v
	return s
}

// The storage settings for a private space.
type SpaceStorageSettings struct {
	_ struct{} `type:"structure"`

	// A collection of EBS storage settings for a private space.
	EbsStorageSettings *EbsStorageSettings `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SpaceStorageSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SpaceStorageSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SpaceStorageSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SpaceStorageSettings"}
	if s.EbsStorageSettings != nil {
		if err := s.EbsStorageSettings.Validate(); err != nil {
			invalidParams.AddNested("EbsStorageSettings", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEbsStorageSettings sets the EbsStorageSettings field's value.
func (s *SpaceStorageSettings) SetEbsStorageSettings(v *EbsStorageSettings) *SpaceStorageSettings {
	s.EbsStorageSettings = v
	return s
}

// Defines the stairs traffic pattern for an Inference Recommender load test.
// This pattern type consists of multiple steps where the number of users increases
// at each step.
//
// Specify either the stairs or phases traffic pattern.
type Stairs struct {
	_ struct{} `type:"structure"`

	// Defines how long each traffic step should be.
	DurationInSeconds *int64 `min:"1" type:"integer"`

	// Specifies how many steps to perform during traffic.
	NumberOfSteps *int64 `min:"1" type:"integer"`

	// Specifies how many new users to spawn in each step.
	UsersPerStep *int64 `min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Stairs) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Stairs) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *Stairs) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "Stairs"}
	if s.DurationInSeconds != nil && *s.DurationInSeconds < 1 {
		invalidParams.Add(request.NewErrParamMinValue("DurationInSeconds", 1))
	}
	if s.NumberOfSteps != nil && *s.NumberOfSteps < 1 {
		invalidParams.Add(request.NewErrParamMinValue("NumberOfSteps", 1))
	}
	if s.UsersPerStep != nil && *s.UsersPerStep < 1 {
		invalidParams.Add(request.NewErrParamMinValue("UsersPerStep", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDurationInSeconds sets the DurationInSeconds field's value.
func (s *Stairs) SetDurationInSeconds(v int64) *Stairs {
	s.DurationInSeconds = &v
	return s
}

// SetNumberOfSteps sets the NumberOfSteps field's value.
func (s *Stairs) SetNumberOfSteps(v int64) *Stairs {
	s.NumberOfSteps = &v
	return s
}

// SetUsersPerStep sets the UsersPerStep field's value.
func (s *Stairs) SetUsersPerStep(v int64) *Stairs {
	s.UsersPerStep = &v
	return s
}

type StartEdgeDeploymentStageInput struct {
	_ struct{} `type:"structure"`

	// The name of the edge deployment plan to start.
	//
	// EdgeDeploymentPlanName is a required field
	EdgeDeploymentPlanName *string `min:"1" type:"string" required:"true"`

	// The name of the stage to start.
	//
	// StageName is a required field
	StageName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartEdgeDeploymentStageInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartEdgeDeploymentStageInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StartEdgeDeploymentStageInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StartEdgeDeploymentStageInput"}
	if s.EdgeDeploymentPlanName == nil {
		invalidParams.Add(request.NewErrParamRequired("EdgeDeploymentPlanName"))
	}
	if s.EdgeDeploymentPlanName != nil && len(*s.EdgeDeploymentPlanName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("EdgeDeploymentPlanName", 1))
	}
	if s.StageName == nil {
		invalidParams.Add(request.NewErrParamRequired("StageName"))
	}
	if s.StageName != nil && len(*s.StageName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEdgeDeploymentPlanName sets the EdgeDeploymentPlanName field's value.
func (s *StartEdgeDeploymentStageInput) SetEdgeDeploymentPlanName(v string) *StartEdgeDeploymentStageInput {
	s.EdgeDeploymentPlanName = &v
	return s
}

// SetStageName sets the StageName field's value.
func (s *StartEdgeDeploymentStageInput) SetStageName(v string) *StartEdgeDeploymentStageInput {
	s.StageName = &v
	return s
}

type StartEdgeDeploymentStageOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartEdgeDeploymentStageOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartEdgeDeploymentStageOutput) GoString() string {
	return s.String()
}

type StartInferenceExperimentInput struct {
	_ struct{} `type:"structure"`

	// The name of the inference experiment to start.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartInferenceExperimentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartInferenceExperimentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StartInferenceExperimentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StartInferenceExperimentInput"}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetName sets the Name field's value.
func (s *StartInferenceExperimentInput) SetName(v string) *StartInferenceExperimentInput {
	s.Name = &v
	return s
}

type StartInferenceExperimentOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the started inference experiment to start.
	//
	// InferenceExperimentArn is a required field
	InferenceExperimentArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartInferenceExperimentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartInferenceExperimentOutput) GoString() string {
	return s.String()
}

// SetInferenceExperimentArn sets the InferenceExperimentArn field's value.
func (s *StartInferenceExperimentOutput) SetInferenceExperimentArn(v string) *StartInferenceExperimentOutput {
	s.InferenceExperimentArn = &v
	return s
}

type StartMonitoringScheduleInput struct {
	_ struct{} `type:"structure"`

	// The name of the schedule to start.
	//
	// MonitoringScheduleName is a required field
	MonitoringScheduleName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartMonitoringScheduleInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartMonitoringScheduleInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StartMonitoringScheduleInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StartMonitoringScheduleInput"}
	if s.MonitoringScheduleName == nil {
		invalidParams.Add(request.NewErrParamRequired("MonitoringScheduleName"))
	}
	if s.MonitoringScheduleName != nil && len(*s.MonitoringScheduleName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MonitoringScheduleName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMonitoringScheduleName sets the MonitoringScheduleName field's value.
func (s *StartMonitoringScheduleInput) SetMonitoringScheduleName(v string) *StartMonitoringScheduleInput {
	s.MonitoringScheduleName = &v
	return s
}

type StartMonitoringScheduleOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartMonitoringScheduleOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartMonitoringScheduleOutput) GoString() string {
	return s.String()
}

type StartNotebookInstanceInput struct {
	_ struct{} `type:"structure"`

	// The name of the notebook instance to start.
	//
	// NotebookInstanceName is a required field
	NotebookInstanceName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartNotebookInstanceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartNotebookInstanceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StartNotebookInstanceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StartNotebookInstanceInput"}
	if s.NotebookInstanceName == nil {
		invalidParams.Add(request.NewErrParamRequired("NotebookInstanceName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetNotebookInstanceName sets the NotebookInstanceName field's value.
func (s *StartNotebookInstanceInput) SetNotebookInstanceName(v string) *StartNotebookInstanceInput {
	s.NotebookInstanceName = &v
	return s
}

type StartNotebookInstanceOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartNotebookInstanceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartNotebookInstanceOutput) GoString() string {
	return s.String()
}

type StartPipelineExecutionInput struct {
	_ struct{} `type:"structure"`

	// A unique, case-sensitive identifier that you provide to ensure the idempotency
	// of the operation. An idempotent operation completes no more than once.
	ClientRequestToken *string `min:"32" type:"string" idempotencyToken:"true"`

	// This configuration, if specified, overrides the parallelism configuration
	// of the parent pipeline for this specific run.
	ParallelismConfiguration *ParallelismConfiguration `type:"structure"`

	// The description of the pipeline execution.
	PipelineExecutionDescription *string `type:"string"`

	// The display name of the pipeline execution.
	PipelineExecutionDisplayName *string `min:"1" type:"string"`

	// The name or Amazon Resource Name (ARN) of the pipeline.
	//
	// PipelineName is a required field
	PipelineName *string `min:"1" type:"string" required:"true"`

	// Contains a list of pipeline parameters. This list can be empty.
	PipelineParameters []*Parameter `type:"list"`

	// The selective execution configuration applied to the pipeline run.
	SelectiveExecutionConfig *SelectiveExecutionConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartPipelineExecutionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartPipelineExecutionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StartPipelineExecutionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StartPipelineExecutionInput"}
	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 32 {
		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 32))
	}
	if s.PipelineExecutionDisplayName != nil && len(*s.PipelineExecutionDisplayName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("PipelineExecutionDisplayName", 1))
	}
	if s.PipelineName == nil {
		invalidParams.Add(request.NewErrParamRequired("PipelineName"))
	}
	if s.PipelineName != nil && len(*s.PipelineName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("PipelineName", 1))
	}
	if s.ParallelismConfiguration != nil {
		if err := s.ParallelismConfiguration.Validate(); err != nil {
			invalidParams.AddNested("ParallelismConfiguration", err.(request.ErrInvalidParams))
		}
	}
	if s.PipelineParameters != nil {
		for i, v := range s.PipelineParameters {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PipelineParameters", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.SelectiveExecutionConfig != nil {
		if err := s.SelectiveExecutionConfig.Validate(); err != nil {
			invalidParams.AddNested("SelectiveExecutionConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClientRequestToken sets the ClientRequestToken field's value.
func (s *StartPipelineExecutionInput) SetClientRequestToken(v string) *StartPipelineExecutionInput {
	s.ClientRequestToken = &v
	return s
}

// SetParallelismConfiguration sets the ParallelismConfiguration field's value.
func (s *StartPipelineExecutionInput) SetParallelismConfiguration(v *ParallelismConfiguration) *StartPipelineExecutionInput {
	s.ParallelismConfiguration = v
	return s
}

// SetPipelineExecutionDescription sets the PipelineExecutionDescription field's value.
func (s *StartPipelineExecutionInput) SetPipelineExecutionDescription(v string) *StartPipelineExecutionInput {
	s.PipelineExecutionDescription = &v
	return s
}

// SetPipelineExecutionDisplayName sets the PipelineExecutionDisplayName field's value.
func (s *StartPipelineExecutionInput) SetPipelineExecutionDisplayName(v string) *StartPipelineExecutionInput {
	s.PipelineExecutionDisplayName = &v
	return s
}

// SetPipelineName sets the PipelineName field's value.
func (s *StartPipelineExecutionInput) SetPipelineName(v string) *StartPipelineExecutionInput {
	s.PipelineName = &v
	return s
}

// SetPipelineParameters sets the PipelineParameters field's value.
func (s *StartPipelineExecutionInput) SetPipelineParameters(v []*Parameter) *StartPipelineExecutionInput {
	s.PipelineParameters = v
	return s
}

// SetSelectiveExecutionConfig sets the SelectiveExecutionConfig field's value.
func (s *StartPipelineExecutionInput) SetSelectiveExecutionConfig(v *SelectiveExecutionConfig) *StartPipelineExecutionInput {
	s.SelectiveExecutionConfig = v
	return s
}

type StartPipelineExecutionOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the pipeline execution.
	PipelineExecutionArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartPipelineExecutionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartPipelineExecutionOutput) GoString() string {
	return s.String()
}

// SetPipelineExecutionArn sets the PipelineExecutionArn field's value.
func (s *StartPipelineExecutionOutput) SetPipelineExecutionArn(v string) *StartPipelineExecutionOutput {
	s.PipelineExecutionArn = &v
	return s
}

type StopAutoMLJobInput struct {
	_ struct{} `type:"structure"`

	// The name of the object you are requesting.
	//
	// AutoMLJobName is a required field
	AutoMLJobName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopAutoMLJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopAutoMLJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StopAutoMLJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StopAutoMLJobInput"}
	if s.AutoMLJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("AutoMLJobName"))
	}
	if s.AutoMLJobName != nil && len(*s.AutoMLJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AutoMLJobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAutoMLJobName sets the AutoMLJobName field's value.
func (s *StopAutoMLJobInput) SetAutoMLJobName(v string) *StopAutoMLJobInput {
	s.AutoMLJobName = &v
	return s
}

type StopAutoMLJobOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopAutoMLJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopAutoMLJobOutput) GoString() string {
	return s.String()
}

type StopCompilationJobInput struct {
	_ struct{} `type:"structure"`

	// The name of the model compilation job to stop.
	//
	// CompilationJobName is a required field
	CompilationJobName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopCompilationJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopCompilationJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StopCompilationJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StopCompilationJobInput"}
	if s.CompilationJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("CompilationJobName"))
	}
	if s.CompilationJobName != nil && len(*s.CompilationJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("CompilationJobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCompilationJobName sets the CompilationJobName field's value.
func (s *StopCompilationJobInput) SetCompilationJobName(v string) *StopCompilationJobInput {
	s.CompilationJobName = &v
	return s
}

type StopCompilationJobOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopCompilationJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopCompilationJobOutput) GoString() string {
	return s.String()
}

type StopEdgeDeploymentStageInput struct {
	_ struct{} `type:"structure"`

	// The name of the edge deployment plan to stop.
	//
	// EdgeDeploymentPlanName is a required field
	EdgeDeploymentPlanName *string `min:"1" type:"string" required:"true"`

	// The name of the stage to stop.
	//
	// StageName is a required field
	StageName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopEdgeDeploymentStageInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopEdgeDeploymentStageInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StopEdgeDeploymentStageInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StopEdgeDeploymentStageInput"}
	if s.EdgeDeploymentPlanName == nil {
		invalidParams.Add(request.NewErrParamRequired("EdgeDeploymentPlanName"))
	}
	if s.EdgeDeploymentPlanName != nil && len(*s.EdgeDeploymentPlanName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("EdgeDeploymentPlanName", 1))
	}
	if s.StageName == nil {
		invalidParams.Add(request.NewErrParamRequired("StageName"))
	}
	if s.StageName != nil && len(*s.StageName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("StageName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEdgeDeploymentPlanName sets the EdgeDeploymentPlanName field's value.
func (s *StopEdgeDeploymentStageInput) SetEdgeDeploymentPlanName(v string) *StopEdgeDeploymentStageInput {
	s.EdgeDeploymentPlanName = &v
	return s
}

// SetStageName sets the StageName field's value.
func (s *StopEdgeDeploymentStageInput) SetStageName(v string) *StopEdgeDeploymentStageInput {
	s.StageName = &v
	return s
}

type StopEdgeDeploymentStageOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopEdgeDeploymentStageOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopEdgeDeploymentStageOutput) GoString() string {
	return s.String()
}

type StopEdgePackagingJobInput struct {
	_ struct{} `type:"structure"`

	// The name of the edge packaging job.
	//
	// EdgePackagingJobName is a required field
	EdgePackagingJobName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopEdgePackagingJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopEdgePackagingJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StopEdgePackagingJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StopEdgePackagingJobInput"}
	if s.EdgePackagingJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("EdgePackagingJobName"))
	}
	if s.EdgePackagingJobName != nil && len(*s.EdgePackagingJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("EdgePackagingJobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEdgePackagingJobName sets the EdgePackagingJobName field's value.
func (s *StopEdgePackagingJobInput) SetEdgePackagingJobName(v string) *StopEdgePackagingJobInput {
	s.EdgePackagingJobName = &v
	return s
}

type StopEdgePackagingJobOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopEdgePackagingJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopEdgePackagingJobOutput) GoString() string {
	return s.String()
}

type StopHyperParameterTuningJobInput struct {
	_ struct{} `type:"structure"`

	// The name of the tuning job to stop.
	//
	// HyperParameterTuningJobName is a required field
	HyperParameterTuningJobName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopHyperParameterTuningJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopHyperParameterTuningJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StopHyperParameterTuningJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StopHyperParameterTuningJobInput"}
	if s.HyperParameterTuningJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("HyperParameterTuningJobName"))
	}
	if s.HyperParameterTuningJobName != nil && len(*s.HyperParameterTuningJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("HyperParameterTuningJobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetHyperParameterTuningJobName sets the HyperParameterTuningJobName field's value.
func (s *StopHyperParameterTuningJobInput) SetHyperParameterTuningJobName(v string) *StopHyperParameterTuningJobInput {
	s.HyperParameterTuningJobName = &v
	return s
}

type StopHyperParameterTuningJobOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopHyperParameterTuningJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopHyperParameterTuningJobOutput) GoString() string {
	return s.String()
}

type StopInferenceExperimentInput struct {
	_ struct{} `type:"structure"`

	// An array of ModelVariantConfig objects. There is one for each variant that
	// you want to deploy after the inference experiment stops. Each ModelVariantConfig
	// describes the infrastructure configuration for deploying the corresponding
	// variant.
	DesiredModelVariants []*ModelVariantConfig `min:"1" type:"list"`

	// The desired state of the experiment after stopping. The possible states are
	// the following:
	//
	//    * Completed: The experiment completed successfully
	//
	//    * Cancelled: The experiment was canceled
	DesiredState *string `type:"string" enum:"InferenceExperimentStopDesiredState"`

	// Array of key-value pairs, with names of variants mapped to actions. The possible
	// actions are the following:
	//
	//    * Promote - Promote the shadow variant to a production variant
	//
	//    * Remove - Delete the variant
	//
	//    * Retain - Keep the variant as it is
	//
	// ModelVariantActions is a required field
	ModelVariantActions map[string]*string `min:"1" type:"map" required:"true"`

	// The name of the inference experiment to stop.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// The reason for stopping the experiment.
	Reason *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopInferenceExperimentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopInferenceExperimentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StopInferenceExperimentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StopInferenceExperimentInput"}
	if s.DesiredModelVariants != nil && len(s.DesiredModelVariants) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DesiredModelVariants", 1))
	}
	if s.ModelVariantActions == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelVariantActions"))
	}
	if s.ModelVariantActions != nil && len(s.ModelVariantActions) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelVariantActions", 1))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.DesiredModelVariants != nil {
		for i, v := range s.DesiredModelVariants {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DesiredModelVariants", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDesiredModelVariants sets the DesiredModelVariants field's value.
func (s *StopInferenceExperimentInput) SetDesiredModelVariants(v []*ModelVariantConfig) *StopInferenceExperimentInput {
	s.DesiredModelVariants = v
	return s
}

// SetDesiredState sets the DesiredState field's value.
func (s *StopInferenceExperimentInput) SetDesiredState(v string) *StopInferenceExperimentInput {
	s.DesiredState = &v
	return s
}

// SetModelVariantActions sets the ModelVariantActions field's value.
func (s *StopInferenceExperimentInput) SetModelVariantActions(v map[string]*string) *StopInferenceExperimentInput {
	s.ModelVariantActions = v
	return s
}

// SetName sets the Name field's value.
func (s *StopInferenceExperimentInput) SetName(v string) *StopInferenceExperimentInput {
	s.Name = &v
	return s
}

// SetReason sets the Reason field's value.
func (s *StopInferenceExperimentInput) SetReason(v string) *StopInferenceExperimentInput {
	s.Reason = &v
	return s
}

type StopInferenceExperimentOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the stopped inference experiment.
	//
	// InferenceExperimentArn is a required field
	InferenceExperimentArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopInferenceExperimentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopInferenceExperimentOutput) GoString() string {
	return s.String()
}

// SetInferenceExperimentArn sets the InferenceExperimentArn field's value.
func (s *StopInferenceExperimentOutput) SetInferenceExperimentArn(v string) *StopInferenceExperimentOutput {
	s.InferenceExperimentArn = &v
	return s
}

type StopInferenceRecommendationsJobInput struct {
	_ struct{} `type:"structure"`

	// The name of the job you want to stop.
	//
	// JobName is a required field
	JobName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopInferenceRecommendationsJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopInferenceRecommendationsJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StopInferenceRecommendationsJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StopInferenceRecommendationsJobInput"}
	if s.JobName == nil {
		invalidParams.Add(request.NewErrParamRequired("JobName"))
	}
	if s.JobName != nil && len(*s.JobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("JobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetJobName sets the JobName field's value.
func (s *StopInferenceRecommendationsJobInput) SetJobName(v string) *StopInferenceRecommendationsJobInput {
	s.JobName = &v
	return s
}

type StopInferenceRecommendationsJobOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopInferenceRecommendationsJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopInferenceRecommendationsJobOutput) GoString() string {
	return s.String()
}

type StopLabelingJobInput struct {
	_ struct{} `type:"structure"`

	// The name of the labeling job to stop.
	//
	// LabelingJobName is a required field
	LabelingJobName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopLabelingJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopLabelingJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StopLabelingJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StopLabelingJobInput"}
	if s.LabelingJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("LabelingJobName"))
	}
	if s.LabelingJobName != nil && len(*s.LabelingJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("LabelingJobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetLabelingJobName sets the LabelingJobName field's value.
func (s *StopLabelingJobInput) SetLabelingJobName(v string) *StopLabelingJobInput {
	s.LabelingJobName = &v
	return s
}

type StopLabelingJobOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopLabelingJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopLabelingJobOutput) GoString() string {
	return s.String()
}

type StopMonitoringScheduleInput struct {
	_ struct{} `type:"structure"`

	// The name of the schedule to stop.
	//
	// MonitoringScheduleName is a required field
	MonitoringScheduleName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopMonitoringScheduleInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopMonitoringScheduleInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StopMonitoringScheduleInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StopMonitoringScheduleInput"}
	if s.MonitoringScheduleName == nil {
		invalidParams.Add(request.NewErrParamRequired("MonitoringScheduleName"))
	}
	if s.MonitoringScheduleName != nil && len(*s.MonitoringScheduleName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MonitoringScheduleName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMonitoringScheduleName sets the MonitoringScheduleName field's value.
func (s *StopMonitoringScheduleInput) SetMonitoringScheduleName(v string) *StopMonitoringScheduleInput {
	s.MonitoringScheduleName = &v
	return s
}

type StopMonitoringScheduleOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopMonitoringScheduleOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopMonitoringScheduleOutput) GoString() string {
	return s.String()
}

type StopNotebookInstanceInput struct {
	_ struct{} `type:"structure"`

	// The name of the notebook instance to terminate.
	//
	// NotebookInstanceName is a required field
	NotebookInstanceName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopNotebookInstanceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopNotebookInstanceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StopNotebookInstanceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StopNotebookInstanceInput"}
	if s.NotebookInstanceName == nil {
		invalidParams.Add(request.NewErrParamRequired("NotebookInstanceName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetNotebookInstanceName sets the NotebookInstanceName field's value.
func (s *StopNotebookInstanceInput) SetNotebookInstanceName(v string) *StopNotebookInstanceInput {
	s.NotebookInstanceName = &v
	return s
}

type StopNotebookInstanceOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopNotebookInstanceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopNotebookInstanceOutput) GoString() string {
	return s.String()
}

type StopPipelineExecutionInput struct {
	_ struct{} `type:"structure"`

	// A unique, case-sensitive identifier that you provide to ensure the idempotency
	// of the operation. An idempotent operation completes no more than once.
	ClientRequestToken *string `min:"32" type:"string" idempotencyToken:"true"`

	// The Amazon Resource Name (ARN) of the pipeline execution.
	//
	// PipelineExecutionArn is a required field
	PipelineExecutionArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopPipelineExecutionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopPipelineExecutionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StopPipelineExecutionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StopPipelineExecutionInput"}
	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 32 {
		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 32))
	}
	if s.PipelineExecutionArn == nil {
		invalidParams.Add(request.NewErrParamRequired("PipelineExecutionArn"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClientRequestToken sets the ClientRequestToken field's value.
func (s *StopPipelineExecutionInput) SetClientRequestToken(v string) *StopPipelineExecutionInput {
	s.ClientRequestToken = &v
	return s
}

// SetPipelineExecutionArn sets the PipelineExecutionArn field's value.
func (s *StopPipelineExecutionInput) SetPipelineExecutionArn(v string) *StopPipelineExecutionInput {
	s.PipelineExecutionArn = &v
	return s
}

type StopPipelineExecutionOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the pipeline execution.
	PipelineExecutionArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopPipelineExecutionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopPipelineExecutionOutput) GoString() string {
	return s.String()
}

// SetPipelineExecutionArn sets the PipelineExecutionArn field's value.
func (s *StopPipelineExecutionOutput) SetPipelineExecutionArn(v string) *StopPipelineExecutionOutput {
	s.PipelineExecutionArn = &v
	return s
}

type StopProcessingJobInput struct {
	_ struct{} `type:"structure"`

	// The name of the processing job to stop.
	//
	// ProcessingJobName is a required field
	ProcessingJobName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopProcessingJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopProcessingJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StopProcessingJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StopProcessingJobInput"}
	if s.ProcessingJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("ProcessingJobName"))
	}
	if s.ProcessingJobName != nil && len(*s.ProcessingJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ProcessingJobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetProcessingJobName sets the ProcessingJobName field's value.
func (s *StopProcessingJobInput) SetProcessingJobName(v string) *StopProcessingJobInput {
	s.ProcessingJobName = &v
	return s
}

type StopProcessingJobOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopProcessingJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopProcessingJobOutput) GoString() string {
	return s.String()
}

type StopTrainingJobInput struct {
	_ struct{} `type:"structure"`

	// The name of the training job to stop.
	//
	// TrainingJobName is a required field
	TrainingJobName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopTrainingJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopTrainingJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StopTrainingJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StopTrainingJobInput"}
	if s.TrainingJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("TrainingJobName"))
	}
	if s.TrainingJobName != nil && len(*s.TrainingJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TrainingJobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetTrainingJobName sets the TrainingJobName field's value.
func (s *StopTrainingJobInput) SetTrainingJobName(v string) *StopTrainingJobInput {
	s.TrainingJobName = &v
	return s
}

type StopTrainingJobOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopTrainingJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopTrainingJobOutput) GoString() string {
	return s.String()
}

type StopTransformJobInput struct {
	_ struct{} `type:"structure"`

	// The name of the batch transform job to stop.
	//
	// TransformJobName is a required field
	TransformJobName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopTransformJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopTransformJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StopTransformJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StopTransformJobInput"}
	if s.TransformJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("TransformJobName"))
	}
	if s.TransformJobName != nil && len(*s.TransformJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TransformJobName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetTransformJobName sets the TransformJobName field's value.
func (s *StopTransformJobInput) SetTransformJobName(v string) *StopTransformJobInput {
	s.TransformJobName = &v
	return s
}

type StopTransformJobOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopTransformJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StopTransformJobOutput) GoString() string {
	return s.String()
}

// Specifies a limit to how long a model training job or model compilation job
// can run. It also specifies how long a managed spot training job has to complete.
// When the job reaches the time limit, SageMaker ends the training or compilation
// job. Use this API to cap model training costs.
//
// To stop a training job, SageMaker sends the algorithm the SIGTERM signal,
// which delays job termination for 120 seconds. Algorithms can use this 120-second
// window to save the model artifacts, so the results of training are not lost.
//
// The training algorithms provided by SageMaker automatically save the intermediate
// results of a model training job when possible. This attempt to save artifacts
// is only a best effort case as model might not be in a state from which it
// can be saved. For example, if training has just started, the model might
// not be ready to save. When saved, this intermediate data is a valid model
// artifact. You can use it to create a model with CreateModel.
//
// The Neural Topic Model (NTM) currently does not support saving intermediate
// model artifacts. When training NTMs, make sure that the maximum runtime is
// sufficient for the training job to complete.
type StoppingCondition struct {
	_ struct{} `type:"structure"`

	// The maximum length of time, in seconds, that a training or compilation job
	// can be pending before it is stopped.
	MaxPendingTimeInSeconds *int64 `min:"7200" type:"integer"`

	// The maximum length of time, in seconds, that a training or compilation job
	// can run before it is stopped.
	//
	// For compilation jobs, if the job does not complete during this time, a TimeOut
	// error is generated. We recommend starting with 900 seconds and increasing
	// as necessary based on your model.
	//
	// For all other jobs, if the job does not complete during this time, SageMaker
	// ends the job. When RetryStrategy is specified in the job request, MaxRuntimeInSeconds
	// specifies the maximum time for all of the attempts in total, not each individual
	// attempt. The default value is 1 day. The maximum value is 28 days.
	//
	// The maximum time that a TrainingJob can run in total, including any time
	// spent publishing metrics or archiving and uploading models after it has been
	// stopped, is 30 days.
	MaxRuntimeInSeconds *int64 `min:"1" type:"integer"`

	// The maximum length of time, in seconds, that a managed Spot training job
	// has to complete. It is the amount of time spent waiting for Spot capacity
	// plus the amount of time the job can run. It must be equal to or greater than
	// MaxRuntimeInSeconds. If the job does not complete during this time, SageMaker
	// ends the job.
	//
	// When RetryStrategy is specified in the job request, MaxWaitTimeInSeconds
	// specifies the maximum time for all of the attempts in total, not each individual
	// attempt.
	MaxWaitTimeInSeconds *int64 `min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StoppingCondition) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StoppingCondition) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StoppingCondition) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StoppingCondition"}
	if s.MaxPendingTimeInSeconds != nil && *s.MaxPendingTimeInSeconds < 7200 {
		invalidParams.Add(request.NewErrParamMinValue("MaxPendingTimeInSeconds", 7200))
	}
	if s.MaxRuntimeInSeconds != nil && *s.MaxRuntimeInSeconds < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxRuntimeInSeconds", 1))
	}
	if s.MaxWaitTimeInSeconds != nil && *s.MaxWaitTimeInSeconds < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxWaitTimeInSeconds", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxPendingTimeInSeconds sets the MaxPendingTimeInSeconds field's value.
func (s *StoppingCondition) SetMaxPendingTimeInSeconds(v int64) *StoppingCondition {
	s.MaxPendingTimeInSeconds = &v
	return s
}

// SetMaxRuntimeInSeconds sets the MaxRuntimeInSeconds field's value.
func (s *StoppingCondition) SetMaxRuntimeInSeconds(v int64) *StoppingCondition {
	s.MaxRuntimeInSeconds = &v
	return s
}

// SetMaxWaitTimeInSeconds sets the MaxWaitTimeInSeconds field's value.
func (s *StoppingCondition) SetMaxWaitTimeInSeconds(v int64) *StoppingCondition {
	s.MaxWaitTimeInSeconds = &v
	return s
}

// Details of the Amazon SageMaker Studio Lifecycle Configuration.
type StudioLifecycleConfigDetails struct {
	_ struct{} `type:"structure"`

	// The creation time of the Amazon SageMaker Studio Lifecycle Configuration.
	CreationTime *time.Time `type:"timestamp"`

	// This value is equivalent to CreationTime because Amazon SageMaker Studio
	// Lifecycle Configurations are immutable.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The App type to which the Lifecycle Configuration is attached.
	StudioLifecycleConfigAppType *string `type:"string" enum:"StudioLifecycleConfigAppType"`

	// The Amazon Resource Name (ARN) of the Lifecycle Configuration.
	StudioLifecycleConfigArn *string `type:"string"`

	// The name of the Amazon SageMaker Studio Lifecycle Configuration.
	StudioLifecycleConfigName *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StudioLifecycleConfigDetails) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StudioLifecycleConfigDetails) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *StudioLifecycleConfigDetails) SetCreationTime(v time.Time) *StudioLifecycleConfigDetails {
	s.CreationTime = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *StudioLifecycleConfigDetails) SetLastModifiedTime(v time.Time) *StudioLifecycleConfigDetails {
	s.LastModifiedTime = &v
	return s
}

// SetStudioLifecycleConfigAppType sets the StudioLifecycleConfigAppType field's value.
func (s *StudioLifecycleConfigDetails) SetStudioLifecycleConfigAppType(v string) *StudioLifecycleConfigDetails {
	s.StudioLifecycleConfigAppType = &v
	return s
}

// SetStudioLifecycleConfigArn sets the StudioLifecycleConfigArn field's value.
func (s *StudioLifecycleConfigDetails) SetStudioLifecycleConfigArn(v string) *StudioLifecycleConfigDetails {
	s.StudioLifecycleConfigArn = &v
	return s
}

// SetStudioLifecycleConfigName sets the StudioLifecycleConfigName field's value.
func (s *StudioLifecycleConfigDetails) SetStudioLifecycleConfigName(v string) *StudioLifecycleConfigDetails {
	s.StudioLifecycleConfigName = &v
	return s
}

// Describes a work team of a vendor that does the a labelling job.
type SubscribedWorkteam struct {
	_ struct{} `type:"structure"`

	// Marketplace product listing ID.
	ListingId *string `type:"string"`

	// The description of the vendor from the Amazon Marketplace.
	MarketplaceDescription *string `min:"1" type:"string"`

	// The title of the service provided by the vendor in the Amazon Marketplace.
	MarketplaceTitle *string `min:"1" type:"string"`

	// The name of the vendor in the Amazon Marketplace.
	SellerName *string `type:"string"`

	// The Amazon Resource Name (ARN) of the vendor that you have subscribed.
	//
	// WorkteamArn is a required field
	WorkteamArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SubscribedWorkteam) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SubscribedWorkteam) GoString() string {
	return s.String()
}

// SetListingId sets the ListingId field's value.
func (s *SubscribedWorkteam) SetListingId(v string) *SubscribedWorkteam {
	s.ListingId = &v
	return s
}

// SetMarketplaceDescription sets the MarketplaceDescription field's value.
func (s *SubscribedWorkteam) SetMarketplaceDescription(v string) *SubscribedWorkteam {
	s.MarketplaceDescription = &v
	return s
}

// SetMarketplaceTitle sets the MarketplaceTitle field's value.
func (s *SubscribedWorkteam) SetMarketplaceTitle(v string) *SubscribedWorkteam {
	s.MarketplaceTitle = &v
	return s
}

// SetSellerName sets the SellerName field's value.
func (s *SubscribedWorkteam) SetSellerName(v string) *SubscribedWorkteam {
	s.SellerName = &v
	return s
}

// SetWorkteamArn sets the WorkteamArn field's value.
func (s *SubscribedWorkteam) SetWorkteamArn(v string) *SubscribedWorkteam {
	s.WorkteamArn = &v
	return s
}

// Specified in the GetSearchSuggestions (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_GetSearchSuggestions.html)
// request. Limits the property names that are included in the response.
type SuggestionQuery struct {
	_ struct{} `type:"structure"`

	// Defines a property name hint. Only property names that begin with the specified
	// hint are included in the response.
	PropertyNameQuery *PropertyNameQuery `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SuggestionQuery) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SuggestionQuery) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SuggestionQuery) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SuggestionQuery"}
	if s.PropertyNameQuery != nil {
		if err := s.PropertyNameQuery.Validate(); err != nil {
			invalidParams.AddNested("PropertyNameQuery", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetPropertyNameQuery sets the PropertyNameQuery field's value.
func (s *SuggestionQuery) SetPropertyNameQuery(v *PropertyNameQuery) *SuggestionQuery {
	s.PropertyNameQuery = v
	return s
}

// The collection of settings used by an AutoML job V2 for the tabular problem
// type.
type TabularJobConfig struct {
	_ struct{} `type:"structure"`

	// The configuration information of how model candidates are generated.
	CandidateGenerationConfig *CandidateGenerationConfig `type:"structure"`

	// How long a job is allowed to run, or how many candidates a job is allowed
	// to generate.
	CompletionCriteria *AutoMLJobCompletionCriteria `type:"structure"`

	// A URL to the Amazon S3 data source containing selected features from the
	// input data source to run an Autopilot job V2. You can input FeatureAttributeNames
	// (optional) in JSON format as shown below:
	//
	// { "FeatureAttributeNames":["col1", "col2", ...] }.
	//
	// You can also specify the data type of the feature (optional) in the format
	// shown below:
	//
	// { "FeatureDataTypes":{"col1":"numeric", "col2":"categorical" ... } }
	//
	// These column keys may not include the target column.
	//
	// In ensembling mode, Autopilot only supports the following data types: numeric,
	// categorical, text, and datetime. In HPO mode, Autopilot can support numeric,
	// categorical, text, datetime, and sequence.
	//
	// If only FeatureDataTypes is provided, the column keys (col1, col2,..) should
	// be a subset of the column names in the input data.
	//
	// If both FeatureDataTypes and FeatureAttributeNames are provided, then the
	// column keys should be a subset of the column names provided in FeatureAttributeNames.
	//
	// The key name FeatureAttributeNames is fixed. The values listed in ["col1",
	// "col2", ...] are case sensitive and should be a list of strings containing
	// unique values that are a subset of the column names in the input data. The
	// list of columns provided must not include the target column.
	FeatureSpecificationS3Uri *string `type:"string"`

	// Generates possible candidates without training the models. A model candidate
	// is a combination of data preprocessors, algorithms, and algorithm parameter
	// settings.
	GenerateCandidateDefinitionsOnly *bool `type:"boolean"`

	// The method that Autopilot uses to train the data. You can either specify
	// the mode manually or let Autopilot choose for you based on the dataset size
	// by selecting AUTO. In AUTO mode, Autopilot chooses ENSEMBLING for datasets
	// smaller than 100 MB, and HYPERPARAMETER_TUNING for larger ones.
	//
	// The ENSEMBLING mode uses a multi-stack ensemble model to predict classification
	// and regression tasks directly from your dataset. This machine learning mode
	// combines several base models to produce an optimal predictive model. It then
	// uses a stacking ensemble method to combine predictions from contributing
	// members. A multi-stack ensemble model can provide better performance over
	// a single model by combining the predictive capabilities of multiple models.
	// See Autopilot algorithm support (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html#autopilot-algorithm-support)
	// for a list of algorithms supported by ENSEMBLING mode.
	//
	// The HYPERPARAMETER_TUNING (HPO) mode uses the best hyperparameters to train
	// the best version of a model. HPO automatically selects an algorithm for the
	// type of problem you want to solve. Then HPO finds the best hyperparameters
	// according to your objective metric. See Autopilot algorithm support (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html#autopilot-algorithm-support)
	// for a list of algorithms supported by HYPERPARAMETER_TUNING mode.
	Mode *string `type:"string" enum:"AutoMLMode"`

	// The type of supervised learning problem available for the model candidates
	// of the AutoML job V2. For more information, see Amazon SageMaker Autopilot
	// problem types (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-datasets-problem-types.html#autopilot-problem-types).
	//
	// You must either specify the type of supervised learning problem in ProblemType
	// and provide the AutoMLJobObjective (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobObjective)
	// metric, or none at all.
	ProblemType *string `type:"string" enum:"ProblemType"`

	// If specified, this column name indicates which column of the dataset should
	// be treated as sample weights for use by the objective metric during the training,
	// evaluation, and the selection of the best model. This column is not considered
	// as a predictive feature. For more information on Autopilot metrics, see Metrics
	// and validation (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-metrics-validation.html).
	//
	// Sample weights should be numeric, non-negative, with larger values indicating
	// which rows are more important than others. Data points that have invalid
	// or no weight value are excluded.
	//
	// Support for sample weights is available in Ensembling (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLAlgorithmConfig.html)
	// mode only.
	SampleWeightAttributeName *string `min:"1" type:"string"`

	// The name of the target variable in supervised learning, usually represented
	// by 'y'.
	//
	// TargetAttributeName is a required field
	TargetAttributeName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TabularJobConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TabularJobConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TabularJobConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TabularJobConfig"}
	if s.SampleWeightAttributeName != nil && len(*s.SampleWeightAttributeName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SampleWeightAttributeName", 1))
	}
	if s.TargetAttributeName == nil {
		invalidParams.Add(request.NewErrParamRequired("TargetAttributeName"))
	}
	if s.TargetAttributeName != nil && len(*s.TargetAttributeName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TargetAttributeName", 1))
	}
	if s.CandidateGenerationConfig != nil {
		if err := s.CandidateGenerationConfig.Validate(); err != nil {
			invalidParams.AddNested("CandidateGenerationConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.CompletionCriteria != nil {
		if err := s.CompletionCriteria.Validate(); err != nil {
			invalidParams.AddNested("CompletionCriteria", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCandidateGenerationConfig sets the CandidateGenerationConfig field's value.
func (s *TabularJobConfig) SetCandidateGenerationConfig(v *CandidateGenerationConfig) *TabularJobConfig {
	s.CandidateGenerationConfig = v
	return s
}

// SetCompletionCriteria sets the CompletionCriteria field's value.
func (s *TabularJobConfig) SetCompletionCriteria(v *AutoMLJobCompletionCriteria) *TabularJobConfig {
	s.CompletionCriteria = v
	return s
}

// SetFeatureSpecificationS3Uri sets the FeatureSpecificationS3Uri field's value.
func (s *TabularJobConfig) SetFeatureSpecificationS3Uri(v string) *TabularJobConfig {
	s.FeatureSpecificationS3Uri = &v
	return s
}

// SetGenerateCandidateDefinitionsOnly sets the GenerateCandidateDefinitionsOnly field's value.
func (s *TabularJobConfig) SetGenerateCandidateDefinitionsOnly(v bool) *TabularJobConfig {
	s.GenerateCandidateDefinitionsOnly = &v
	return s
}

// SetMode sets the Mode field's value.
func (s *TabularJobConfig) SetMode(v string) *TabularJobConfig {
	s.Mode = &v
	return s
}

// SetProblemType sets the ProblemType field's value.
func (s *TabularJobConfig) SetProblemType(v string) *TabularJobConfig {
	s.ProblemType = &v
	return s
}

// SetSampleWeightAttributeName sets the SampleWeightAttributeName field's value.
func (s *TabularJobConfig) SetSampleWeightAttributeName(v string) *TabularJobConfig {
	s.SampleWeightAttributeName = &v
	return s
}

// SetTargetAttributeName sets the TargetAttributeName field's value.
func (s *TabularJobConfig) SetTargetAttributeName(v string) *TabularJobConfig {
	s.TargetAttributeName = &v
	return s
}

// The resolved attributes specific to the tabular problem type.
type TabularResolvedAttributes struct {
	_ struct{} `type:"structure"`

	// The type of supervised learning problem available for the model candidates
	// of the AutoML job V2 (Binary Classification, Multiclass Classification, Regression).
	// For more information, see Amazon SageMaker Autopilot problem types (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-datasets-problem-types.html#autopilot-problem-types).
	ProblemType *string `type:"string" enum:"ProblemType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TabularResolvedAttributes) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TabularResolvedAttributes) GoString() string {
	return s.String()
}

// SetProblemType sets the ProblemType field's value.
func (s *TabularResolvedAttributes) SetProblemType(v string) *TabularResolvedAttributes {
	s.ProblemType = &v
	return s
}

// A tag object that consists of a key and an optional value, used to manage
// metadata for SageMaker Amazon Web Services resources.
//
// You can add tags to notebook instances, training jobs, hyperparameter tuning
// jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations,
// and endpoints. For more information on adding tags to SageMaker resources,
// see AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html).
//
// For more information on adding metadata to your Amazon Web Services resources
// with tagging, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
// For advice on best practices for managing Amazon Web Services resources with
// tagging, see Tagging Best Practices: Implement an Effective Amazon Web Services
// Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf).
type Tag struct {
	_ struct{} `type:"structure"`

	// The tag key. Tag keys must be unique per resource.
	//
	// Key is a required field
	Key *string `min:"1" type:"string" required:"true"`

	// The tag value.
	//
	// Value is a required field
	Value *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Tag) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Tag) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *Tag) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "Tag"}
	if s.Key == nil {
		invalidParams.Add(request.NewErrParamRequired("Key"))
	}
	if s.Key != nil && len(*s.Key) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
	}
	if s.Value == nil {
		invalidParams.Add(request.NewErrParamRequired("Value"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetKey sets the Key field's value.
func (s *Tag) SetKey(v string) *Tag {
	s.Key = &v
	return s
}

// SetValue sets the Value field's value.
func (s *Tag) SetValue(v string) *Tag {
	s.Value = &v
	return s
}

// Contains information about a target platform that you want your model to
// run on, such as OS, architecture, and accelerators. It is an alternative
// of TargetDevice.
type TargetPlatform struct {
	_ struct{} `type:"structure"`

	// Specifies a target platform accelerator (optional).
	//
	//    * NVIDIA: Nvidia graphics processing unit. It also requires gpu-code,
	//    trt-ver, cuda-ver compiler options
	//
	//    * MALI: ARM Mali graphics processor
	//
	//    * INTEL_GRAPHICS: Integrated Intel graphics
	Accelerator *string `type:"string" enum:"TargetPlatformAccelerator"`

	// Specifies a target platform architecture.
	//
	//    * X86_64: 64-bit version of the x86 instruction set.
	//
	//    * X86: 32-bit version of the x86 instruction set.
	//
	//    * ARM64: ARMv8 64-bit CPU.
	//
	//    * ARM_EABIHF: ARMv7 32-bit, Hard Float.
	//
	//    * ARM_EABI: ARMv7 32-bit, Soft Float. Used by Android 32-bit ARM platform.
	//
	// Arch is a required field
	Arch *string `type:"string" required:"true" enum:"TargetPlatformArch"`

	// Specifies a target platform OS.
	//
	//    * LINUX: Linux-based operating systems.
	//
	//    * ANDROID: Android operating systems. Android API level can be specified
	//    using the ANDROID_PLATFORM compiler option. For example, "CompilerOptions":
	//    {'ANDROID_PLATFORM': 28}
	//
	// Os is a required field
	Os *string `type:"string" required:"true" enum:"TargetPlatformOs"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TargetPlatform) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TargetPlatform) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TargetPlatform) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TargetPlatform"}
	if s.Arch == nil {
		invalidParams.Add(request.NewErrParamRequired("Arch"))
	}
	if s.Os == nil {
		invalidParams.Add(request.NewErrParamRequired("Os"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccelerator sets the Accelerator field's value.
func (s *TargetPlatform) SetAccelerator(v string) *TargetPlatform {
	s.Accelerator = &v
	return s
}

// SetArch sets the Arch field's value.
func (s *TargetPlatform) SetArch(v string) *TargetPlatform {
	s.Arch = &v
	return s
}

// SetOs sets the Os field's value.
func (s *TargetPlatform) SetOs(v string) *TargetPlatform {
	s.Os = &v
	return s
}

// A target tracking scaling policy. Includes support for predefined or customized
// metrics.
//
// When using the PutScalingPolicy (https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html)
// API, this parameter is required when you are creating a policy with the policy
// type TargetTrackingScaling.
type TargetTrackingScalingPolicyConfiguration struct {
	_ struct{} `type:"structure"`

	// An object containing information about a metric.
	MetricSpecification *MetricSpecification `type:"structure"`

	// The recommended target value to specify for the metric when creating a scaling
	// policy.
	TargetValue *float64 `type:"double"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TargetTrackingScalingPolicyConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TargetTrackingScalingPolicyConfiguration) GoString() string {
	return s.String()
}

// SetMetricSpecification sets the MetricSpecification field's value.
func (s *TargetTrackingScalingPolicyConfiguration) SetMetricSpecification(v *MetricSpecification) *TargetTrackingScalingPolicyConfiguration {
	s.MetricSpecification = v
	return s
}

// SetTargetValue sets the TargetValue field's value.
func (s *TargetTrackingScalingPolicyConfiguration) SetTargetValue(v float64) *TargetTrackingScalingPolicyConfiguration {
	s.TargetValue = &v
	return s
}

// The TensorBoard app settings.
type TensorBoardAppSettings struct {
	_ struct{} `type:"structure"`

	// The default instance type and the Amazon Resource Name (ARN) of the SageMaker
	// image created on the instance.
	DefaultResourceSpec *ResourceSpec `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TensorBoardAppSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TensorBoardAppSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TensorBoardAppSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TensorBoardAppSettings"}
	if s.DefaultResourceSpec != nil {
		if err := s.DefaultResourceSpec.Validate(); err != nil {
			invalidParams.AddNested("DefaultResourceSpec", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDefaultResourceSpec sets the DefaultResourceSpec field's value.
func (s *TensorBoardAppSettings) SetDefaultResourceSpec(v *ResourceSpec) *TensorBoardAppSettings {
	s.DefaultResourceSpec = v
	return s
}

// Configuration of storage locations for the Amazon SageMaker Debugger TensorBoard
// output data.
type TensorBoardOutputConfig struct {
	_ struct{} `type:"structure"`

	// Path to local storage location for tensorBoard output. Defaults to /opt/ml/output/tensorboard.
	LocalPath *string `type:"string"`

	// Path to Amazon S3 storage location for TensorBoard output.
	//
	// S3OutputPath is a required field
	S3OutputPath *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TensorBoardOutputConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TensorBoardOutputConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TensorBoardOutputConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TensorBoardOutputConfig"}
	if s.S3OutputPath == nil {
		invalidParams.Add(request.NewErrParamRequired("S3OutputPath"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetLocalPath sets the LocalPath field's value.
func (s *TensorBoardOutputConfig) SetLocalPath(v string) *TensorBoardOutputConfig {
	s.LocalPath = &v
	return s
}

// SetS3OutputPath sets the S3OutputPath field's value.
func (s *TensorBoardOutputConfig) SetS3OutputPath(v string) *TensorBoardOutputConfig {
	s.S3OutputPath = &v
	return s
}

// The collection of settings used by an AutoML job V2 for the text classification
// problem type.
type TextClassificationJobConfig struct {
	_ struct{} `type:"structure"`

	// How long a job is allowed to run, or how many candidates a job is allowed
	// to generate.
	CompletionCriteria *AutoMLJobCompletionCriteria `type:"structure"`

	// The name of the column used to provide the sentences to be classified. It
	// should not be the same as the target column.
	//
	// ContentColumn is a required field
	ContentColumn *string `min:"1" type:"string" required:"true"`

	// The name of the column used to provide the class labels. It should not be
	// same as the content column.
	//
	// TargetLabelColumn is a required field
	TargetLabelColumn *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TextClassificationJobConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TextClassificationJobConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TextClassificationJobConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TextClassificationJobConfig"}
	if s.ContentColumn == nil {
		invalidParams.Add(request.NewErrParamRequired("ContentColumn"))
	}
	if s.ContentColumn != nil && len(*s.ContentColumn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ContentColumn", 1))
	}
	if s.TargetLabelColumn == nil {
		invalidParams.Add(request.NewErrParamRequired("TargetLabelColumn"))
	}
	if s.TargetLabelColumn != nil && len(*s.TargetLabelColumn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TargetLabelColumn", 1))
	}
	if s.CompletionCriteria != nil {
		if err := s.CompletionCriteria.Validate(); err != nil {
			invalidParams.AddNested("CompletionCriteria", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCompletionCriteria sets the CompletionCriteria field's value.
func (s *TextClassificationJobConfig) SetCompletionCriteria(v *AutoMLJobCompletionCriteria) *TextClassificationJobConfig {
	s.CompletionCriteria = v
	return s
}

// SetContentColumn sets the ContentColumn field's value.
func (s *TextClassificationJobConfig) SetContentColumn(v string) *TextClassificationJobConfig {
	s.ContentColumn = &v
	return s
}

// SetTargetLabelColumn sets the TargetLabelColumn field's value.
func (s *TextClassificationJobConfig) SetTargetLabelColumn(v string) *TextClassificationJobConfig {
	s.TargetLabelColumn = &v
	return s
}

// The collection of settings used by an AutoML job V2 for the text generation
// problem type.
//
// The text generation models that support fine-tuning in Autopilot are currently
// accessible exclusively in regions supported by Canvas. Refer to the documentation
// of Canvas for the full list of its supported Regions (https://docs.aws.amazon.com/sagemaker/latest/dg/canvas.html).
type TextGenerationJobConfig struct {
	_ struct{} `type:"structure"`

	// The name of the base model to fine-tune. Autopilot supports fine-tuning a
	// variety of large language models. For information on the list of supported
	// models, see Text generation models supporting fine-tuning in Autopilot (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-llms-finetuning-models.html#autopilot-llms-finetuning-supported-llms).
	// If no BaseModelName is provided, the default model used is Falcon7BInstruct.
	BaseModelName *string `min:"1" type:"string"`

	// How long a fine-tuning job is allowed to run. For TextGenerationJobConfig
	// problem types, the MaxRuntimePerTrainingJobInSeconds attribute of AutoMLJobCompletionCriteria
	// defaults to 72h (259200s).
	CompletionCriteria *AutoMLJobCompletionCriteria `type:"structure"`

	// The access configuration file to control access to the ML model. You can
	// explicitly accept the model end-user license agreement (EULA) within the
	// ModelAccessConfig.
	//
	//    * If you are a Jumpstart user, see the End-user license agreements (https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-foundation-models-choose.html#jumpstart-foundation-models-choose-eula)
	//    section for more details on accepting the EULA.
	//
	//    * If you are an AutoML user, see the Optional Parameters section of Create
	//    an AutoML job to fine-tune text generation models using the API for details
	//    on How to set the EULA acceptance when fine-tuning a model using the AutoML
	//    API (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-create-experiment-finetune-llms.html#autopilot-llms-finetuning-api-optional-params).
	ModelAccessConfig *ModelAccessConfig `type:"structure"`

	// The hyperparameters used to configure and optimize the learning process of
	// the base model. You can set any combination of the following hyperparameters
	// for all base models. For more information on each supported hyperparameter,
	// see Optimize the learning process of your text generation models with hyperparameters
	// (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-llms-finetuning-set-hyperparameters.html).
	//
	//    * "epochCount": The number of times the model goes through the entire
	//    training dataset. Its value should be a string containing an integer value
	//    within the range of "1" to "10".
	//
	//    * "batchSize": The number of data samples used in each iteration of training.
	//    Its value should be a string containing an integer value within the range
	//    of "1" to "64".
	//
	//    * "learningRate": The step size at which a model's parameters are updated
	//    during training. Its value should be a string containing a floating-point
	//    value within the range of "0" to "1".
	//
	//    * "learningRateWarmupSteps": The number of training steps during which
	//    the learning rate gradually increases before reaching its target or maximum
	//    value. Its value should be a string containing an integer value within
	//    the range of "0" to "250".
	//
	// Here is an example where all four hyperparameters are configured.
	//
	// { "epochCount":"5", "learningRate":"0.5", "batchSize": "32", "learningRateWarmupSteps":
	// "10" }
	TextGenerationHyperParameters map[string]*string `type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TextGenerationJobConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TextGenerationJobConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TextGenerationJobConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TextGenerationJobConfig"}
	if s.BaseModelName != nil && len(*s.BaseModelName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("BaseModelName", 1))
	}
	if s.CompletionCriteria != nil {
		if err := s.CompletionCriteria.Validate(); err != nil {
			invalidParams.AddNested("CompletionCriteria", err.(request.ErrInvalidParams))
		}
	}
	if s.ModelAccessConfig != nil {
		if err := s.ModelAccessConfig.Validate(); err != nil {
			invalidParams.AddNested("ModelAccessConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetBaseModelName sets the BaseModelName field's value.
func (s *TextGenerationJobConfig) SetBaseModelName(v string) *TextGenerationJobConfig {
	s.BaseModelName = &v
	return s
}

// SetCompletionCriteria sets the CompletionCriteria field's value.
func (s *TextGenerationJobConfig) SetCompletionCriteria(v *AutoMLJobCompletionCriteria) *TextGenerationJobConfig {
	s.CompletionCriteria = v
	return s
}

// SetModelAccessConfig sets the ModelAccessConfig field's value.
func (s *TextGenerationJobConfig) SetModelAccessConfig(v *ModelAccessConfig) *TextGenerationJobConfig {
	s.ModelAccessConfig = v
	return s
}

// SetTextGenerationHyperParameters sets the TextGenerationHyperParameters field's value.
func (s *TextGenerationJobConfig) SetTextGenerationHyperParameters(v map[string]*string) *TextGenerationJobConfig {
	s.TextGenerationHyperParameters = v
	return s
}

// The resolved attributes specific to the text generation problem type.
type TextGenerationResolvedAttributes struct {
	_ struct{} `type:"structure"`

	// The name of the base model to fine-tune.
	BaseModelName *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TextGenerationResolvedAttributes) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TextGenerationResolvedAttributes) GoString() string {
	return s.String()
}

// SetBaseModelName sets the BaseModelName field's value.
func (s *TextGenerationResolvedAttributes) SetBaseModelName(v string) *TextGenerationResolvedAttributes {
	s.BaseModelName = &v
	return s
}

// Used to set feature group throughput configuration. There are two modes:
// ON_DEMAND and PROVISIONED. With on-demand mode, you are charged for data
// reads and writes that your application performs on your feature group. You
// do not need to specify read and write throughput because Feature Store accommodates
// your workloads as they ramp up and down. You can switch a feature group to
// on-demand only once in a 24 hour period. With provisioned throughput mode,
// you specify the read and write capacity per second that you expect your application
// to require, and you are billed based on those limits. Exceeding provisioned
// throughput will result in your requests being throttled.
//
// Note: PROVISIONED throughput mode is supported only for feature groups that
// are offline-only, or use the Standard (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OnlineStoreConfig.html#sagemaker-Type-OnlineStoreConfig-StorageType)
// tier online store.
type ThroughputConfig struct {
	_ struct{} `type:"structure"`

	// For provisioned feature groups with online store enabled, this indicates
	// the read throughput you are billed for and can consume without throttling.
	//
	// This field is not applicable for on-demand feature groups.
	ProvisionedReadCapacityUnits *int64 `type:"integer"`

	// For provisioned feature groups, this indicates the write throughput you are
	// billed for and can consume without throttling.
	//
	// This field is not applicable for on-demand feature groups.
	ProvisionedWriteCapacityUnits *int64 `type:"integer"`

	// The mode used for your feature group throughput: ON_DEMAND or PROVISIONED.
	//
	// ThroughputMode is a required field
	ThroughputMode *string `type:"string" required:"true" enum:"ThroughputMode"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ThroughputConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ThroughputConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ThroughputConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ThroughputConfig"}
	if s.ThroughputMode == nil {
		invalidParams.Add(request.NewErrParamRequired("ThroughputMode"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetProvisionedReadCapacityUnits sets the ProvisionedReadCapacityUnits field's value.
func (s *ThroughputConfig) SetProvisionedReadCapacityUnits(v int64) *ThroughputConfig {
	s.ProvisionedReadCapacityUnits = &v
	return s
}

// SetProvisionedWriteCapacityUnits sets the ProvisionedWriteCapacityUnits field's value.
func (s *ThroughputConfig) SetProvisionedWriteCapacityUnits(v int64) *ThroughputConfig {
	s.ProvisionedWriteCapacityUnits = &v
	return s
}

// SetThroughputMode sets the ThroughputMode field's value.
func (s *ThroughputConfig) SetThroughputMode(v string) *ThroughputConfig {
	s.ThroughputMode = &v
	return s
}

// Active throughput configuration of the feature group. There are two modes:
// ON_DEMAND and PROVISIONED. With on-demand mode, you are charged for data
// reads and writes that your application performs on your feature group. You
// do not need to specify read and write throughput because Feature Store accommodates
// your workloads as they ramp up and down. You can switch a feature group to
// on-demand only once in a 24 hour period. With provisioned throughput mode,
// you specify the read and write capacity per second that you expect your application
// to require, and you are billed based on those limits. Exceeding provisioned
// throughput will result in your requests being throttled.
//
// Note: PROVISIONED throughput mode is supported only for feature groups that
// are offline-only, or use the Standard (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OnlineStoreConfig.html#sagemaker-Type-OnlineStoreConfig-StorageType)
// tier online store.
type ThroughputConfigDescription struct {
	_ struct{} `type:"structure"`

	// For provisioned feature groups with online store enabled, this indicates
	// the read throughput you are billed for and can consume without throttling.
	//
	// This field is not applicable for on-demand feature groups.
	ProvisionedReadCapacityUnits *int64 `type:"integer"`

	// For provisioned feature groups, this indicates the write throughput you are
	// billed for and can consume without throttling.
	//
	// This field is not applicable for on-demand feature groups.
	ProvisionedWriteCapacityUnits *int64 `type:"integer"`

	// The mode used for your feature group throughput: ON_DEMAND or PROVISIONED.
	//
	// ThroughputMode is a required field
	ThroughputMode *string `type:"string" required:"true" enum:"ThroughputMode"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ThroughputConfigDescription) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ThroughputConfigDescription) GoString() string {
	return s.String()
}

// SetProvisionedReadCapacityUnits sets the ProvisionedReadCapacityUnits field's value.
func (s *ThroughputConfigDescription) SetProvisionedReadCapacityUnits(v int64) *ThroughputConfigDescription {
	s.ProvisionedReadCapacityUnits = &v
	return s
}

// SetProvisionedWriteCapacityUnits sets the ProvisionedWriteCapacityUnits field's value.
func (s *ThroughputConfigDescription) SetProvisionedWriteCapacityUnits(v int64) *ThroughputConfigDescription {
	s.ProvisionedWriteCapacityUnits = &v
	return s
}

// SetThroughputMode sets the ThroughputMode field's value.
func (s *ThroughputConfigDescription) SetThroughputMode(v string) *ThroughputConfigDescription {
	s.ThroughputMode = &v
	return s
}

// The new throughput configuration for the feature group. You can switch between
// on-demand and provisioned modes or update the read / write capacity of provisioned
// feature groups. You can switch a feature group to on-demand only once in
// a 24 hour period.
type ThroughputConfigUpdate struct {
	_ struct{} `type:"structure"`

	// For provisioned feature groups with online store enabled, this indicates
	// the read throughput you are billed for and can consume without throttling.
	ProvisionedReadCapacityUnits *int64 `type:"integer"`

	// For provisioned feature groups, this indicates the write throughput you are
	// billed for and can consume without throttling.
	ProvisionedWriteCapacityUnits *int64 `type:"integer"`

	// Target throughput mode of the feature group. Throughput update is an asynchronous
	// operation, and the outcome should be monitored by polling LastUpdateStatus
	// field in DescribeFeatureGroup response. You cannot update a feature group's
	// throughput while another update is in progress.
	ThroughputMode *string `type:"string" enum:"ThroughputMode"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ThroughputConfigUpdate) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ThroughputConfigUpdate) GoString() string {
	return s.String()
}

// SetProvisionedReadCapacityUnits sets the ProvisionedReadCapacityUnits field's value.
func (s *ThroughputConfigUpdate) SetProvisionedReadCapacityUnits(v int64) *ThroughputConfigUpdate {
	s.ProvisionedReadCapacityUnits = &v
	return s
}

// SetProvisionedWriteCapacityUnits sets the ProvisionedWriteCapacityUnits field's value.
func (s *ThroughputConfigUpdate) SetProvisionedWriteCapacityUnits(v int64) *ThroughputConfigUpdate {
	s.ProvisionedWriteCapacityUnits = &v
	return s
}

// SetThroughputMode sets the ThroughputMode field's value.
func (s *ThroughputConfigUpdate) SetThroughputMode(v string) *ThroughputConfigUpdate {
	s.ThroughputMode = &v
	return s
}

// The collection of components that defines the time-series.
type TimeSeriesConfig struct {
	_ struct{} `type:"structure"`

	// A set of columns names that can be grouped with the item identifier column
	// to create a composite key for which a target value is predicted.
	GroupingAttributeNames []*string `min:"1" type:"list"`

	// The name of the column that represents the set of item identifiers for which
	// you want to predict the target value.
	//
	// ItemIdentifierAttributeName is a required field
	ItemIdentifierAttributeName *string `min:"1" type:"string" required:"true"`

	// The name of the column representing the target variable that you want to
	// predict for each item in your dataset. The data type of the target variable
	// must be numerical.
	//
	// TargetAttributeName is a required field
	TargetAttributeName *string `min:"1" type:"string" required:"true"`

	// The name of the column indicating a point in time at which the target value
	// of a given item is recorded.
	//
	// TimestampAttributeName is a required field
	TimestampAttributeName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TimeSeriesConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TimeSeriesConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TimeSeriesConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TimeSeriesConfig"}
	if s.GroupingAttributeNames != nil && len(s.GroupingAttributeNames) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("GroupingAttributeNames", 1))
	}
	if s.ItemIdentifierAttributeName == nil {
		invalidParams.Add(request.NewErrParamRequired("ItemIdentifierAttributeName"))
	}
	if s.ItemIdentifierAttributeName != nil && len(*s.ItemIdentifierAttributeName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ItemIdentifierAttributeName", 1))
	}
	if s.TargetAttributeName == nil {
		invalidParams.Add(request.NewErrParamRequired("TargetAttributeName"))
	}
	if s.TargetAttributeName != nil && len(*s.TargetAttributeName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TargetAttributeName", 1))
	}
	if s.TimestampAttributeName == nil {
		invalidParams.Add(request.NewErrParamRequired("TimestampAttributeName"))
	}
	if s.TimestampAttributeName != nil && len(*s.TimestampAttributeName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TimestampAttributeName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetGroupingAttributeNames sets the GroupingAttributeNames field's value.
func (s *TimeSeriesConfig) SetGroupingAttributeNames(v []*string) *TimeSeriesConfig {
	s.GroupingAttributeNames = v
	return s
}

// SetItemIdentifierAttributeName sets the ItemIdentifierAttributeName field's value.
func (s *TimeSeriesConfig) SetItemIdentifierAttributeName(v string) *TimeSeriesConfig {
	s.ItemIdentifierAttributeName = &v
	return s
}

// SetTargetAttributeName sets the TargetAttributeName field's value.
func (s *TimeSeriesConfig) SetTargetAttributeName(v string) *TimeSeriesConfig {
	s.TargetAttributeName = &v
	return s
}

// SetTimestampAttributeName sets the TimestampAttributeName field's value.
func (s *TimeSeriesConfig) SetTimestampAttributeName(v string) *TimeSeriesConfig {
	s.TimestampAttributeName = &v
	return s
}

// The collection of settings used by an AutoML job V2 for the time-series forecasting
// problem type.
type TimeSeriesForecastingJobConfig struct {
	_ struct{} `type:"structure"`

	// How long a job is allowed to run, or how many candidates a job is allowed
	// to generate.
	CompletionCriteria *AutoMLJobCompletionCriteria `type:"structure"`

	// A URL to the Amazon S3 data source containing additional selected features
	// that complement the target, itemID, timestamp, and grouped columns set in
	// TimeSeriesConfig. When not provided, the AutoML job V2 includes all the columns
	// from the original dataset that are not already declared in TimeSeriesConfig.
	// If provided, the AutoML job V2 only considers these additional columns as
	// a complement to the ones declared in TimeSeriesConfig.
	//
	// You can input FeatureAttributeNames (optional) in JSON format as shown below:
	//
	// { "FeatureAttributeNames":["col1", "col2", ...] }.
	//
	// You can also specify the data type of the feature (optional) in the format
	// shown below:
	//
	// { "FeatureDataTypes":{"col1":"numeric", "col2":"categorical" ... } }
	//
	// Autopilot supports the following data types: numeric, categorical, text,
	// and datetime.
	//
	// These column keys must not include any column set in TimeSeriesConfig.
	FeatureSpecificationS3Uri *string `type:"string"`

	// The frequency of predictions in a forecast.
	//
	// Valid intervals are an integer followed by Y (Year), M (Month), W (Week),
	// D (Day), H (Hour), and min (Minute). For example, 1D indicates every day
	// and 15min indicates every 15 minutes. The value of a frequency must not overlap
	// with the next larger frequency. For example, you must use a frequency of
	// 1H instead of 60min.
	//
	// The valid values for each frequency are the following:
	//
	//    * Minute - 1-59
	//
	//    * Hour - 1-23
	//
	//    * Day - 1-6
	//
	//    * Week - 1-4
	//
	//    * Month - 1-11
	//
	//    * Year - 1
	//
	// ForecastFrequency is a required field
	ForecastFrequency *string `min:"1" type:"string" required:"true"`

	// The number of time-steps that the model predicts. The forecast horizon is
	// also called the prediction length. The maximum forecast horizon is the lesser
	// of 500 time-steps or 1/4 of the time-steps in the dataset.
	//
	// ForecastHorizon is a required field
	ForecastHorizon *int64 `min:"1" type:"integer" required:"true"`

	// The quantiles used to train the model for forecasts at a specified quantile.
	// You can specify quantiles from 0.01 (p1) to 0.99 (p99), by increments of
	// 0.01 or higher. Up to five forecast quantiles can be specified. When ForecastQuantiles
	// is not provided, the AutoML job uses the quantiles p10, p50, and p90 as default.
	ForecastQuantiles []*string `min:"1" type:"list"`

	// The collection of holiday featurization attributes used to incorporate national
	// holiday information into your forecasting model.
	HolidayConfig []*HolidayConfigAttributes `min:"1" type:"list"`

	// The collection of components that defines the time-series.
	//
	// TimeSeriesConfig is a required field
	TimeSeriesConfig *TimeSeriesConfig `type:"structure" required:"true"`

	// The transformations modifying specific attributes of the time-series, such
	// as filling strategies for missing values.
	Transformations *TimeSeriesTransformations `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TimeSeriesForecastingJobConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TimeSeriesForecastingJobConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TimeSeriesForecastingJobConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TimeSeriesForecastingJobConfig"}
	if s.ForecastFrequency == nil {
		invalidParams.Add(request.NewErrParamRequired("ForecastFrequency"))
	}
	if s.ForecastFrequency != nil && len(*s.ForecastFrequency) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ForecastFrequency", 1))
	}
	if s.ForecastHorizon == nil {
		invalidParams.Add(request.NewErrParamRequired("ForecastHorizon"))
	}
	if s.ForecastHorizon != nil && *s.ForecastHorizon < 1 {
		invalidParams.Add(request.NewErrParamMinValue("ForecastHorizon", 1))
	}
	if s.ForecastQuantiles != nil && len(s.ForecastQuantiles) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ForecastQuantiles", 1))
	}
	if s.HolidayConfig != nil && len(s.HolidayConfig) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("HolidayConfig", 1))
	}
	if s.TimeSeriesConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("TimeSeriesConfig"))
	}
	if s.CompletionCriteria != nil {
		if err := s.CompletionCriteria.Validate(); err != nil {
			invalidParams.AddNested("CompletionCriteria", err.(request.ErrInvalidParams))
		}
	}
	if s.HolidayConfig != nil {
		for i, v := range s.HolidayConfig {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "HolidayConfig", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.TimeSeriesConfig != nil {
		if err := s.TimeSeriesConfig.Validate(); err != nil {
			invalidParams.AddNested("TimeSeriesConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.Transformations != nil {
		if err := s.Transformations.Validate(); err != nil {
			invalidParams.AddNested("Transformations", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCompletionCriteria sets the CompletionCriteria field's value.
func (s *TimeSeriesForecastingJobConfig) SetCompletionCriteria(v *AutoMLJobCompletionCriteria) *TimeSeriesForecastingJobConfig {
	s.CompletionCriteria = v
	return s
}

// SetFeatureSpecificationS3Uri sets the FeatureSpecificationS3Uri field's value.
func (s *TimeSeriesForecastingJobConfig) SetFeatureSpecificationS3Uri(v string) *TimeSeriesForecastingJobConfig {
	s.FeatureSpecificationS3Uri = &v
	return s
}

// SetForecastFrequency sets the ForecastFrequency field's value.
func (s *TimeSeriesForecastingJobConfig) SetForecastFrequency(v string) *TimeSeriesForecastingJobConfig {
	s.ForecastFrequency = &v
	return s
}

// SetForecastHorizon sets the ForecastHorizon field's value.
func (s *TimeSeriesForecastingJobConfig) SetForecastHorizon(v int64) *TimeSeriesForecastingJobConfig {
	s.ForecastHorizon = &v
	return s
}

// SetForecastQuantiles sets the ForecastQuantiles field's value.
func (s *TimeSeriesForecastingJobConfig) SetForecastQuantiles(v []*string) *TimeSeriesForecastingJobConfig {
	s.ForecastQuantiles = v
	return s
}

// SetHolidayConfig sets the HolidayConfig field's value.
func (s *TimeSeriesForecastingJobConfig) SetHolidayConfig(v []*HolidayConfigAttributes) *TimeSeriesForecastingJobConfig {
	s.HolidayConfig = v
	return s
}

// SetTimeSeriesConfig sets the TimeSeriesConfig field's value.
func (s *TimeSeriesForecastingJobConfig) SetTimeSeriesConfig(v *TimeSeriesConfig) *TimeSeriesForecastingJobConfig {
	s.TimeSeriesConfig = v
	return s
}

// SetTransformations sets the Transformations field's value.
func (s *TimeSeriesForecastingJobConfig) SetTransformations(v *TimeSeriesTransformations) *TimeSeriesForecastingJobConfig {
	s.Transformations = v
	return s
}

// Time series forecast settings for the SageMaker Canvas application.
type TimeSeriesForecastingSettings struct {
	_ struct{} `type:"structure"`

	// The IAM role that Canvas passes to Amazon Forecast for time series forecasting.
	// By default, Canvas uses the execution role specified in the UserProfile that
	// launches the Canvas application. If an execution role is not specified in
	// the UserProfile, Canvas uses the execution role specified in the Domain that
	// owns the UserProfile. To allow time series forecasting, this IAM role should
	// have the AmazonSageMakerCanvasForecastAccess (https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasForecastAccess)
	// policy attached and forecast.amazonaws.com added in the trust relationship
	// as a service principal.
	AmazonForecastRoleArn *string `min:"20" type:"string"`

	// Describes whether time series forecasting is enabled or disabled in the Canvas
	// application.
	Status *string `type:"string" enum:"FeatureStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TimeSeriesForecastingSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TimeSeriesForecastingSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TimeSeriesForecastingSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TimeSeriesForecastingSettings"}
	if s.AmazonForecastRoleArn != nil && len(*s.AmazonForecastRoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("AmazonForecastRoleArn", 20))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAmazonForecastRoleArn sets the AmazonForecastRoleArn field's value.
func (s *TimeSeriesForecastingSettings) SetAmazonForecastRoleArn(v string) *TimeSeriesForecastingSettings {
	s.AmazonForecastRoleArn = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *TimeSeriesForecastingSettings) SetStatus(v string) *TimeSeriesForecastingSettings {
	s.Status = &v
	return s
}

// Transformations allowed on the dataset. Supported transformations are Filling
// and Aggregation. Filling specifies how to add values to missing values in
// the dataset. Aggregation defines how to aggregate data that does not align
// with forecast frequency.
type TimeSeriesTransformations struct {
	_ struct{} `type:"structure"`

	// A key value pair defining the aggregation method for a column, where the
	// key is the column name and the value is the aggregation method.
	//
	// The supported aggregation methods are sum (default), avg, first, min, max.
	//
	// Aggregation is only supported for the target column.
	Aggregation map[string]*string `min:"1" type:"map"`

	// A key value pair defining the filling method for a column, where the key
	// is the column name and the value is an object which defines the filling logic.
	// You can specify multiple filling methods for a single column.
	//
	// The supported filling methods and their corresponding options are:
	//
	//    * frontfill: none (Supported only for target column)
	//
	//    * middlefill: zero, value, median, mean, min, max
	//
	//    * backfill: zero, value, median, mean, min, max
	//
	//    * futurefill: zero, value, median, mean, min, max
	//
	// To set a filling method to a specific value, set the fill parameter to the
	// chosen filling method value (for example "backfill" : "value"), and define
	// the filling value in an additional parameter prefixed with "_value". For
	// example, to set backfill to a value of 2, you must include two parameters:
	// "backfill": "value" and "backfill_value":"2".
	Filling map[string]map[string]*string `min:"1" type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TimeSeriesTransformations) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TimeSeriesTransformations) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TimeSeriesTransformations) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TimeSeriesTransformations"}
	if s.Aggregation != nil && len(s.Aggregation) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Aggregation", 1))
	}
	if s.Filling != nil && len(s.Filling) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Filling", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAggregation sets the Aggregation field's value.
func (s *TimeSeriesTransformations) SetAggregation(v map[string]*string) *TimeSeriesTransformations {
	s.Aggregation = v
	return s
}

// SetFilling sets the Filling field's value.
func (s *TimeSeriesTransformations) SetFilling(v map[string]map[string]*string) *TimeSeriesTransformations {
	s.Filling = v
	return s
}

// Defines the traffic pattern of the load test.
type TrafficPattern struct {
	_ struct{} `type:"structure"`

	// Defines the phases traffic specification.
	Phases []*Phase `min:"1" type:"list"`

	// Defines the stairs traffic pattern.
	Stairs *Stairs `type:"structure"`

	// Defines the traffic patterns. Choose either PHASES or STAIRS.
	TrafficType *string `type:"string" enum:"TrafficType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrafficPattern) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrafficPattern) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TrafficPattern) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TrafficPattern"}
	if s.Phases != nil && len(s.Phases) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Phases", 1))
	}
	if s.Phases != nil {
		for i, v := range s.Phases {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Phases", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.Stairs != nil {
		if err := s.Stairs.Validate(); err != nil {
			invalidParams.AddNested("Stairs", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetPhases sets the Phases field's value.
func (s *TrafficPattern) SetPhases(v []*Phase) *TrafficPattern {
	s.Phases = v
	return s
}

// SetStairs sets the Stairs field's value.
func (s *TrafficPattern) SetStairs(v *Stairs) *TrafficPattern {
	s.Stairs = v
	return s
}

// SetTrafficType sets the TrafficType field's value.
func (s *TrafficPattern) SetTrafficType(v string) *TrafficPattern {
	s.TrafficType = &v
	return s
}

// Defines the traffic routing strategy during an endpoint deployment to shift
// traffic from the old fleet to the new fleet.
type TrafficRoutingConfig struct {
	_ struct{} `type:"structure"`

	// Batch size for the first step to turn on traffic on the new endpoint fleet.
	// Value must be less than or equal to 50% of the variant's total instance count.
	CanarySize *CapacitySize `type:"structure"`

	// Batch size for each step to turn on traffic on the new endpoint fleet. Value
	// must be 10-50% of the variant's total instance count.
	LinearStepSize *CapacitySize `type:"structure"`

	// Traffic routing strategy type.
	//
	//    * ALL_AT_ONCE: Endpoint traffic shifts to the new fleet in a single step.
	//
	//    * CANARY: Endpoint traffic shifts to the new fleet in two steps. The first
	//    step is the canary, which is a small portion of the traffic. The second
	//    step is the remainder of the traffic.
	//
	//    * LINEAR: Endpoint traffic shifts to the new fleet in n steps of a configurable
	//    size.
	//
	// Type is a required field
	Type *string `type:"string" required:"true" enum:"TrafficRoutingConfigType"`

	// The waiting time (in seconds) between incremental steps to turn on traffic
	// on the new endpoint fleet.
	//
	// WaitIntervalInSeconds is a required field
	WaitIntervalInSeconds *int64 `type:"integer" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrafficRoutingConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrafficRoutingConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TrafficRoutingConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TrafficRoutingConfig"}
	if s.Type == nil {
		invalidParams.Add(request.NewErrParamRequired("Type"))
	}
	if s.WaitIntervalInSeconds == nil {
		invalidParams.Add(request.NewErrParamRequired("WaitIntervalInSeconds"))
	}
	if s.CanarySize != nil {
		if err := s.CanarySize.Validate(); err != nil {
			invalidParams.AddNested("CanarySize", err.(request.ErrInvalidParams))
		}
	}
	if s.LinearStepSize != nil {
		if err := s.LinearStepSize.Validate(); err != nil {
			invalidParams.AddNested("LinearStepSize", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCanarySize sets the CanarySize field's value.
func (s *TrafficRoutingConfig) SetCanarySize(v *CapacitySize) *TrafficRoutingConfig {
	s.CanarySize = v
	return s
}

// SetLinearStepSize sets the LinearStepSize field's value.
func (s *TrafficRoutingConfig) SetLinearStepSize(v *CapacitySize) *TrafficRoutingConfig {
	s.LinearStepSize = v
	return s
}

// SetType sets the Type field's value.
func (s *TrafficRoutingConfig) SetType(v string) *TrafficRoutingConfig {
	s.Type = &v
	return s
}

// SetWaitIntervalInSeconds sets the WaitIntervalInSeconds field's value.
func (s *TrafficRoutingConfig) SetWaitIntervalInSeconds(v int64) *TrafficRoutingConfig {
	s.WaitIntervalInSeconds = &v
	return s
}

// The configuration to use an image from a private Docker registry for a training
// job.
type TrainingImageConfig struct {
	_ struct{} `type:"structure"`

	// The method that your training job will use to gain access to the images in
	// your private Docker registry. For access to an image in a private Docker
	// registry, set to Vpc.
	//
	// TrainingRepositoryAccessMode is a required field
	TrainingRepositoryAccessMode *string `type:"string" required:"true" enum:"TrainingRepositoryAccessMode"`

	// An object containing authentication information for a private Docker registry
	// containing your training images.
	TrainingRepositoryAuthConfig *TrainingRepositoryAuthConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrainingImageConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrainingImageConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TrainingImageConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TrainingImageConfig"}
	if s.TrainingRepositoryAccessMode == nil {
		invalidParams.Add(request.NewErrParamRequired("TrainingRepositoryAccessMode"))
	}
	if s.TrainingRepositoryAuthConfig != nil {
		if err := s.TrainingRepositoryAuthConfig.Validate(); err != nil {
			invalidParams.AddNested("TrainingRepositoryAuthConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetTrainingRepositoryAccessMode sets the TrainingRepositoryAccessMode field's value.
func (s *TrainingImageConfig) SetTrainingRepositoryAccessMode(v string) *TrainingImageConfig {
	s.TrainingRepositoryAccessMode = &v
	return s
}

// SetTrainingRepositoryAuthConfig sets the TrainingRepositoryAuthConfig field's value.
func (s *TrainingImageConfig) SetTrainingRepositoryAuthConfig(v *TrainingRepositoryAuthConfig) *TrainingImageConfig {
	s.TrainingRepositoryAuthConfig = v
	return s
}

// Contains information about a training job.
type TrainingJob struct {
	_ struct{} `type:"structure"`

	// Information about the algorithm used for training, and algorithm metadata.
	AlgorithmSpecification *AlgorithmSpecification `type:"structure"`

	// The Amazon Resource Name (ARN) of the job.
	AutoMLJobArn *string `min:"1" type:"string"`

	// The billable time in seconds.
	BillableTimeInSeconds *int64 `min:"1" type:"integer"`

	// Contains information about the output location for managed spot training
	// checkpoint data.
	CheckpointConfig *CheckpointConfig `type:"structure"`

	// A timestamp that indicates when the training job was created.
	CreationTime *time.Time `type:"timestamp"`

	// Configuration information for the Amazon SageMaker Debugger hook parameters,
	// metric and tensor collections, and storage paths. To learn more about how
	// to configure the DebugHookConfig parameter, see Use the SageMaker and Debugger
	// Configuration API Operations to Create, Update, and Debug Your Training Job
	// (https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html).
	DebugHookConfig *DebugHookConfig `type:"structure"`

	// Information about the debug rule configuration.
	DebugRuleConfigurations []*DebugRuleConfiguration `type:"list"`

	// Information about the evaluation status of the rules for the training job.
	DebugRuleEvaluationStatuses []*DebugRuleEvaluationStatus `type:"list"`

	// To encrypt all communications between ML compute instances in distributed
	// training, choose True. Encryption provides greater security for distributed
	// training, but training might take longer. How long it takes depends on the
	// amount of communication between compute instances, especially if you use
	// a deep learning algorithm in distributed training.
	EnableInterContainerTrafficEncryption *bool `type:"boolean"`

	// When true, enables managed spot training using Amazon EC2 Spot instances
	// to run training jobs instead of on-demand instances. For more information,
	// see Managed Spot Training (https://docs.aws.amazon.com/sagemaker/latest/dg/model-managed-spot-training.html).
	EnableManagedSpotTraining *bool `type:"boolean"`

	// If the TrainingJob was created with network isolation, the value is set to
	// true. If network isolation is enabled, nodes can't communicate beyond the
	// VPC they run in.
	EnableNetworkIsolation *bool `type:"boolean"`

	// The environment variables to set in the Docker container.
	Environment map[string]*string `type:"map"`

	// Associates a SageMaker job as a trial component with an experiment and trial.
	// Specified when you call the following APIs:
	//
	//    * CreateProcessingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html)
	//
	//    * CreateTrainingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)
	//
	//    * CreateTransformJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html)
	ExperimentConfig *ExperimentConfig `type:"structure"`

	// If the training job failed, the reason it failed.
	FailureReason *string `type:"string"`

	// A list of final metric values that are set when the training job completes.
	// Used only if the training job was configured to use metrics.
	FinalMetricDataList []*MetricData `type:"list"`

	// Algorithm-specific parameters.
	HyperParameters map[string]*string `type:"map"`

	// An array of Channel objects that describes each data input channel.
	//
	// Your input must be in the same Amazon Web Services region as your training
	// job.
	InputDataConfig []*Channel `min:"1" type:"list"`

	// The Amazon Resource Name (ARN) of the labeling job.
	LabelingJobArn *string `type:"string"`

	// A timestamp that indicates when the status of the training job was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// Information about the Amazon S3 location that is configured for storing model
	// artifacts.
	ModelArtifacts *ModelArtifacts `type:"structure"`

	// The S3 path where model artifacts that you configured when creating the job
	// are stored. SageMaker creates subfolders for model artifacts.
	OutputDataConfig *OutputDataConfig `type:"structure"`

	// Configuration information for Amazon SageMaker Debugger system monitoring,
	// framework profiling, and storage paths.
	ProfilerConfig *ProfilerConfig `type:"structure"`

	// Resources, including ML compute instances and ML storage volumes, that are
	// configured for model training.
	ResourceConfig *ResourceConfig `type:"structure"`

	// The number of times to retry the job when the job fails due to an InternalServerError.
	RetryStrategy *RetryStrategy `type:"structure"`

	// The Amazon Web Services Identity and Access Management (IAM) role configured
	// for the training job.
	RoleArn *string `min:"20" type:"string"`

	// Provides detailed information about the state of the training job. For detailed
	// information about the secondary status of the training job, see StatusMessage
	// under SecondaryStatusTransition (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SecondaryStatusTransition.html).
	//
	// SageMaker provides primary statuses and secondary statuses that apply to
	// each of them:
	//
	// InProgress
	//
	//    * Starting - Starting the training job.
	//
	//    * Downloading - An optional stage for algorithms that support File training
	//    input mode. It indicates that data is being downloaded to the ML storage
	//    volumes.
	//
	//    * Training - Training is in progress.
	//
	//    * Uploading - Training is complete and the model artifacts are being uploaded
	//    to the S3 location.
	//
	// Completed
	//
	//    * Completed - The training job has completed.
	//
	// Failed
	//
	//    * Failed - The training job has failed. The reason for the failure is
	//    returned in the FailureReason field of DescribeTrainingJobResponse.
	//
	// Stopped
	//
	//    * MaxRuntimeExceeded - The job stopped because it exceeded the maximum
	//    allowed runtime.
	//
	//    * Stopped - The training job has stopped.
	//
	// Stopping
	//
	//    * Stopping - Stopping the training job.
	//
	// Valid values for SecondaryStatus are subject to change.
	//
	// We no longer support the following secondary statuses:
	//
	//    * LaunchingMLInstances
	//
	//    * PreparingTrainingStack
	//
	//    * DownloadingTrainingImage
	SecondaryStatus *string `type:"string" enum:"SecondaryStatus"`

	// A history of all of the secondary statuses that the training job has transitioned
	// through.
	SecondaryStatusTransitions []*SecondaryStatusTransition `type:"list"`

	// Specifies a limit to how long a model training job can run. It also specifies
	// how long a managed Spot training job has to complete. When the job reaches
	// the time limit, SageMaker ends the training job. Use this API to cap model
	// training costs.
	//
	// To stop a job, SageMaker sends the algorithm the SIGTERM signal, which delays
	// job termination for 120 seconds. Algorithms can use this 120-second window
	// to save the model artifacts, so the results of training are not lost.
	StoppingCondition *StoppingCondition `type:"structure"`

	// An array of key-value pairs. You can use tags to categorize your Amazon Web
	// Services resources in different ways, for example, by purpose, owner, or
	// environment. For more information, see Tagging Amazon Web Services Resources
	// (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).
	Tags []*Tag `type:"list"`

	// Configuration of storage locations for the Amazon SageMaker Debugger TensorBoard
	// output data.
	TensorBoardOutputConfig *TensorBoardOutputConfig `type:"structure"`

	// Indicates the time when the training job ends on training instances. You
	// are billed for the time interval between the value of TrainingStartTime and
	// this time. For successful jobs and stopped jobs, this is the time after model
	// artifacts are uploaded. For failed jobs, this is the time when SageMaker
	// detects a job failure.
	TrainingEndTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the training job.
	TrainingJobArn *string `type:"string"`

	// The name of the training job.
	TrainingJobName *string `min:"1" type:"string"`

	// The status of the training job.
	//
	// Training job statuses are:
	//
	//    * InProgress - The training is in progress.
	//
	//    * Completed - The training job has completed.
	//
	//    * Failed - The training job has failed. To see the reason for the failure,
	//    see the FailureReason field in the response to a DescribeTrainingJobResponse
	//    call.
	//
	//    * Stopping - The training job is stopping.
	//
	//    * Stopped - The training job has stopped.
	//
	// For more detailed information, see SecondaryStatus.
	TrainingJobStatus *string `type:"string" enum:"TrainingJobStatus"`

	// Indicates the time when the training job starts on training instances. You
	// are billed for the time interval between this time and the value of TrainingEndTime.
	// The start time in CloudWatch Logs might be later than this time. The difference
	// is due to the time it takes to download the training data and to the size
	// of the training container.
	TrainingStartTime *time.Time `type:"timestamp"`

	// The training time in seconds.
	TrainingTimeInSeconds *int64 `min:"1" type:"integer"`

	// The Amazon Resource Name (ARN) of the associated hyperparameter tuning job
	// if the training job was launched by a hyperparameter tuning job.
	TuningJobArn *string `type:"string"`

	// A VpcConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html)
	// object that specifies the VPC that this training job has access to. For more
	// information, see Protect Training Jobs by Using an Amazon Virtual Private
	// Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html).
	VpcConfig *VpcConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrainingJob) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrainingJob) GoString() string {
	return s.String()
}

// SetAlgorithmSpecification sets the AlgorithmSpecification field's value.
func (s *TrainingJob) SetAlgorithmSpecification(v *AlgorithmSpecification) *TrainingJob {
	s.AlgorithmSpecification = v
	return s
}

// SetAutoMLJobArn sets the AutoMLJobArn field's value.
func (s *TrainingJob) SetAutoMLJobArn(v string) *TrainingJob {
	s.AutoMLJobArn = &v
	return s
}

// SetBillableTimeInSeconds sets the BillableTimeInSeconds field's value.
func (s *TrainingJob) SetBillableTimeInSeconds(v int64) *TrainingJob {
	s.BillableTimeInSeconds = &v
	return s
}

// SetCheckpointConfig sets the CheckpointConfig field's value.
func (s *TrainingJob) SetCheckpointConfig(v *CheckpointConfig) *TrainingJob {
	s.CheckpointConfig = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *TrainingJob) SetCreationTime(v time.Time) *TrainingJob {
	s.CreationTime = &v
	return s
}

// SetDebugHookConfig sets the DebugHookConfig field's value.
func (s *TrainingJob) SetDebugHookConfig(v *DebugHookConfig) *TrainingJob {
	s.DebugHookConfig = v
	return s
}

// SetDebugRuleConfigurations sets the DebugRuleConfigurations field's value.
func (s *TrainingJob) SetDebugRuleConfigurations(v []*DebugRuleConfiguration) *TrainingJob {
	s.DebugRuleConfigurations = v
	return s
}

// SetDebugRuleEvaluationStatuses sets the DebugRuleEvaluationStatuses field's value.
func (s *TrainingJob) SetDebugRuleEvaluationStatuses(v []*DebugRuleEvaluationStatus) *TrainingJob {
	s.DebugRuleEvaluationStatuses = v
	return s
}

// SetEnableInterContainerTrafficEncryption sets the EnableInterContainerTrafficEncryption field's value.
func (s *TrainingJob) SetEnableInterContainerTrafficEncryption(v bool) *TrainingJob {
	s.EnableInterContainerTrafficEncryption = &v
	return s
}

// SetEnableManagedSpotTraining sets the EnableManagedSpotTraining field's value.
func (s *TrainingJob) SetEnableManagedSpotTraining(v bool) *TrainingJob {
	s.EnableManagedSpotTraining = &v
	return s
}

// SetEnableNetworkIsolation sets the EnableNetworkIsolation field's value.
func (s *TrainingJob) SetEnableNetworkIsolation(v bool) *TrainingJob {
	s.EnableNetworkIsolation = &v
	return s
}

// SetEnvironment sets the Environment field's value.
func (s *TrainingJob) SetEnvironment(v map[string]*string) *TrainingJob {
	s.Environment = v
	return s
}

// SetExperimentConfig sets the ExperimentConfig field's value.
func (s *TrainingJob) SetExperimentConfig(v *ExperimentConfig) *TrainingJob {
	s.ExperimentConfig = v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *TrainingJob) SetFailureReason(v string) *TrainingJob {
	s.FailureReason = &v
	return s
}

// SetFinalMetricDataList sets the FinalMetricDataList field's value.
func (s *TrainingJob) SetFinalMetricDataList(v []*MetricData) *TrainingJob {
	s.FinalMetricDataList = v
	return s
}

// SetHyperParameters sets the HyperParameters field's value.
func (s *TrainingJob) SetHyperParameters(v map[string]*string) *TrainingJob {
	s.HyperParameters = v
	return s
}

// SetInputDataConfig sets the InputDataConfig field's value.
func (s *TrainingJob) SetInputDataConfig(v []*Channel) *TrainingJob {
	s.InputDataConfig = v
	return s
}

// SetLabelingJobArn sets the LabelingJobArn field's value.
func (s *TrainingJob) SetLabelingJobArn(v string) *TrainingJob {
	s.LabelingJobArn = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *TrainingJob) SetLastModifiedTime(v time.Time) *TrainingJob {
	s.LastModifiedTime = &v
	return s
}

// SetModelArtifacts sets the ModelArtifacts field's value.
func (s *TrainingJob) SetModelArtifacts(v *ModelArtifacts) *TrainingJob {
	s.ModelArtifacts = v
	return s
}

// SetOutputDataConfig sets the OutputDataConfig field's value.
func (s *TrainingJob) SetOutputDataConfig(v *OutputDataConfig) *TrainingJob {
	s.OutputDataConfig = v
	return s
}

// SetProfilerConfig sets the ProfilerConfig field's value.
func (s *TrainingJob) SetProfilerConfig(v *ProfilerConfig) *TrainingJob {
	s.ProfilerConfig = v
	return s
}

// SetResourceConfig sets the ResourceConfig field's value.
func (s *TrainingJob) SetResourceConfig(v *ResourceConfig) *TrainingJob {
	s.ResourceConfig = v
	return s
}

// SetRetryStrategy sets the RetryStrategy field's value.
func (s *TrainingJob) SetRetryStrategy(v *RetryStrategy) *TrainingJob {
	s.RetryStrategy = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *TrainingJob) SetRoleArn(v string) *TrainingJob {
	s.RoleArn = &v
	return s
}

// SetSecondaryStatus sets the SecondaryStatus field's value.
func (s *TrainingJob) SetSecondaryStatus(v string) *TrainingJob {
	s.SecondaryStatus = &v
	return s
}

// SetSecondaryStatusTransitions sets the SecondaryStatusTransitions field's value.
func (s *TrainingJob) SetSecondaryStatusTransitions(v []*SecondaryStatusTransition) *TrainingJob {
	s.SecondaryStatusTransitions = v
	return s
}

// SetStoppingCondition sets the StoppingCondition field's value.
func (s *TrainingJob) SetStoppingCondition(v *StoppingCondition) *TrainingJob {
	s.StoppingCondition = v
	return s
}

// SetTags sets the Tags field's value.
func (s *TrainingJob) SetTags(v []*Tag) *TrainingJob {
	s.Tags = v
	return s
}

// SetTensorBoardOutputConfig sets the TensorBoardOutputConfig field's value.
func (s *TrainingJob) SetTensorBoardOutputConfig(v *TensorBoardOutputConfig) *TrainingJob {
	s.TensorBoardOutputConfig = v
	return s
}

// SetTrainingEndTime sets the TrainingEndTime field's value.
func (s *TrainingJob) SetTrainingEndTime(v time.Time) *TrainingJob {
	s.TrainingEndTime = &v
	return s
}

// SetTrainingJobArn sets the TrainingJobArn field's value.
func (s *TrainingJob) SetTrainingJobArn(v string) *TrainingJob {
	s.TrainingJobArn = &v
	return s
}

// SetTrainingJobName sets the TrainingJobName field's value.
func (s *TrainingJob) SetTrainingJobName(v string) *TrainingJob {
	s.TrainingJobName = &v
	return s
}

// SetTrainingJobStatus sets the TrainingJobStatus field's value.
func (s *TrainingJob) SetTrainingJobStatus(v string) *TrainingJob {
	s.TrainingJobStatus = &v
	return s
}

// SetTrainingStartTime sets the TrainingStartTime field's value.
func (s *TrainingJob) SetTrainingStartTime(v time.Time) *TrainingJob {
	s.TrainingStartTime = &v
	return s
}

// SetTrainingTimeInSeconds sets the TrainingTimeInSeconds field's value.
func (s *TrainingJob) SetTrainingTimeInSeconds(v int64) *TrainingJob {
	s.TrainingTimeInSeconds = &v
	return s
}

// SetTuningJobArn sets the TuningJobArn field's value.
func (s *TrainingJob) SetTuningJobArn(v string) *TrainingJob {
	s.TuningJobArn = &v
	return s
}

// SetVpcConfig sets the VpcConfig field's value.
func (s *TrainingJob) SetVpcConfig(v *VpcConfig) *TrainingJob {
	s.VpcConfig = v
	return s
}

// Defines the input needed to run a training job using the algorithm.
type TrainingJobDefinition struct {
	_ struct{} `type:"structure"`

	// The hyperparameters used for the training job.
	HyperParameters map[string]*string `type:"map"`

	// An array of Channel objects, each of which specifies an input source.
	//
	// InputDataConfig is a required field
	InputDataConfig []*Channel `min:"1" type:"list" required:"true"`

	// the path to the S3 bucket where you want to store model artifacts. SageMaker
	// creates subfolders for the artifacts.
	//
	// OutputDataConfig is a required field
	OutputDataConfig *OutputDataConfig `type:"structure" required:"true"`

	// The resources, including the ML compute instances and ML storage volumes,
	// to use for model training.
	//
	// ResourceConfig is a required field
	ResourceConfig *ResourceConfig `type:"structure" required:"true"`

	// Specifies a limit to how long a model training job can run. It also specifies
	// how long a managed Spot training job has to complete. When the job reaches
	// the time limit, SageMaker ends the training job. Use this API to cap model
	// training costs.
	//
	// To stop a job, SageMaker sends the algorithm the SIGTERM signal, which delays
	// job termination for 120 seconds. Algorithms can use this 120-second window
	// to save the model artifacts.
	//
	// StoppingCondition is a required field
	StoppingCondition *StoppingCondition `type:"structure" required:"true"`

	// The training input mode that the algorithm supports. For more information
	// about input modes, see Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html).
	//
	// Pipe mode
	//
	// If an algorithm supports Pipe mode, Amazon SageMaker streams data directly
	// from Amazon S3 to the container.
	//
	// File mode
	//
	// If an algorithm supports File mode, SageMaker downloads the training data
	// from S3 to the provisioned ML storage volume, and mounts the directory to
	// the Docker volume for the training container.
	//
	// You must provision the ML storage volume with sufficient capacity to accommodate
	// the data downloaded from S3. In addition to the training data, the ML storage
	// volume also stores the output model. The algorithm container uses the ML
	// storage volume to also store intermediate information, if any.
	//
	// For distributed algorithms, training data is distributed uniformly. Your
	// training duration is predictable if the input data objects sizes are approximately
	// the same. SageMaker does not split the files any further for model training.
	// If the object sizes are skewed, training won't be optimal as the data distribution
	// is also skewed when one host in a training cluster is overloaded, thus becoming
	// a bottleneck in training.
	//
	// FastFile mode
	//
	// If an algorithm supports FastFile mode, SageMaker streams data directly from
	// S3 to the container with no code changes, and provides file system access
	// to the data. Users can author their training script to interact with these
	// files as if they were stored on disk.
	//
	// FastFile mode works best when the data is read sequentially. Augmented manifest
	// files aren't supported. The startup time is lower when there are fewer files
	// in the S3 bucket provided.
	//
	// TrainingInputMode is a required field
	TrainingInputMode *string `type:"string" required:"true" enum:"TrainingInputMode"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrainingJobDefinition) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrainingJobDefinition) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TrainingJobDefinition) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TrainingJobDefinition"}
	if s.InputDataConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("InputDataConfig"))
	}
	if s.InputDataConfig != nil && len(s.InputDataConfig) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("InputDataConfig", 1))
	}
	if s.OutputDataConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("OutputDataConfig"))
	}
	if s.ResourceConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("ResourceConfig"))
	}
	if s.StoppingCondition == nil {
		invalidParams.Add(request.NewErrParamRequired("StoppingCondition"))
	}
	if s.TrainingInputMode == nil {
		invalidParams.Add(request.NewErrParamRequired("TrainingInputMode"))
	}
	if s.InputDataConfig != nil {
		for i, v := range s.InputDataConfig {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InputDataConfig", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.OutputDataConfig != nil {
		if err := s.OutputDataConfig.Validate(); err != nil {
			invalidParams.AddNested("OutputDataConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.ResourceConfig != nil {
		if err := s.ResourceConfig.Validate(); err != nil {
			invalidParams.AddNested("ResourceConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.StoppingCondition != nil {
		if err := s.StoppingCondition.Validate(); err != nil {
			invalidParams.AddNested("StoppingCondition", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetHyperParameters sets the HyperParameters field's value.
func (s *TrainingJobDefinition) SetHyperParameters(v map[string]*string) *TrainingJobDefinition {
	s.HyperParameters = v
	return s
}

// SetInputDataConfig sets the InputDataConfig field's value.
func (s *TrainingJobDefinition) SetInputDataConfig(v []*Channel) *TrainingJobDefinition {
	s.InputDataConfig = v
	return s
}

// SetOutputDataConfig sets the OutputDataConfig field's value.
func (s *TrainingJobDefinition) SetOutputDataConfig(v *OutputDataConfig) *TrainingJobDefinition {
	s.OutputDataConfig = v
	return s
}

// SetResourceConfig sets the ResourceConfig field's value.
func (s *TrainingJobDefinition) SetResourceConfig(v *ResourceConfig) *TrainingJobDefinition {
	s.ResourceConfig = v
	return s
}

// SetStoppingCondition sets the StoppingCondition field's value.
func (s *TrainingJobDefinition) SetStoppingCondition(v *StoppingCondition) *TrainingJobDefinition {
	s.StoppingCondition = v
	return s
}

// SetTrainingInputMode sets the TrainingInputMode field's value.
func (s *TrainingJobDefinition) SetTrainingInputMode(v string) *TrainingJobDefinition {
	s.TrainingInputMode = &v
	return s
}

// The numbers of training jobs launched by a hyperparameter tuning job, categorized
// by status.
type TrainingJobStatusCounters struct {
	_ struct{} `type:"structure"`

	// The number of completed training jobs launched by the hyperparameter tuning
	// job.
	Completed *int64 `type:"integer"`

	// The number of in-progress training jobs launched by a hyperparameter tuning
	// job.
	InProgress *int64 `type:"integer"`

	// The number of training jobs that failed and can't be retried. A failed training
	// job can't be retried if it failed because a client error occurred.
	NonRetryableError *int64 `type:"integer"`

	// The number of training jobs that failed, but can be retried. A failed training
	// job can be retried only if it failed because an internal service error occurred.
	RetryableError *int64 `type:"integer"`

	// The number of training jobs launched by a hyperparameter tuning job that
	// were manually stopped.
	Stopped *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrainingJobStatusCounters) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrainingJobStatusCounters) GoString() string {
	return s.String()
}

// SetCompleted sets the Completed field's value.
func (s *TrainingJobStatusCounters) SetCompleted(v int64) *TrainingJobStatusCounters {
	s.Completed = &v
	return s
}

// SetInProgress sets the InProgress field's value.
func (s *TrainingJobStatusCounters) SetInProgress(v int64) *TrainingJobStatusCounters {
	s.InProgress = &v
	return s
}

// SetNonRetryableError sets the NonRetryableError field's value.
func (s *TrainingJobStatusCounters) SetNonRetryableError(v int64) *TrainingJobStatusCounters {
	s.NonRetryableError = &v
	return s
}

// SetRetryableError sets the RetryableError field's value.
func (s *TrainingJobStatusCounters) SetRetryableError(v int64) *TrainingJobStatusCounters {
	s.RetryableError = &v
	return s
}

// SetStopped sets the Stopped field's value.
func (s *TrainingJobStatusCounters) SetStopped(v int64) *TrainingJobStatusCounters {
	s.Stopped = &v
	return s
}

// Metadata for a training job step.
type TrainingJobStepMetadata struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the training job that was run by this step
	// execution.
	Arn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrainingJobStepMetadata) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrainingJobStepMetadata) GoString() string {
	return s.String()
}

// SetArn sets the Arn field's value.
func (s *TrainingJobStepMetadata) SetArn(v string) *TrainingJobStepMetadata {
	s.Arn = &v
	return s
}

// Provides summary information about a training job.
type TrainingJobSummary struct {
	_ struct{} `type:"structure"`

	// A timestamp that shows when the training job was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// Timestamp when the training job was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// A timestamp that shows when the training job ended. This field is set only
	// if the training job has one of the terminal statuses (Completed, Failed,
	// or Stopped).
	TrainingEndTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the training job.
	//
	// TrainingJobArn is a required field
	TrainingJobArn *string `type:"string" required:"true"`

	// The name of the training job that you want a summary for.
	//
	// TrainingJobName is a required field
	TrainingJobName *string `min:"1" type:"string" required:"true"`

	// The status of the training job.
	//
	// TrainingJobStatus is a required field
	TrainingJobStatus *string `type:"string" required:"true" enum:"TrainingJobStatus"`

	// The status of the warm pool associated with the training job.
	WarmPoolStatus *WarmPoolStatus `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrainingJobSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrainingJobSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *TrainingJobSummary) SetCreationTime(v time.Time) *TrainingJobSummary {
	s.CreationTime = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *TrainingJobSummary) SetLastModifiedTime(v time.Time) *TrainingJobSummary {
	s.LastModifiedTime = &v
	return s
}

// SetTrainingEndTime sets the TrainingEndTime field's value.
func (s *TrainingJobSummary) SetTrainingEndTime(v time.Time) *TrainingJobSummary {
	s.TrainingEndTime = &v
	return s
}

// SetTrainingJobArn sets the TrainingJobArn field's value.
func (s *TrainingJobSummary) SetTrainingJobArn(v string) *TrainingJobSummary {
	s.TrainingJobArn = &v
	return s
}

// SetTrainingJobName sets the TrainingJobName field's value.
func (s *TrainingJobSummary) SetTrainingJobName(v string) *TrainingJobSummary {
	s.TrainingJobName = &v
	return s
}

// SetTrainingJobStatus sets the TrainingJobStatus field's value.
func (s *TrainingJobSummary) SetTrainingJobStatus(v string) *TrainingJobSummary {
	s.TrainingJobStatus = &v
	return s
}

// SetWarmPoolStatus sets the WarmPoolStatus field's value.
func (s *TrainingJobSummary) SetWarmPoolStatus(v *WarmPoolStatus) *TrainingJobSummary {
	s.WarmPoolStatus = v
	return s
}

// An object containing authentication information for a private Docker registry.
type TrainingRepositoryAuthConfig struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of an Amazon Web Services Lambda function
	// used to give SageMaker access credentials to your private Docker registry.
	//
	// TrainingRepositoryCredentialsProviderArn is a required field
	TrainingRepositoryCredentialsProviderArn *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrainingRepositoryAuthConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrainingRepositoryAuthConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TrainingRepositoryAuthConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TrainingRepositoryAuthConfig"}
	if s.TrainingRepositoryCredentialsProviderArn == nil {
		invalidParams.Add(request.NewErrParamRequired("TrainingRepositoryCredentialsProviderArn"))
	}
	if s.TrainingRepositoryCredentialsProviderArn != nil && len(*s.TrainingRepositoryCredentialsProviderArn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TrainingRepositoryCredentialsProviderArn", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetTrainingRepositoryCredentialsProviderArn sets the TrainingRepositoryCredentialsProviderArn field's value.
func (s *TrainingRepositoryAuthConfig) SetTrainingRepositoryCredentialsProviderArn(v string) *TrainingRepositoryAuthConfig {
	s.TrainingRepositoryCredentialsProviderArn = &v
	return s
}

// Defines how the algorithm is used for a training job.
type TrainingSpecification struct {
	_ struct{} `type:"structure"`

	// The additional data source used during the training job.
	AdditionalS3DataSource *AdditionalS3DataSource `type:"structure"`

	// A list of MetricDefinition objects, which are used for parsing metrics generated
	// by the algorithm.
	MetricDefinitions []*MetricDefinition `type:"list"`

	// A list of the HyperParameterSpecification objects, that define the supported
	// hyperparameters. This is required if the algorithm supports automatic model
	// tuning.>
	SupportedHyperParameters []*HyperParameterSpecification `type:"list"`

	// A list of the instance types that this algorithm can use for training.
	//
	// SupportedTrainingInstanceTypes is a required field
	SupportedTrainingInstanceTypes []*string `type:"list" required:"true" enum:"TrainingInstanceType"`

	// A list of the metrics that the algorithm emits that can be used as the objective
	// metric in a hyperparameter tuning job.
	SupportedTuningJobObjectiveMetrics []*HyperParameterTuningJobObjective `type:"list"`

	// Indicates whether the algorithm supports distributed training. If set to
	// false, buyers can't request more than one instance during training.
	SupportsDistributedTraining *bool `type:"boolean"`

	// A list of ChannelSpecification objects, which specify the input sources to
	// be used by the algorithm.
	//
	// TrainingChannels is a required field
	TrainingChannels []*ChannelSpecification `min:"1" type:"list" required:"true"`

	// The Amazon ECR registry path of the Docker image that contains the training
	// algorithm.
	//
	// TrainingImage is a required field
	TrainingImage *string `type:"string" required:"true"`

	// An MD5 hash of the training algorithm that identifies the Docker image used
	// for training.
	TrainingImageDigest *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrainingSpecification) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrainingSpecification) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TrainingSpecification) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TrainingSpecification"}
	if s.SupportedTrainingInstanceTypes == nil {
		invalidParams.Add(request.NewErrParamRequired("SupportedTrainingInstanceTypes"))
	}
	if s.TrainingChannels == nil {
		invalidParams.Add(request.NewErrParamRequired("TrainingChannels"))
	}
	if s.TrainingChannels != nil && len(s.TrainingChannels) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TrainingChannels", 1))
	}
	if s.TrainingImage == nil {
		invalidParams.Add(request.NewErrParamRequired("TrainingImage"))
	}
	if s.AdditionalS3DataSource != nil {
		if err := s.AdditionalS3DataSource.Validate(); err != nil {
			invalidParams.AddNested("AdditionalS3DataSource", err.(request.ErrInvalidParams))
		}
	}
	if s.MetricDefinitions != nil {
		for i, v := range s.MetricDefinitions {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MetricDefinitions", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.SupportedHyperParameters != nil {
		for i, v := range s.SupportedHyperParameters {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SupportedHyperParameters", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.SupportedTuningJobObjectiveMetrics != nil {
		for i, v := range s.SupportedTuningJobObjectiveMetrics {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SupportedTuningJobObjectiveMetrics", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.TrainingChannels != nil {
		for i, v := range s.TrainingChannels {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TrainingChannels", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAdditionalS3DataSource sets the AdditionalS3DataSource field's value.
func (s *TrainingSpecification) SetAdditionalS3DataSource(v *AdditionalS3DataSource) *TrainingSpecification {
	s.AdditionalS3DataSource = v
	return s
}

// SetMetricDefinitions sets the MetricDefinitions field's value.
func (s *TrainingSpecification) SetMetricDefinitions(v []*MetricDefinition) *TrainingSpecification {
	s.MetricDefinitions = v
	return s
}

// SetSupportedHyperParameters sets the SupportedHyperParameters field's value.
func (s *TrainingSpecification) SetSupportedHyperParameters(v []*HyperParameterSpecification) *TrainingSpecification {
	s.SupportedHyperParameters = v
	return s
}

// SetSupportedTrainingInstanceTypes sets the SupportedTrainingInstanceTypes field's value.
func (s *TrainingSpecification) SetSupportedTrainingInstanceTypes(v []*string) *TrainingSpecification {
	s.SupportedTrainingInstanceTypes = v
	return s
}

// SetSupportedTuningJobObjectiveMetrics sets the SupportedTuningJobObjectiveMetrics field's value.
func (s *TrainingSpecification) SetSupportedTuningJobObjectiveMetrics(v []*HyperParameterTuningJobObjective) *TrainingSpecification {
	s.SupportedTuningJobObjectiveMetrics = v
	return s
}

// SetSupportsDistributedTraining sets the SupportsDistributedTraining field's value.
func (s *TrainingSpecification) SetSupportsDistributedTraining(v bool) *TrainingSpecification {
	s.SupportsDistributedTraining = &v
	return s
}

// SetTrainingChannels sets the TrainingChannels field's value.
func (s *TrainingSpecification) SetTrainingChannels(v []*ChannelSpecification) *TrainingSpecification {
	s.TrainingChannels = v
	return s
}

// SetTrainingImage sets the TrainingImage field's value.
func (s *TrainingSpecification) SetTrainingImage(v string) *TrainingSpecification {
	s.TrainingImage = &v
	return s
}

// SetTrainingImageDigest sets the TrainingImageDigest field's value.
func (s *TrainingSpecification) SetTrainingImageDigest(v string) *TrainingSpecification {
	s.TrainingImageDigest = &v
	return s
}

// Describes the location of the channel data.
type TransformDataSource struct {
	_ struct{} `type:"structure"`

	// The S3 location of the data source that is associated with a channel.
	//
	// S3DataSource is a required field
	S3DataSource *TransformS3DataSource `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TransformDataSource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TransformDataSource) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TransformDataSource) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TransformDataSource"}
	if s.S3DataSource == nil {
		invalidParams.Add(request.NewErrParamRequired("S3DataSource"))
	}
	if s.S3DataSource != nil {
		if err := s.S3DataSource.Validate(); err != nil {
			invalidParams.AddNested("S3DataSource", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetS3DataSource sets the S3DataSource field's value.
func (s *TransformDataSource) SetS3DataSource(v *TransformS3DataSource) *TransformDataSource {
	s.S3DataSource = v
	return s
}

// Describes the input source of a transform job and the way the transform job
// consumes it.
type TransformInput struct {
	_ struct{} `type:"structure"`

	// If your transform data is compressed, specify the compression type. Amazon
	// SageMaker automatically decompresses the data for the transform job accordingly.
	// The default value is None.
	CompressionType *string `type:"string" enum:"CompressionType"`

	// The multipurpose internet mail extension (MIME) type of the data. Amazon
	// SageMaker uses the MIME type with each http call to transfer data to the
	// transform job.
	ContentType *string `type:"string"`

	// Describes the location of the channel data, which is, the S3 location of
	// the input data that the model can consume.
	//
	// DataSource is a required field
	DataSource *TransformDataSource `type:"structure" required:"true"`

	// The method to use to split the transform job's data files into smaller batches.
	// Splitting is necessary when the total size of each object is too large to
	// fit in a single request. You can also use data splitting to improve performance
	// by processing multiple concurrent mini-batches. The default value for SplitType
	// is None, which indicates that input data files are not split, and request
	// payloads contain the entire contents of an input object. Set the value of
	// this parameter to Line to split records on a newline character boundary.
	// SplitType also supports a number of record-oriented binary data formats.
	// Currently, the supported record formats are:
	//
	//    * RecordIO
	//
	//    * TFRecord
	//
	// When splitting is enabled, the size of a mini-batch depends on the values
	// of the BatchStrategy and MaxPayloadInMB parameters. When the value of BatchStrategy
	// is MultiRecord, Amazon SageMaker sends the maximum number of records in each
	// request, up to the MaxPayloadInMB limit. If the value of BatchStrategy is
	// SingleRecord, Amazon SageMaker sends individual records in each request.
	//
	// Some data formats represent a record as a binary payload wrapped with extra
	// padding bytes. When splitting is applied to a binary data format, padding
	// is removed if the value of BatchStrategy is set to SingleRecord. Padding
	// is not removed if the value of BatchStrategy is set to MultiRecord.
	//
	// For more information about RecordIO, see Create a Dataset Using RecordIO
	// (https://mxnet.apache.org/api/faq/recordio) in the MXNet documentation. For
	// more information about TFRecord, see Consuming TFRecord data (https://www.tensorflow.org/guide/data#consuming_tfrecord_data)
	// in the TensorFlow documentation.
	SplitType *string `type:"string" enum:"SplitType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TransformInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TransformInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TransformInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TransformInput"}
	if s.DataSource == nil {
		invalidParams.Add(request.NewErrParamRequired("DataSource"))
	}
	if s.DataSource != nil {
		if err := s.DataSource.Validate(); err != nil {
			invalidParams.AddNested("DataSource", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCompressionType sets the CompressionType field's value.
func (s *TransformInput) SetCompressionType(v string) *TransformInput {
	s.CompressionType = &v
	return s
}

// SetContentType sets the ContentType field's value.
func (s *TransformInput) SetContentType(v string) *TransformInput {
	s.ContentType = &v
	return s
}

// SetDataSource sets the DataSource field's value.
func (s *TransformInput) SetDataSource(v *TransformDataSource) *TransformInput {
	s.DataSource = v
	return s
}

// SetSplitType sets the SplitType field's value.
func (s *TransformInput) SetSplitType(v string) *TransformInput {
	s.SplitType = &v
	return s
}

// A batch transform job. For information about SageMaker batch transform, see
// Use Batch Transform (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform.html).
type TransformJob struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the AutoML job that created the transform
	// job.
	AutoMLJobArn *string `min:"1" type:"string"`

	// Specifies the number of records to include in a mini-batch for an HTTP inference
	// request. A record is a single unit of input data that inference can be made
	// on. For example, a single line in a CSV file is a record.
	BatchStrategy *string `type:"string" enum:"BatchStrategy"`

	// A timestamp that shows when the transform Job was created.
	CreationTime *time.Time `type:"timestamp"`

	// Configuration to control how SageMaker captures inference data for batch
	// transform jobs.
	DataCaptureConfig *BatchDataCaptureConfig `type:"structure"`

	// The data structure used to specify the data to be used for inference in a
	// batch transform job and to associate the data that is relevant to the prediction
	// results in the output. The input filter provided allows you to exclude input
	// data that is not needed for inference in a batch transform job. The output
	// filter provided allows you to include input data relevant to interpreting
	// the predictions in the output from the job. For more information, see Associate
	// Prediction Results with their Corresponding Input Records (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html).
	DataProcessing *DataProcessing `type:"structure"`

	// The environment variables to set in the Docker container. We support up to
	// 16 key and values entries in the map.
	Environment map[string]*string `type:"map"`

	// Associates a SageMaker job as a trial component with an experiment and trial.
	// Specified when you call the following APIs:
	//
	//    * CreateProcessingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html)
	//
	//    * CreateTrainingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)
	//
	//    * CreateTransformJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html)
	ExperimentConfig *ExperimentConfig `type:"structure"`

	// If the transform job failed, the reason it failed.
	FailureReason *string `type:"string"`

	// The Amazon Resource Name (ARN) of the labeling job that created the transform
	// job.
	LabelingJobArn *string `type:"string"`

	// The maximum number of parallel requests that can be sent to each instance
	// in a transform job. If MaxConcurrentTransforms is set to 0 or left unset,
	// SageMaker checks the optional execution-parameters to determine the settings
	// for your chosen algorithm. If the execution-parameters endpoint is not enabled,
	// the default value is 1. For built-in algorithms, you don't need to set a
	// value for MaxConcurrentTransforms.
	MaxConcurrentTransforms *int64 `type:"integer"`

	// The maximum allowed size of the payload, in MB. A payload is the data portion
	// of a record (without metadata). The value in MaxPayloadInMB must be greater
	// than, or equal to, the size of a single record. To estimate the size of a
	// record in MB, divide the size of your dataset by the number of records. To
	// ensure that the records fit within the maximum payload size, we recommend
	// using a slightly larger value. The default value is 6 MB. For cases where
	// the payload might be arbitrarily large and is transmitted using HTTP chunked
	// encoding, set the value to 0. This feature works only in supported algorithms.
	// Currently, SageMaker built-in algorithms do not support HTTP chunked encoding.
	MaxPayloadInMB *int64 `type:"integer"`

	// Configures the timeout and maximum number of retries for processing a transform
	// job invocation.
	ModelClientConfig *ModelClientConfig `type:"structure"`

	// The name of the model associated with the transform job.
	ModelName *string `type:"string"`

	// A list of tags associated with the transform job.
	Tags []*Tag `type:"list"`

	// Indicates when the transform job has been completed, or has stopped or failed.
	// You are billed for the time interval between this time and the value of TransformStartTime.
	TransformEndTime *time.Time `type:"timestamp"`

	// Describes the input source of a transform job and the way the transform job
	// consumes it.
	TransformInput *TransformInput `type:"structure"`

	// The Amazon Resource Name (ARN) of the transform job.
	TransformJobArn *string `type:"string"`

	// The name of the transform job.
	TransformJobName *string `min:"1" type:"string"`

	// The status of the transform job.
	//
	// Transform job statuses are:
	//
	//    * InProgress - The job is in progress.
	//
	//    * Completed - The job has completed.
	//
	//    * Failed - The transform job has failed. To see the reason for the failure,
	//    see the FailureReason field in the response to a DescribeTransformJob
	//    call.
	//
	//    * Stopping - The transform job is stopping.
	//
	//    * Stopped - The transform job has stopped.
	TransformJobStatus *string `type:"string" enum:"TransformJobStatus"`

	// Describes the results of a transform job.
	TransformOutput *TransformOutput `type:"structure"`

	// Describes the resources, including ML instance types and ML instance count,
	// to use for transform job.
	TransformResources *TransformResources `type:"structure"`

	// Indicates when the transform job starts on ML instances. You are billed for
	// the time interval between this time and the value of TransformEndTime.
	TransformStartTime *time.Time `type:"timestamp"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TransformJob) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TransformJob) GoString() string {
	return s.String()
}

// SetAutoMLJobArn sets the AutoMLJobArn field's value.
func (s *TransformJob) SetAutoMLJobArn(v string) *TransformJob {
	s.AutoMLJobArn = &v
	return s
}

// SetBatchStrategy sets the BatchStrategy field's value.
func (s *TransformJob) SetBatchStrategy(v string) *TransformJob {
	s.BatchStrategy = &v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *TransformJob) SetCreationTime(v time.Time) *TransformJob {
	s.CreationTime = &v
	return s
}

// SetDataCaptureConfig sets the DataCaptureConfig field's value.
func (s *TransformJob) SetDataCaptureConfig(v *BatchDataCaptureConfig) *TransformJob {
	s.DataCaptureConfig = v
	return s
}

// SetDataProcessing sets the DataProcessing field's value.
func (s *TransformJob) SetDataProcessing(v *DataProcessing) *TransformJob {
	s.DataProcessing = v
	return s
}

// SetEnvironment sets the Environment field's value.
func (s *TransformJob) SetEnvironment(v map[string]*string) *TransformJob {
	s.Environment = v
	return s
}

// SetExperimentConfig sets the ExperimentConfig field's value.
func (s *TransformJob) SetExperimentConfig(v *ExperimentConfig) *TransformJob {
	s.ExperimentConfig = v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *TransformJob) SetFailureReason(v string) *TransformJob {
	s.FailureReason = &v
	return s
}

// SetLabelingJobArn sets the LabelingJobArn field's value.
func (s *TransformJob) SetLabelingJobArn(v string) *TransformJob {
	s.LabelingJobArn = &v
	return s
}

// SetMaxConcurrentTransforms sets the MaxConcurrentTransforms field's value.
func (s *TransformJob) SetMaxConcurrentTransforms(v int64) *TransformJob {
	s.MaxConcurrentTransforms = &v
	return s
}

// SetMaxPayloadInMB sets the MaxPayloadInMB field's value.
func (s *TransformJob) SetMaxPayloadInMB(v int64) *TransformJob {
	s.MaxPayloadInMB = &v
	return s
}

// SetModelClientConfig sets the ModelClientConfig field's value.
func (s *TransformJob) SetModelClientConfig(v *ModelClientConfig) *TransformJob {
	s.ModelClientConfig = v
	return s
}

// SetModelName sets the ModelName field's value.
func (s *TransformJob) SetModelName(v string) *TransformJob {
	s.ModelName = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *TransformJob) SetTags(v []*Tag) *TransformJob {
	s.Tags = v
	return s
}

// SetTransformEndTime sets the TransformEndTime field's value.
func (s *TransformJob) SetTransformEndTime(v time.Time) *TransformJob {
	s.TransformEndTime = &v
	return s
}

// SetTransformInput sets the TransformInput field's value.
func (s *TransformJob) SetTransformInput(v *TransformInput) *TransformJob {
	s.TransformInput = v
	return s
}

// SetTransformJobArn sets the TransformJobArn field's value.
func (s *TransformJob) SetTransformJobArn(v string) *TransformJob {
	s.TransformJobArn = &v
	return s
}

// SetTransformJobName sets the TransformJobName field's value.
func (s *TransformJob) SetTransformJobName(v string) *TransformJob {
	s.TransformJobName = &v
	return s
}

// SetTransformJobStatus sets the TransformJobStatus field's value.
func (s *TransformJob) SetTransformJobStatus(v string) *TransformJob {
	s.TransformJobStatus = &v
	return s
}

// SetTransformOutput sets the TransformOutput field's value.
func (s *TransformJob) SetTransformOutput(v *TransformOutput) *TransformJob {
	s.TransformOutput = v
	return s
}

// SetTransformResources sets the TransformResources field's value.
func (s *TransformJob) SetTransformResources(v *TransformResources) *TransformJob {
	s.TransformResources = v
	return s
}

// SetTransformStartTime sets the TransformStartTime field's value.
func (s *TransformJob) SetTransformStartTime(v time.Time) *TransformJob {
	s.TransformStartTime = &v
	return s
}

// Defines the input needed to run a transform job using the inference specification
// specified in the algorithm.
type TransformJobDefinition struct {
	_ struct{} `type:"structure"`

	// A string that determines the number of records included in a single mini-batch.
	//
	// SingleRecord means only one record is used per mini-batch. MultiRecord means
	// a mini-batch is set to contain as many records that can fit within the MaxPayloadInMB
	// limit.
	BatchStrategy *string `type:"string" enum:"BatchStrategy"`

	// The environment variables to set in the Docker container. We support up to
	// 16 key and values entries in the map.
	Environment map[string]*string `type:"map"`

	// The maximum number of parallel requests that can be sent to each instance
	// in a transform job. The default value is 1.
	MaxConcurrentTransforms *int64 `type:"integer"`

	// The maximum payload size allowed, in MB. A payload is the data portion of
	// a record (without metadata).
	MaxPayloadInMB *int64 `type:"integer"`

	// A description of the input source and the way the transform job consumes
	// it.
	//
	// TransformInput is a required field
	TransformInput *TransformInput `type:"structure" required:"true"`

	// Identifies the Amazon S3 location where you want Amazon SageMaker to save
	// the results from the transform job.
	//
	// TransformOutput is a required field
	TransformOutput *TransformOutput `type:"structure" required:"true"`

	// Identifies the ML compute instances for the transform job.
	//
	// TransformResources is a required field
	TransformResources *TransformResources `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TransformJobDefinition) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TransformJobDefinition) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TransformJobDefinition) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TransformJobDefinition"}
	if s.TransformInput == nil {
		invalidParams.Add(request.NewErrParamRequired("TransformInput"))
	}
	if s.TransformOutput == nil {
		invalidParams.Add(request.NewErrParamRequired("TransformOutput"))
	}
	if s.TransformResources == nil {
		invalidParams.Add(request.NewErrParamRequired("TransformResources"))
	}
	if s.TransformInput != nil {
		if err := s.TransformInput.Validate(); err != nil {
			invalidParams.AddNested("TransformInput", err.(request.ErrInvalidParams))
		}
	}
	if s.TransformOutput != nil {
		if err := s.TransformOutput.Validate(); err != nil {
			invalidParams.AddNested("TransformOutput", err.(request.ErrInvalidParams))
		}
	}
	if s.TransformResources != nil {
		if err := s.TransformResources.Validate(); err != nil {
			invalidParams.AddNested("TransformResources", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetBatchStrategy sets the BatchStrategy field's value.
func (s *TransformJobDefinition) SetBatchStrategy(v string) *TransformJobDefinition {
	s.BatchStrategy = &v
	return s
}

// SetEnvironment sets the Environment field's value.
func (s *TransformJobDefinition) SetEnvironment(v map[string]*string) *TransformJobDefinition {
	s.Environment = v
	return s
}

// SetMaxConcurrentTransforms sets the MaxConcurrentTransforms field's value.
func (s *TransformJobDefinition) SetMaxConcurrentTransforms(v int64) *TransformJobDefinition {
	s.MaxConcurrentTransforms = &v
	return s
}

// SetMaxPayloadInMB sets the MaxPayloadInMB field's value.
func (s *TransformJobDefinition) SetMaxPayloadInMB(v int64) *TransformJobDefinition {
	s.MaxPayloadInMB = &v
	return s
}

// SetTransformInput sets the TransformInput field's value.
func (s *TransformJobDefinition) SetTransformInput(v *TransformInput) *TransformJobDefinition {
	s.TransformInput = v
	return s
}

// SetTransformOutput sets the TransformOutput field's value.
func (s *TransformJobDefinition) SetTransformOutput(v *TransformOutput) *TransformJobDefinition {
	s.TransformOutput = v
	return s
}

// SetTransformResources sets the TransformResources field's value.
func (s *TransformJobDefinition) SetTransformResources(v *TransformResources) *TransformJobDefinition {
	s.TransformResources = v
	return s
}

// Metadata for a transform job step.
type TransformJobStepMetadata struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the transform job that was run by this
	// step execution.
	Arn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TransformJobStepMetadata) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TransformJobStepMetadata) GoString() string {
	return s.String()
}

// SetArn sets the Arn field's value.
func (s *TransformJobStepMetadata) SetArn(v string) *TransformJobStepMetadata {
	s.Arn = &v
	return s
}

// Provides a summary of a transform job. Multiple TransformJobSummary objects
// are returned as a list after in response to a ListTransformJobs (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListTransformJobs.html)
// call.
type TransformJobSummary struct {
	_ struct{} `type:"structure"`

	// A timestamp that shows when the transform Job was created.
	//
	// CreationTime is a required field
	CreationTime *time.Time `type:"timestamp" required:"true"`

	// If the transform job failed, the reason it failed.
	FailureReason *string `type:"string"`

	// Indicates when the transform job was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// Indicates when the transform job ends on compute instances. For successful
	// jobs and stopped jobs, this is the exact time recorded after the results
	// are uploaded. For failed jobs, this is when Amazon SageMaker detected that
	// the job failed.
	TransformEndTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the transform job.
	//
	// TransformJobArn is a required field
	TransformJobArn *string `type:"string" required:"true"`

	// The name of the transform job.
	//
	// TransformJobName is a required field
	TransformJobName *string `min:"1" type:"string" required:"true"`

	// The status of the transform job.
	//
	// TransformJobStatus is a required field
	TransformJobStatus *string `type:"string" required:"true" enum:"TransformJobStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TransformJobSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TransformJobSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *TransformJobSummary) SetCreationTime(v time.Time) *TransformJobSummary {
	s.CreationTime = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *TransformJobSummary) SetFailureReason(v string) *TransformJobSummary {
	s.FailureReason = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *TransformJobSummary) SetLastModifiedTime(v time.Time) *TransformJobSummary {
	s.LastModifiedTime = &v
	return s
}

// SetTransformEndTime sets the TransformEndTime field's value.
func (s *TransformJobSummary) SetTransformEndTime(v time.Time) *TransformJobSummary {
	s.TransformEndTime = &v
	return s
}

// SetTransformJobArn sets the TransformJobArn field's value.
func (s *TransformJobSummary) SetTransformJobArn(v string) *TransformJobSummary {
	s.TransformJobArn = &v
	return s
}

// SetTransformJobName sets the TransformJobName field's value.
func (s *TransformJobSummary) SetTransformJobName(v string) *TransformJobSummary {
	s.TransformJobName = &v
	return s
}

// SetTransformJobStatus sets the TransformJobStatus field's value.
func (s *TransformJobSummary) SetTransformJobStatus(v string) *TransformJobSummary {
	s.TransformJobStatus = &v
	return s
}

// Describes the results of a transform job.
type TransformOutput struct {
	_ struct{} `type:"structure"`

	// The MIME type used to specify the output data. Amazon SageMaker uses the
	// MIME type with each http call to transfer data from the transform job.
	Accept *string `type:"string"`

	// Defines how to assemble the results of the transform job as a single S3 object.
	// Choose a format that is most convenient to you. To concatenate the results
	// in binary format, specify None. To add a newline character at the end of
	// every transformed record, specify Line.
	AssembleWith *string `type:"string" enum:"AssemblyType"`

	// The Amazon Web Services Key Management Service (Amazon Web Services KMS)
	// key that Amazon SageMaker uses to encrypt the model artifacts at rest using
	// Amazon S3 server-side encryption. The KmsKeyId can be any of the following
	// formats:
	//
	//    * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
	//
	//    * Key ARN: arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
	//
	//    * Alias name: alias/ExampleAlias
	//
	//    * Alias name ARN: arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias
	//
	// If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS
	// key for Amazon S3 for your role's account. For more information, see KMS-Managed
	// Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html)
	// in the Amazon Simple Storage Service Developer Guide.
	//
	// The KMS key policy must grant permission to the IAM role that you specify
	// in your CreateModel (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html)
	// request. For more information, see Using Key Policies in Amazon Web Services
	// KMS (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)
	// in the Amazon Web Services Key Management Service Developer Guide.
	KmsKeyId *string `type:"string"`

	// The Amazon S3 path where you want Amazon SageMaker to store the results of
	// the transform job. For example, s3://bucket-name/key-name-prefix.
	//
	// For every S3 object used as input for the transform job, batch transform
	// stores the transformed data with an .out suffix in a corresponding subfolder
	// in the location in the output prefix. For example, for the input data stored
	// at s3://bucket-name/input-name-prefix/dataset01/data.csv, batch transform
	// stores the transformed data at s3://bucket-name/output-name-prefix/input-name-prefix/data.csv.out.
	// Batch transform doesn't upload partially processed objects. For an input
	// S3 object that contains multiple records, it creates an .out file only if
	// the transform job succeeds on the entire file. When the input contains multiple
	// S3 objects, the batch transform job processes the listed S3 objects and uploads
	// only the output for successfully processed objects. If any object fails in
	// the transform job batch transform marks the job as failed to prompt investigation.
	//
	// S3OutputPath is a required field
	S3OutputPath *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TransformOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TransformOutput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TransformOutput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TransformOutput"}
	if s.S3OutputPath == nil {
		invalidParams.Add(request.NewErrParamRequired("S3OutputPath"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAccept sets the Accept field's value.
func (s *TransformOutput) SetAccept(v string) *TransformOutput {
	s.Accept = &v
	return s
}

// SetAssembleWith sets the AssembleWith field's value.
func (s *TransformOutput) SetAssembleWith(v string) *TransformOutput {
	s.AssembleWith = &v
	return s
}

// SetKmsKeyId sets the KmsKeyId field's value.
func (s *TransformOutput) SetKmsKeyId(v string) *TransformOutput {
	s.KmsKeyId = &v
	return s
}

// SetS3OutputPath sets the S3OutputPath field's value.
func (s *TransformOutput) SetS3OutputPath(v string) *TransformOutput {
	s.S3OutputPath = &v
	return s
}

// Describes the resources, including ML instance types and ML instance count,
// to use for transform job.
type TransformResources struct {
	_ struct{} `type:"structure"`

	// The number of ML compute instances to use in the transform job. The default
	// value is 1, and the maximum is 100. For distributed transform jobs, specify
	// a value greater than 1.
	//
	// InstanceCount is a required field
	InstanceCount *int64 `min:"1" type:"integer" required:"true"`

	// The ML compute instance type for the transform job. If you are using built-in
	// algorithms to transform moderately sized datasets, we recommend using ml.m4.xlarge
	// or ml.m5.largeinstance types.
	//
	// InstanceType is a required field
	InstanceType *string `type:"string" required:"true" enum:"TransformInstanceType"`

	// The Amazon Web Services Key Management Service (Amazon Web Services KMS)
	// key that Amazon SageMaker uses to encrypt model data on the storage volume
	// attached to the ML compute instance(s) that run the batch transform job.
	//
	// Certain Nitro-based instances include local storage, dependent on the instance
	// type. Local storage volumes are encrypted using a hardware module on the
	// instance. You can't request a VolumeKmsKeyId when using an instance type
	// with local storage.
	//
	// For a list of instance types that support local instance storage, see Instance
	// Store Volumes (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes).
	//
	// For more information about local instance storage encryption, see SSD Instance
	// Store Volumes (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html).
	//
	// The VolumeKmsKeyId can be any of the following formats:
	//
	//    * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
	//
	//    * Key ARN: arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
	//
	//    * Alias name: alias/ExampleAlias
	//
	//    * Alias name ARN: arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias
	VolumeKmsKeyId *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TransformResources) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TransformResources) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TransformResources) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TransformResources"}
	if s.InstanceCount == nil {
		invalidParams.Add(request.NewErrParamRequired("InstanceCount"))
	}
	if s.InstanceCount != nil && *s.InstanceCount < 1 {
		invalidParams.Add(request.NewErrParamMinValue("InstanceCount", 1))
	}
	if s.InstanceType == nil {
		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetInstanceCount sets the InstanceCount field's value.
func (s *TransformResources) SetInstanceCount(v int64) *TransformResources {
	s.InstanceCount = &v
	return s
}

// SetInstanceType sets the InstanceType field's value.
func (s *TransformResources) SetInstanceType(v string) *TransformResources {
	s.InstanceType = &v
	return s
}

// SetVolumeKmsKeyId sets the VolumeKmsKeyId field's value.
func (s *TransformResources) SetVolumeKmsKeyId(v string) *TransformResources {
	s.VolumeKmsKeyId = &v
	return s
}

// Describes the S3 data source.
type TransformS3DataSource struct {
	_ struct{} `type:"structure"`

	// If you choose S3Prefix, S3Uri identifies a key name prefix. Amazon SageMaker
	// uses all objects with the specified key name prefix for batch transform.
	//
	// If you choose ManifestFile, S3Uri identifies an object that is a manifest
	// file containing a list of object keys that you want Amazon SageMaker to use
	// for batch transform.
	//
	// The following values are compatible: ManifestFile, S3Prefix
	//
	// The following value is not compatible: AugmentedManifestFile
	//
	// S3DataType is a required field
	S3DataType *string `type:"string" required:"true" enum:"S3DataType"`

	// Depending on the value specified for the S3DataType, identifies either a
	// key name prefix or a manifest. For example:
	//
	//    * A key name prefix might look like this: s3://bucketname/exampleprefix/.
	//
	//    * A manifest might look like this: s3://bucketname/example.manifest The
	//    manifest is an S3 object which is a JSON file with the following format:
	//    [ {"prefix": "s3://customer_bucket/some/prefix/"}, "relative/path/to/custdata-1",
	//    "relative/path/custdata-2", ... "relative/path/custdata-N" ] The preceding
	//    JSON matches the following S3Uris: s3://customer_bucket/some/prefix/relative/path/to/custdata-1
	//    s3://customer_bucket/some/prefix/relative/path/custdata-2 ... s3://customer_bucket/some/prefix/relative/path/custdata-N
	//    The complete set of S3Uris in this manifest constitutes the input data
	//    for the channel for this datasource. The object that each S3Uris points
	//    to must be readable by the IAM role that Amazon SageMaker uses to perform
	//    tasks on your behalf.
	//
	// S3Uri is a required field
	S3Uri *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TransformS3DataSource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TransformS3DataSource) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TransformS3DataSource) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TransformS3DataSource"}
	if s.S3DataType == nil {
		invalidParams.Add(request.NewErrParamRequired("S3DataType"))
	}
	if s.S3Uri == nil {
		invalidParams.Add(request.NewErrParamRequired("S3Uri"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetS3DataType sets the S3DataType field's value.
func (s *TransformS3DataSource) SetS3DataType(v string) *TransformS3DataSource {
	s.S3DataType = &v
	return s
}

// SetS3Uri sets the S3Uri field's value.
func (s *TransformS3DataSource) SetS3Uri(v string) *TransformS3DataSource {
	s.S3Uri = &v
	return s
}

// The properties of a trial as returned by the Search (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html)
// API.
type Trial struct {
	_ struct{} `type:"structure"`

	// Who created the trial.
	CreatedBy *UserContext `type:"structure"`

	// When the trial was created.
	CreationTime *time.Time `type:"timestamp"`

	// The name of the trial as displayed. If DisplayName isn't specified, TrialName
	// is displayed.
	DisplayName *string `min:"1" type:"string"`

	// The name of the experiment the trial is part of.
	ExperimentName *string `min:"1" type:"string"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	LastModifiedBy *UserContext `type:"structure"`

	// Who last modified the trial.
	LastModifiedTime *time.Time `type:"timestamp"`

	// Metadata properties of the tracking entity, trial, or trial component.
	MetadataProperties *MetadataProperties `type:"structure"`

	// The source of the trial.
	Source *TrialSource `type:"structure"`

	// The list of tags that are associated with the trial. You can use Search (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html)
	// API to search on the tags.
	Tags []*Tag `type:"list"`

	// The Amazon Resource Name (ARN) of the trial.
	TrialArn *string `type:"string"`

	// A list of the components associated with the trial. For each component, a
	// summary of the component's properties is included.
	TrialComponentSummaries []*TrialComponentSimpleSummary `type:"list"`

	// The name of the trial.
	TrialName *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Trial) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Trial) GoString() string {
	return s.String()
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *Trial) SetCreatedBy(v *UserContext) *Trial {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *Trial) SetCreationTime(v time.Time) *Trial {
	s.CreationTime = &v
	return s
}

// SetDisplayName sets the DisplayName field's value.
func (s *Trial) SetDisplayName(v string) *Trial {
	s.DisplayName = &v
	return s
}

// SetExperimentName sets the ExperimentName field's value.
func (s *Trial) SetExperimentName(v string) *Trial {
	s.ExperimentName = &v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *Trial) SetLastModifiedBy(v *UserContext) *Trial {
	s.LastModifiedBy = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *Trial) SetLastModifiedTime(v time.Time) *Trial {
	s.LastModifiedTime = &v
	return s
}

// SetMetadataProperties sets the MetadataProperties field's value.
func (s *Trial) SetMetadataProperties(v *MetadataProperties) *Trial {
	s.MetadataProperties = v
	return s
}

// SetSource sets the Source field's value.
func (s *Trial) SetSource(v *TrialSource) *Trial {
	s.Source = v
	return s
}

// SetTags sets the Tags field's value.
func (s *Trial) SetTags(v []*Tag) *Trial {
	s.Tags = v
	return s
}

// SetTrialArn sets the TrialArn field's value.
func (s *Trial) SetTrialArn(v string) *Trial {
	s.TrialArn = &v
	return s
}

// SetTrialComponentSummaries sets the TrialComponentSummaries field's value.
func (s *Trial) SetTrialComponentSummaries(v []*TrialComponentSimpleSummary) *Trial {
	s.TrialComponentSummaries = v
	return s
}

// SetTrialName sets the TrialName field's value.
func (s *Trial) SetTrialName(v string) *Trial {
	s.TrialName = &v
	return s
}

// The properties of a trial component as returned by the Search (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html)
// API.
type TrialComponent struct {
	_ struct{} `type:"structure"`

	// Who created the trial component.
	CreatedBy *UserContext `type:"structure"`

	// When the component was created.
	CreationTime *time.Time `type:"timestamp"`

	// The name of the component as displayed. If DisplayName isn't specified, TrialComponentName
	// is displayed.
	DisplayName *string `min:"1" type:"string"`

	// When the component ended.
	EndTime *time.Time `type:"timestamp"`

	// The input artifacts of the component.
	InputArtifacts map[string]*TrialComponentArtifact `type:"map"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	LastModifiedBy *UserContext `type:"structure"`

	// When the component was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the lineage group resource.
	LineageGroupArn *string `type:"string"`

	// Metadata properties of the tracking entity, trial, or trial component.
	MetadataProperties *MetadataProperties `type:"structure"`

	// The metrics for the component.
	Metrics []*TrialComponentMetricSummary `type:"list"`

	// The output artifacts of the component.
	OutputArtifacts map[string]*TrialComponentArtifact `type:"map"`

	// The hyperparameters of the component.
	Parameters map[string]*TrialComponentParameterValue `type:"map"`

	// An array of the parents of the component. A parent is a trial the component
	// is associated with and the experiment the trial is part of. A component might
	// not have any parents.
	Parents []*Parent `type:"list"`

	// The name of the experiment run.
	RunName *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) and job type of the source of the component.
	Source *TrialComponentSource `type:"structure"`

	// Details of the source of the component.
	SourceDetail *TrialComponentSourceDetail `type:"structure"`

	// When the component started.
	StartTime *time.Time `type:"timestamp"`

	// The status of the trial component.
	Status *TrialComponentStatus `type:"structure"`

	// The list of tags that are associated with the component. You can use Search
	// (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html)
	// API to search on the tags.
	Tags []*Tag `type:"list"`

	// The Amazon Resource Name (ARN) of the trial component.
	TrialComponentArn *string `type:"string"`

	// The name of the trial component.
	TrialComponentName *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrialComponent) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrialComponent) GoString() string {
	return s.String()
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *TrialComponent) SetCreatedBy(v *UserContext) *TrialComponent {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *TrialComponent) SetCreationTime(v time.Time) *TrialComponent {
	s.CreationTime = &v
	return s
}

// SetDisplayName sets the DisplayName field's value.
func (s *TrialComponent) SetDisplayName(v string) *TrialComponent {
	s.DisplayName = &v
	return s
}

// SetEndTime sets the EndTime field's value.
func (s *TrialComponent) SetEndTime(v time.Time) *TrialComponent {
	s.EndTime = &v
	return s
}

// SetInputArtifacts sets the InputArtifacts field's value.
func (s *TrialComponent) SetInputArtifacts(v map[string]*TrialComponentArtifact) *TrialComponent {
	s.InputArtifacts = v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *TrialComponent) SetLastModifiedBy(v *UserContext) *TrialComponent {
	s.LastModifiedBy = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *TrialComponent) SetLastModifiedTime(v time.Time) *TrialComponent {
	s.LastModifiedTime = &v
	return s
}

// SetLineageGroupArn sets the LineageGroupArn field's value.
func (s *TrialComponent) SetLineageGroupArn(v string) *TrialComponent {
	s.LineageGroupArn = &v
	return s
}

// SetMetadataProperties sets the MetadataProperties field's value.
func (s *TrialComponent) SetMetadataProperties(v *MetadataProperties) *TrialComponent {
	s.MetadataProperties = v
	return s
}

// SetMetrics sets the Metrics field's value.
func (s *TrialComponent) SetMetrics(v []*TrialComponentMetricSummary) *TrialComponent {
	s.Metrics = v
	return s
}

// SetOutputArtifacts sets the OutputArtifacts field's value.
func (s *TrialComponent) SetOutputArtifacts(v map[string]*TrialComponentArtifact) *TrialComponent {
	s.OutputArtifacts = v
	return s
}

// SetParameters sets the Parameters field's value.
func (s *TrialComponent) SetParameters(v map[string]*TrialComponentParameterValue) *TrialComponent {
	s.Parameters = v
	return s
}

// SetParents sets the Parents field's value.
func (s *TrialComponent) SetParents(v []*Parent) *TrialComponent {
	s.Parents = v
	return s
}

// SetRunName sets the RunName field's value.
func (s *TrialComponent) SetRunName(v string) *TrialComponent {
	s.RunName = &v
	return s
}

// SetSource sets the Source field's value.
func (s *TrialComponent) SetSource(v *TrialComponentSource) *TrialComponent {
	s.Source = v
	return s
}

// SetSourceDetail sets the SourceDetail field's value.
func (s *TrialComponent) SetSourceDetail(v *TrialComponentSourceDetail) *TrialComponent {
	s.SourceDetail = v
	return s
}

// SetStartTime sets the StartTime field's value.
func (s *TrialComponent) SetStartTime(v time.Time) *TrialComponent {
	s.StartTime = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *TrialComponent) SetStatus(v *TrialComponentStatus) *TrialComponent {
	s.Status = v
	return s
}

// SetTags sets the Tags field's value.
func (s *TrialComponent) SetTags(v []*Tag) *TrialComponent {
	s.Tags = v
	return s
}

// SetTrialComponentArn sets the TrialComponentArn field's value.
func (s *TrialComponent) SetTrialComponentArn(v string) *TrialComponent {
	s.TrialComponentArn = &v
	return s
}

// SetTrialComponentName sets the TrialComponentName field's value.
func (s *TrialComponent) SetTrialComponentName(v string) *TrialComponent {
	s.TrialComponentName = &v
	return s
}

// Represents an input or output artifact of a trial component. You specify
// TrialComponentArtifact as part of the InputArtifacts and OutputArtifacts
// parameters in the CreateTrialComponent (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrialComponent.html)
// request.
//
// Examples of input artifacts are datasets, algorithms, hyperparameters, source
// code, and instance types. Examples of output artifacts are metrics, snapshots,
// logs, and images.
type TrialComponentArtifact struct {
	_ struct{} `type:"structure"`

	// The media type of the artifact, which indicates the type of data in the artifact
	// file. The media type consists of a type and a subtype concatenated with a
	// slash (/) character, for example, text/csv, image/jpeg, and s3/uri. The type
	// specifies the category of the media. The subtype specifies the kind of data.
	MediaType *string `type:"string"`

	// The location of the artifact.
	//
	// Value is a required field
	Value *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrialComponentArtifact) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrialComponentArtifact) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TrialComponentArtifact) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TrialComponentArtifact"}
	if s.Value == nil {
		invalidParams.Add(request.NewErrParamRequired("Value"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMediaType sets the MediaType field's value.
func (s *TrialComponentArtifact) SetMediaType(v string) *TrialComponentArtifact {
	s.MediaType = &v
	return s
}

// SetValue sets the Value field's value.
func (s *TrialComponentArtifact) SetValue(v string) *TrialComponentArtifact {
	s.Value = &v
	return s
}

// A summary of the metrics of a trial component.
type TrialComponentMetricSummary struct {
	_ struct{} `type:"structure"`

	// The average value of the metric.
	Avg *float64 `type:"double"`

	// The number of samples used to generate the metric.
	Count *int64 `type:"integer"`

	// The most recent value of the metric.
	Last *float64 `type:"double"`

	// The maximum value of the metric.
	Max *float64 `type:"double"`

	// The name of the metric.
	MetricName *string `min:"1" type:"string"`

	// The minimum value of the metric.
	Min *float64 `type:"double"`

	// The Amazon Resource Name (ARN) of the source.
	SourceArn *string `type:"string"`

	// The standard deviation of the metric.
	StdDev *float64 `type:"double"`

	// When the metric was last updated.
	TimeStamp *time.Time `type:"timestamp"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrialComponentMetricSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrialComponentMetricSummary) GoString() string {
	return s.String()
}

// SetAvg sets the Avg field's value.
func (s *TrialComponentMetricSummary) SetAvg(v float64) *TrialComponentMetricSummary {
	s.Avg = &v
	return s
}

// SetCount sets the Count field's value.
func (s *TrialComponentMetricSummary) SetCount(v int64) *TrialComponentMetricSummary {
	s.Count = &v
	return s
}

// SetLast sets the Last field's value.
func (s *TrialComponentMetricSummary) SetLast(v float64) *TrialComponentMetricSummary {
	s.Last = &v
	return s
}

// SetMax sets the Max field's value.
func (s *TrialComponentMetricSummary) SetMax(v float64) *TrialComponentMetricSummary {
	s.Max = &v
	return s
}

// SetMetricName sets the MetricName field's value.
func (s *TrialComponentMetricSummary) SetMetricName(v string) *TrialComponentMetricSummary {
	s.MetricName = &v
	return s
}

// SetMin sets the Min field's value.
func (s *TrialComponentMetricSummary) SetMin(v float64) *TrialComponentMetricSummary {
	s.Min = &v
	return s
}

// SetSourceArn sets the SourceArn field's value.
func (s *TrialComponentMetricSummary) SetSourceArn(v string) *TrialComponentMetricSummary {
	s.SourceArn = &v
	return s
}

// SetStdDev sets the StdDev field's value.
func (s *TrialComponentMetricSummary) SetStdDev(v float64) *TrialComponentMetricSummary {
	s.StdDev = &v
	return s
}

// SetTimeStamp sets the TimeStamp field's value.
func (s *TrialComponentMetricSummary) SetTimeStamp(v time.Time) *TrialComponentMetricSummary {
	s.TimeStamp = &v
	return s
}

// The value of a hyperparameter. Only one of NumberValue or StringValue can
// be specified.
//
// This object is specified in the CreateTrialComponent (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrialComponent.html)
// request.
type TrialComponentParameterValue struct {
	_ struct{} `type:"structure"`

	// The numeric value of a numeric hyperparameter. If you specify a value for
	// this parameter, you can't specify the StringValue parameter.
	NumberValue *float64 `type:"double"`

	// The string value of a categorical hyperparameter. If you specify a value
	// for this parameter, you can't specify the NumberValue parameter.
	StringValue *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrialComponentParameterValue) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrialComponentParameterValue) GoString() string {
	return s.String()
}

// SetNumberValue sets the NumberValue field's value.
func (s *TrialComponentParameterValue) SetNumberValue(v float64) *TrialComponentParameterValue {
	s.NumberValue = &v
	return s
}

// SetStringValue sets the StringValue field's value.
func (s *TrialComponentParameterValue) SetStringValue(v string) *TrialComponentParameterValue {
	s.StringValue = &v
	return s
}

// A short summary of a trial component.
type TrialComponentSimpleSummary struct {
	_ struct{} `type:"structure"`

	// Information about the user who created or modified an experiment, trial,
	// trial component, lineage group, project, or model card.
	CreatedBy *UserContext `type:"structure"`

	// When the component was created.
	CreationTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the trial component.
	TrialComponentArn *string `type:"string"`

	// The name of the trial component.
	TrialComponentName *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) and job type of the source of a trial component.
	TrialComponentSource *TrialComponentSource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrialComponentSimpleSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrialComponentSimpleSummary) GoString() string {
	return s.String()
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *TrialComponentSimpleSummary) SetCreatedBy(v *UserContext) *TrialComponentSimpleSummary {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *TrialComponentSimpleSummary) SetCreationTime(v time.Time) *TrialComponentSimpleSummary {
	s.CreationTime = &v
	return s
}

// SetTrialComponentArn sets the TrialComponentArn field's value.
func (s *TrialComponentSimpleSummary) SetTrialComponentArn(v string) *TrialComponentSimpleSummary {
	s.TrialComponentArn = &v
	return s
}

// SetTrialComponentName sets the TrialComponentName field's value.
func (s *TrialComponentSimpleSummary) SetTrialComponentName(v string) *TrialComponentSimpleSummary {
	s.TrialComponentName = &v
	return s
}

// SetTrialComponentSource sets the TrialComponentSource field's value.
func (s *TrialComponentSimpleSummary) SetTrialComponentSource(v *TrialComponentSource) *TrialComponentSimpleSummary {
	s.TrialComponentSource = v
	return s
}

// The Amazon Resource Name (ARN) and job type of the source of a trial component.
type TrialComponentSource struct {
	_ struct{} `type:"structure"`

	// The source Amazon Resource Name (ARN).
	//
	// SourceArn is a required field
	SourceArn *string `type:"string" required:"true"`

	// The source job type.
	SourceType *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrialComponentSource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrialComponentSource) GoString() string {
	return s.String()
}

// SetSourceArn sets the SourceArn field's value.
func (s *TrialComponentSource) SetSourceArn(v string) *TrialComponentSource {
	s.SourceArn = &v
	return s
}

// SetSourceType sets the SourceType field's value.
func (s *TrialComponentSource) SetSourceType(v string) *TrialComponentSource {
	s.SourceType = &v
	return s
}

// Detailed information about the source of a trial component. Either ProcessingJob
// or TrainingJob is returned.
type TrialComponentSourceDetail struct {
	_ struct{} `type:"structure"`

	// Information about a processing job that's the source of a trial component.
	ProcessingJob *ProcessingJob `type:"structure"`

	// The Amazon Resource Name (ARN) of the source.
	SourceArn *string `type:"string"`

	// Information about a training job that's the source of a trial component.
	TrainingJob *TrainingJob `type:"structure"`

	// Information about a transform job that's the source of a trial component.
	TransformJob *TransformJob `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrialComponentSourceDetail) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrialComponentSourceDetail) GoString() string {
	return s.String()
}

// SetProcessingJob sets the ProcessingJob field's value.
func (s *TrialComponentSourceDetail) SetProcessingJob(v *ProcessingJob) *TrialComponentSourceDetail {
	s.ProcessingJob = v
	return s
}

// SetSourceArn sets the SourceArn field's value.
func (s *TrialComponentSourceDetail) SetSourceArn(v string) *TrialComponentSourceDetail {
	s.SourceArn = &v
	return s
}

// SetTrainingJob sets the TrainingJob field's value.
func (s *TrialComponentSourceDetail) SetTrainingJob(v *TrainingJob) *TrialComponentSourceDetail {
	s.TrainingJob = v
	return s
}

// SetTransformJob sets the TransformJob field's value.
func (s *TrialComponentSourceDetail) SetTransformJob(v *TransformJob) *TrialComponentSourceDetail {
	s.TransformJob = v
	return s
}

// The status of the trial component.
type TrialComponentStatus struct {
	_ struct{} `type:"structure"`

	// If the component failed, a message describing why.
	Message *string `type:"string"`

	// The status of the trial component.
	PrimaryStatus *string `type:"string" enum:"TrialComponentPrimaryStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrialComponentStatus) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrialComponentStatus) GoString() string {
	return s.String()
}

// SetMessage sets the Message field's value.
func (s *TrialComponentStatus) SetMessage(v string) *TrialComponentStatus {
	s.Message = &v
	return s
}

// SetPrimaryStatus sets the PrimaryStatus field's value.
func (s *TrialComponentStatus) SetPrimaryStatus(v string) *TrialComponentStatus {
	s.PrimaryStatus = &v
	return s
}

// A summary of the properties of a trial component. To get all the properties,
// call the DescribeTrialComponent (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrialComponent.html)
// API and provide the TrialComponentName.
type TrialComponentSummary struct {
	_ struct{} `type:"structure"`

	// Who created the trial component.
	CreatedBy *UserContext `type:"structure"`

	// When the component was created.
	CreationTime *time.Time `type:"timestamp"`

	// The name of the component as displayed. If DisplayName isn't specified, TrialComponentName
	// is displayed.
	DisplayName *string `min:"1" type:"string"`

	// When the component ended.
	EndTime *time.Time `type:"timestamp"`

	// Who last modified the component.
	LastModifiedBy *UserContext `type:"structure"`

	// When the component was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// When the component started.
	StartTime *time.Time `type:"timestamp"`

	// The status of the component. States include:
	//
	//    * InProgress
	//
	//    * Completed
	//
	//    * Failed
	Status *TrialComponentStatus `type:"structure"`

	// The Amazon Resource Name (ARN) of the trial component.
	TrialComponentArn *string `type:"string"`

	// The name of the trial component.
	TrialComponentName *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) and job type of the source of a trial component.
	TrialComponentSource *TrialComponentSource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrialComponentSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrialComponentSummary) GoString() string {
	return s.String()
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *TrialComponentSummary) SetCreatedBy(v *UserContext) *TrialComponentSummary {
	s.CreatedBy = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *TrialComponentSummary) SetCreationTime(v time.Time) *TrialComponentSummary {
	s.CreationTime = &v
	return s
}

// SetDisplayName sets the DisplayName field's value.
func (s *TrialComponentSummary) SetDisplayName(v string) *TrialComponentSummary {
	s.DisplayName = &v
	return s
}

// SetEndTime sets the EndTime field's value.
func (s *TrialComponentSummary) SetEndTime(v time.Time) *TrialComponentSummary {
	s.EndTime = &v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *TrialComponentSummary) SetLastModifiedBy(v *UserContext) *TrialComponentSummary {
	s.LastModifiedBy = v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *TrialComponentSummary) SetLastModifiedTime(v time.Time) *TrialComponentSummary {
	s.LastModifiedTime = &v
	return s
}

// SetStartTime sets the StartTime field's value.
func (s *TrialComponentSummary) SetStartTime(v time.Time) *TrialComponentSummary {
	s.StartTime = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *TrialComponentSummary) SetStatus(v *TrialComponentStatus) *TrialComponentSummary {
	s.Status = v
	return s
}

// SetTrialComponentArn sets the TrialComponentArn field's value.
func (s *TrialComponentSummary) SetTrialComponentArn(v string) *TrialComponentSummary {
	s.TrialComponentArn = &v
	return s
}

// SetTrialComponentName sets the TrialComponentName field's value.
func (s *TrialComponentSummary) SetTrialComponentName(v string) *TrialComponentSummary {
	s.TrialComponentName = &v
	return s
}

// SetTrialComponentSource sets the TrialComponentSource field's value.
func (s *TrialComponentSummary) SetTrialComponentSource(v *TrialComponentSource) *TrialComponentSummary {
	s.TrialComponentSource = v
	return s
}

// The source of the trial.
type TrialSource struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the source.
	//
	// SourceArn is a required field
	SourceArn *string `type:"string" required:"true"`

	// The source job type.
	SourceType *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrialSource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrialSource) GoString() string {
	return s.String()
}

// SetSourceArn sets the SourceArn field's value.
func (s *TrialSource) SetSourceArn(v string) *TrialSource {
	s.SourceArn = &v
	return s
}

// SetSourceType sets the SourceType field's value.
func (s *TrialSource) SetSourceType(v string) *TrialSource {
	s.SourceType = &v
	return s
}

// A summary of the properties of a trial. To get the complete set of properties,
// call the DescribeTrial (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrial.html)
// API and provide the TrialName.
type TrialSummary struct {
	_ struct{} `type:"structure"`

	// When the trial was created.
	CreationTime *time.Time `type:"timestamp"`

	// The name of the trial as displayed. If DisplayName isn't specified, TrialName
	// is displayed.
	DisplayName *string `min:"1" type:"string"`

	// When the trial was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the trial.
	TrialArn *string `type:"string"`

	// The name of the trial.
	TrialName *string `min:"1" type:"string"`

	// The source of the trial.
	TrialSource *TrialSource `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrialSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TrialSummary) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *TrialSummary) SetCreationTime(v time.Time) *TrialSummary {
	s.CreationTime = &v
	return s
}

// SetDisplayName sets the DisplayName field's value.
func (s *TrialSummary) SetDisplayName(v string) *TrialSummary {
	s.DisplayName = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *TrialSummary) SetLastModifiedTime(v time.Time) *TrialSummary {
	s.LastModifiedTime = &v
	return s
}

// SetTrialArn sets the TrialArn field's value.
func (s *TrialSummary) SetTrialArn(v string) *TrialSummary {
	s.TrialArn = &v
	return s
}

// SetTrialName sets the TrialName field's value.
func (s *TrialSummary) SetTrialName(v string) *TrialSummary {
	s.TrialName = &v
	return s
}

// SetTrialSource sets the TrialSource field's value.
func (s *TrialSummary) SetTrialSource(v *TrialSource) *TrialSummary {
	s.TrialSource = v
	return s
}

// Time to live duration, where the record is hard deleted after the expiration
// time is reached; ExpiresAt = EventTime + TtlDuration. For information on
// HardDelete, see the DeleteRecord (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_DeleteRecord.html)
// API in the Amazon SageMaker API Reference guide.
type TtlDuration struct {
	_ struct{} `type:"structure"`

	// TtlDuration time unit.
	Unit *string `type:"string" enum:"TtlDurationUnit"`

	// TtlDuration time value.
	Value *int64 `min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TtlDuration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TtlDuration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TtlDuration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TtlDuration"}
	if s.Value != nil && *s.Value < 1 {
		invalidParams.Add(request.NewErrParamMinValue("Value", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetUnit sets the Unit field's value.
func (s *TtlDuration) SetUnit(v string) *TtlDuration {
	s.Unit = &v
	return s
}

// SetValue sets the Value field's value.
func (s *TtlDuration) SetValue(v int64) *TtlDuration {
	s.Value = &v
	return s
}

// The job completion criteria.
type TuningJobCompletionCriteria struct {
	_ struct{} `type:"structure"`

	// A flag to stop your hyperparameter tuning job if model performance fails
	// to improve as evaluated against an objective function.
	BestObjectiveNotImproving *BestObjectiveNotImproving `type:"structure"`

	// A flag to top your hyperparameter tuning job if automatic model tuning (AMT)
	// has detected that your model has converged as evaluated against your objective
	// function.
	ConvergenceDetected *ConvergenceDetected `type:"structure"`

	// The value of the objective metric.
	TargetObjectiveMetricValue *float64 `type:"float"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TuningJobCompletionCriteria) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TuningJobCompletionCriteria) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TuningJobCompletionCriteria) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TuningJobCompletionCriteria"}
	if s.BestObjectiveNotImproving != nil {
		if err := s.BestObjectiveNotImproving.Validate(); err != nil {
			invalidParams.AddNested("BestObjectiveNotImproving", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetBestObjectiveNotImproving sets the BestObjectiveNotImproving field's value.
func (s *TuningJobCompletionCriteria) SetBestObjectiveNotImproving(v *BestObjectiveNotImproving) *TuningJobCompletionCriteria {
	s.BestObjectiveNotImproving = v
	return s
}

// SetConvergenceDetected sets the ConvergenceDetected field's value.
func (s *TuningJobCompletionCriteria) SetConvergenceDetected(v *ConvergenceDetected) *TuningJobCompletionCriteria {
	s.ConvergenceDetected = v
	return s
}

// SetTargetObjectiveMetricValue sets the TargetObjectiveMetricValue field's value.
func (s *TuningJobCompletionCriteria) SetTargetObjectiveMetricValue(v float64) *TuningJobCompletionCriteria {
	s.TargetObjectiveMetricValue = &v
	return s
}

// Metadata for a tuning step.
type TuningJobStepMetaData struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the tuning job that was run by this step
	// execution.
	Arn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TuningJobStepMetaData) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TuningJobStepMetaData) GoString() string {
	return s.String()
}

// SetArn sets the Arn field's value.
func (s *TuningJobStepMetaData) SetArn(v string) *TuningJobStepMetaData {
	s.Arn = &v
	return s
}

// Represents an amount of money in United States dollars.
type USD struct {
	_ struct{} `type:"structure"`

	// The fractional portion, in cents, of the amount.
	Cents *int64 `type:"integer"`

	// The whole number of dollars in the amount.
	Dollars *int64 `type:"integer"`

	// Fractions of a cent, in tenths.
	TenthFractionsOfACent *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s USD) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s USD) GoString() string {
	return s.String()
}

// SetCents sets the Cents field's value.
func (s *USD) SetCents(v int64) *USD {
	s.Cents = &v
	return s
}

// SetDollars sets the Dollars field's value.
func (s *USD) SetDollars(v int64) *USD {
	s.Dollars = &v
	return s
}

// SetTenthFractionsOfACent sets the TenthFractionsOfACent field's value.
func (s *USD) SetTenthFractionsOfACent(v int64) *USD {
	s.TenthFractionsOfACent = &v
	return s
}

// Provided configuration information for the worker UI for a labeling job.
// Provide either HumanTaskUiArn or UiTemplateS3Uri.
//
// For named entity recognition, 3D point cloud and video frame labeling jobs,
// use HumanTaskUiArn.
//
// For all other Ground Truth built-in task types and custom task types, use
// UiTemplateS3Uri to specify the location of a worker task template in Amazon
// S3.
type UiConfig struct {
	_ struct{} `type:"structure"`

	// The ARN of the worker task template used to render the worker UI and tools
	// for labeling job tasks.
	//
	// Use this parameter when you are creating a labeling job for named entity
	// recognition, 3D point cloud and video frame labeling jobs. Use your labeling
	// job task type to select one of the following ARNs and use it with this parameter
	// when you create a labeling job. Replace aws-region with the Amazon Web Services
	// Region you are creating your labeling job in. For example, replace aws-region
	// with us-west-1 if you create a labeling job in US West (N. California).
	//
	// Named Entity Recognition
	//
	// Use the following HumanTaskUiArn for named entity recognition labeling jobs:
	//
	// arn:aws:sagemaker:aws-region:394669845002:human-task-ui/NamedEntityRecognition
	//
	// 3D Point Cloud HumanTaskUiArns
	//
	// Use this HumanTaskUiArn for 3D point cloud object detection and 3D point
	// cloud object detection adjustment labeling jobs.
	//
	//    * arn:aws:sagemaker:aws-region:394669845002:human-task-ui/PointCloudObjectDetection
	//
	// Use this HumanTaskUiArn for 3D point cloud object tracking and 3D point cloud
	// object tracking adjustment labeling jobs.
	//
	//    * arn:aws:sagemaker:aws-region:394669845002:human-task-ui/PointCloudObjectTracking
	//
	// Use this HumanTaskUiArn for 3D point cloud semantic segmentation and 3D point
	// cloud semantic segmentation adjustment labeling jobs.
	//
	//    * arn:aws:sagemaker:aws-region:394669845002:human-task-ui/PointCloudSemanticSegmentation
	//
	// Video Frame HumanTaskUiArns
	//
	// Use this HumanTaskUiArn for video frame object detection and video frame
	// object detection adjustment labeling jobs.
	//
	//    * arn:aws:sagemaker:region:394669845002:human-task-ui/VideoObjectDetection
	//
	// Use this HumanTaskUiArn for video frame object tracking and video frame object
	// tracking adjustment labeling jobs.
	//
	//    * arn:aws:sagemaker:aws-region:394669845002:human-task-ui/VideoObjectTracking
	HumanTaskUiArn *string `type:"string"`

	// The Amazon S3 bucket location of the UI template, or worker task template.
	// This is the template used to render the worker UI and tools for labeling
	// job tasks. For more information about the contents of a UI template, see
	// Creating Your Custom Labeling Task Template (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-custom-templates-step2.html).
	UiTemplateS3Uri *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UiConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UiConfig) GoString() string {
	return s.String()
}

// SetHumanTaskUiArn sets the HumanTaskUiArn field's value.
func (s *UiConfig) SetHumanTaskUiArn(v string) *UiConfig {
	s.HumanTaskUiArn = &v
	return s
}

// SetUiTemplateS3Uri sets the UiTemplateS3Uri field's value.
func (s *UiConfig) SetUiTemplateS3Uri(v string) *UiConfig {
	s.UiTemplateS3Uri = &v
	return s
}

// The Liquid template for the worker user interface.
type UiTemplate struct {
	_ struct{} `type:"structure"`

	// The content of the Liquid template for the worker user interface.
	//
	// Content is a required field
	Content *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UiTemplate) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UiTemplate) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UiTemplate) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UiTemplate"}
	if s.Content == nil {
		invalidParams.Add(request.NewErrParamRequired("Content"))
	}
	if s.Content != nil && len(*s.Content) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Content", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContent sets the Content field's value.
func (s *UiTemplate) SetContent(v string) *UiTemplate {
	s.Content = &v
	return s
}

// Container for user interface template information.
type UiTemplateInfo struct {
	_ struct{} `type:"structure"`

	// The SHA-256 digest of the contents of the template.
	ContentSha256 *string `min:"1" type:"string"`

	// The URL for the user interface template.
	Url *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UiTemplateInfo) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UiTemplateInfo) GoString() string {
	return s.String()
}

// SetContentSha256 sets the ContentSha256 field's value.
func (s *UiTemplateInfo) SetContentSha256(v string) *UiTemplateInfo {
	s.ContentSha256 = &v
	return s
}

// SetUrl sets the Url field's value.
func (s *UiTemplateInfo) SetUrl(v string) *UiTemplateInfo {
	s.Url = &v
	return s
}

type UpdateActionInput struct {
	_ struct{} `type:"structure"`

	// The name of the action to update.
	//
	// ActionName is a required field
	ActionName *string `min:"1" type:"string" required:"true"`

	// The new description for the action.
	Description *string `type:"string"`

	// The new list of properties. Overwrites the current property list.
	Properties map[string]*string `type:"map"`

	// A list of properties to remove.
	PropertiesToRemove []*string `type:"list"`

	// The new status for the action.
	Status *string `type:"string" enum:"ActionStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateActionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateActionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateActionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateActionInput"}
	if s.ActionName == nil {
		invalidParams.Add(request.NewErrParamRequired("ActionName"))
	}
	if s.ActionName != nil && len(*s.ActionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetActionName sets the ActionName field's value.
func (s *UpdateActionInput) SetActionName(v string) *UpdateActionInput {
	s.ActionName = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *UpdateActionInput) SetDescription(v string) *UpdateActionInput {
	s.Description = &v
	return s
}

// SetProperties sets the Properties field's value.
func (s *UpdateActionInput) SetProperties(v map[string]*string) *UpdateActionInput {
	s.Properties = v
	return s
}

// SetPropertiesToRemove sets the PropertiesToRemove field's value.
func (s *UpdateActionInput) SetPropertiesToRemove(v []*string) *UpdateActionInput {
	s.PropertiesToRemove = v
	return s
}

// SetStatus sets the Status field's value.
func (s *UpdateActionInput) SetStatus(v string) *UpdateActionInput {
	s.Status = &v
	return s
}

type UpdateActionOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the action.
	ActionArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateActionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateActionOutput) GoString() string {
	return s.String()
}

// SetActionArn sets the ActionArn field's value.
func (s *UpdateActionOutput) SetActionArn(v string) *UpdateActionOutput {
	s.ActionArn = &v
	return s
}

type UpdateAppImageConfigInput struct {
	_ struct{} `type:"structure"`

	// The name of the AppImageConfig to update.
	//
	// AppImageConfigName is a required field
	AppImageConfigName *string `type:"string" required:"true"`

	// The JupyterLab app running on the image.
	JupyterLabAppImageConfig *JupyterLabAppImageConfig `type:"structure"`

	// The new KernelGateway app to run on the image.
	KernelGatewayImageConfig *KernelGatewayImageConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAppImageConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAppImageConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateAppImageConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateAppImageConfigInput"}
	if s.AppImageConfigName == nil {
		invalidParams.Add(request.NewErrParamRequired("AppImageConfigName"))
	}
	if s.KernelGatewayImageConfig != nil {
		if err := s.KernelGatewayImageConfig.Validate(); err != nil {
			invalidParams.AddNested("KernelGatewayImageConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppImageConfigName sets the AppImageConfigName field's value.
func (s *UpdateAppImageConfigInput) SetAppImageConfigName(v string) *UpdateAppImageConfigInput {
	s.AppImageConfigName = &v
	return s
}

// SetJupyterLabAppImageConfig sets the JupyterLabAppImageConfig field's value.
func (s *UpdateAppImageConfigInput) SetJupyterLabAppImageConfig(v *JupyterLabAppImageConfig) *UpdateAppImageConfigInput {
	s.JupyterLabAppImageConfig = v
	return s
}

// SetKernelGatewayImageConfig sets the KernelGatewayImageConfig field's value.
func (s *UpdateAppImageConfigInput) SetKernelGatewayImageConfig(v *KernelGatewayImageConfig) *UpdateAppImageConfigInput {
	s.KernelGatewayImageConfig = v
	return s
}

type UpdateAppImageConfigOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) for the AppImageConfig.
	AppImageConfigArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAppImageConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAppImageConfigOutput) GoString() string {
	return s.String()
}

// SetAppImageConfigArn sets the AppImageConfigArn field's value.
func (s *UpdateAppImageConfigOutput) SetAppImageConfigArn(v string) *UpdateAppImageConfigOutput {
	s.AppImageConfigArn = &v
	return s
}

type UpdateArtifactInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the artifact to update.
	//
	// ArtifactArn is a required field
	ArtifactArn *string `type:"string" required:"true"`

	// The new name for the artifact.
	ArtifactName *string `min:"1" type:"string"`

	// The new list of properties. Overwrites the current property list.
	Properties map[string]*string `type:"map"`

	// A list of properties to remove.
	PropertiesToRemove []*string `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateArtifactInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateArtifactInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateArtifactInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateArtifactInput"}
	if s.ArtifactArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ArtifactArn"))
	}
	if s.ArtifactName != nil && len(*s.ArtifactName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ArtifactName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetArtifactArn sets the ArtifactArn field's value.
func (s *UpdateArtifactInput) SetArtifactArn(v string) *UpdateArtifactInput {
	s.ArtifactArn = &v
	return s
}

// SetArtifactName sets the ArtifactName field's value.
func (s *UpdateArtifactInput) SetArtifactName(v string) *UpdateArtifactInput {
	s.ArtifactName = &v
	return s
}

// SetProperties sets the Properties field's value.
func (s *UpdateArtifactInput) SetProperties(v map[string]*string) *UpdateArtifactInput {
	s.Properties = v
	return s
}

// SetPropertiesToRemove sets the PropertiesToRemove field's value.
func (s *UpdateArtifactInput) SetPropertiesToRemove(v []*string) *UpdateArtifactInput {
	s.PropertiesToRemove = v
	return s
}

type UpdateArtifactOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the artifact.
	ArtifactArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateArtifactOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateArtifactOutput) GoString() string {
	return s.String()
}

// SetArtifactArn sets the ArtifactArn field's value.
func (s *UpdateArtifactOutput) SetArtifactArn(v string) *UpdateArtifactOutput {
	s.ArtifactArn = &v
	return s
}

type UpdateClusterInput struct {
	_ struct{} `type:"structure"`

	// Specify the name of the SageMaker HyperPod cluster you want to update.
	//
	// ClusterName is a required field
	ClusterName *string `type:"string" required:"true"`

	// Specify the instance groups to update.
	//
	// InstanceGroups is a required field
	InstanceGroups []*ClusterInstanceGroupSpecification `min:"1" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateClusterInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateClusterInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateClusterInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateClusterInput"}
	if s.ClusterName == nil {
		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
	}
	if s.InstanceGroups == nil {
		invalidParams.Add(request.NewErrParamRequired("InstanceGroups"))
	}
	if s.InstanceGroups != nil && len(s.InstanceGroups) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("InstanceGroups", 1))
	}
	if s.InstanceGroups != nil {
		for i, v := range s.InstanceGroups {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceGroups", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClusterName sets the ClusterName field's value.
func (s *UpdateClusterInput) SetClusterName(v string) *UpdateClusterInput {
	s.ClusterName = &v
	return s
}

// SetInstanceGroups sets the InstanceGroups field's value.
func (s *UpdateClusterInput) SetInstanceGroups(v []*ClusterInstanceGroupSpecification) *UpdateClusterInput {
	s.InstanceGroups = v
	return s
}

type UpdateClusterOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the updated SageMaker HyperPod cluster.
	//
	// ClusterArn is a required field
	ClusterArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateClusterOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateClusterOutput) GoString() string {
	return s.String()
}

// SetClusterArn sets the ClusterArn field's value.
func (s *UpdateClusterOutput) SetClusterArn(v string) *UpdateClusterOutput {
	s.ClusterArn = &v
	return s
}

type UpdateCodeRepositoryInput struct {
	_ struct{} `type:"structure"`

	// The name of the Git repository to update.
	//
	// CodeRepositoryName is a required field
	CodeRepositoryName *string `min:"1" type:"string" required:"true"`

	// The configuration of the git repository, including the URL and the Amazon
	// Resource Name (ARN) of the Amazon Web Services Secrets Manager secret that
	// contains the credentials used to access the repository. The secret must have
	// a staging label of AWSCURRENT and must be in the following format:
	//
	// {"username": UserName, "password": Password}
	GitConfig *GitConfigForUpdate `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateCodeRepositoryInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateCodeRepositoryInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateCodeRepositoryInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateCodeRepositoryInput"}
	if s.CodeRepositoryName == nil {
		invalidParams.Add(request.NewErrParamRequired("CodeRepositoryName"))
	}
	if s.CodeRepositoryName != nil && len(*s.CodeRepositoryName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("CodeRepositoryName", 1))
	}
	if s.GitConfig != nil {
		if err := s.GitConfig.Validate(); err != nil {
			invalidParams.AddNested("GitConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCodeRepositoryName sets the CodeRepositoryName field's value.
func (s *UpdateCodeRepositoryInput) SetCodeRepositoryName(v string) *UpdateCodeRepositoryInput {
	s.CodeRepositoryName = &v
	return s
}

// SetGitConfig sets the GitConfig field's value.
func (s *UpdateCodeRepositoryInput) SetGitConfig(v *GitConfigForUpdate) *UpdateCodeRepositoryInput {
	s.GitConfig = v
	return s
}

type UpdateCodeRepositoryOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the Git repository.
	//
	// CodeRepositoryArn is a required field
	CodeRepositoryArn *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateCodeRepositoryOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateCodeRepositoryOutput) GoString() string {
	return s.String()
}

// SetCodeRepositoryArn sets the CodeRepositoryArn field's value.
func (s *UpdateCodeRepositoryOutput) SetCodeRepositoryArn(v string) *UpdateCodeRepositoryOutput {
	s.CodeRepositoryArn = &v
	return s
}

type UpdateContextInput struct {
	_ struct{} `type:"structure"`

	// The name of the context to update.
	//
	// ContextName is a required field
	ContextName *string `min:"1" type:"string" required:"true"`

	// The new description for the context.
	Description *string `type:"string"`

	// The new list of properties. Overwrites the current property list.
	Properties map[string]*string `type:"map"`

	// A list of properties to remove.
	PropertiesToRemove []*string `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateContextInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateContextInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateContextInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateContextInput"}
	if s.ContextName == nil {
		invalidParams.Add(request.NewErrParamRequired("ContextName"))
	}
	if s.ContextName != nil && len(*s.ContextName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ContextName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContextName sets the ContextName field's value.
func (s *UpdateContextInput) SetContextName(v string) *UpdateContextInput {
	s.ContextName = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *UpdateContextInput) SetDescription(v string) *UpdateContextInput {
	s.Description = &v
	return s
}

// SetProperties sets the Properties field's value.
func (s *UpdateContextInput) SetProperties(v map[string]*string) *UpdateContextInput {
	s.Properties = v
	return s
}

// SetPropertiesToRemove sets the PropertiesToRemove field's value.
func (s *UpdateContextInput) SetPropertiesToRemove(v []*string) *UpdateContextInput {
	s.PropertiesToRemove = v
	return s
}

type UpdateContextOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the context.
	ContextArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateContextOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateContextOutput) GoString() string {
	return s.String()
}

// SetContextArn sets the ContextArn field's value.
func (s *UpdateContextOutput) SetContextArn(v string) *UpdateContextOutput {
	s.ContextArn = &v
	return s
}

type UpdateDeviceFleetInput struct {
	_ struct{} `type:"structure"`

	// Description of the fleet.
	Description *string `min:"1" type:"string"`

	// The name of the fleet.
	//
	// DeviceFleetName is a required field
	DeviceFleetName *string `min:"1" type:"string" required:"true"`

	// Whether to create an Amazon Web Services IoT Role Alias during device fleet
	// creation. The name of the role alias generated will match this pattern: "SageMakerEdge-{DeviceFleetName}".
	//
	// For example, if your device fleet is called "demo-fleet", the name of the
	// role alias will be "SageMakerEdge-demo-fleet".
	EnableIotRoleAlias *bool `type:"boolean"`

	// Output configuration for storing sample data collected by the fleet.
	//
	// OutputConfig is a required field
	OutputConfig *EdgeOutputConfig `type:"structure" required:"true"`

	// The Amazon Resource Name (ARN) of the device.
	RoleArn *string `min:"20" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateDeviceFleetInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateDeviceFleetInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateDeviceFleetInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateDeviceFleetInput"}
	if s.Description != nil && len(*s.Description) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
	}
	if s.DeviceFleetName == nil {
		invalidParams.Add(request.NewErrParamRequired("DeviceFleetName"))
	}
	if s.DeviceFleetName != nil && len(*s.DeviceFleetName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DeviceFleetName", 1))
	}
	if s.OutputConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("OutputConfig"))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.OutputConfig != nil {
		if err := s.OutputConfig.Validate(); err != nil {
			invalidParams.AddNested("OutputConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDescription sets the Description field's value.
func (s *UpdateDeviceFleetInput) SetDescription(v string) *UpdateDeviceFleetInput {
	s.Description = &v
	return s
}

// SetDeviceFleetName sets the DeviceFleetName field's value.
func (s *UpdateDeviceFleetInput) SetDeviceFleetName(v string) *UpdateDeviceFleetInput {
	s.DeviceFleetName = &v
	return s
}

// SetEnableIotRoleAlias sets the EnableIotRoleAlias field's value.
func (s *UpdateDeviceFleetInput) SetEnableIotRoleAlias(v bool) *UpdateDeviceFleetInput {
	s.EnableIotRoleAlias = &v
	return s
}

// SetOutputConfig sets the OutputConfig field's value.
func (s *UpdateDeviceFleetInput) SetOutputConfig(v *EdgeOutputConfig) *UpdateDeviceFleetInput {
	s.OutputConfig = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *UpdateDeviceFleetInput) SetRoleArn(v string) *UpdateDeviceFleetInput {
	s.RoleArn = &v
	return s
}

type UpdateDeviceFleetOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateDeviceFleetOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateDeviceFleetOutput) GoString() string {
	return s.String()
}

type UpdateDevicesInput struct {
	_ struct{} `type:"structure"`

	// The name of the fleet the devices belong to.
	//
	// DeviceFleetName is a required field
	DeviceFleetName *string `min:"1" type:"string" required:"true"`

	// List of devices to register with Edge Manager agent.
	//
	// Devices is a required field
	Devices []*Device `type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateDevicesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateDevicesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateDevicesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateDevicesInput"}
	if s.DeviceFleetName == nil {
		invalidParams.Add(request.NewErrParamRequired("DeviceFleetName"))
	}
	if s.DeviceFleetName != nil && len(*s.DeviceFleetName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DeviceFleetName", 1))
	}
	if s.Devices == nil {
		invalidParams.Add(request.NewErrParamRequired("Devices"))
	}
	if s.Devices != nil {
		for i, v := range s.Devices {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Devices", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDeviceFleetName sets the DeviceFleetName field's value.
func (s *UpdateDevicesInput) SetDeviceFleetName(v string) *UpdateDevicesInput {
	s.DeviceFleetName = &v
	return s
}

// SetDevices sets the Devices field's value.
func (s *UpdateDevicesInput) SetDevices(v []*Device) *UpdateDevicesInput {
	s.Devices = v
	return s
}

type UpdateDevicesOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateDevicesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateDevicesOutput) GoString() string {
	return s.String()
}

type UpdateDomainInput struct {
	_ struct{} `type:"structure"`

	// Specifies the VPC used for non-EFS traffic.
	//
	//    * PublicInternetOnly - Non-EFS traffic is through a VPC managed by Amazon
	//    SageMaker, which allows direct internet access.
	//
	//    * VpcOnly - All Studio traffic is through the specified VPC and subnets.
	//
	// This configuration can only be modified if there are no apps in the InService,
	// Pending, or Deleting state. The configuration cannot be updated if DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn
	// is already set or DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn
	// is provided as part of the same request.
	AppNetworkAccessType *string `type:"string" enum:"AppNetworkAccessType"`

	// The entity that creates and manages the required security groups for inter-app
	// communication in VPCOnly mode. Required when CreateDomain.AppNetworkAccessType
	// is VPCOnly and DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn
	// is provided. If setting up the domain for use with RStudio, this value must
	// be set to Service.
	AppSecurityGroupManagement *string `type:"string" enum:"AppSecurityGroupManagement"`

	// The default settings used to create a space within the Domain.
	DefaultSpaceSettings *DefaultSpaceSettings `type:"structure"`

	// A collection of settings.
	DefaultUserSettings *UserSettings `type:"structure"`

	// The ID of the domain to be updated.
	//
	// DomainId is a required field
	DomainId *string `type:"string" required:"true"`

	// A collection of DomainSettings configuration values to update.
	DomainSettingsForUpdate *DomainSettingsForUpdate `type:"structure"`

	// The VPC subnets that Studio uses for communication.
	//
	// If removing subnets, ensure there are no apps in the InService, Pending,
	// or Deleting state.
	SubnetIds []*string `min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateDomainInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateDomainInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateDomainInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateDomainInput"}
	if s.DomainId == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainId"))
	}
	if s.SubnetIds != nil && len(s.SubnetIds) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SubnetIds", 1))
	}
	if s.DefaultSpaceSettings != nil {
		if err := s.DefaultSpaceSettings.Validate(); err != nil {
			invalidParams.AddNested("DefaultSpaceSettings", err.(request.ErrInvalidParams))
		}
	}
	if s.DefaultUserSettings != nil {
		if err := s.DefaultUserSettings.Validate(); err != nil {
			invalidParams.AddNested("DefaultUserSettings", err.(request.ErrInvalidParams))
		}
	}
	if s.DomainSettingsForUpdate != nil {
		if err := s.DomainSettingsForUpdate.Validate(); err != nil {
			invalidParams.AddNested("DomainSettingsForUpdate", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAppNetworkAccessType sets the AppNetworkAccessType field's value.
func (s *UpdateDomainInput) SetAppNetworkAccessType(v string) *UpdateDomainInput {
	s.AppNetworkAccessType = &v
	return s
}

// SetAppSecurityGroupManagement sets the AppSecurityGroupManagement field's value.
func (s *UpdateDomainInput) SetAppSecurityGroupManagement(v string) *UpdateDomainInput {
	s.AppSecurityGroupManagement = &v
	return s
}

// SetDefaultSpaceSettings sets the DefaultSpaceSettings field's value.
func (s *UpdateDomainInput) SetDefaultSpaceSettings(v *DefaultSpaceSettings) *UpdateDomainInput {
	s.DefaultSpaceSettings = v
	return s
}

// SetDefaultUserSettings sets the DefaultUserSettings field's value.
func (s *UpdateDomainInput) SetDefaultUserSettings(v *UserSettings) *UpdateDomainInput {
	s.DefaultUserSettings = v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *UpdateDomainInput) SetDomainId(v string) *UpdateDomainInput {
	s.DomainId = &v
	return s
}

// SetDomainSettingsForUpdate sets the DomainSettingsForUpdate field's value.
func (s *UpdateDomainInput) SetDomainSettingsForUpdate(v *DomainSettingsForUpdate) *UpdateDomainInput {
	s.DomainSettingsForUpdate = v
	return s
}

// SetSubnetIds sets the SubnetIds field's value.
func (s *UpdateDomainInput) SetSubnetIds(v []*string) *UpdateDomainInput {
	s.SubnetIds = v
	return s
}

type UpdateDomainOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the domain.
	DomainArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateDomainOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateDomainOutput) GoString() string {
	return s.String()
}

// SetDomainArn sets the DomainArn field's value.
func (s *UpdateDomainOutput) SetDomainArn(v string) *UpdateDomainOutput {
	s.DomainArn = &v
	return s
}

type UpdateEndpointInput struct {
	_ struct{} `type:"structure"`

	// The deployment configuration for an endpoint, which contains the desired
	// deployment strategy and rollback configurations.
	DeploymentConfig *DeploymentConfig `type:"structure"`

	// The name of the new endpoint configuration.
	//
	// EndpointConfigName is a required field
	EndpointConfigName *string `type:"string" required:"true"`

	// The name of the endpoint whose configuration you want to update.
	//
	// EndpointName is a required field
	EndpointName *string `type:"string" required:"true"`

	// When you are updating endpoint resources with RetainAllVariantProperties,
	// whose value is set to true, ExcludeRetainedVariantProperties specifies the
	// list of type VariantProperty (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VariantProperty.html)
	// to override with the values provided by EndpointConfig. If you don't specify
	// a value for ExcludeRetainedVariantProperties, no variant properties are overridden.
	ExcludeRetainedVariantProperties []*VariantProperty `type:"list"`

	// When updating endpoint resources, enables or disables the retention of variant
	// properties (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VariantProperty.html),
	// such as the instance count or the variant weight. To retain the variant properties
	// of an endpoint when updating it, set RetainAllVariantProperties to true.
	// To use the variant properties specified in a new EndpointConfig call when
	// updating an endpoint, set RetainAllVariantProperties to false. The default
	// is false.
	RetainAllVariantProperties *bool `type:"boolean"`

	// Specifies whether to reuse the last deployment configuration. The default
	// value is false (the configuration is not reused).
	RetainDeploymentConfig *bool `type:"boolean"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateEndpointInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateEndpointInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateEndpointInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateEndpointInput"}
	if s.EndpointConfigName == nil {
		invalidParams.Add(request.NewErrParamRequired("EndpointConfigName"))
	}
	if s.EndpointName == nil {
		invalidParams.Add(request.NewErrParamRequired("EndpointName"))
	}
	if s.DeploymentConfig != nil {
		if err := s.DeploymentConfig.Validate(); err != nil {
			invalidParams.AddNested("DeploymentConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.ExcludeRetainedVariantProperties != nil {
		for i, v := range s.ExcludeRetainedVariantProperties {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ExcludeRetainedVariantProperties", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDeploymentConfig sets the DeploymentConfig field's value.
func (s *UpdateEndpointInput) SetDeploymentConfig(v *DeploymentConfig) *UpdateEndpointInput {
	s.DeploymentConfig = v
	return s
}

// SetEndpointConfigName sets the EndpointConfigName field's value.
func (s *UpdateEndpointInput) SetEndpointConfigName(v string) *UpdateEndpointInput {
	s.EndpointConfigName = &v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *UpdateEndpointInput) SetEndpointName(v string) *UpdateEndpointInput {
	s.EndpointName = &v
	return s
}

// SetExcludeRetainedVariantProperties sets the ExcludeRetainedVariantProperties field's value.
func (s *UpdateEndpointInput) SetExcludeRetainedVariantProperties(v []*VariantProperty) *UpdateEndpointInput {
	s.ExcludeRetainedVariantProperties = v
	return s
}

// SetRetainAllVariantProperties sets the RetainAllVariantProperties field's value.
func (s *UpdateEndpointInput) SetRetainAllVariantProperties(v bool) *UpdateEndpointInput {
	s.RetainAllVariantProperties = &v
	return s
}

// SetRetainDeploymentConfig sets the RetainDeploymentConfig field's value.
func (s *UpdateEndpointInput) SetRetainDeploymentConfig(v bool) *UpdateEndpointInput {
	s.RetainDeploymentConfig = &v
	return s
}

type UpdateEndpointOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the endpoint.
	//
	// EndpointArn is a required field
	EndpointArn *string `min:"20" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateEndpointOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateEndpointOutput) GoString() string {
	return s.String()
}

// SetEndpointArn sets the EndpointArn field's value.
func (s *UpdateEndpointOutput) SetEndpointArn(v string) *UpdateEndpointOutput {
	s.EndpointArn = &v
	return s
}

type UpdateEndpointWeightsAndCapacitiesInput struct {
	_ struct{} `type:"structure"`

	// An object that provides new capacity and weight values for a variant.
	//
	// DesiredWeightsAndCapacities is a required field
	DesiredWeightsAndCapacities []*DesiredWeightAndCapacity `min:"1" type:"list" required:"true"`

	// The name of an existing SageMaker endpoint.
	//
	// EndpointName is a required field
	EndpointName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateEndpointWeightsAndCapacitiesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateEndpointWeightsAndCapacitiesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateEndpointWeightsAndCapacitiesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateEndpointWeightsAndCapacitiesInput"}
	if s.DesiredWeightsAndCapacities == nil {
		invalidParams.Add(request.NewErrParamRequired("DesiredWeightsAndCapacities"))
	}
	if s.DesiredWeightsAndCapacities != nil && len(s.DesiredWeightsAndCapacities) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DesiredWeightsAndCapacities", 1))
	}
	if s.EndpointName == nil {
		invalidParams.Add(request.NewErrParamRequired("EndpointName"))
	}
	if s.DesiredWeightsAndCapacities != nil {
		for i, v := range s.DesiredWeightsAndCapacities {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DesiredWeightsAndCapacities", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDesiredWeightsAndCapacities sets the DesiredWeightsAndCapacities field's value.
func (s *UpdateEndpointWeightsAndCapacitiesInput) SetDesiredWeightsAndCapacities(v []*DesiredWeightAndCapacity) *UpdateEndpointWeightsAndCapacitiesInput {
	s.DesiredWeightsAndCapacities = v
	return s
}

// SetEndpointName sets the EndpointName field's value.
func (s *UpdateEndpointWeightsAndCapacitiesInput) SetEndpointName(v string) *UpdateEndpointWeightsAndCapacitiesInput {
	s.EndpointName = &v
	return s
}

type UpdateEndpointWeightsAndCapacitiesOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the updated endpoint.
	//
	// EndpointArn is a required field
	EndpointArn *string `min:"20" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateEndpointWeightsAndCapacitiesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateEndpointWeightsAndCapacitiesOutput) GoString() string {
	return s.String()
}

// SetEndpointArn sets the EndpointArn field's value.
func (s *UpdateEndpointWeightsAndCapacitiesOutput) SetEndpointArn(v string) *UpdateEndpointWeightsAndCapacitiesOutput {
	s.EndpointArn = &v
	return s
}

type UpdateExperimentInput struct {
	_ struct{} `type:"structure"`

	// The description of the experiment.
	Description *string `type:"string"`

	// The name of the experiment as displayed. The name doesn't need to be unique.
	// If DisplayName isn't specified, ExperimentName is displayed.
	DisplayName *string `min:"1" type:"string"`

	// The name of the experiment to update.
	//
	// ExperimentName is a required field
	ExperimentName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateExperimentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateExperimentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateExperimentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateExperimentInput"}
	if s.DisplayName != nil && len(*s.DisplayName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1))
	}
	if s.ExperimentName == nil {
		invalidParams.Add(request.NewErrParamRequired("ExperimentName"))
	}
	if s.ExperimentName != nil && len(*s.ExperimentName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ExperimentName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDescription sets the Description field's value.
func (s *UpdateExperimentInput) SetDescription(v string) *UpdateExperimentInput {
	s.Description = &v
	return s
}

// SetDisplayName sets the DisplayName field's value.
func (s *UpdateExperimentInput) SetDisplayName(v string) *UpdateExperimentInput {
	s.DisplayName = &v
	return s
}

// SetExperimentName sets the ExperimentName field's value.
func (s *UpdateExperimentInput) SetExperimentName(v string) *UpdateExperimentInput {
	s.ExperimentName = &v
	return s
}

type UpdateExperimentOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the experiment.
	ExperimentArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateExperimentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateExperimentOutput) GoString() string {
	return s.String()
}

// SetExperimentArn sets the ExperimentArn field's value.
func (s *UpdateExperimentOutput) SetExperimentArn(v string) *UpdateExperimentOutput {
	s.ExperimentArn = &v
	return s
}

type UpdateFeatureGroupInput struct {
	_ struct{} `type:"structure"`

	// Updates the feature group. Updating a feature group is an asynchronous operation.
	// When you get an HTTP 200 response, you've made a valid request. It takes
	// some time after you've made a valid request for Feature Store to update the
	// feature group.
	FeatureAdditions []*FeatureDefinition `min:"1" type:"list"`

	// The name or Amazon Resource Name (ARN) of the feature group that you're updating.
	//
	// FeatureGroupName is a required field
	FeatureGroupName *string `min:"1" type:"string" required:"true"`

	// Updates the feature group online store configuration.
	OnlineStoreConfig *OnlineStoreConfigUpdate `type:"structure"`

	// The new throughput configuration for the feature group. You can switch between
	// on-demand and provisioned modes or update the read / write capacity of provisioned
	// feature groups. You can switch a feature group to on-demand only once in
	// a 24 hour period.
	ThroughputConfig *ThroughputConfigUpdate `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateFeatureGroupInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateFeatureGroupInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateFeatureGroupInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateFeatureGroupInput"}
	if s.FeatureAdditions != nil && len(s.FeatureAdditions) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FeatureAdditions", 1))
	}
	if s.FeatureGroupName == nil {
		invalidParams.Add(request.NewErrParamRequired("FeatureGroupName"))
	}
	if s.FeatureGroupName != nil && len(*s.FeatureGroupName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FeatureGroupName", 1))
	}
	if s.FeatureAdditions != nil {
		for i, v := range s.FeatureAdditions {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FeatureAdditions", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.OnlineStoreConfig != nil {
		if err := s.OnlineStoreConfig.Validate(); err != nil {
			invalidParams.AddNested("OnlineStoreConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFeatureAdditions sets the FeatureAdditions field's value.
func (s *UpdateFeatureGroupInput) SetFeatureAdditions(v []*FeatureDefinition) *UpdateFeatureGroupInput {
	s.FeatureAdditions = v
	return s
}

// SetFeatureGroupName sets the FeatureGroupName field's value.
func (s *UpdateFeatureGroupInput) SetFeatureGroupName(v string) *UpdateFeatureGroupInput {
	s.FeatureGroupName = &v
	return s
}

// SetOnlineStoreConfig sets the OnlineStoreConfig field's value.
func (s *UpdateFeatureGroupInput) SetOnlineStoreConfig(v *OnlineStoreConfigUpdate) *UpdateFeatureGroupInput {
	s.OnlineStoreConfig = v
	return s
}

// SetThroughputConfig sets the ThroughputConfig field's value.
func (s *UpdateFeatureGroupInput) SetThroughputConfig(v *ThroughputConfigUpdate) *UpdateFeatureGroupInput {
	s.ThroughputConfig = v
	return s
}

type UpdateFeatureGroupOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Number (ARN) of the feature group that you're updating.
	//
	// FeatureGroupArn is a required field
	FeatureGroupArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateFeatureGroupOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateFeatureGroupOutput) GoString() string {
	return s.String()
}

// SetFeatureGroupArn sets the FeatureGroupArn field's value.
func (s *UpdateFeatureGroupOutput) SetFeatureGroupArn(v string) *UpdateFeatureGroupOutput {
	s.FeatureGroupArn = &v
	return s
}

type UpdateFeatureMetadataInput struct {
	_ struct{} `type:"structure"`

	// A description that you can write to better describe the feature.
	Description *string `type:"string"`

	// The name or Amazon Resource Name (ARN) of the feature group containing the
	// feature that you're updating.
	//
	// FeatureGroupName is a required field
	FeatureGroupName *string `min:"1" type:"string" required:"true"`

	// The name of the feature that you're updating.
	//
	// FeatureName is a required field
	FeatureName *string `min:"1" type:"string" required:"true"`

	// A list of key-value pairs that you can add to better describe the feature.
	ParameterAdditions []*FeatureParameter `type:"list"`

	// A list of parameter keys that you can specify to remove parameters that describe
	// your feature.
	ParameterRemovals []*string `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateFeatureMetadataInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateFeatureMetadataInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateFeatureMetadataInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateFeatureMetadataInput"}
	if s.FeatureGroupName == nil {
		invalidParams.Add(request.NewErrParamRequired("FeatureGroupName"))
	}
	if s.FeatureGroupName != nil && len(*s.FeatureGroupName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FeatureGroupName", 1))
	}
	if s.FeatureName == nil {
		invalidParams.Add(request.NewErrParamRequired("FeatureName"))
	}
	if s.FeatureName != nil && len(*s.FeatureName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FeatureName", 1))
	}
	if s.ParameterAdditions != nil {
		for i, v := range s.ParameterAdditions {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ParameterAdditions", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDescription sets the Description field's value.
func (s *UpdateFeatureMetadataInput) SetDescription(v string) *UpdateFeatureMetadataInput {
	s.Description = &v
	return s
}

// SetFeatureGroupName sets the FeatureGroupName field's value.
func (s *UpdateFeatureMetadataInput) SetFeatureGroupName(v string) *UpdateFeatureMetadataInput {
	s.FeatureGroupName = &v
	return s
}

// SetFeatureName sets the FeatureName field's value.
func (s *UpdateFeatureMetadataInput) SetFeatureName(v string) *UpdateFeatureMetadataInput {
	s.FeatureName = &v
	return s
}

// SetParameterAdditions sets the ParameterAdditions field's value.
func (s *UpdateFeatureMetadataInput) SetParameterAdditions(v []*FeatureParameter) *UpdateFeatureMetadataInput {
	s.ParameterAdditions = v
	return s
}

// SetParameterRemovals sets the ParameterRemovals field's value.
func (s *UpdateFeatureMetadataInput) SetParameterRemovals(v []*string) *UpdateFeatureMetadataInput {
	s.ParameterRemovals = v
	return s
}

type UpdateFeatureMetadataOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateFeatureMetadataOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateFeatureMetadataOutput) GoString() string {
	return s.String()
}

type UpdateHubInput struct {
	_ struct{} `type:"structure"`

	// A description of the updated hub.
	HubDescription *string `type:"string"`

	// The display name of the hub.
	HubDisplayName *string `type:"string"`

	// The name of the hub to update.
	//
	// HubName is a required field
	HubName *string `type:"string" required:"true"`

	// The searchable keywords for the hub.
	HubSearchKeywords []*string `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateHubInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateHubInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateHubInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateHubInput"}
	if s.HubName == nil {
		invalidParams.Add(request.NewErrParamRequired("HubName"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetHubDescription sets the HubDescription field's value.
func (s *UpdateHubInput) SetHubDescription(v string) *UpdateHubInput {
	s.HubDescription = &v
	return s
}

// SetHubDisplayName sets the HubDisplayName field's value.
func (s *UpdateHubInput) SetHubDisplayName(v string) *UpdateHubInput {
	s.HubDisplayName = &v
	return s
}

// SetHubName sets the HubName field's value.
func (s *UpdateHubInput) SetHubName(v string) *UpdateHubInput {
	s.HubName = &v
	return s
}

// SetHubSearchKeywords sets the HubSearchKeywords field's value.
func (s *UpdateHubInput) SetHubSearchKeywords(v []*string) *UpdateHubInput {
	s.HubSearchKeywords = v
	return s
}

type UpdateHubOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the updated hub.
	//
	// HubArn is a required field
	HubArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateHubOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateHubOutput) GoString() string {
	return s.String()
}

// SetHubArn sets the HubArn field's value.
func (s *UpdateHubOutput) SetHubArn(v string) *UpdateHubOutput {
	s.HubArn = &v
	return s
}

type UpdateImageInput struct {
	_ struct{} `type:"structure"`

	// A list of properties to delete. Only the Description and DisplayName properties
	// can be deleted.
	DeleteProperties []*string `type:"list"`

	// The new description for the image.
	Description *string `min:"1" type:"string"`

	// The new display name for the image.
	DisplayName *string `min:"1" type:"string"`

	// The name of the image to update.
	//
	// ImageName is a required field
	ImageName *string `min:"1" type:"string" required:"true"`

	// The new ARN for the IAM role that enables Amazon SageMaker to perform tasks
	// on your behalf.
	RoleArn *string `min:"20" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateImageInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateImageInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateImageInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateImageInput"}
	if s.Description != nil && len(*s.Description) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
	}
	if s.DisplayName != nil && len(*s.DisplayName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1))
	}
	if s.ImageName == nil {
		invalidParams.Add(request.NewErrParamRequired("ImageName"))
	}
	if s.ImageName != nil && len(*s.ImageName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ImageName", 1))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDeleteProperties sets the DeleteProperties field's value.
func (s *UpdateImageInput) SetDeleteProperties(v []*string) *UpdateImageInput {
	s.DeleteProperties = v
	return s
}

// SetDescription sets the Description field's value.
func (s *UpdateImageInput) SetDescription(v string) *UpdateImageInput {
	s.Description = &v
	return s
}

// SetDisplayName sets the DisplayName field's value.
func (s *UpdateImageInput) SetDisplayName(v string) *UpdateImageInput {
	s.DisplayName = &v
	return s
}

// SetImageName sets the ImageName field's value.
func (s *UpdateImageInput) SetImageName(v string) *UpdateImageInput {
	s.ImageName = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *UpdateImageInput) SetRoleArn(v string) *UpdateImageInput {
	s.RoleArn = &v
	return s
}

type UpdateImageOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the image.
	ImageArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateImageOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateImageOutput) GoString() string {
	return s.String()
}

// SetImageArn sets the ImageArn field's value.
func (s *UpdateImageOutput) SetImageArn(v string) *UpdateImageOutput {
	s.ImageArn = &v
	return s
}

type UpdateImageVersionInput struct {
	_ struct{} `type:"structure"`

	// The alias of the image version.
	Alias *string `min:"1" type:"string"`

	// A list of aliases to add.
	AliasesToAdd []*string `type:"list"`

	// A list of aliases to delete.
	AliasesToDelete []*string `type:"list"`

	// Indicates Horovod compatibility.
	Horovod *bool `type:"boolean"`

	// The name of the image.
	//
	// ImageName is a required field
	ImageName *string `min:"1" type:"string" required:"true"`

	// Indicates SageMaker job type compatibility.
	//
	//    * TRAINING: The image version is compatible with SageMaker training jobs.
	//
	//    * INFERENCE: The image version is compatible with SageMaker inference
	//    jobs.
	//
	//    * NOTEBOOK_KERNEL: The image version is compatible with SageMaker notebook
	//    kernels.
	JobType *string `type:"string" enum:"JobType"`

	// The machine learning framework vended in the image version.
	MLFramework *string `min:"1" type:"string"`

	// Indicates CPU or GPU compatibility.
	//
	//    * CPU: The image version is compatible with CPU.
	//
	//    * GPU: The image version is compatible with GPU.
	Processor *string `type:"string" enum:"Processor"`

	// The supported programming language and its version.
	ProgrammingLang *string `min:"1" type:"string"`

	// The maintainer description of the image version.
	ReleaseNotes *string `min:"1" type:"string"`

	// The availability of the image version specified by the maintainer.
	//
	//    * NOT_PROVIDED: The maintainers did not provide a status for image version
	//    stability.
	//
	//    * STABLE: The image version is stable.
	//
	//    * TO_BE_ARCHIVED: The image version is set to be archived. Custom image
	//    versions that are set to be archived are automatically archived after
	//    three months.
	//
	//    * ARCHIVED: The image version is archived. Archived image versions are
	//    not searchable and are no longer actively supported.
	VendorGuidance *string `type:"string" enum:"VendorGuidance"`

	// The version of the image.
	Version *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateImageVersionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateImageVersionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateImageVersionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateImageVersionInput"}
	if s.Alias != nil && len(*s.Alias) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Alias", 1))
	}
	if s.ImageName == nil {
		invalidParams.Add(request.NewErrParamRequired("ImageName"))
	}
	if s.ImageName != nil && len(*s.ImageName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ImageName", 1))
	}
	if s.MLFramework != nil && len(*s.MLFramework) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MLFramework", 1))
	}
	if s.ProgrammingLang != nil && len(*s.ProgrammingLang) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ProgrammingLang", 1))
	}
	if s.ReleaseNotes != nil && len(*s.ReleaseNotes) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ReleaseNotes", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAlias sets the Alias field's value.
func (s *UpdateImageVersionInput) SetAlias(v string) *UpdateImageVersionInput {
	s.Alias = &v
	return s
}

// SetAliasesToAdd sets the AliasesToAdd field's value.
func (s *UpdateImageVersionInput) SetAliasesToAdd(v []*string) *UpdateImageVersionInput {
	s.AliasesToAdd = v
	return s
}

// SetAliasesToDelete sets the AliasesToDelete field's value.
func (s *UpdateImageVersionInput) SetAliasesToDelete(v []*string) *UpdateImageVersionInput {
	s.AliasesToDelete = v
	return s
}

// SetHorovod sets the Horovod field's value.
func (s *UpdateImageVersionInput) SetHorovod(v bool) *UpdateImageVersionInput {
	s.Horovod = &v
	return s
}

// SetImageName sets the ImageName field's value.
func (s *UpdateImageVersionInput) SetImageName(v string) *UpdateImageVersionInput {
	s.ImageName = &v
	return s
}

// SetJobType sets the JobType field's value.
func (s *UpdateImageVersionInput) SetJobType(v string) *UpdateImageVersionInput {
	s.JobType = &v
	return s
}

// SetMLFramework sets the MLFramework field's value.
func (s *UpdateImageVersionInput) SetMLFramework(v string) *UpdateImageVersionInput {
	s.MLFramework = &v
	return s
}

// SetProcessor sets the Processor field's value.
func (s *UpdateImageVersionInput) SetProcessor(v string) *UpdateImageVersionInput {
	s.Processor = &v
	return s
}

// SetProgrammingLang sets the ProgrammingLang field's value.
func (s *UpdateImageVersionInput) SetProgrammingLang(v string) *UpdateImageVersionInput {
	s.ProgrammingLang = &v
	return s
}

// SetReleaseNotes sets the ReleaseNotes field's value.
func (s *UpdateImageVersionInput) SetReleaseNotes(v string) *UpdateImageVersionInput {
	s.ReleaseNotes = &v
	return s
}

// SetVendorGuidance sets the VendorGuidance field's value.
func (s *UpdateImageVersionInput) SetVendorGuidance(v string) *UpdateImageVersionInput {
	s.VendorGuidance = &v
	return s
}

// SetVersion sets the Version field's value.
func (s *UpdateImageVersionInput) SetVersion(v int64) *UpdateImageVersionInput {
	s.Version = &v
	return s
}

type UpdateImageVersionOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the image version.
	ImageVersionArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateImageVersionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateImageVersionOutput) GoString() string {
	return s.String()
}

// SetImageVersionArn sets the ImageVersionArn field's value.
func (s *UpdateImageVersionOutput) SetImageVersionArn(v string) *UpdateImageVersionOutput {
	s.ImageVersionArn = &v
	return s
}

type UpdateInferenceComponentInput struct {
	_ struct{} `type:"structure"`

	// The name of the inference component.
	//
	// InferenceComponentName is a required field
	InferenceComponentName *string `type:"string" required:"true"`

	// Runtime settings for a model that is deployed with an inference component.
	RuntimeConfig *InferenceComponentRuntimeConfig `type:"structure"`

	// Details about the resources to deploy with this inference component, including
	// the model, container, and compute resources.
	Specification *InferenceComponentSpecification `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateInferenceComponentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateInferenceComponentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateInferenceComponentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateInferenceComponentInput"}
	if s.InferenceComponentName == nil {
		invalidParams.Add(request.NewErrParamRequired("InferenceComponentName"))
	}
	if s.RuntimeConfig != nil {
		if err := s.RuntimeConfig.Validate(); err != nil {
			invalidParams.AddNested("RuntimeConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.Specification != nil {
		if err := s.Specification.Validate(); err != nil {
			invalidParams.AddNested("Specification", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetInferenceComponentName sets the InferenceComponentName field's value.
func (s *UpdateInferenceComponentInput) SetInferenceComponentName(v string) *UpdateInferenceComponentInput {
	s.InferenceComponentName = &v
	return s
}

// SetRuntimeConfig sets the RuntimeConfig field's value.
func (s *UpdateInferenceComponentInput) SetRuntimeConfig(v *InferenceComponentRuntimeConfig) *UpdateInferenceComponentInput {
	s.RuntimeConfig = v
	return s
}

// SetSpecification sets the Specification field's value.
func (s *UpdateInferenceComponentInput) SetSpecification(v *InferenceComponentSpecification) *UpdateInferenceComponentInput {
	s.Specification = v
	return s
}

type UpdateInferenceComponentOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the inference component.
	//
	// InferenceComponentArn is a required field
	InferenceComponentArn *string `min:"20" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateInferenceComponentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateInferenceComponentOutput) GoString() string {
	return s.String()
}

// SetInferenceComponentArn sets the InferenceComponentArn field's value.
func (s *UpdateInferenceComponentOutput) SetInferenceComponentArn(v string) *UpdateInferenceComponentOutput {
	s.InferenceComponentArn = &v
	return s
}

type UpdateInferenceComponentRuntimeConfigInput struct {
	_ struct{} `type:"structure"`

	// Runtime settings for a model that is deployed with an inference component.
	//
	// DesiredRuntimeConfig is a required field
	DesiredRuntimeConfig *InferenceComponentRuntimeConfig `type:"structure" required:"true"`

	// The name of the inference component to update.
	//
	// InferenceComponentName is a required field
	InferenceComponentName *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateInferenceComponentRuntimeConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateInferenceComponentRuntimeConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateInferenceComponentRuntimeConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateInferenceComponentRuntimeConfigInput"}
	if s.DesiredRuntimeConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("DesiredRuntimeConfig"))
	}
	if s.InferenceComponentName == nil {
		invalidParams.Add(request.NewErrParamRequired("InferenceComponentName"))
	}
	if s.DesiredRuntimeConfig != nil {
		if err := s.DesiredRuntimeConfig.Validate(); err != nil {
			invalidParams.AddNested("DesiredRuntimeConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDesiredRuntimeConfig sets the DesiredRuntimeConfig field's value.
func (s *UpdateInferenceComponentRuntimeConfigInput) SetDesiredRuntimeConfig(v *InferenceComponentRuntimeConfig) *UpdateInferenceComponentRuntimeConfigInput {
	s.DesiredRuntimeConfig = v
	return s
}

// SetInferenceComponentName sets the InferenceComponentName field's value.
func (s *UpdateInferenceComponentRuntimeConfigInput) SetInferenceComponentName(v string) *UpdateInferenceComponentRuntimeConfigInput {
	s.InferenceComponentName = &v
	return s
}

type UpdateInferenceComponentRuntimeConfigOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the inference component.
	//
	// InferenceComponentArn is a required field
	InferenceComponentArn *string `min:"20" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateInferenceComponentRuntimeConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateInferenceComponentRuntimeConfigOutput) GoString() string {
	return s.String()
}

// SetInferenceComponentArn sets the InferenceComponentArn field's value.
func (s *UpdateInferenceComponentRuntimeConfigOutput) SetInferenceComponentArn(v string) *UpdateInferenceComponentRuntimeConfigOutput {
	s.InferenceComponentArn = &v
	return s
}

type UpdateInferenceExperimentInput struct {
	_ struct{} `type:"structure"`

	// The Amazon S3 location and configuration for storing inference request and
	// response data.
	DataStorageConfig *InferenceExperimentDataStorageConfig `type:"structure"`

	// The description of the inference experiment.
	Description *string `type:"string"`

	// An array of ModelVariantConfig objects. There is one for each variant, whose
	// infrastructure configuration you want to update.
	ModelVariants []*ModelVariantConfig `min:"1" type:"list"`

	// The name of the inference experiment to be updated.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// The duration for which the inference experiment will run. If the status of
	// the inference experiment is Created, then you can update both the start and
	// end dates. If the status of the inference experiment is Running, then you
	// can update only the end date.
	Schedule *InferenceExperimentSchedule `type:"structure"`

	// The configuration of ShadowMode inference experiment type. Use this field
	// to specify a production variant which takes all the inference requests, and
	// a shadow variant to which Amazon SageMaker replicates a percentage of the
	// inference requests. For the shadow variant also specify the percentage of
	// requests that Amazon SageMaker replicates.
	ShadowModeConfig *ShadowModeConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateInferenceExperimentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateInferenceExperimentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateInferenceExperimentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateInferenceExperimentInput"}
	if s.ModelVariants != nil && len(s.ModelVariants) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelVariants", 1))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.DataStorageConfig != nil {
		if err := s.DataStorageConfig.Validate(); err != nil {
			invalidParams.AddNested("DataStorageConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.ModelVariants != nil {
		for i, v := range s.ModelVariants {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ModelVariants", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.ShadowModeConfig != nil {
		if err := s.ShadowModeConfig.Validate(); err != nil {
			invalidParams.AddNested("ShadowModeConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDataStorageConfig sets the DataStorageConfig field's value.
func (s *UpdateInferenceExperimentInput) SetDataStorageConfig(v *InferenceExperimentDataStorageConfig) *UpdateInferenceExperimentInput {
	s.DataStorageConfig = v
	return s
}

// SetDescription sets the Description field's value.
func (s *UpdateInferenceExperimentInput) SetDescription(v string) *UpdateInferenceExperimentInput {
	s.Description = &v
	return s
}

// SetModelVariants sets the ModelVariants field's value.
func (s *UpdateInferenceExperimentInput) SetModelVariants(v []*ModelVariantConfig) *UpdateInferenceExperimentInput {
	s.ModelVariants = v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateInferenceExperimentInput) SetName(v string) *UpdateInferenceExperimentInput {
	s.Name = &v
	return s
}

// SetSchedule sets the Schedule field's value.
func (s *UpdateInferenceExperimentInput) SetSchedule(v *InferenceExperimentSchedule) *UpdateInferenceExperimentInput {
	s.Schedule = v
	return s
}

// SetShadowModeConfig sets the ShadowModeConfig field's value.
func (s *UpdateInferenceExperimentInput) SetShadowModeConfig(v *ShadowModeConfig) *UpdateInferenceExperimentInput {
	s.ShadowModeConfig = v
	return s
}

type UpdateInferenceExperimentOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the updated inference experiment.
	//
	// InferenceExperimentArn is a required field
	InferenceExperimentArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateInferenceExperimentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateInferenceExperimentOutput) GoString() string {
	return s.String()
}

// SetInferenceExperimentArn sets the InferenceExperimentArn field's value.
func (s *UpdateInferenceExperimentOutput) SetInferenceExperimentArn(v string) *UpdateInferenceExperimentOutput {
	s.InferenceExperimentArn = &v
	return s
}

type UpdateModelCardInput struct {
	_ struct{} `type:"structure"`

	// The updated model card content. Content must be in model card JSON schema
	// (https://docs.aws.amazon.com/sagemaker/latest/dg/model-cards.html#model-cards-json-schema)
	// and provided as a string.
	//
	// When updating model card content, be sure to include the full content and
	// not just updated content.
	//
	// Content is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateModelCardInput's
	// String and GoString methods.
	Content *string `type:"string" sensitive:"true"`

	// The name or Amazon Resource Name (ARN) of the model card to update.
	//
	// ModelCardName is a required field
	ModelCardName *string `min:"1" type:"string" required:"true"`

	// The approval status of the model card within your organization. Different
	// organizations might have different criteria for model card review and approval.
	//
	//    * Draft: The model card is a work in progress.
	//
	//    * PendingReview: The model card is pending review.
	//
	//    * Approved: The model card is approved.
	//
	//    * Archived: The model card is archived. No more updates should be made
	//    to the model card, but it can still be exported.
	ModelCardStatus *string `type:"string" enum:"ModelCardStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateModelCardInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateModelCardInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateModelCardInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateModelCardInput"}
	if s.ModelCardName == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelCardName"))
	}
	if s.ModelCardName != nil && len(*s.ModelCardName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelCardName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContent sets the Content field's value.
func (s *UpdateModelCardInput) SetContent(v string) *UpdateModelCardInput {
	s.Content = &v
	return s
}

// SetModelCardName sets the ModelCardName field's value.
func (s *UpdateModelCardInput) SetModelCardName(v string) *UpdateModelCardInput {
	s.ModelCardName = &v
	return s
}

// SetModelCardStatus sets the ModelCardStatus field's value.
func (s *UpdateModelCardInput) SetModelCardStatus(v string) *UpdateModelCardInput {
	s.ModelCardStatus = &v
	return s
}

type UpdateModelCardOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the updated model card.
	//
	// ModelCardArn is a required field
	ModelCardArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateModelCardOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateModelCardOutput) GoString() string {
	return s.String()
}

// SetModelCardArn sets the ModelCardArn field's value.
func (s *UpdateModelCardOutput) SetModelCardArn(v string) *UpdateModelCardOutput {
	s.ModelCardArn = &v
	return s
}

type UpdateModelPackageInput struct {
	_ struct{} `type:"structure"`

	// An array of additional Inference Specification objects to be added to the
	// existing array additional Inference Specification. Total number of additional
	// Inference Specifications can not exceed 15. Each additional Inference Specification
	// specifies artifacts based on this model package that can be used on inference
	// endpoints. Generally used with SageMaker Neo to store the compiled artifacts.
	AdditionalInferenceSpecificationsToAdd []*AdditionalInferenceSpecificationDefinition `min:"1" type:"list"`

	// A description for the approval status of the model.
	ApprovalDescription *string `type:"string"`

	// The metadata properties associated with the model package versions.
	CustomerMetadataProperties map[string]*string `min:"1" type:"map"`

	// The metadata properties associated with the model package versions to remove.
	CustomerMetadataPropertiesToRemove []*string `type:"list"`

	// The approval status of the model.
	ModelApprovalStatus *string `type:"string" enum:"ModelApprovalStatus"`

	// The Amazon Resource Name (ARN) of the model package.
	//
	// ModelPackageArn is a required field
	ModelPackageArn *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateModelPackageInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateModelPackageInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateModelPackageInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateModelPackageInput"}
	if s.AdditionalInferenceSpecificationsToAdd != nil && len(s.AdditionalInferenceSpecificationsToAdd) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AdditionalInferenceSpecificationsToAdd", 1))
	}
	if s.CustomerMetadataProperties != nil && len(s.CustomerMetadataProperties) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("CustomerMetadataProperties", 1))
	}
	if s.ModelPackageArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ModelPackageArn"))
	}
	if s.ModelPackageArn != nil && len(*s.ModelPackageArn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ModelPackageArn", 1))
	}
	if s.AdditionalInferenceSpecificationsToAdd != nil {
		for i, v := range s.AdditionalInferenceSpecificationsToAdd {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AdditionalInferenceSpecificationsToAdd", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAdditionalInferenceSpecificationsToAdd sets the AdditionalInferenceSpecificationsToAdd field's value.
func (s *UpdateModelPackageInput) SetAdditionalInferenceSpecificationsToAdd(v []*AdditionalInferenceSpecificationDefinition) *UpdateModelPackageInput {
	s.AdditionalInferenceSpecificationsToAdd = v
	return s
}

// SetApprovalDescription sets the ApprovalDescription field's value.
func (s *UpdateModelPackageInput) SetApprovalDescription(v string) *UpdateModelPackageInput {
	s.ApprovalDescription = &v
	return s
}

// SetCustomerMetadataProperties sets the CustomerMetadataProperties field's value.
func (s *UpdateModelPackageInput) SetCustomerMetadataProperties(v map[string]*string) *UpdateModelPackageInput {
	s.CustomerMetadataProperties = v
	return s
}

// SetCustomerMetadataPropertiesToRemove sets the CustomerMetadataPropertiesToRemove field's value.
func (s *UpdateModelPackageInput) SetCustomerMetadataPropertiesToRemove(v []*string) *UpdateModelPackageInput {
	s.CustomerMetadataPropertiesToRemove = v
	return s
}

// SetModelApprovalStatus sets the ModelApprovalStatus field's value.
func (s *UpdateModelPackageInput) SetModelApprovalStatus(v string) *UpdateModelPackageInput {
	s.ModelApprovalStatus = &v
	return s
}

// SetModelPackageArn sets the ModelPackageArn field's value.
func (s *UpdateModelPackageInput) SetModelPackageArn(v string) *UpdateModelPackageInput {
	s.ModelPackageArn = &v
	return s
}

type UpdateModelPackageOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the model.
	//
	// ModelPackageArn is a required field
	ModelPackageArn *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateModelPackageOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateModelPackageOutput) GoString() string {
	return s.String()
}

// SetModelPackageArn sets the ModelPackageArn field's value.
func (s *UpdateModelPackageOutput) SetModelPackageArn(v string) *UpdateModelPackageOutput {
	s.ModelPackageArn = &v
	return s
}

type UpdateMonitoringAlertInput struct {
	_ struct{} `type:"structure"`

	// Within EvaluationPeriod, how many execution failures will raise an alert.
	//
	// DatapointsToAlert is a required field
	DatapointsToAlert *int64 `min:"1" type:"integer" required:"true"`

	// The number of most recent monitoring executions to consider when evaluating
	// alert status.
	//
	// EvaluationPeriod is a required field
	EvaluationPeriod *int64 `min:"1" type:"integer" required:"true"`

	// The name of a monitoring alert.
	//
	// MonitoringAlertName is a required field
	MonitoringAlertName *string `min:"1" type:"string" required:"true"`

	// The name of a monitoring schedule.
	//
	// MonitoringScheduleName is a required field
	MonitoringScheduleName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateMonitoringAlertInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateMonitoringAlertInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateMonitoringAlertInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateMonitoringAlertInput"}
	if s.DatapointsToAlert == nil {
		invalidParams.Add(request.NewErrParamRequired("DatapointsToAlert"))
	}
	if s.DatapointsToAlert != nil && *s.DatapointsToAlert < 1 {
		invalidParams.Add(request.NewErrParamMinValue("DatapointsToAlert", 1))
	}
	if s.EvaluationPeriod == nil {
		invalidParams.Add(request.NewErrParamRequired("EvaluationPeriod"))
	}
	if s.EvaluationPeriod != nil && *s.EvaluationPeriod < 1 {
		invalidParams.Add(request.NewErrParamMinValue("EvaluationPeriod", 1))
	}
	if s.MonitoringAlertName == nil {
		invalidParams.Add(request.NewErrParamRequired("MonitoringAlertName"))
	}
	if s.MonitoringAlertName != nil && len(*s.MonitoringAlertName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MonitoringAlertName", 1))
	}
	if s.MonitoringScheduleName == nil {
		invalidParams.Add(request.NewErrParamRequired("MonitoringScheduleName"))
	}
	if s.MonitoringScheduleName != nil && len(*s.MonitoringScheduleName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MonitoringScheduleName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDatapointsToAlert sets the DatapointsToAlert field's value.
func (s *UpdateMonitoringAlertInput) SetDatapointsToAlert(v int64) *UpdateMonitoringAlertInput {
	s.DatapointsToAlert = &v
	return s
}

// SetEvaluationPeriod sets the EvaluationPeriod field's value.
func (s *UpdateMonitoringAlertInput) SetEvaluationPeriod(v int64) *UpdateMonitoringAlertInput {
	s.EvaluationPeriod = &v
	return s
}

// SetMonitoringAlertName sets the MonitoringAlertName field's value.
func (s *UpdateMonitoringAlertInput) SetMonitoringAlertName(v string) *UpdateMonitoringAlertInput {
	s.MonitoringAlertName = &v
	return s
}

// SetMonitoringScheduleName sets the MonitoringScheduleName field's value.
func (s *UpdateMonitoringAlertInput) SetMonitoringScheduleName(v string) *UpdateMonitoringAlertInput {
	s.MonitoringScheduleName = &v
	return s
}

type UpdateMonitoringAlertOutput struct {
	_ struct{} `type:"structure"`

	// The name of a monitoring alert.
	MonitoringAlertName *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) of the monitoring schedule.
	//
	// MonitoringScheduleArn is a required field
	MonitoringScheduleArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateMonitoringAlertOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateMonitoringAlertOutput) GoString() string {
	return s.String()
}

// SetMonitoringAlertName sets the MonitoringAlertName field's value.
func (s *UpdateMonitoringAlertOutput) SetMonitoringAlertName(v string) *UpdateMonitoringAlertOutput {
	s.MonitoringAlertName = &v
	return s
}

// SetMonitoringScheduleArn sets the MonitoringScheduleArn field's value.
func (s *UpdateMonitoringAlertOutput) SetMonitoringScheduleArn(v string) *UpdateMonitoringAlertOutput {
	s.MonitoringScheduleArn = &v
	return s
}

type UpdateMonitoringScheduleInput struct {
	_ struct{} `type:"structure"`

	// The configuration object that specifies the monitoring schedule and defines
	// the monitoring job.
	//
	// MonitoringScheduleConfig is a required field
	MonitoringScheduleConfig *MonitoringScheduleConfig `type:"structure" required:"true"`

	// The name of the monitoring schedule. The name must be unique within an Amazon
	// Web Services Region within an Amazon Web Services account.
	//
	// MonitoringScheduleName is a required field
	MonitoringScheduleName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateMonitoringScheduleInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateMonitoringScheduleInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateMonitoringScheduleInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateMonitoringScheduleInput"}
	if s.MonitoringScheduleConfig == nil {
		invalidParams.Add(request.NewErrParamRequired("MonitoringScheduleConfig"))
	}
	if s.MonitoringScheduleName == nil {
		invalidParams.Add(request.NewErrParamRequired("MonitoringScheduleName"))
	}
	if s.MonitoringScheduleName != nil && len(*s.MonitoringScheduleName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MonitoringScheduleName", 1))
	}
	if s.MonitoringScheduleConfig != nil {
		if err := s.MonitoringScheduleConfig.Validate(); err != nil {
			invalidParams.AddNested("MonitoringScheduleConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMonitoringScheduleConfig sets the MonitoringScheduleConfig field's value.
func (s *UpdateMonitoringScheduleInput) SetMonitoringScheduleConfig(v *MonitoringScheduleConfig) *UpdateMonitoringScheduleInput {
	s.MonitoringScheduleConfig = v
	return s
}

// SetMonitoringScheduleName sets the MonitoringScheduleName field's value.
func (s *UpdateMonitoringScheduleInput) SetMonitoringScheduleName(v string) *UpdateMonitoringScheduleInput {
	s.MonitoringScheduleName = &v
	return s
}

type UpdateMonitoringScheduleOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the monitoring schedule.
	//
	// MonitoringScheduleArn is a required field
	MonitoringScheduleArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateMonitoringScheduleOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateMonitoringScheduleOutput) GoString() string {
	return s.String()
}

// SetMonitoringScheduleArn sets the MonitoringScheduleArn field's value.
func (s *UpdateMonitoringScheduleOutput) SetMonitoringScheduleArn(v string) *UpdateMonitoringScheduleOutput {
	s.MonitoringScheduleArn = &v
	return s
}

type UpdateNotebookInstanceInput struct {
	_ struct{} `type:"structure"`

	// A list of the Elastic Inference (EI) instance types to associate with this
	// notebook instance. Currently only one EI instance type can be associated
	// with a notebook instance. For more information, see Using Elastic Inference
	// in Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html).
	AcceleratorTypes []*string `type:"list" enum:"NotebookInstanceAcceleratorType"`

	// An array of up to three Git repositories to associate with the notebook instance.
	// These can be either the names of Git repositories stored as resources in
	// your account, or the URL of Git repositories in Amazon Web Services CodeCommit
	// (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) or
	// in any other Git repository. These repositories are cloned at the same level
	// as the default repository of your notebook instance. For more information,
	// see Associating Git Repositories with SageMaker Notebook Instances (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html).
	AdditionalCodeRepositories []*string `type:"list"`

	// The Git repository to associate with the notebook instance as its default
	// code repository. This can be either the name of a Git repository stored as
	// a resource in your account, or the URL of a Git repository in Amazon Web
	// Services CodeCommit (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html)
	// or in any other Git repository. When you open a notebook instance, it opens
	// in the directory that contains this repository. For more information, see
	// Associating Git Repositories with SageMaker Notebook Instances (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html).
	DefaultCodeRepository *string `min:"1" type:"string"`

	// A list of the Elastic Inference (EI) instance types to remove from this notebook
	// instance. This operation is idempotent. If you specify an accelerator type
	// that is not associated with the notebook instance when you call this method,
	// it does not throw an error.
	DisassociateAcceleratorTypes *bool `type:"boolean"`

	// A list of names or URLs of the default Git repositories to remove from this
	// notebook instance. This operation is idempotent. If you specify a Git repository
	// that is not associated with the notebook instance when you call this method,
	// it does not throw an error.
	DisassociateAdditionalCodeRepositories *bool `type:"boolean"`

	// The name or URL of the default Git repository to remove from this notebook
	// instance. This operation is idempotent. If you specify a Git repository that
	// is not associated with the notebook instance when you call this method, it
	// does not throw an error.
	DisassociateDefaultCodeRepository *bool `type:"boolean"`

	// Set to true to remove the notebook instance lifecycle configuration currently
	// associated with the notebook instance. This operation is idempotent. If you
	// specify a lifecycle configuration that is not associated with the notebook
	// instance when you call this method, it does not throw an error.
	DisassociateLifecycleConfig *bool `type:"boolean"`

	// Information on the IMDS configuration of the notebook instance
	InstanceMetadataServiceConfiguration *InstanceMetadataServiceConfiguration `type:"structure"`

	// The Amazon ML compute instance type.
	InstanceType *string `type:"string" enum:"InstanceType"`

	// The name of a lifecycle configuration to associate with the notebook instance.
	// For information about lifestyle configurations, see Step 2.1: (Optional)
	// Customize a Notebook Instance (https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html).
	LifecycleConfigName *string `type:"string"`

	// The name of the notebook instance to update.
	//
	// NotebookInstanceName is a required field
	NotebookInstanceName *string `type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of the IAM role that SageMaker can assume
	// to access the notebook instance. For more information, see SageMaker Roles
	// (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html).
	//
	// To be able to pass this role to SageMaker, the caller of this API must have
	// the iam:PassRole permission.
	RoleArn *string `min:"20" type:"string"`

	// Whether root access is enabled or disabled for users of the notebook instance.
	// The default value is Enabled.
	//
	// If you set this to Disabled, users don't have root access on the notebook
	// instance, but lifecycle configuration scripts still run with root permissions.
	RootAccess *string `type:"string" enum:"RootAccess"`

	// The size, in GB, of the ML storage volume to attach to the notebook instance.
	// The default value is 5 GB. ML storage volumes are encrypted, so SageMaker
	// can't determine the amount of available free space on the volume. Because
	// of this, you can increase the volume size when you update a notebook instance,
	// but you can't decrease the volume size. If you want to decrease the size
	// of the ML storage volume in use, create a new notebook instance with the
	// desired size.
	VolumeSizeInGB *int64 `min:"5" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateNotebookInstanceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateNotebookInstanceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateNotebookInstanceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateNotebookInstanceInput"}
	if s.DefaultCodeRepository != nil && len(*s.DefaultCodeRepository) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DefaultCodeRepository", 1))
	}
	if s.NotebookInstanceName == nil {
		invalidParams.Add(request.NewErrParamRequired("NotebookInstanceName"))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.VolumeSizeInGB != nil && *s.VolumeSizeInGB < 5 {
		invalidParams.Add(request.NewErrParamMinValue("VolumeSizeInGB", 5))
	}
	if s.InstanceMetadataServiceConfiguration != nil {
		if err := s.InstanceMetadataServiceConfiguration.Validate(); err != nil {
			invalidParams.AddNested("InstanceMetadataServiceConfiguration", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAcceleratorTypes sets the AcceleratorTypes field's value.
func (s *UpdateNotebookInstanceInput) SetAcceleratorTypes(v []*string) *UpdateNotebookInstanceInput {
	s.AcceleratorTypes = v
	return s
}

// SetAdditionalCodeRepositories sets the AdditionalCodeRepositories field's value.
func (s *UpdateNotebookInstanceInput) SetAdditionalCodeRepositories(v []*string) *UpdateNotebookInstanceInput {
	s.AdditionalCodeRepositories = v
	return s
}

// SetDefaultCodeRepository sets the DefaultCodeRepository field's value.
func (s *UpdateNotebookInstanceInput) SetDefaultCodeRepository(v string) *UpdateNotebookInstanceInput {
	s.DefaultCodeRepository = &v
	return s
}

// SetDisassociateAcceleratorTypes sets the DisassociateAcceleratorTypes field's value.
func (s *UpdateNotebookInstanceInput) SetDisassociateAcceleratorTypes(v bool) *UpdateNotebookInstanceInput {
	s.DisassociateAcceleratorTypes = &v
	return s
}

// SetDisassociateAdditionalCodeRepositories sets the DisassociateAdditionalCodeRepositories field's value.
func (s *UpdateNotebookInstanceInput) SetDisassociateAdditionalCodeRepositories(v bool) *UpdateNotebookInstanceInput {
	s.DisassociateAdditionalCodeRepositories = &v
	return s
}

// SetDisassociateDefaultCodeRepository sets the DisassociateDefaultCodeRepository field's value.
func (s *UpdateNotebookInstanceInput) SetDisassociateDefaultCodeRepository(v bool) *UpdateNotebookInstanceInput {
	s.DisassociateDefaultCodeRepository = &v
	return s
}

// SetDisassociateLifecycleConfig sets the DisassociateLifecycleConfig field's value.
func (s *UpdateNotebookInstanceInput) SetDisassociateLifecycleConfig(v bool) *UpdateNotebookInstanceInput {
	s.DisassociateLifecycleConfig = &v
	return s
}

// SetInstanceMetadataServiceConfiguration sets the InstanceMetadataServiceConfiguration field's value.
func (s *UpdateNotebookInstanceInput) SetInstanceMetadataServiceConfiguration(v *InstanceMetadataServiceConfiguration) *UpdateNotebookInstanceInput {
	s.InstanceMetadataServiceConfiguration = v
	return s
}

// SetInstanceType sets the InstanceType field's value.
func (s *UpdateNotebookInstanceInput) SetInstanceType(v string) *UpdateNotebookInstanceInput {
	s.InstanceType = &v
	return s
}

// SetLifecycleConfigName sets the LifecycleConfigName field's value.
func (s *UpdateNotebookInstanceInput) SetLifecycleConfigName(v string) *UpdateNotebookInstanceInput {
	s.LifecycleConfigName = &v
	return s
}

// SetNotebookInstanceName sets the NotebookInstanceName field's value.
func (s *UpdateNotebookInstanceInput) SetNotebookInstanceName(v string) *UpdateNotebookInstanceInput {
	s.NotebookInstanceName = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *UpdateNotebookInstanceInput) SetRoleArn(v string) *UpdateNotebookInstanceInput {
	s.RoleArn = &v
	return s
}

// SetRootAccess sets the RootAccess field's value.
func (s *UpdateNotebookInstanceInput) SetRootAccess(v string) *UpdateNotebookInstanceInput {
	s.RootAccess = &v
	return s
}

// SetVolumeSizeInGB sets the VolumeSizeInGB field's value.
func (s *UpdateNotebookInstanceInput) SetVolumeSizeInGB(v int64) *UpdateNotebookInstanceInput {
	s.VolumeSizeInGB = &v
	return s
}

type UpdateNotebookInstanceLifecycleConfigInput struct {
	_ struct{} `type:"structure"`

	// The name of the lifecycle configuration.
	//
	// NotebookInstanceLifecycleConfigName is a required field
	NotebookInstanceLifecycleConfigName *string `type:"string" required:"true"`

	// The shell script that runs only once, when you create a notebook instance.
	// The shell script must be a base64-encoded string.
	OnCreate []*NotebookInstanceLifecycleHook `type:"list"`

	// The shell script that runs every time you start a notebook instance, including
	// when you create the notebook instance. The shell script must be a base64-encoded
	// string.
	OnStart []*NotebookInstanceLifecycleHook `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateNotebookInstanceLifecycleConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateNotebookInstanceLifecycleConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateNotebookInstanceLifecycleConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateNotebookInstanceLifecycleConfigInput"}
	if s.NotebookInstanceLifecycleConfigName == nil {
		invalidParams.Add(request.NewErrParamRequired("NotebookInstanceLifecycleConfigName"))
	}
	if s.OnCreate != nil {
		for i, v := range s.OnCreate {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OnCreate", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.OnStart != nil {
		for i, v := range s.OnStart {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OnStart", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetNotebookInstanceLifecycleConfigName sets the NotebookInstanceLifecycleConfigName field's value.
func (s *UpdateNotebookInstanceLifecycleConfigInput) SetNotebookInstanceLifecycleConfigName(v string) *UpdateNotebookInstanceLifecycleConfigInput {
	s.NotebookInstanceLifecycleConfigName = &v
	return s
}

// SetOnCreate sets the OnCreate field's value.
func (s *UpdateNotebookInstanceLifecycleConfigInput) SetOnCreate(v []*NotebookInstanceLifecycleHook) *UpdateNotebookInstanceLifecycleConfigInput {
	s.OnCreate = v
	return s
}

// SetOnStart sets the OnStart field's value.
func (s *UpdateNotebookInstanceLifecycleConfigInput) SetOnStart(v []*NotebookInstanceLifecycleHook) *UpdateNotebookInstanceLifecycleConfigInput {
	s.OnStart = v
	return s
}

type UpdateNotebookInstanceLifecycleConfigOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateNotebookInstanceLifecycleConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateNotebookInstanceLifecycleConfigOutput) GoString() string {
	return s.String()
}

type UpdateNotebookInstanceOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateNotebookInstanceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateNotebookInstanceOutput) GoString() string {
	return s.String()
}

type UpdatePipelineExecutionInput struct {
	_ struct{} `type:"structure"`

	// This configuration, if specified, overrides the parallelism configuration
	// of the parent pipeline for this specific run.
	ParallelismConfiguration *ParallelismConfiguration `type:"structure"`

	// The Amazon Resource Name (ARN) of the pipeline execution.
	//
	// PipelineExecutionArn is a required field
	PipelineExecutionArn *string `type:"string" required:"true"`

	// The description of the pipeline execution.
	PipelineExecutionDescription *string `type:"string"`

	// The display name of the pipeline execution.
	PipelineExecutionDisplayName *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdatePipelineExecutionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdatePipelineExecutionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdatePipelineExecutionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdatePipelineExecutionInput"}
	if s.PipelineExecutionArn == nil {
		invalidParams.Add(request.NewErrParamRequired("PipelineExecutionArn"))
	}
	if s.PipelineExecutionDisplayName != nil && len(*s.PipelineExecutionDisplayName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("PipelineExecutionDisplayName", 1))
	}
	if s.ParallelismConfiguration != nil {
		if err := s.ParallelismConfiguration.Validate(); err != nil {
			invalidParams.AddNested("ParallelismConfiguration", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetParallelismConfiguration sets the ParallelismConfiguration field's value.
func (s *UpdatePipelineExecutionInput) SetParallelismConfiguration(v *ParallelismConfiguration) *UpdatePipelineExecutionInput {
	s.ParallelismConfiguration = v
	return s
}

// SetPipelineExecutionArn sets the PipelineExecutionArn field's value.
func (s *UpdatePipelineExecutionInput) SetPipelineExecutionArn(v string) *UpdatePipelineExecutionInput {
	s.PipelineExecutionArn = &v
	return s
}

// SetPipelineExecutionDescription sets the PipelineExecutionDescription field's value.
func (s *UpdatePipelineExecutionInput) SetPipelineExecutionDescription(v string) *UpdatePipelineExecutionInput {
	s.PipelineExecutionDescription = &v
	return s
}

// SetPipelineExecutionDisplayName sets the PipelineExecutionDisplayName field's value.
func (s *UpdatePipelineExecutionInput) SetPipelineExecutionDisplayName(v string) *UpdatePipelineExecutionInput {
	s.PipelineExecutionDisplayName = &v
	return s
}

type UpdatePipelineExecutionOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the updated pipeline execution.
	PipelineExecutionArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdatePipelineExecutionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdatePipelineExecutionOutput) GoString() string {
	return s.String()
}

// SetPipelineExecutionArn sets the PipelineExecutionArn field's value.
func (s *UpdatePipelineExecutionOutput) SetPipelineExecutionArn(v string) *UpdatePipelineExecutionOutput {
	s.PipelineExecutionArn = &v
	return s
}

type UpdatePipelineInput struct {
	_ struct{} `type:"structure"`

	// If specified, it applies to all executions of this pipeline by default.
	ParallelismConfiguration *ParallelismConfiguration `type:"structure"`

	// The JSON pipeline definition.
	PipelineDefinition *string `min:"1" type:"string"`

	// The location of the pipeline definition stored in Amazon S3. If specified,
	// SageMaker will retrieve the pipeline definition from this location.
	PipelineDefinitionS3Location *PipelineDefinitionS3Location `type:"structure"`

	// The description of the pipeline.
	PipelineDescription *string `type:"string"`

	// The display name of the pipeline.
	PipelineDisplayName *string `min:"1" type:"string"`

	// The name of the pipeline to update.
	//
	// PipelineName is a required field
	PipelineName *string `min:"1" type:"string" required:"true"`

	// The Amazon Resource Name (ARN) that the pipeline uses to execute.
	RoleArn *string `min:"20" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdatePipelineInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdatePipelineInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdatePipelineInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdatePipelineInput"}
	if s.PipelineDefinition != nil && len(*s.PipelineDefinition) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("PipelineDefinition", 1))
	}
	if s.PipelineDisplayName != nil && len(*s.PipelineDisplayName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("PipelineDisplayName", 1))
	}
	if s.PipelineName == nil {
		invalidParams.Add(request.NewErrParamRequired("PipelineName"))
	}
	if s.PipelineName != nil && len(*s.PipelineName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("PipelineName", 1))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.ParallelismConfiguration != nil {
		if err := s.ParallelismConfiguration.Validate(); err != nil {
			invalidParams.AddNested("ParallelismConfiguration", err.(request.ErrInvalidParams))
		}
	}
	if s.PipelineDefinitionS3Location != nil {
		if err := s.PipelineDefinitionS3Location.Validate(); err != nil {
			invalidParams.AddNested("PipelineDefinitionS3Location", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetParallelismConfiguration sets the ParallelismConfiguration field's value.
func (s *UpdatePipelineInput) SetParallelismConfiguration(v *ParallelismConfiguration) *UpdatePipelineInput {
	s.ParallelismConfiguration = v
	return s
}

// SetPipelineDefinition sets the PipelineDefinition field's value.
func (s *UpdatePipelineInput) SetPipelineDefinition(v string) *UpdatePipelineInput {
	s.PipelineDefinition = &v
	return s
}

// SetPipelineDefinitionS3Location sets the PipelineDefinitionS3Location field's value.
func (s *UpdatePipelineInput) SetPipelineDefinitionS3Location(v *PipelineDefinitionS3Location) *UpdatePipelineInput {
	s.PipelineDefinitionS3Location = v
	return s
}

// SetPipelineDescription sets the PipelineDescription field's value.
func (s *UpdatePipelineInput) SetPipelineDescription(v string) *UpdatePipelineInput {
	s.PipelineDescription = &v
	return s
}

// SetPipelineDisplayName sets the PipelineDisplayName field's value.
func (s *UpdatePipelineInput) SetPipelineDisplayName(v string) *UpdatePipelineInput {
	s.PipelineDisplayName = &v
	return s
}

// SetPipelineName sets the PipelineName field's value.
func (s *UpdatePipelineInput) SetPipelineName(v string) *UpdatePipelineInput {
	s.PipelineName = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *UpdatePipelineInput) SetRoleArn(v string) *UpdatePipelineInput {
	s.RoleArn = &v
	return s
}

type UpdatePipelineOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the updated pipeline.
	PipelineArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdatePipelineOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdatePipelineOutput) GoString() string {
	return s.String()
}

// SetPipelineArn sets the PipelineArn field's value.
func (s *UpdatePipelineOutput) SetPipelineArn(v string) *UpdatePipelineOutput {
	s.PipelineArn = &v
	return s
}

type UpdateProjectInput struct {
	_ struct{} `type:"structure"`

	// The description for the project.
	ProjectDescription *string `type:"string"`

	// The name of the project.
	//
	// ProjectName is a required field
	ProjectName *string `min:"1" type:"string" required:"true"`

	// The product ID and provisioning artifact ID to provision a service catalog.
	// The provisioning artifact ID will default to the latest provisioning artifact
	// ID of the product, if you don't provide the provisioning artifact ID. For
	// more information, see What is Amazon Web Services Service Catalog (https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html).
	ServiceCatalogProvisioningUpdateDetails *ServiceCatalogProvisioningUpdateDetails `type:"structure"`

	// An array of key-value pairs. You can use tags to categorize your Amazon Web
	// Services resources in different ways, for example, by purpose, owner, or
	// environment. For more information, see Tagging Amazon Web Services Resources
	// (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). In addition,
	// the project must have tag update constraints set in order to include this
	// parameter in the request. For more information, see Amazon Web Services Service
	// Catalog Tag Update Constraints (https://docs.aws.amazon.com/servicecatalog/latest/adminguide/constraints-resourceupdate.html).
	Tags []*Tag `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateProjectInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateProjectInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateProjectInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateProjectInput"}
	if s.ProjectName == nil {
		invalidParams.Add(request.NewErrParamRequired("ProjectName"))
	}
	if s.ProjectName != nil && len(*s.ProjectName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ProjectName", 1))
	}
	if s.ServiceCatalogProvisioningUpdateDetails != nil {
		if err := s.ServiceCatalogProvisioningUpdateDetails.Validate(); err != nil {
			invalidParams.AddNested("ServiceCatalogProvisioningUpdateDetails", err.(request.ErrInvalidParams))
		}
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetProjectDescription sets the ProjectDescription field's value.
func (s *UpdateProjectInput) SetProjectDescription(v string) *UpdateProjectInput {
	s.ProjectDescription = &v
	return s
}

// SetProjectName sets the ProjectName field's value.
func (s *UpdateProjectInput) SetProjectName(v string) *UpdateProjectInput {
	s.ProjectName = &v
	return s
}

// SetServiceCatalogProvisioningUpdateDetails sets the ServiceCatalogProvisioningUpdateDetails field's value.
func (s *UpdateProjectInput) SetServiceCatalogProvisioningUpdateDetails(v *ServiceCatalogProvisioningUpdateDetails) *UpdateProjectInput {
	s.ServiceCatalogProvisioningUpdateDetails = v
	return s
}

// SetTags sets the Tags field's value.
func (s *UpdateProjectInput) SetTags(v []*Tag) *UpdateProjectInput {
	s.Tags = v
	return s
}

type UpdateProjectOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the project.
	//
	// ProjectArn is a required field
	ProjectArn *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateProjectOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateProjectOutput) GoString() string {
	return s.String()
}

// SetProjectArn sets the ProjectArn field's value.
func (s *UpdateProjectOutput) SetProjectArn(v string) *UpdateProjectOutput {
	s.ProjectArn = &v
	return s
}

type UpdateSpaceInput struct {
	_ struct{} `type:"structure"`

	// The ID of the associated Domain.
	//
	// DomainId is a required field
	DomainId *string `type:"string" required:"true"`

	// The name of the space that appears in the Amazon SageMaker Studio UI.
	SpaceDisplayName *string `type:"string"`

	// The name of the space.
	//
	// SpaceName is a required field
	SpaceName *string `type:"string" required:"true"`

	// A collection of space settings.
	SpaceSettings *SpaceSettings `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateSpaceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateSpaceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateSpaceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateSpaceInput"}
	if s.DomainId == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainId"))
	}
	if s.SpaceName == nil {
		invalidParams.Add(request.NewErrParamRequired("SpaceName"))
	}
	if s.SpaceSettings != nil {
		if err := s.SpaceSettings.Validate(); err != nil {
			invalidParams.AddNested("SpaceSettings", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainId sets the DomainId field's value.
func (s *UpdateSpaceInput) SetDomainId(v string) *UpdateSpaceInput {
	s.DomainId = &v
	return s
}

// SetSpaceDisplayName sets the SpaceDisplayName field's value.
func (s *UpdateSpaceInput) SetSpaceDisplayName(v string) *UpdateSpaceInput {
	s.SpaceDisplayName = &v
	return s
}

// SetSpaceName sets the SpaceName field's value.
func (s *UpdateSpaceInput) SetSpaceName(v string) *UpdateSpaceInput {
	s.SpaceName = &v
	return s
}

// SetSpaceSettings sets the SpaceSettings field's value.
func (s *UpdateSpaceInput) SetSpaceSettings(v *SpaceSettings) *UpdateSpaceInput {
	s.SpaceSettings = v
	return s
}

type UpdateSpaceOutput struct {
	_ struct{} `type:"structure"`

	// The space's Amazon Resource Name (ARN).
	SpaceArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateSpaceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateSpaceOutput) GoString() string {
	return s.String()
}

// SetSpaceArn sets the SpaceArn field's value.
func (s *UpdateSpaceOutput) SetSpaceArn(v string) *UpdateSpaceOutput {
	s.SpaceArn = &v
	return s
}

type UpdateTrainingJobInput struct {
	_ struct{} `type:"structure"`

	// Configuration information for Amazon SageMaker Debugger system monitoring,
	// framework profiling, and storage paths.
	ProfilerConfig *ProfilerConfigForUpdate `type:"structure"`

	// Configuration information for Amazon SageMaker Debugger rules for profiling
	// system and framework metrics.
	ProfilerRuleConfigurations []*ProfilerRuleConfiguration `type:"list"`

	// Configuration for remote debugging while the training job is running. You
	// can update the remote debugging configuration when the SecondaryStatus of
	// the job is Downloading or Training.To learn more about the remote debugging
	// functionality of SageMaker, see Access a training container through Amazon
	// Web Services Systems Manager (SSM) for remote debugging (https://docs.aws.amazon.com/sagemaker/latest/dg/train-remote-debugging.html).
	RemoteDebugConfig *RemoteDebugConfigForUpdate `type:"structure"`

	// The training job ResourceConfig to update warm pool retention length.
	ResourceConfig *ResourceConfigForUpdate `type:"structure"`

	// The name of a training job to update the Debugger profiling configuration.
	//
	// TrainingJobName is a required field
	TrainingJobName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateTrainingJobInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateTrainingJobInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateTrainingJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateTrainingJobInput"}
	if s.TrainingJobName == nil {
		invalidParams.Add(request.NewErrParamRequired("TrainingJobName"))
	}
	if s.TrainingJobName != nil && len(*s.TrainingJobName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TrainingJobName", 1))
	}
	if s.ProfilerRuleConfigurations != nil {
		for i, v := range s.ProfilerRuleConfigurations {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ProfilerRuleConfigurations", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.ResourceConfig != nil {
		if err := s.ResourceConfig.Validate(); err != nil {
			invalidParams.AddNested("ResourceConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetProfilerConfig sets the ProfilerConfig field's value.
func (s *UpdateTrainingJobInput) SetProfilerConfig(v *ProfilerConfigForUpdate) *UpdateTrainingJobInput {
	s.ProfilerConfig = v
	return s
}

// SetProfilerRuleConfigurations sets the ProfilerRuleConfigurations field's value.
func (s *UpdateTrainingJobInput) SetProfilerRuleConfigurations(v []*ProfilerRuleConfiguration) *UpdateTrainingJobInput {
	s.ProfilerRuleConfigurations = v
	return s
}

// SetRemoteDebugConfig sets the RemoteDebugConfig field's value.
func (s *UpdateTrainingJobInput) SetRemoteDebugConfig(v *RemoteDebugConfigForUpdate) *UpdateTrainingJobInput {
	s.RemoteDebugConfig = v
	return s
}

// SetResourceConfig sets the ResourceConfig field's value.
func (s *UpdateTrainingJobInput) SetResourceConfig(v *ResourceConfigForUpdate) *UpdateTrainingJobInput {
	s.ResourceConfig = v
	return s
}

// SetTrainingJobName sets the TrainingJobName field's value.
func (s *UpdateTrainingJobInput) SetTrainingJobName(v string) *UpdateTrainingJobInput {
	s.TrainingJobName = &v
	return s
}

type UpdateTrainingJobOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the training job.
	//
	// TrainingJobArn is a required field
	TrainingJobArn *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateTrainingJobOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateTrainingJobOutput) GoString() string {
	return s.String()
}

// SetTrainingJobArn sets the TrainingJobArn field's value.
func (s *UpdateTrainingJobOutput) SetTrainingJobArn(v string) *UpdateTrainingJobOutput {
	s.TrainingJobArn = &v
	return s
}

type UpdateTrialComponentInput struct {
	_ struct{} `type:"structure"`

	// The name of the component as displayed. The name doesn't need to be unique.
	// If DisplayName isn't specified, TrialComponentName is displayed.
	DisplayName *string `min:"1" type:"string"`

	// When the component ended.
	EndTime *time.Time `type:"timestamp"`

	// Replaces all of the component's input artifacts with the specified artifacts
	// or adds new input artifacts. Existing input artifacts are replaced if the
	// trial component is updated with an identical input artifact key.
	InputArtifacts map[string]*TrialComponentArtifact `type:"map"`

	// The input artifacts to remove from the component.
	InputArtifactsToRemove []*string `type:"list"`

	// Replaces all of the component's output artifacts with the specified artifacts
	// or adds new output artifacts. Existing output artifacts are replaced if the
	// trial component is updated with an identical output artifact key.
	OutputArtifacts map[string]*TrialComponentArtifact `type:"map"`

	// The output artifacts to remove from the component.
	OutputArtifactsToRemove []*string `type:"list"`

	// Replaces all of the component's hyperparameters with the specified hyperparameters
	// or add new hyperparameters. Existing hyperparameters are replaced if the
	// trial component is updated with an identical hyperparameter key.
	Parameters map[string]*TrialComponentParameterValue `type:"map"`

	// The hyperparameters to remove from the component.
	ParametersToRemove []*string `type:"list"`

	// When the component started.
	StartTime *time.Time `type:"timestamp"`

	// The new status of the component.
	Status *TrialComponentStatus `type:"structure"`

	// The name of the component to update.
	//
	// TrialComponentName is a required field
	TrialComponentName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateTrialComponentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateTrialComponentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateTrialComponentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateTrialComponentInput"}
	if s.DisplayName != nil && len(*s.DisplayName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1))
	}
	if s.TrialComponentName == nil {
		invalidParams.Add(request.NewErrParamRequired("TrialComponentName"))
	}
	if s.TrialComponentName != nil && len(*s.TrialComponentName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TrialComponentName", 1))
	}
	if s.InputArtifacts != nil {
		for i, v := range s.InputArtifacts {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InputArtifacts", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.OutputArtifacts != nil {
		for i, v := range s.OutputArtifacts {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OutputArtifacts", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDisplayName sets the DisplayName field's value.
func (s *UpdateTrialComponentInput) SetDisplayName(v string) *UpdateTrialComponentInput {
	s.DisplayName = &v
	return s
}

// SetEndTime sets the EndTime field's value.
func (s *UpdateTrialComponentInput) SetEndTime(v time.Time) *UpdateTrialComponentInput {
	s.EndTime = &v
	return s
}

// SetInputArtifacts sets the InputArtifacts field's value.
func (s *UpdateTrialComponentInput) SetInputArtifacts(v map[string]*TrialComponentArtifact) *UpdateTrialComponentInput {
	s.InputArtifacts = v
	return s
}

// SetInputArtifactsToRemove sets the InputArtifactsToRemove field's value.
func (s *UpdateTrialComponentInput) SetInputArtifactsToRemove(v []*string) *UpdateTrialComponentInput {
	s.InputArtifactsToRemove = v
	return s
}

// SetOutputArtifacts sets the OutputArtifacts field's value.
func (s *UpdateTrialComponentInput) SetOutputArtifacts(v map[string]*TrialComponentArtifact) *UpdateTrialComponentInput {
	s.OutputArtifacts = v
	return s
}

// SetOutputArtifactsToRemove sets the OutputArtifactsToRemove field's value.
func (s *UpdateTrialComponentInput) SetOutputArtifactsToRemove(v []*string) *UpdateTrialComponentInput {
	s.OutputArtifactsToRemove = v
	return s
}

// SetParameters sets the Parameters field's value.
func (s *UpdateTrialComponentInput) SetParameters(v map[string]*TrialComponentParameterValue) *UpdateTrialComponentInput {
	s.Parameters = v
	return s
}

// SetParametersToRemove sets the ParametersToRemove field's value.
func (s *UpdateTrialComponentInput) SetParametersToRemove(v []*string) *UpdateTrialComponentInput {
	s.ParametersToRemove = v
	return s
}

// SetStartTime sets the StartTime field's value.
func (s *UpdateTrialComponentInput) SetStartTime(v time.Time) *UpdateTrialComponentInput {
	s.StartTime = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *UpdateTrialComponentInput) SetStatus(v *TrialComponentStatus) *UpdateTrialComponentInput {
	s.Status = v
	return s
}

// SetTrialComponentName sets the TrialComponentName field's value.
func (s *UpdateTrialComponentInput) SetTrialComponentName(v string) *UpdateTrialComponentInput {
	s.TrialComponentName = &v
	return s
}

type UpdateTrialComponentOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the trial component.
	TrialComponentArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateTrialComponentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateTrialComponentOutput) GoString() string {
	return s.String()
}

// SetTrialComponentArn sets the TrialComponentArn field's value.
func (s *UpdateTrialComponentOutput) SetTrialComponentArn(v string) *UpdateTrialComponentOutput {
	s.TrialComponentArn = &v
	return s
}

type UpdateTrialInput struct {
	_ struct{} `type:"structure"`

	// The name of the trial as displayed. The name doesn't need to be unique. If
	// DisplayName isn't specified, TrialName is displayed.
	DisplayName *string `min:"1" type:"string"`

	// The name of the trial to update.
	//
	// TrialName is a required field
	TrialName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateTrialInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateTrialInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateTrialInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateTrialInput"}
	if s.DisplayName != nil && len(*s.DisplayName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1))
	}
	if s.TrialName == nil {
		invalidParams.Add(request.NewErrParamRequired("TrialName"))
	}
	if s.TrialName != nil && len(*s.TrialName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TrialName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDisplayName sets the DisplayName field's value.
func (s *UpdateTrialInput) SetDisplayName(v string) *UpdateTrialInput {
	s.DisplayName = &v
	return s
}

// SetTrialName sets the TrialName field's value.
func (s *UpdateTrialInput) SetTrialName(v string) *UpdateTrialInput {
	s.TrialName = &v
	return s
}

type UpdateTrialOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the trial.
	TrialArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateTrialOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateTrialOutput) GoString() string {
	return s.String()
}

// SetTrialArn sets the TrialArn field's value.
func (s *UpdateTrialOutput) SetTrialArn(v string) *UpdateTrialOutput {
	s.TrialArn = &v
	return s
}

type UpdateUserProfileInput struct {
	_ struct{} `type:"structure"`

	// The domain ID.
	//
	// DomainId is a required field
	DomainId *string `type:"string" required:"true"`

	// The user profile name.
	//
	// UserProfileName is a required field
	UserProfileName *string `type:"string" required:"true"`

	// A collection of settings.
	UserSettings *UserSettings `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateUserProfileInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateUserProfileInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateUserProfileInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateUserProfileInput"}
	if s.DomainId == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainId"))
	}
	if s.UserProfileName == nil {
		invalidParams.Add(request.NewErrParamRequired("UserProfileName"))
	}
	if s.UserSettings != nil {
		if err := s.UserSettings.Validate(); err != nil {
			invalidParams.AddNested("UserSettings", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainId sets the DomainId field's value.
func (s *UpdateUserProfileInput) SetDomainId(v string) *UpdateUserProfileInput {
	s.DomainId = &v
	return s
}

// SetUserProfileName sets the UserProfileName field's value.
func (s *UpdateUserProfileInput) SetUserProfileName(v string) *UpdateUserProfileInput {
	s.UserProfileName = &v
	return s
}

// SetUserSettings sets the UserSettings field's value.
func (s *UpdateUserProfileInput) SetUserSettings(v *UserSettings) *UpdateUserProfileInput {
	s.UserSettings = v
	return s
}

type UpdateUserProfileOutput struct {
	_ struct{} `type:"structure"`

	// The user profile Amazon Resource Name (ARN).
	UserProfileArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateUserProfileOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateUserProfileOutput) GoString() string {
	return s.String()
}

// SetUserProfileArn sets the UserProfileArn field's value.
func (s *UpdateUserProfileOutput) SetUserProfileArn(v string) *UpdateUserProfileOutput {
	s.UserProfileArn = &v
	return s
}

type UpdateWorkforceInput struct {
	_ struct{} `type:"structure"`

	// Use this parameter to update your OIDC Identity Provider (IdP) configuration
	// for a workforce made using your own IdP.
	OidcConfig *OidcConfig `type:"structure"`

	// A list of one to ten worker IP address ranges (CIDRs (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html))
	// that can be used to access tasks assigned to this workforce.
	//
	// Maximum: Ten CIDR values
	SourceIpConfig *SourceIpConfig `type:"structure"`

	// The name of the private workforce that you want to update. You can find your
	// workforce name by using the ListWorkforces (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListWorkforces.html)
	// operation.
	//
	// WorkforceName is a required field
	WorkforceName *string `min:"1" type:"string" required:"true"`

	// Use this parameter to update your VPC configuration for a workforce.
	WorkforceVpcConfig *WorkforceVpcConfigRequest `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateWorkforceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateWorkforceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateWorkforceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateWorkforceInput"}
	if s.WorkforceName == nil {
		invalidParams.Add(request.NewErrParamRequired("WorkforceName"))
	}
	if s.WorkforceName != nil && len(*s.WorkforceName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("WorkforceName", 1))
	}
	if s.OidcConfig != nil {
		if err := s.OidcConfig.Validate(); err != nil {
			invalidParams.AddNested("OidcConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.SourceIpConfig != nil {
		if err := s.SourceIpConfig.Validate(); err != nil {
			invalidParams.AddNested("SourceIpConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.WorkforceVpcConfig != nil {
		if err := s.WorkforceVpcConfig.Validate(); err != nil {
			invalidParams.AddNested("WorkforceVpcConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetOidcConfig sets the OidcConfig field's value.
func (s *UpdateWorkforceInput) SetOidcConfig(v *OidcConfig) *UpdateWorkforceInput {
	s.OidcConfig = v
	return s
}

// SetSourceIpConfig sets the SourceIpConfig field's value.
func (s *UpdateWorkforceInput) SetSourceIpConfig(v *SourceIpConfig) *UpdateWorkforceInput {
	s.SourceIpConfig = v
	return s
}

// SetWorkforceName sets the WorkforceName field's value.
func (s *UpdateWorkforceInput) SetWorkforceName(v string) *UpdateWorkforceInput {
	s.WorkforceName = &v
	return s
}

// SetWorkforceVpcConfig sets the WorkforceVpcConfig field's value.
func (s *UpdateWorkforceInput) SetWorkforceVpcConfig(v *WorkforceVpcConfigRequest) *UpdateWorkforceInput {
	s.WorkforceVpcConfig = v
	return s
}

type UpdateWorkforceOutput struct {
	_ struct{} `type:"structure"`

	// A single private workforce. You can create one private work force in each
	// Amazon Web Services Region. By default, any workforce-related API operation
	// used in a specific region will apply to the workforce created in that region.
	// To learn how to create a private workforce, see Create a Private Workforce
	// (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-create-private.html).
	//
	// Workforce is a required field
	Workforce *Workforce `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateWorkforceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateWorkforceOutput) GoString() string {
	return s.String()
}

// SetWorkforce sets the Workforce field's value.
func (s *UpdateWorkforceOutput) SetWorkforce(v *Workforce) *UpdateWorkforceOutput {
	s.Workforce = v
	return s
}

type UpdateWorkteamInput struct {
	_ struct{} `type:"structure"`

	// An updated description for the work team.
	Description *string `min:"1" type:"string"`

	// A list of MemberDefinition objects that contains objects that identify the
	// workers that make up the work team.
	//
	// Workforces can be created using Amazon Cognito or your own OIDC Identity
	// Provider (IdP). For private workforces created using Amazon Cognito use CognitoMemberDefinition.
	// For workforces created using your own OIDC identity provider (IdP) use OidcMemberDefinition.
	// You should not provide input for both of these parameters in a single request.
	//
	// For workforces created using Amazon Cognito, private work teams correspond
	// to Amazon Cognito user groups within the user pool used to create a workforce.
	// All of the CognitoMemberDefinition objects that make up the member definition
	// must have the same ClientId and UserPool values. To add a Amazon Cognito
	// user group to an existing worker pool, see Adding groups to a User Pool.
	// For more information about user pools, see Amazon Cognito User Pools (https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html).
	//
	// For workforces created using your own OIDC IdP, specify the user groups that
	// you want to include in your private work team in OidcMemberDefinition by
	// listing those groups in Groups. Be aware that user groups that are already
	// in the work team must also be listed in Groups when you make this request
	// to remain on the work team. If you do not include these user groups, they
	// will no longer be associated with the work team you update.
	MemberDefinitions []*MemberDefinition `min:"1" type:"list"`

	// Configures SNS topic notifications for available or expiring work items
	NotificationConfiguration *NotificationConfiguration `type:"structure"`

	// The name of the work team to update.
	//
	// WorkteamName is a required field
	WorkteamName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateWorkteamInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateWorkteamInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateWorkteamInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateWorkteamInput"}
	if s.Description != nil && len(*s.Description) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
	}
	if s.MemberDefinitions != nil && len(s.MemberDefinitions) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("MemberDefinitions", 1))
	}
	if s.WorkteamName == nil {
		invalidParams.Add(request.NewErrParamRequired("WorkteamName"))
	}
	if s.WorkteamName != nil && len(*s.WorkteamName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("WorkteamName", 1))
	}
	if s.MemberDefinitions != nil {
		for i, v := range s.MemberDefinitions {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MemberDefinitions", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDescription sets the Description field's value.
func (s *UpdateWorkteamInput) SetDescription(v string) *UpdateWorkteamInput {
	s.Description = &v
	return s
}

// SetMemberDefinitions sets the MemberDefinitions field's value.
func (s *UpdateWorkteamInput) SetMemberDefinitions(v []*MemberDefinition) *UpdateWorkteamInput {
	s.MemberDefinitions = v
	return s
}

// SetNotificationConfiguration sets the NotificationConfiguration field's value.
func (s *UpdateWorkteamInput) SetNotificationConfiguration(v *NotificationConfiguration) *UpdateWorkteamInput {
	s.NotificationConfiguration = v
	return s
}

// SetWorkteamName sets the WorkteamName field's value.
func (s *UpdateWorkteamInput) SetWorkteamName(v string) *UpdateWorkteamInput {
	s.WorkteamName = &v
	return s
}

type UpdateWorkteamOutput struct {
	_ struct{} `type:"structure"`

	// A Workteam object that describes the updated work team.
	//
	// Workteam is a required field
	Workteam *Workteam `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateWorkteamOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateWorkteamOutput) GoString() string {
	return s.String()
}

// SetWorkteam sets the Workteam field's value.
func (s *UpdateWorkteamOutput) SetWorkteam(v *Workteam) *UpdateWorkteamOutput {
	s.Workteam = v
	return s
}

// Information about the user who created or modified an experiment, trial,
// trial component, lineage group, project, or model card.
type UserContext struct {
	_ struct{} `type:"structure"`

	// The domain associated with the user.
	DomainId *string `type:"string"`

	// The IAM Identity details associated with the user. These details are associated
	// with model package groups, model packages, and project entities only.
	IamIdentity *IamIdentity `type:"structure"`

	// The Amazon Resource Name (ARN) of the user's profile.
	UserProfileArn *string `type:"string"`

	// The name of the user's profile.
	UserProfileName *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UserContext) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UserContext) GoString() string {
	return s.String()
}

// SetDomainId sets the DomainId field's value.
func (s *UserContext) SetDomainId(v string) *UserContext {
	s.DomainId = &v
	return s
}

// SetIamIdentity sets the IamIdentity field's value.
func (s *UserContext) SetIamIdentity(v *IamIdentity) *UserContext {
	s.IamIdentity = v
	return s
}

// SetUserProfileArn sets the UserProfileArn field's value.
func (s *UserContext) SetUserProfileArn(v string) *UserContext {
	s.UserProfileArn = &v
	return s
}

// SetUserProfileName sets the UserProfileName field's value.
func (s *UserContext) SetUserProfileName(v string) *UserContext {
	s.UserProfileName = &v
	return s
}

// The user profile details.
type UserProfileDetails struct {
	_ struct{} `type:"structure"`

	// The creation time.
	CreationTime *time.Time `type:"timestamp"`

	// The domain ID.
	DomainId *string `type:"string"`

	// The last modified time.
	LastModifiedTime *time.Time `type:"timestamp"`

	// The status.
	Status *string `type:"string" enum:"UserProfileStatus"`

	// The user profile name.
	UserProfileName *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UserProfileDetails) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UserProfileDetails) GoString() string {
	return s.String()
}

// SetCreationTime sets the CreationTime field's value.
func (s *UserProfileDetails) SetCreationTime(v time.Time) *UserProfileDetails {
	s.CreationTime = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *UserProfileDetails) SetDomainId(v string) *UserProfileDetails {
	s.DomainId = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *UserProfileDetails) SetLastModifiedTime(v time.Time) *UserProfileDetails {
	s.LastModifiedTime = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *UserProfileDetails) SetStatus(v string) *UserProfileDetails {
	s.Status = &v
	return s
}

// SetUserProfileName sets the UserProfileName field's value.
func (s *UserProfileDetails) SetUserProfileName(v string) *UserProfileDetails {
	s.UserProfileName = &v
	return s
}

// A collection of settings that apply to users in a domain. These settings
// are specified when the CreateUserProfile API is called, and as DefaultUserSettings
// when the CreateDomain API is called.
//
// SecurityGroups is aggregated when specified in both calls. For all other
// settings in UserSettings, the values specified in CreateUserProfile take
// precedence over those specified in CreateDomain.
type UserSettings struct {
	_ struct{} `type:"structure"`

	// The Canvas app settings.
	CanvasAppSettings *CanvasAppSettings `type:"structure"`

	// The Code Editor application settings.
	CodeEditorAppSettings *CodeEditorAppSettings `type:"structure"`

	// The settings for assigning a custom file system to a user profile. Permitted
	// users can access this file system in Amazon SageMaker Studio.
	CustomFileSystemConfigs []*CustomFileSystemConfig `type:"list"`

	// Details about the POSIX identity that is used for file system operations.
	CustomPosixUserConfig *CustomPosixUserConfig `type:"structure"`

	// The default experience that the user is directed to when accessing the domain.
	// The supported values are:
	//
	//    * studio::: Indicates that Studio is the default experience. This value
	//    can only be passed if StudioWebPortal is set to ENABLED.
	//
	//    * app:JupyterServer:: Indicates that Studio Classic is the default experience.
	DefaultLandingUri *string `type:"string"`

	// The execution role for the user.
	ExecutionRole *string `min:"20" type:"string"`

	// The settings for the JupyterLab application.
	JupyterLabAppSettings *JupyterLabAppSettings `type:"structure"`

	// The Jupyter server's app settings.
	JupyterServerAppSettings *JupyterServerAppSettings `type:"structure"`

	// The kernel gateway app settings.
	KernelGatewayAppSettings *KernelGatewayAppSettings `type:"structure"`

	// A collection of settings that configure the RSessionGateway app.
	RSessionAppSettings *RSessionAppSettings `type:"structure"`

	// A collection of settings that configure user interaction with the RStudioServerPro
	// app.
	RStudioServerProAppSettings *RStudioServerProAppSettings `type:"structure"`

	// The security groups for the Amazon Virtual Private Cloud (VPC) that the domain
	// uses for communication.
	//
	// Optional when the CreateDomain.AppNetworkAccessType parameter is set to PublicInternetOnly.
	//
	// Required when the CreateDomain.AppNetworkAccessType parameter is set to VpcOnly,
	// unless specified as part of the DefaultUserSettings for the domain.
	//
	// Amazon SageMaker adds a security group to allow NFS traffic from Amazon SageMaker
	// Studio. Therefore, the number of security groups that you can specify is
	// one less than the maximum number shown.
	SecurityGroups []*string `type:"list"`

	// Specifies options for sharing Amazon SageMaker Studio notebooks.
	SharingSettings *SharingSettings `type:"structure"`

	// The storage settings for a private space.
	SpaceStorageSettings *DefaultSpaceStorageSettings `type:"structure"`

	// Whether the user can access Studio. If this value is set to DISABLED, the
	// user cannot access Studio, even if that is the default experience for the
	// domain.
	StudioWebPortal *string `type:"string" enum:"StudioWebPortal"`

	// The TensorBoard app settings.
	TensorBoardAppSettings *TensorBoardAppSettings `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UserSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UserSettings) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UserSettings) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UserSettings"}
	if s.ExecutionRole != nil && len(*s.ExecutionRole) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("ExecutionRole", 20))
	}
	if s.CanvasAppSettings != nil {
		if err := s.CanvasAppSettings.Validate(); err != nil {
			invalidParams.AddNested("CanvasAppSettings", err.(request.ErrInvalidParams))
		}
	}
	if s.CodeEditorAppSettings != nil {
		if err := s.CodeEditorAppSettings.Validate(); err != nil {
			invalidParams.AddNested("CodeEditorAppSettings", err.(request.ErrInvalidParams))
		}
	}
	if s.CustomFileSystemConfigs != nil {
		for i, v := range s.CustomFileSystemConfigs {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CustomFileSystemConfigs", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.CustomPosixUserConfig != nil {
		if err := s.CustomPosixUserConfig.Validate(); err != nil {
			invalidParams.AddNested("CustomPosixUserConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.JupyterLabAppSettings != nil {
		if err := s.JupyterLabAppSettings.Validate(); err != nil {
			invalidParams.AddNested("JupyterLabAppSettings", err.(request.ErrInvalidParams))
		}
	}
	if s.JupyterServerAppSettings != nil {
		if err := s.JupyterServerAppSettings.Validate(); err != nil {
			invalidParams.AddNested("JupyterServerAppSettings", err.(request.ErrInvalidParams))
		}
	}
	if s.KernelGatewayAppSettings != nil {
		if err := s.KernelGatewayAppSettings.Validate(); err != nil {
			invalidParams.AddNested("KernelGatewayAppSettings", err.(request.ErrInvalidParams))
		}
	}
	if s.RSessionAppSettings != nil {
		if err := s.RSessionAppSettings.Validate(); err != nil {
			invalidParams.AddNested("RSessionAppSettings", err.(request.ErrInvalidParams))
		}
	}
	if s.SpaceStorageSettings != nil {
		if err := s.SpaceStorageSettings.Validate(); err != nil {
			invalidParams.AddNested("SpaceStorageSettings", err.(request.ErrInvalidParams))
		}
	}
	if s.TensorBoardAppSettings != nil {
		if err := s.TensorBoardAppSettings.Validate(); err != nil {
			invalidParams.AddNested("TensorBoardAppSettings", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCanvasAppSettings sets the CanvasAppSettings field's value.
func (s *UserSettings) SetCanvasAppSettings(v *CanvasAppSettings) *UserSettings {
	s.CanvasAppSettings = v
	return s
}

// SetCodeEditorAppSettings sets the CodeEditorAppSettings field's value.
func (s *UserSettings) SetCodeEditorAppSettings(v *CodeEditorAppSettings) *UserSettings {
	s.CodeEditorAppSettings = v
	return s
}

// SetCustomFileSystemConfigs sets the CustomFileSystemConfigs field's value.
func (s *UserSettings) SetCustomFileSystemConfigs(v []*CustomFileSystemConfig) *UserSettings {
	s.CustomFileSystemConfigs = v
	return s
}

// SetCustomPosixUserConfig sets the CustomPosixUserConfig field's value.
func (s *UserSettings) SetCustomPosixUserConfig(v *CustomPosixUserConfig) *UserSettings {
	s.CustomPosixUserConfig = v
	return s
}

// SetDefaultLandingUri sets the DefaultLandingUri field's value.
func (s *UserSettings) SetDefaultLandingUri(v string) *UserSettings {
	s.DefaultLandingUri = &v
	return s
}

// SetExecutionRole sets the ExecutionRole field's value.
func (s *UserSettings) SetExecutionRole(v string) *UserSettings {
	s.ExecutionRole = &v
	return s
}

// SetJupyterLabAppSettings sets the JupyterLabAppSettings field's value.
func (s *UserSettings) SetJupyterLabAppSettings(v *JupyterLabAppSettings) *UserSettings {
	s.JupyterLabAppSettings = v
	return s
}

// SetJupyterServerAppSettings sets the JupyterServerAppSettings field's value.
func (s *UserSettings) SetJupyterServerAppSettings(v *JupyterServerAppSettings) *UserSettings {
	s.JupyterServerAppSettings = v
	return s
}

// SetKernelGatewayAppSettings sets the KernelGatewayAppSettings field's value.
func (s *UserSettings) SetKernelGatewayAppSettings(v *KernelGatewayAppSettings) *UserSettings {
	s.KernelGatewayAppSettings = v
	return s
}

// SetRSessionAppSettings sets the RSessionAppSettings field's value.
func (s *UserSettings) SetRSessionAppSettings(v *RSessionAppSettings) *UserSettings {
	s.RSessionAppSettings = v
	return s
}

// SetRStudioServerProAppSettings sets the RStudioServerProAppSettings field's value.
func (s *UserSettings) SetRStudioServerProAppSettings(v *RStudioServerProAppSettings) *UserSettings {
	s.RStudioServerProAppSettings = v
	return s
}

// SetSecurityGroups sets the SecurityGroups field's value.
func (s *UserSettings) SetSecurityGroups(v []*string) *UserSettings {
	s.SecurityGroups = v
	return s
}

// SetSharingSettings sets the SharingSettings field's value.
func (s *UserSettings) SetSharingSettings(v *SharingSettings) *UserSettings {
	s.SharingSettings = v
	return s
}

// SetSpaceStorageSettings sets the SpaceStorageSettings field's value.
func (s *UserSettings) SetSpaceStorageSettings(v *DefaultSpaceStorageSettings) *UserSettings {
	s.SpaceStorageSettings = v
	return s
}

// SetStudioWebPortal sets the StudioWebPortal field's value.
func (s *UserSettings) SetStudioWebPortal(v string) *UserSettings {
	s.StudioWebPortal = &v
	return s
}

// SetTensorBoardAppSettings sets the TensorBoardAppSettings field's value.
func (s *UserSettings) SetTensorBoardAppSettings(v *TensorBoardAppSettings) *UserSettings {
	s.TensorBoardAppSettings = v
	return s
}

// Specifies a production variant property type for an Endpoint.
//
// If you are updating an endpoint with the RetainAllVariantProperties option
// of UpdateEndpointInput (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html)
// set to true, the VariantProperty objects listed in the ExcludeRetainedVariantProperties
// parameter of UpdateEndpointInput (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html)
// override the existing variant properties of the endpoint.
type VariantProperty struct {
	_ struct{} `type:"structure"`

	// The type of variant property. The supported values are:
	//
	//    * DesiredInstanceCount: Overrides the existing variant instance counts
	//    using the InitialInstanceCount values in the ProductionVariants of CreateEndpointConfig
	//    (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html).
	//
	//    * DesiredWeight: Overrides the existing variant weights using the InitialVariantWeight
	//    values in the ProductionVariants of CreateEndpointConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html).
	//
	//    * DataCaptureConfig: (Not currently supported.)
	//
	// VariantPropertyType is a required field
	VariantPropertyType *string `type:"string" required:"true" enum:"VariantPropertyType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VariantProperty) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VariantProperty) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *VariantProperty) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "VariantProperty"}
	if s.VariantPropertyType == nil {
		invalidParams.Add(request.NewErrParamRequired("VariantPropertyType"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetVariantPropertyType sets the VariantPropertyType field's value.
func (s *VariantProperty) SetVariantPropertyType(v string) *VariantProperty {
	s.VariantPropertyType = &v
	return s
}

// Configuration for your vector collection type.
type VectorConfig struct {
	_ struct{} `type:"structure"`

	// The number of elements in your vector.
	//
	// Dimension is a required field
	Dimension *int64 `min:"1" type:"integer" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VectorConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VectorConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *VectorConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "VectorConfig"}
	if s.Dimension == nil {
		invalidParams.Add(request.NewErrParamRequired("Dimension"))
	}
	if s.Dimension != nil && *s.Dimension < 1 {
		invalidParams.Add(request.NewErrParamMinValue("Dimension", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDimension sets the Dimension field's value.
func (s *VectorConfig) SetDimension(v int64) *VectorConfig {
	s.Dimension = &v
	return s
}

// A lineage entity connected to the starting entity(ies).
type Vertex struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the lineage entity resource.
	Arn *string `type:"string"`

	// The type of resource of the lineage entity.
	LineageType *string `type:"string" enum:"LineageType"`

	// The type of the lineage entity resource. For example: DataSet, Model, Endpoint,
	// etc...
	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Vertex) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Vertex) GoString() string {
	return s.String()
}

// SetArn sets the Arn field's value.
func (s *Vertex) SetArn(v string) *Vertex {
	s.Arn = &v
	return s
}

// SetLineageType sets the LineageType field's value.
func (s *Vertex) SetLineageType(v string) *Vertex {
	s.LineageType = &v
	return s
}

// SetType sets the Type field's value.
func (s *Vertex) SetType(v string) *Vertex {
	s.Type = &v
	return s
}

// The list of key-value pairs that you specify for your resources.
type VisibilityConditions struct {
	_ struct{} `type:"structure"`

	// The key for that specifies the tag that you're using to filter the search
	// results. The key must start with Tags..
	Key *string `min:"1" type:"string"`

	// The value for the tag that you're using to filter the search results.
	Value *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VisibilityConditions) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VisibilityConditions) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *VisibilityConditions) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "VisibilityConditions"}
	if s.Key != nil && len(*s.Key) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetKey sets the Key field's value.
func (s *VisibilityConditions) SetKey(v string) *VisibilityConditions {
	s.Key = &v
	return s
}

// SetValue sets the Value field's value.
func (s *VisibilityConditions) SetValue(v string) *VisibilityConditions {
	s.Value = &v
	return s
}

// Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs,
// hosted models, and compute resources have access to. You can control access
// to and from your resources by configuring a VPC. For more information, see
// Give SageMaker Access to Resources in your Amazon VPC (https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html).
type VpcConfig struct {
	_ struct{} `type:"structure"`

	// The VPC security group IDs, in the form sg-xxxxxxxx. Specify the security
	// groups for the VPC that is specified in the Subnets field.
	//
	// SecurityGroupIds is a required field
	SecurityGroupIds []*string `min:"1" type:"list" required:"true"`

	// The ID of the subnets in the VPC to which you want to connect your training
	// job or model. For information about the availability of specific instance
	// types, see Supported Instance Types and Availability Zones (https://docs.aws.amazon.com/sagemaker/latest/dg/instance-types-az.html).
	//
	// Subnets is a required field
	Subnets []*string `min:"1" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VpcConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VpcConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *VpcConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "VpcConfig"}
	if s.SecurityGroupIds == nil {
		invalidParams.Add(request.NewErrParamRequired("SecurityGroupIds"))
	}
	if s.SecurityGroupIds != nil && len(s.SecurityGroupIds) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SecurityGroupIds", 1))
	}
	if s.Subnets == nil {
		invalidParams.Add(request.NewErrParamRequired("Subnets"))
	}
	if s.Subnets != nil && len(s.Subnets) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Subnets", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSecurityGroupIds sets the SecurityGroupIds field's value.
func (s *VpcConfig) SetSecurityGroupIds(v []*string) *VpcConfig {
	s.SecurityGroupIds = v
	return s
}

// SetSubnets sets the Subnets field's value.
func (s *VpcConfig) SetSubnets(v []*string) *VpcConfig {
	s.Subnets = v
	return s
}

// Status and billing information about the warm pool.
type WarmPoolStatus struct {
	_ struct{} `type:"structure"`

	// The billable time in seconds used by the warm pool. Billable time refers
	// to the absolute wall-clock time.
	//
	// Multiply ResourceRetainedBillableTimeInSeconds by the number of instances
	// (InstanceCount) in your training cluster to get the total compute time SageMaker
	// bills you if you run warm pool training. The formula is as follows: ResourceRetainedBillableTimeInSeconds
	// * InstanceCount.
	ResourceRetainedBillableTimeInSeconds *int64 `type:"integer"`

	// The name of the matching training job that reused the warm pool.
	ReusedByJob *string `min:"1" type:"string"`

	// The status of the warm pool.
	//
	//    * InUse: The warm pool is in use for the training job.
	//
	//    * Available: The warm pool is available to reuse for a matching training
	//    job.
	//
	//    * Reused: The warm pool moved to a matching training job for reuse.
	//
	//    * Terminated: The warm pool is no longer available. Warm pools are unavailable
	//    if they are terminated by a user, terminated for a patch update, or terminated
	//    for exceeding the specified KeepAlivePeriodInSeconds.
	//
	// Status is a required field
	Status *string `type:"string" required:"true" enum:"WarmPoolResourceStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s WarmPoolStatus) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s WarmPoolStatus) GoString() string {
	return s.String()
}

// SetResourceRetainedBillableTimeInSeconds sets the ResourceRetainedBillableTimeInSeconds field's value.
func (s *WarmPoolStatus) SetResourceRetainedBillableTimeInSeconds(v int64) *WarmPoolStatus {
	s.ResourceRetainedBillableTimeInSeconds = &v
	return s
}

// SetReusedByJob sets the ReusedByJob field's value.
func (s *WarmPoolStatus) SetReusedByJob(v string) *WarmPoolStatus {
	s.ReusedByJob = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *WarmPoolStatus) SetStatus(v string) *WarmPoolStatus {
	s.Status = &v
	return s
}

// A single private workforce, which is automatically created when you create
// your first private work team. You can create one private work force in each
// Amazon Web Services Region. By default, any workforce-related API operation
// used in a specific region will apply to the workforce created in that region.
// To learn how to create a private workforce, see Create a Private Workforce
// (https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-create-private.html).
type Workforce struct {
	_ struct{} `type:"structure"`

	// The configuration of an Amazon Cognito workforce. A single Cognito workforce
	// is created using and corresponds to a single Amazon Cognito user pool (https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html).
	CognitoConfig *CognitoConfig `type:"structure"`

	// The date that the workforce is created.
	CreateDate *time.Time `type:"timestamp"`

	// The reason your workforce failed.
	FailureReason *string `min:"1" type:"string"`

	// The most recent date that UpdateWorkforce (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateWorkforce.html)
	// was used to successfully add one or more IP address ranges (CIDRs (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html))
	// to a private workforce's allow list.
	LastUpdatedDate *time.Time `type:"timestamp"`

	// The configuration of an OIDC Identity Provider (IdP) private workforce.
	OidcConfig *OidcConfigForResponse `type:"structure"`

	// A list of one to ten IP address ranges (CIDRs (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html))
	// to be added to the workforce allow list. By default, a workforce isn't restricted
	// to specific IP addresses.
	SourceIpConfig *SourceIpConfig `type:"structure"`

	// The status of your workforce.
	Status *string `type:"string" enum:"WorkforceStatus"`

	// The subdomain for your OIDC Identity Provider.
	SubDomain *string `type:"string"`

	// The Amazon Resource Name (ARN) of the private workforce.
	//
	// WorkforceArn is a required field
	WorkforceArn *string `type:"string" required:"true"`

	// The name of the private workforce.
	//
	// WorkforceName is a required field
	WorkforceName *string `min:"1" type:"string" required:"true"`

	// The configuration of a VPC workforce.
	WorkforceVpcConfig *WorkforceVpcConfigResponse `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Workforce) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Workforce) GoString() string {
	return s.String()
}

// SetCognitoConfig sets the CognitoConfig field's value.
func (s *Workforce) SetCognitoConfig(v *CognitoConfig) *Workforce {
	s.CognitoConfig = v
	return s
}

// SetCreateDate sets the CreateDate field's value.
func (s *Workforce) SetCreateDate(v time.Time) *Workforce {
	s.CreateDate = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *Workforce) SetFailureReason(v string) *Workforce {
	s.FailureReason = &v
	return s
}

// SetLastUpdatedDate sets the LastUpdatedDate field's value.
func (s *Workforce) SetLastUpdatedDate(v time.Time) *Workforce {
	s.LastUpdatedDate = &v
	return s
}

// SetOidcConfig sets the OidcConfig field's value.
func (s *Workforce) SetOidcConfig(v *OidcConfigForResponse) *Workforce {
	s.OidcConfig = v
	return s
}

// SetSourceIpConfig sets the SourceIpConfig field's value.
func (s *Workforce) SetSourceIpConfig(v *SourceIpConfig) *Workforce {
	s.SourceIpConfig = v
	return s
}

// SetStatus sets the Status field's value.
func (s *Workforce) SetStatus(v string) *Workforce {
	s.Status = &v
	return s
}

// SetSubDomain sets the SubDomain field's value.
func (s *Workforce) SetSubDomain(v string) *Workforce {
	s.SubDomain = &v
	return s
}

// SetWorkforceArn sets the WorkforceArn field's value.
func (s *Workforce) SetWorkforceArn(v string) *Workforce {
	s.WorkforceArn = &v
	return s
}

// SetWorkforceName sets the WorkforceName field's value.
func (s *Workforce) SetWorkforceName(v string) *Workforce {
	s.WorkforceName = &v
	return s
}

// SetWorkforceVpcConfig sets the WorkforceVpcConfig field's value.
func (s *Workforce) SetWorkforceVpcConfig(v *WorkforceVpcConfigResponse) *Workforce {
	s.WorkforceVpcConfig = v
	return s
}

// The VPC object you use to create or update a workforce.
type WorkforceVpcConfigRequest struct {
	_ struct{} `type:"structure"`

	// The VPC security group IDs, in the form sg-xxxxxxxx. The security groups
	// must be for the same VPC as specified in the subnet.
	SecurityGroupIds []*string `min:"1" type:"list"`

	// The ID of the subnets in the VPC that you want to connect.
	Subnets []*string `min:"1" type:"list"`

	// The ID of the VPC that the workforce uses for communication.
	VpcId *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s WorkforceVpcConfigRequest) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s WorkforceVpcConfigRequest) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *WorkforceVpcConfigRequest) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "WorkforceVpcConfigRequest"}
	if s.SecurityGroupIds != nil && len(s.SecurityGroupIds) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SecurityGroupIds", 1))
	}
	if s.Subnets != nil && len(s.Subnets) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Subnets", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSecurityGroupIds sets the SecurityGroupIds field's value.
func (s *WorkforceVpcConfigRequest) SetSecurityGroupIds(v []*string) *WorkforceVpcConfigRequest {
	s.SecurityGroupIds = v
	return s
}

// SetSubnets sets the Subnets field's value.
func (s *WorkforceVpcConfigRequest) SetSubnets(v []*string) *WorkforceVpcConfigRequest {
	s.Subnets = v
	return s
}

// SetVpcId sets the VpcId field's value.
func (s *WorkforceVpcConfigRequest) SetVpcId(v string) *WorkforceVpcConfigRequest {
	s.VpcId = &v
	return s
}

// A VpcConfig object that specifies the VPC that you want your workforce to
// connect to.
type WorkforceVpcConfigResponse struct {
	_ struct{} `type:"structure"`

	// The VPC security group IDs, in the form sg-xxxxxxxx. The security groups
	// must be for the same VPC as specified in the subnet.
	//
	// SecurityGroupIds is a required field
	SecurityGroupIds []*string `min:"1" type:"list" required:"true"`

	// The ID of the subnets in the VPC that you want to connect.
	//
	// Subnets is a required field
	Subnets []*string `min:"1" type:"list" required:"true"`

	// The IDs for the VPC service endpoints of your VPC workforce when it is created
	// and updated.
	VpcEndpointId *string `min:"1" type:"string"`

	// The ID of the VPC that the workforce uses for communication.
	//
	// VpcId is a required field
	VpcId *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s WorkforceVpcConfigResponse) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s WorkforceVpcConfigResponse) GoString() string {
	return s.String()
}

// SetSecurityGroupIds sets the SecurityGroupIds field's value.
func (s *WorkforceVpcConfigResponse) SetSecurityGroupIds(v []*string) *WorkforceVpcConfigResponse {
	s.SecurityGroupIds = v
	return s
}

// SetSubnets sets the Subnets field's value.
func (s *WorkforceVpcConfigResponse) SetSubnets(v []*string) *WorkforceVpcConfigResponse {
	s.Subnets = v
	return s
}

// SetVpcEndpointId sets the VpcEndpointId field's value.
func (s *WorkforceVpcConfigResponse) SetVpcEndpointId(v string) *WorkforceVpcConfigResponse {
	s.VpcEndpointId = &v
	return s
}

// SetVpcId sets the VpcId field's value.
func (s *WorkforceVpcConfigResponse) SetVpcId(v string) *WorkforceVpcConfigResponse {
	s.VpcId = &v
	return s
}

// The workspace settings for the SageMaker Canvas application.
type WorkspaceSettings struct {
	_ struct{} `type:"structure"`

	// The Amazon S3 bucket used to store artifacts generated by Canvas. Updating
	// the Amazon S3 location impacts existing configuration settings, and Canvas
	// users no longer have access to their artifacts. Canvas users must log out
	// and log back in to apply the new location.
	S3ArtifactPath *string `type:"string"`

	// The Amazon Web Services Key Management Service (KMS) encryption key ID that
	// is used to encrypt artifacts generated by Canvas in the Amazon S3 bucket.
	S3KmsKeyId *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s WorkspaceSettings) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s WorkspaceSettings) GoString() string {
	return s.String()
}

// SetS3ArtifactPath sets the S3ArtifactPath field's value.
func (s *WorkspaceSettings) SetS3ArtifactPath(v string) *WorkspaceSettings {
	s.S3ArtifactPath = &v
	return s
}

// SetS3KmsKeyId sets the S3KmsKeyId field's value.
func (s *WorkspaceSettings) SetS3KmsKeyId(v string) *WorkspaceSettings {
	s.S3KmsKeyId = &v
	return s
}

// Provides details about a labeling work team.
type Workteam struct {
	_ struct{} `type:"structure"`

	// The date and time that the work team was created (timestamp).
	CreateDate *time.Time `type:"timestamp"`

	// A description of the work team.
	//
	// Description is a required field
	Description *string `min:"1" type:"string" required:"true"`

	// The date and time that the work team was last updated (timestamp).
	LastUpdatedDate *time.Time `type:"timestamp"`

	// A list of MemberDefinition objects that contains objects that identify the
	// workers that make up the work team.
	//
	// Workforces can be created using Amazon Cognito or your own OIDC Identity
	// Provider (IdP). For private workforces created using Amazon Cognito use CognitoMemberDefinition.
	// For workforces created using your own OIDC identity provider (IdP) use OidcMemberDefinition.
	//
	// MemberDefinitions is a required field
	MemberDefinitions []*MemberDefinition `min:"1" type:"list" required:"true"`

	// Configures SNS notifications of available or expiring work items for work
	// teams.
	NotificationConfiguration *NotificationConfiguration `type:"structure"`

	// The Amazon Marketplace identifier for a vendor's work team.
	ProductListingIds []*string `type:"list"`

	// The URI of the labeling job's user interface. Workers open this URI to start
	// labeling your data objects.
	SubDomain *string `type:"string"`

	// The Amazon Resource Name (ARN) of the workforce.
	WorkforceArn *string `type:"string"`

	// The Amazon Resource Name (ARN) that identifies the work team.
	//
	// WorkteamArn is a required field
	WorkteamArn *string `type:"string" required:"true"`

	// The name of the work team.
	//
	// WorkteamName is a required field
	WorkteamName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Workteam) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Workteam) GoString() string {
	return s.String()
}

// SetCreateDate sets the CreateDate field's value.
func (s *Workteam) SetCreateDate(v time.Time) *Workteam {
	s.CreateDate = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *Workteam) SetDescription(v string) *Workteam {
	s.Description = &v
	return s
}

// SetLastUpdatedDate sets the LastUpdatedDate field's value.
func (s *Workteam) SetLastUpdatedDate(v time.Time) *Workteam {
	s.LastUpdatedDate = &v
	return s
}

// SetMemberDefinitions sets the MemberDefinitions field's value.
func (s *Workteam) SetMemberDefinitions(v []*MemberDefinition) *Workteam {
	s.MemberDefinitions = v
	return s
}

// SetNotificationConfiguration sets the NotificationConfiguration field's value.
func (s *Workteam) SetNotificationConfiguration(v *NotificationConfiguration) *Workteam {
	s.NotificationConfiguration = v
	return s
}

// SetProductListingIds sets the ProductListingIds field's value.
func (s *Workteam) SetProductListingIds(v []*string) *Workteam {
	s.ProductListingIds = v
	return s
}

// SetSubDomain sets the SubDomain field's value.
func (s *Workteam) SetSubDomain(v string) *Workteam {
	s.SubDomain = &v
	return s
}

// SetWorkforceArn sets the WorkforceArn field's value.
func (s *Workteam) SetWorkforceArn(v string) *Workteam {
	s.WorkforceArn = &v
	return s
}

// SetWorkteamArn sets the WorkteamArn field's value.
func (s *Workteam) SetWorkteamArn(v string) *Workteam {
	s.WorkteamArn = &v
	return s
}

// SetWorkteamName sets the WorkteamName field's value.
func (s *Workteam) SetWorkteamName(v string) *Workteam {
	s.WorkteamName = &v
	return s
}

const (
	// ActionStatusUnknown is a ActionStatus enum value
	ActionStatusUnknown = "Unknown"

	// ActionStatusInProgress is a ActionStatus enum value
	ActionStatusInProgress = "InProgress"

	// ActionStatusCompleted is a ActionStatus enum value
	ActionStatusCompleted = "Completed"

	// ActionStatusFailed is a ActionStatus enum value
	ActionStatusFailed = "Failed"

	// ActionStatusStopping is a ActionStatus enum value
	ActionStatusStopping = "Stopping"

	// ActionStatusStopped is a ActionStatus enum value
	ActionStatusStopped = "Stopped"
)

// ActionStatus_Values returns all elements of the ActionStatus enum
func ActionStatus_Values() []string {
	return []string{
		ActionStatusUnknown,
		ActionStatusInProgress,
		ActionStatusCompleted,
		ActionStatusFailed,
		ActionStatusStopping,
		ActionStatusStopped,
	}
}

const (
	// AdditionalS3DataSourceDataTypeS3object is a AdditionalS3DataSourceDataType enum value
	AdditionalS3DataSourceDataTypeS3object = "S3Object"

	// AdditionalS3DataSourceDataTypeS3prefix is a AdditionalS3DataSourceDataType enum value
	AdditionalS3DataSourceDataTypeS3prefix = "S3Prefix"
)

// AdditionalS3DataSourceDataType_Values returns all elements of the AdditionalS3DataSourceDataType enum
func AdditionalS3DataSourceDataType_Values() []string {
	return []string{
		AdditionalS3DataSourceDataTypeS3object,
		AdditionalS3DataSourceDataTypeS3prefix,
	}
}

const (
	// AggregationTransformationValueSum is a AggregationTransformationValue enum value
	AggregationTransformationValueSum = "sum"

	// AggregationTransformationValueAvg is a AggregationTransformationValue enum value
	AggregationTransformationValueAvg = "avg"

	// AggregationTransformationValueFirst is a AggregationTransformationValue enum value
	AggregationTransformationValueFirst = "first"

	// AggregationTransformationValueMin is a AggregationTransformationValue enum value
	AggregationTransformationValueMin = "min"

	// AggregationTransformationValueMax is a AggregationTransformationValue enum value
	AggregationTransformationValueMax = "max"
)

// AggregationTransformationValue_Values returns all elements of the AggregationTransformationValue enum
func AggregationTransformationValue_Values() []string {
	return []string{
		AggregationTransformationValueSum,
		AggregationTransformationValueAvg,
		AggregationTransformationValueFirst,
		AggregationTransformationValueMin,
		AggregationTransformationValueMax,
	}
}

const (
	// AlgorithmSortByName is a AlgorithmSortBy enum value
	AlgorithmSortByName = "Name"

	// AlgorithmSortByCreationTime is a AlgorithmSortBy enum value
	AlgorithmSortByCreationTime = "CreationTime"
)

// AlgorithmSortBy_Values returns all elements of the AlgorithmSortBy enum
func AlgorithmSortBy_Values() []string {
	return []string{
		AlgorithmSortByName,
		AlgorithmSortByCreationTime,
	}
}

const (
	// AlgorithmStatusPending is a AlgorithmStatus enum value
	AlgorithmStatusPending = "Pending"

	// AlgorithmStatusInProgress is a AlgorithmStatus enum value
	AlgorithmStatusInProgress = "InProgress"

	// AlgorithmStatusCompleted is a AlgorithmStatus enum value
	AlgorithmStatusCompleted = "Completed"

	// AlgorithmStatusFailed is a AlgorithmStatus enum value
	AlgorithmStatusFailed = "Failed"

	// AlgorithmStatusDeleting is a AlgorithmStatus enum value
	AlgorithmStatusDeleting = "Deleting"
)

// AlgorithmStatus_Values returns all elements of the AlgorithmStatus enum
func AlgorithmStatus_Values() []string {
	return []string{
		AlgorithmStatusPending,
		AlgorithmStatusInProgress,
		AlgorithmStatusCompleted,
		AlgorithmStatusFailed,
		AlgorithmStatusDeleting,
	}
}

const (
	// AppImageConfigSortKeyCreationTime is a AppImageConfigSortKey enum value
	AppImageConfigSortKeyCreationTime = "CreationTime"

	// AppImageConfigSortKeyLastModifiedTime is a AppImageConfigSortKey enum value
	AppImageConfigSortKeyLastModifiedTime = "LastModifiedTime"

	// AppImageConfigSortKeyName is a AppImageConfigSortKey enum value
	AppImageConfigSortKeyName = "Name"
)

// AppImageConfigSortKey_Values returns all elements of the AppImageConfigSortKey enum
func AppImageConfigSortKey_Values() []string {
	return []string{
		AppImageConfigSortKeyCreationTime,
		AppImageConfigSortKeyLastModifiedTime,
		AppImageConfigSortKeyName,
	}
}

const (
	// AppInstanceTypeSystem is a AppInstanceType enum value
	AppInstanceTypeSystem = "system"

	// AppInstanceTypeMlT3Micro is a AppInstanceType enum value
	AppInstanceTypeMlT3Micro = "ml.t3.micro"

	// AppInstanceTypeMlT3Small is a AppInstanceType enum value
	AppInstanceTypeMlT3Small = "ml.t3.small"

	// AppInstanceTypeMlT3Medium is a AppInstanceType enum value
	AppInstanceTypeMlT3Medium = "ml.t3.medium"

	// AppInstanceTypeMlT3Large is a AppInstanceType enum value
	AppInstanceTypeMlT3Large = "ml.t3.large"

	// AppInstanceTypeMlT3Xlarge is a AppInstanceType enum value
	AppInstanceTypeMlT3Xlarge = "ml.t3.xlarge"

	// AppInstanceTypeMlT32xlarge is a AppInstanceType enum value
	AppInstanceTypeMlT32xlarge = "ml.t3.2xlarge"

	// AppInstanceTypeMlM5Large is a AppInstanceType enum value
	AppInstanceTypeMlM5Large = "ml.m5.large"

	// AppInstanceTypeMlM5Xlarge is a AppInstanceType enum value
	AppInstanceTypeMlM5Xlarge = "ml.m5.xlarge"

	// AppInstanceTypeMlM52xlarge is a AppInstanceType enum value
	AppInstanceTypeMlM52xlarge = "ml.m5.2xlarge"

	// AppInstanceTypeMlM54xlarge is a AppInstanceType enum value
	AppInstanceTypeMlM54xlarge = "ml.m5.4xlarge"

	// AppInstanceTypeMlM58xlarge is a AppInstanceType enum value
	AppInstanceTypeMlM58xlarge = "ml.m5.8xlarge"

	// AppInstanceTypeMlM512xlarge is a AppInstanceType enum value
	AppInstanceTypeMlM512xlarge = "ml.m5.12xlarge"

	// AppInstanceTypeMlM516xlarge is a AppInstanceType enum value
	AppInstanceTypeMlM516xlarge = "ml.m5.16xlarge"

	// AppInstanceTypeMlM524xlarge is a AppInstanceType enum value
	AppInstanceTypeMlM524xlarge = "ml.m5.24xlarge"

	// AppInstanceTypeMlM5dLarge is a AppInstanceType enum value
	AppInstanceTypeMlM5dLarge = "ml.m5d.large"

	// AppInstanceTypeMlM5dXlarge is a AppInstanceType enum value
	AppInstanceTypeMlM5dXlarge = "ml.m5d.xlarge"

	// AppInstanceTypeMlM5d2xlarge is a AppInstanceType enum value
	AppInstanceTypeMlM5d2xlarge = "ml.m5d.2xlarge"

	// AppInstanceTypeMlM5d4xlarge is a AppInstanceType enum value
	AppInstanceTypeMlM5d4xlarge = "ml.m5d.4xlarge"

	// AppInstanceTypeMlM5d8xlarge is a AppInstanceType enum value
	AppInstanceTypeMlM5d8xlarge = "ml.m5d.8xlarge"

	// AppInstanceTypeMlM5d12xlarge is a AppInstanceType enum value
	AppInstanceTypeMlM5d12xlarge = "ml.m5d.12xlarge"

	// AppInstanceTypeMlM5d16xlarge is a AppInstanceType enum value
	AppInstanceTypeMlM5d16xlarge = "ml.m5d.16xlarge"

	// AppInstanceTypeMlM5d24xlarge is a AppInstanceType enum value
	AppInstanceTypeMlM5d24xlarge = "ml.m5d.24xlarge"

	// AppInstanceTypeMlC5Large is a AppInstanceType enum value
	AppInstanceTypeMlC5Large = "ml.c5.large"

	// AppInstanceTypeMlC5Xlarge is a AppInstanceType enum value
	AppInstanceTypeMlC5Xlarge = "ml.c5.xlarge"

	// AppInstanceTypeMlC52xlarge is a AppInstanceType enum value
	AppInstanceTypeMlC52xlarge = "ml.c5.2xlarge"

	// AppInstanceTypeMlC54xlarge is a AppInstanceType enum value
	AppInstanceTypeMlC54xlarge = "ml.c5.4xlarge"

	// AppInstanceTypeMlC59xlarge is a AppInstanceType enum value
	AppInstanceTypeMlC59xlarge = "ml.c5.9xlarge"

	// AppInstanceTypeMlC512xlarge is a AppInstanceType enum value
	AppInstanceTypeMlC512xlarge = "ml.c5.12xlarge"

	// AppInstanceTypeMlC518xlarge is a AppInstanceType enum value
	AppInstanceTypeMlC518xlarge = "ml.c5.18xlarge"

	// AppInstanceTypeMlC524xlarge is a AppInstanceType enum value
	AppInstanceTypeMlC524xlarge = "ml.c5.24xlarge"

	// AppInstanceTypeMlP32xlarge is a AppInstanceType enum value
	AppInstanceTypeMlP32xlarge = "ml.p3.2xlarge"

	// AppInstanceTypeMlP38xlarge is a AppInstanceType enum value
	AppInstanceTypeMlP38xlarge = "ml.p3.8xlarge"

	// AppInstanceTypeMlP316xlarge is a AppInstanceType enum value
	AppInstanceTypeMlP316xlarge = "ml.p3.16xlarge"

	// AppInstanceTypeMlP3dn24xlarge is a AppInstanceType enum value
	AppInstanceTypeMlP3dn24xlarge = "ml.p3dn.24xlarge"

	// AppInstanceTypeMlG4dnXlarge is a AppInstanceType enum value
	AppInstanceTypeMlG4dnXlarge = "ml.g4dn.xlarge"

	// AppInstanceTypeMlG4dn2xlarge is a AppInstanceType enum value
	AppInstanceTypeMlG4dn2xlarge = "ml.g4dn.2xlarge"

	// AppInstanceTypeMlG4dn4xlarge is a AppInstanceType enum value
	AppInstanceTypeMlG4dn4xlarge = "ml.g4dn.4xlarge"

	// AppInstanceTypeMlG4dn8xlarge is a AppInstanceType enum value
	AppInstanceTypeMlG4dn8xlarge = "ml.g4dn.8xlarge"

	// AppInstanceTypeMlG4dn12xlarge is a AppInstanceType enum value
	AppInstanceTypeMlG4dn12xlarge = "ml.g4dn.12xlarge"

	// AppInstanceTypeMlG4dn16xlarge is a AppInstanceType enum value
	AppInstanceTypeMlG4dn16xlarge = "ml.g4dn.16xlarge"

	// AppInstanceTypeMlR5Large is a AppInstanceType enum value
	AppInstanceTypeMlR5Large = "ml.r5.large"

	// AppInstanceTypeMlR5Xlarge is a AppInstanceType enum value
	AppInstanceTypeMlR5Xlarge = "ml.r5.xlarge"

	// AppInstanceTypeMlR52xlarge is a AppInstanceType enum value
	AppInstanceTypeMlR52xlarge = "ml.r5.2xlarge"

	// AppInstanceTypeMlR54xlarge is a AppInstanceType enum value
	AppInstanceTypeMlR54xlarge = "ml.r5.4xlarge"

	// AppInstanceTypeMlR58xlarge is a AppInstanceType enum value
	AppInstanceTypeMlR58xlarge = "ml.r5.8xlarge"

	// AppInstanceTypeMlR512xlarge is a AppInstanceType enum value
	AppInstanceTypeMlR512xlarge = "ml.r5.12xlarge"

	// AppInstanceTypeMlR516xlarge is a AppInstanceType enum value
	AppInstanceTypeMlR516xlarge = "ml.r5.16xlarge"

	// AppInstanceTypeMlR524xlarge is a AppInstanceType enum value
	AppInstanceTypeMlR524xlarge = "ml.r5.24xlarge"

	// AppInstanceTypeMlG5Xlarge is a AppInstanceType enum value
	AppInstanceTypeMlG5Xlarge = "ml.g5.xlarge"

	// AppInstanceTypeMlG52xlarge is a AppInstanceType enum value
	AppInstanceTypeMlG52xlarge = "ml.g5.2xlarge"

	// AppInstanceTypeMlG54xlarge is a AppInstanceType enum value
	AppInstanceTypeMlG54xlarge = "ml.g5.4xlarge"

	// AppInstanceTypeMlG58xlarge is a AppInstanceType enum value
	AppInstanceTypeMlG58xlarge = "ml.g5.8xlarge"

	// AppInstanceTypeMlG516xlarge is a AppInstanceType enum value
	AppInstanceTypeMlG516xlarge = "ml.g5.16xlarge"

	// AppInstanceTypeMlG512xlarge is a AppInstanceType enum value
	AppInstanceTypeMlG512xlarge = "ml.g5.12xlarge"

	// AppInstanceTypeMlG524xlarge is a AppInstanceType enum value
	AppInstanceTypeMlG524xlarge = "ml.g5.24xlarge"

	// AppInstanceTypeMlG548xlarge is a AppInstanceType enum value
	AppInstanceTypeMlG548xlarge = "ml.g5.48xlarge"

	// AppInstanceTypeMlGeospatialInteractive is a AppInstanceType enum value
	AppInstanceTypeMlGeospatialInteractive = "ml.geospatial.interactive"

	// AppInstanceTypeMlP4d24xlarge is a AppInstanceType enum value
	AppInstanceTypeMlP4d24xlarge = "ml.p4d.24xlarge"

	// AppInstanceTypeMlP4de24xlarge is a AppInstanceType enum value
	AppInstanceTypeMlP4de24xlarge = "ml.p4de.24xlarge"

	// AppInstanceTypeMlTrn12xlarge is a AppInstanceType enum value
	AppInstanceTypeMlTrn12xlarge = "ml.trn1.2xlarge"

	// AppInstanceTypeMlTrn132xlarge is a AppInstanceType enum value
	AppInstanceTypeMlTrn132xlarge = "ml.trn1.32xlarge"

	// AppInstanceTypeMlTrn1n32xlarge is a AppInstanceType enum value
	AppInstanceTypeMlTrn1n32xlarge = "ml.trn1n.32xlarge"
)

// AppInstanceType_Values returns all elements of the AppInstanceType enum
func AppInstanceType_Values() []string {
	return []string{
		AppInstanceTypeSystem,
		AppInstanceTypeMlT3Micro,
		AppInstanceTypeMlT3Small,
		AppInstanceTypeMlT3Medium,
		AppInstanceTypeMlT3Large,
		AppInstanceTypeMlT3Xlarge,
		AppInstanceTypeMlT32xlarge,
		AppInstanceTypeMlM5Large,
		AppInstanceTypeMlM5Xlarge,
		AppInstanceTypeMlM52xlarge,
		AppInstanceTypeMlM54xlarge,
		AppInstanceTypeMlM58xlarge,
		AppInstanceTypeMlM512xlarge,
		AppInstanceTypeMlM516xlarge,
		AppInstanceTypeMlM524xlarge,
		AppInstanceTypeMlM5dLarge,
		AppInstanceTypeMlM5dXlarge,
		AppInstanceTypeMlM5d2xlarge,
		AppInstanceTypeMlM5d4xlarge,
		AppInstanceTypeMlM5d8xlarge,
		AppInstanceTypeMlM5d12xlarge,
		AppInstanceTypeMlM5d16xlarge,
		AppInstanceTypeMlM5d24xlarge,
		AppInstanceTypeMlC5Large,
		AppInstanceTypeMlC5Xlarge,
		AppInstanceTypeMlC52xlarge,
		AppInstanceTypeMlC54xlarge,
		AppInstanceTypeMlC59xlarge,
		AppInstanceTypeMlC512xlarge,
		AppInstanceTypeMlC518xlarge,
		AppInstanceTypeMlC524xlarge,
		AppInstanceTypeMlP32xlarge,
		AppInstanceTypeMlP38xlarge,
		AppInstanceTypeMlP316xlarge,
		AppInstanceTypeMlP3dn24xlarge,
		AppInstanceTypeMlG4dnXlarge,
		AppInstanceTypeMlG4dn2xlarge,
		AppInstanceTypeMlG4dn4xlarge,
		AppInstanceTypeMlG4dn8xlarge,
		AppInstanceTypeMlG4dn12xlarge,
		AppInstanceTypeMlG4dn16xlarge,
		AppInstanceTypeMlR5Large,
		AppInstanceTypeMlR5Xlarge,
		AppInstanceTypeMlR52xlarge,
		AppInstanceTypeMlR54xlarge,
		AppInstanceTypeMlR58xlarge,
		AppInstanceTypeMlR512xlarge,
		AppInstanceTypeMlR516xlarge,
		AppInstanceTypeMlR524xlarge,
		AppInstanceTypeMlG5Xlarge,
		AppInstanceTypeMlG52xlarge,
		AppInstanceTypeMlG54xlarge,
		AppInstanceTypeMlG58xlarge,
		AppInstanceTypeMlG516xlarge,
		AppInstanceTypeMlG512xlarge,
		AppInstanceTypeMlG524xlarge,
		AppInstanceTypeMlG548xlarge,
		AppInstanceTypeMlGeospatialInteractive,
		AppInstanceTypeMlP4d24xlarge,
		AppInstanceTypeMlP4de24xlarge,
		AppInstanceTypeMlTrn12xlarge,
		AppInstanceTypeMlTrn132xlarge,
		AppInstanceTypeMlTrn1n32xlarge,
	}
}

const (
	// AppNetworkAccessTypePublicInternetOnly is a AppNetworkAccessType enum value
	AppNetworkAccessTypePublicInternetOnly = "PublicInternetOnly"

	// AppNetworkAccessTypeVpcOnly is a AppNetworkAccessType enum value
	AppNetworkAccessTypeVpcOnly = "VpcOnly"
)

// AppNetworkAccessType_Values returns all elements of the AppNetworkAccessType enum
func AppNetworkAccessType_Values() []string {
	return []string{
		AppNetworkAccessTypePublicInternetOnly,
		AppNetworkAccessTypeVpcOnly,
	}
}

const (
	// AppSecurityGroupManagementService is a AppSecurityGroupManagement enum value
	AppSecurityGroupManagementService = "Service"

	// AppSecurityGroupManagementCustomer is a AppSecurityGroupManagement enum value
	AppSecurityGroupManagementCustomer = "Customer"
)

// AppSecurityGroupManagement_Values returns all elements of the AppSecurityGroupManagement enum
func AppSecurityGroupManagement_Values() []string {
	return []string{
		AppSecurityGroupManagementService,
		AppSecurityGroupManagementCustomer,
	}
}

const (
	// AppSortKeyCreationTime is a AppSortKey enum value
	AppSortKeyCreationTime = "CreationTime"
)

// AppSortKey_Values returns all elements of the AppSortKey enum
func AppSortKey_Values() []string {
	return []string{
		AppSortKeyCreationTime,
	}
}

const (
	// AppStatusDeleted is a AppStatus enum value
	AppStatusDeleted = "Deleted"

	// AppStatusDeleting is a AppStatus enum value
	AppStatusDeleting = "Deleting"

	// AppStatusFailed is a AppStatus enum value
	AppStatusFailed = "Failed"

	// AppStatusInService is a AppStatus enum value
	AppStatusInService = "InService"

	// AppStatusPending is a AppStatus enum value
	AppStatusPending = "Pending"
)

// AppStatus_Values returns all elements of the AppStatus enum
func AppStatus_Values() []string {
	return []string{
		AppStatusDeleted,
		AppStatusDeleting,
		AppStatusFailed,
		AppStatusInService,
		AppStatusPending,
	}
}

const (
	// AppTypeJupyterServer is a AppType enum value
	AppTypeJupyterServer = "JupyterServer"

	// AppTypeKernelGateway is a AppType enum value
	AppTypeKernelGateway = "KernelGateway"

	// AppTypeDetailedProfiler is a AppType enum value
	AppTypeDetailedProfiler = "DetailedProfiler"

	// AppTypeTensorBoard is a AppType enum value
	AppTypeTensorBoard = "TensorBoard"

	// AppTypeCodeEditor is a AppType enum value
	AppTypeCodeEditor = "CodeEditor"

	// AppTypeJupyterLab is a AppType enum value
	AppTypeJupyterLab = "JupyterLab"

	// AppTypeRstudioServerPro is a AppType enum value
	AppTypeRstudioServerPro = "RStudioServerPro"

	// AppTypeRsessionGateway is a AppType enum value
	AppTypeRsessionGateway = "RSessionGateway"

	// AppTypeCanvas is a AppType enum value
	AppTypeCanvas = "Canvas"
)

// AppType_Values returns all elements of the AppType enum
func AppType_Values() []string {
	return []string{
		AppTypeJupyterServer,
		AppTypeKernelGateway,
		AppTypeDetailedProfiler,
		AppTypeTensorBoard,
		AppTypeCodeEditor,
		AppTypeJupyterLab,
		AppTypeRstudioServerPro,
		AppTypeRsessionGateway,
		AppTypeCanvas,
	}
}

const (
	// ArtifactSourceIdTypeMd5hash is a ArtifactSourceIdType enum value
	ArtifactSourceIdTypeMd5hash = "MD5Hash"

	// ArtifactSourceIdTypeS3etag is a ArtifactSourceIdType enum value
	ArtifactSourceIdTypeS3etag = "S3ETag"

	// ArtifactSourceIdTypeS3version is a ArtifactSourceIdType enum value
	ArtifactSourceIdTypeS3version = "S3Version"

	// ArtifactSourceIdTypeCustom is a ArtifactSourceIdType enum value
	ArtifactSourceIdTypeCustom = "Custom"
)

// ArtifactSourceIdType_Values returns all elements of the ArtifactSourceIdType enum
func ArtifactSourceIdType_Values() []string {
	return []string{
		ArtifactSourceIdTypeMd5hash,
		ArtifactSourceIdTypeS3etag,
		ArtifactSourceIdTypeS3version,
		ArtifactSourceIdTypeCustom,
	}
}

const (
	// AssemblyTypeNone is a AssemblyType enum value
	AssemblyTypeNone = "None"

	// AssemblyTypeLine is a AssemblyType enum value
	AssemblyTypeLine = "Line"
)

// AssemblyType_Values returns all elements of the AssemblyType enum
func AssemblyType_Values() []string {
	return []string{
		AssemblyTypeNone,
		AssemblyTypeLine,
	}
}

const (
	// AssociationEdgeTypeContributedTo is a AssociationEdgeType enum value
	AssociationEdgeTypeContributedTo = "ContributedTo"

	// AssociationEdgeTypeAssociatedWith is a AssociationEdgeType enum value
	AssociationEdgeTypeAssociatedWith = "AssociatedWith"

	// AssociationEdgeTypeDerivedFrom is a AssociationEdgeType enum value
	AssociationEdgeTypeDerivedFrom = "DerivedFrom"

	// AssociationEdgeTypeProduced is a AssociationEdgeType enum value
	AssociationEdgeTypeProduced = "Produced"

	// AssociationEdgeTypeSameAs is a AssociationEdgeType enum value
	AssociationEdgeTypeSameAs = "SameAs"
)

// AssociationEdgeType_Values returns all elements of the AssociationEdgeType enum
func AssociationEdgeType_Values() []string {
	return []string{
		AssociationEdgeTypeContributedTo,
		AssociationEdgeTypeAssociatedWith,
		AssociationEdgeTypeDerivedFrom,
		AssociationEdgeTypeProduced,
		AssociationEdgeTypeSameAs,
	}
}

const (
	// AsyncNotificationTopicTypesSuccessNotificationTopic is a AsyncNotificationTopicTypes enum value
	AsyncNotificationTopicTypesSuccessNotificationTopic = "SUCCESS_NOTIFICATION_TOPIC"

	// AsyncNotificationTopicTypesErrorNotificationTopic is a AsyncNotificationTopicTypes enum value
	AsyncNotificationTopicTypesErrorNotificationTopic = "ERROR_NOTIFICATION_TOPIC"
)

// AsyncNotificationTopicTypes_Values returns all elements of the AsyncNotificationTopicTypes enum
func AsyncNotificationTopicTypes_Values() []string {
	return []string{
		AsyncNotificationTopicTypesSuccessNotificationTopic,
		AsyncNotificationTopicTypesErrorNotificationTopic,
	}
}

// The compression used for Athena query results.
const (
	// AthenaResultCompressionTypeGzip is a AthenaResultCompressionType enum value
	AthenaResultCompressionTypeGzip = "GZIP"

	// AthenaResultCompressionTypeSnappy is a AthenaResultCompressionType enum value
	AthenaResultCompressionTypeSnappy = "SNAPPY"

	// AthenaResultCompressionTypeZlib is a AthenaResultCompressionType enum value
	AthenaResultCompressionTypeZlib = "ZLIB"
)

// AthenaResultCompressionType_Values returns all elements of the AthenaResultCompressionType enum
func AthenaResultCompressionType_Values() []string {
	return []string{
		AthenaResultCompressionTypeGzip,
		AthenaResultCompressionTypeSnappy,
		AthenaResultCompressionTypeZlib,
	}
}

// The data storage format for Athena query results.
const (
	// AthenaResultFormatParquet is a AthenaResultFormat enum value
	AthenaResultFormatParquet = "PARQUET"

	// AthenaResultFormatOrc is a AthenaResultFormat enum value
	AthenaResultFormatOrc = "ORC"

	// AthenaResultFormatAvro is a AthenaResultFormat enum value
	AthenaResultFormatAvro = "AVRO"

	// AthenaResultFormatJson is a AthenaResultFormat enum value
	AthenaResultFormatJson = "JSON"

	// AthenaResultFormatTextfile is a AthenaResultFormat enum value
	AthenaResultFormatTextfile = "TEXTFILE"
)

// AthenaResultFormat_Values returns all elements of the AthenaResultFormat enum
func AthenaResultFormat_Values() []string {
	return []string{
		AthenaResultFormatParquet,
		AthenaResultFormatOrc,
		AthenaResultFormatAvro,
		AthenaResultFormatJson,
		AthenaResultFormatTextfile,
	}
}

const (
	// AuthModeSso is a AuthMode enum value
	AuthModeSso = "SSO"

	// AuthModeIam is a AuthMode enum value
	AuthModeIam = "IAM"
)

// AuthMode_Values returns all elements of the AuthMode enum
func AuthMode_Values() []string {
	return []string{
		AuthModeSso,
		AuthModeIam,
	}
}

const (
	// AutoMLAlgorithmXgboost is a AutoMLAlgorithm enum value
	AutoMLAlgorithmXgboost = "xgboost"

	// AutoMLAlgorithmLinearLearner is a AutoMLAlgorithm enum value
	AutoMLAlgorithmLinearLearner = "linear-learner"

	// AutoMLAlgorithmMlp is a AutoMLAlgorithm enum value
	AutoMLAlgorithmMlp = "mlp"

	// AutoMLAlgorithmLightgbm is a AutoMLAlgorithm enum value
	AutoMLAlgorithmLightgbm = "lightgbm"

	// AutoMLAlgorithmCatboost is a AutoMLAlgorithm enum value
	AutoMLAlgorithmCatboost = "catboost"

	// AutoMLAlgorithmRandomforest is a AutoMLAlgorithm enum value
	AutoMLAlgorithmRandomforest = "randomforest"

	// AutoMLAlgorithmExtraTrees is a AutoMLAlgorithm enum value
	AutoMLAlgorithmExtraTrees = "extra-trees"

	// AutoMLAlgorithmNnTorch is a AutoMLAlgorithm enum value
	AutoMLAlgorithmNnTorch = "nn-torch"

	// AutoMLAlgorithmFastai is a AutoMLAlgorithm enum value
	AutoMLAlgorithmFastai = "fastai"
)

// AutoMLAlgorithm_Values returns all elements of the AutoMLAlgorithm enum
func AutoMLAlgorithm_Values() []string {
	return []string{
		AutoMLAlgorithmXgboost,
		AutoMLAlgorithmLinearLearner,
		AutoMLAlgorithmMlp,
		AutoMLAlgorithmLightgbm,
		AutoMLAlgorithmCatboost,
		AutoMLAlgorithmRandomforest,
		AutoMLAlgorithmExtraTrees,
		AutoMLAlgorithmNnTorch,
		AutoMLAlgorithmFastai,
	}
}

const (
	// AutoMLChannelTypeTraining is a AutoMLChannelType enum value
	AutoMLChannelTypeTraining = "training"

	// AutoMLChannelTypeValidation is a AutoMLChannelType enum value
	AutoMLChannelTypeValidation = "validation"
)

// AutoMLChannelType_Values returns all elements of the AutoMLChannelType enum
func AutoMLChannelType_Values() []string {
	return []string{
		AutoMLChannelTypeTraining,
		AutoMLChannelTypeValidation,
	}
}

const (
	// AutoMLJobObjectiveTypeMaximize is a AutoMLJobObjectiveType enum value
	AutoMLJobObjectiveTypeMaximize = "Maximize"

	// AutoMLJobObjectiveTypeMinimize is a AutoMLJobObjectiveType enum value
	AutoMLJobObjectiveTypeMinimize = "Minimize"
)

// AutoMLJobObjectiveType_Values returns all elements of the AutoMLJobObjectiveType enum
func AutoMLJobObjectiveType_Values() []string {
	return []string{
		AutoMLJobObjectiveTypeMaximize,
		AutoMLJobObjectiveTypeMinimize,
	}
}

const (
	// AutoMLJobSecondaryStatusStarting is a AutoMLJobSecondaryStatus enum value
	AutoMLJobSecondaryStatusStarting = "Starting"

	// AutoMLJobSecondaryStatusMaxCandidatesReached is a AutoMLJobSecondaryStatus enum value
	AutoMLJobSecondaryStatusMaxCandidatesReached = "MaxCandidatesReached"

	// AutoMLJobSecondaryStatusFailed is a AutoMLJobSecondaryStatus enum value
	AutoMLJobSecondaryStatusFailed = "Failed"

	// AutoMLJobSecondaryStatusStopped is a AutoMLJobSecondaryStatus enum value
	AutoMLJobSecondaryStatusStopped = "Stopped"

	// AutoMLJobSecondaryStatusMaxAutoMljobRuntimeReached is a AutoMLJobSecondaryStatus enum value
	AutoMLJobSecondaryStatusMaxAutoMljobRuntimeReached = "MaxAutoMLJobRuntimeReached"

	// AutoMLJobSecondaryStatusStopping is a AutoMLJobSecondaryStatus enum value
	AutoMLJobSecondaryStatusStopping = "Stopping"

	// AutoMLJobSecondaryStatusCandidateDefinitionsGenerated is a AutoMLJobSecondaryStatus enum value
	AutoMLJobSecondaryStatusCandidateDefinitionsGenerated = "CandidateDefinitionsGenerated"

	// AutoMLJobSecondaryStatusCompleted is a AutoMLJobSecondaryStatus enum value
	AutoMLJobSecondaryStatusCompleted = "Completed"

	// AutoMLJobSecondaryStatusExplainabilityError is a AutoMLJobSecondaryStatus enum value
	AutoMLJobSecondaryStatusExplainabilityError = "ExplainabilityError"

	// AutoMLJobSecondaryStatusDeployingModel is a AutoMLJobSecondaryStatus enum value
	AutoMLJobSecondaryStatusDeployingModel = "DeployingModel"

	// AutoMLJobSecondaryStatusModelDeploymentError is a AutoMLJobSecondaryStatus enum value
	AutoMLJobSecondaryStatusModelDeploymentError = "ModelDeploymentError"

	// AutoMLJobSecondaryStatusGeneratingModelInsightsReport is a AutoMLJobSecondaryStatus enum value
	AutoMLJobSecondaryStatusGeneratingModelInsightsReport = "GeneratingModelInsightsReport"

	// AutoMLJobSecondaryStatusModelInsightsError is a AutoMLJobSecondaryStatus enum value
	AutoMLJobSecondaryStatusModelInsightsError = "ModelInsightsError"

	// AutoMLJobSecondaryStatusAnalyzingData is a AutoMLJobSecondaryStatus enum value
	AutoMLJobSecondaryStatusAnalyzingData = "AnalyzingData"

	// AutoMLJobSecondaryStatusFeatureEngineering is a AutoMLJobSecondaryStatus enum value
	AutoMLJobSecondaryStatusFeatureEngineering = "FeatureEngineering"

	// AutoMLJobSecondaryStatusModelTuning is a AutoMLJobSecondaryStatus enum value
	AutoMLJobSecondaryStatusModelTuning = "ModelTuning"

	// AutoMLJobSecondaryStatusGeneratingExplainabilityReport is a AutoMLJobSecondaryStatus enum value
	AutoMLJobSecondaryStatusGeneratingExplainabilityReport = "GeneratingExplainabilityReport"

	// AutoMLJobSecondaryStatusTrainingModels is a AutoMLJobSecondaryStatus enum value
	AutoMLJobSecondaryStatusTrainingModels = "TrainingModels"

	// AutoMLJobSecondaryStatusPreTraining is a AutoMLJobSecondaryStatus enum value
	AutoMLJobSecondaryStatusPreTraining = "PreTraining"
)

// AutoMLJobSecondaryStatus_Values returns all elements of the AutoMLJobSecondaryStatus enum
func AutoMLJobSecondaryStatus_Values() []string {
	return []string{
		AutoMLJobSecondaryStatusStarting,
		AutoMLJobSecondaryStatusMaxCandidatesReached,
		AutoMLJobSecondaryStatusFailed,
		AutoMLJobSecondaryStatusStopped,
		AutoMLJobSecondaryStatusMaxAutoMljobRuntimeReached,
		AutoMLJobSecondaryStatusStopping,
		AutoMLJobSecondaryStatusCandidateDefinitionsGenerated,
		AutoMLJobSecondaryStatusCompleted,
		AutoMLJobSecondaryStatusExplainabilityError,
		AutoMLJobSecondaryStatusDeployingModel,
		AutoMLJobSecondaryStatusModelDeploymentError,
		AutoMLJobSecondaryStatusGeneratingModelInsightsReport,
		AutoMLJobSecondaryStatusModelInsightsError,
		AutoMLJobSecondaryStatusAnalyzingData,
		AutoMLJobSecondaryStatusFeatureEngineering,
		AutoMLJobSecondaryStatusModelTuning,
		AutoMLJobSecondaryStatusGeneratingExplainabilityReport,
		AutoMLJobSecondaryStatusTrainingModels,
		AutoMLJobSecondaryStatusPreTraining,
	}
}

const (
	// AutoMLJobStatusCompleted is a AutoMLJobStatus enum value
	AutoMLJobStatusCompleted = "Completed"

	// AutoMLJobStatusInProgress is a AutoMLJobStatus enum value
	AutoMLJobStatusInProgress = "InProgress"

	// AutoMLJobStatusFailed is a AutoMLJobStatus enum value
	AutoMLJobStatusFailed = "Failed"

	// AutoMLJobStatusStopped is a AutoMLJobStatus enum value
	AutoMLJobStatusStopped = "Stopped"

	// AutoMLJobStatusStopping is a AutoMLJobStatus enum value
	AutoMLJobStatusStopping = "Stopping"
)

// AutoMLJobStatus_Values returns all elements of the AutoMLJobStatus enum
func AutoMLJobStatus_Values() []string {
	return []string{
		AutoMLJobStatusCompleted,
		AutoMLJobStatusInProgress,
		AutoMLJobStatusFailed,
		AutoMLJobStatusStopped,
		AutoMLJobStatusStopping,
	}
}

const (
	// AutoMLMetricEnumAccuracy is a AutoMLMetricEnum enum value
	AutoMLMetricEnumAccuracy = "Accuracy"

	// AutoMLMetricEnumMse is a AutoMLMetricEnum enum value
	AutoMLMetricEnumMse = "MSE"

	// AutoMLMetricEnumF1 is a AutoMLMetricEnum enum value
	AutoMLMetricEnumF1 = "F1"

	// AutoMLMetricEnumF1macro is a AutoMLMetricEnum enum value
	AutoMLMetricEnumF1macro = "F1macro"

	// AutoMLMetricEnumAuc is a AutoMLMetricEnum enum value
	AutoMLMetricEnumAuc = "AUC"

	// AutoMLMetricEnumRmse is a AutoMLMetricEnum enum value
	AutoMLMetricEnumRmse = "RMSE"

	// AutoMLMetricEnumBalancedAccuracy is a AutoMLMetricEnum enum value
	AutoMLMetricEnumBalancedAccuracy = "BalancedAccuracy"

	// AutoMLMetricEnumR2 is a AutoMLMetricEnum enum value
	AutoMLMetricEnumR2 = "R2"

	// AutoMLMetricEnumRecall is a AutoMLMetricEnum enum value
	AutoMLMetricEnumRecall = "Recall"

	// AutoMLMetricEnumRecallMacro is a AutoMLMetricEnum enum value
	AutoMLMetricEnumRecallMacro = "RecallMacro"

	// AutoMLMetricEnumPrecision is a AutoMLMetricEnum enum value
	AutoMLMetricEnumPrecision = "Precision"

	// AutoMLMetricEnumPrecisionMacro is a AutoMLMetricEnum enum value
	AutoMLMetricEnumPrecisionMacro = "PrecisionMacro"

	// AutoMLMetricEnumMae is a AutoMLMetricEnum enum value
	AutoMLMetricEnumMae = "MAE"

	// AutoMLMetricEnumMape is a AutoMLMetricEnum enum value
	AutoMLMetricEnumMape = "MAPE"

	// AutoMLMetricEnumMase is a AutoMLMetricEnum enum value
	AutoMLMetricEnumMase = "MASE"

	// AutoMLMetricEnumWape is a AutoMLMetricEnum enum value
	AutoMLMetricEnumWape = "WAPE"

	// AutoMLMetricEnumAverageWeightedQuantileLoss is a AutoMLMetricEnum enum value
	AutoMLMetricEnumAverageWeightedQuantileLoss = "AverageWeightedQuantileLoss"
)

// AutoMLMetricEnum_Values returns all elements of the AutoMLMetricEnum enum
func AutoMLMetricEnum_Values() []string {
	return []string{
		AutoMLMetricEnumAccuracy,
		AutoMLMetricEnumMse,
		AutoMLMetricEnumF1,
		AutoMLMetricEnumF1macro,
		AutoMLMetricEnumAuc,
		AutoMLMetricEnumRmse,
		AutoMLMetricEnumBalancedAccuracy,
		AutoMLMetricEnumR2,
		AutoMLMetricEnumRecall,
		AutoMLMetricEnumRecallMacro,
		AutoMLMetricEnumPrecision,
		AutoMLMetricEnumPrecisionMacro,
		AutoMLMetricEnumMae,
		AutoMLMetricEnumMape,
		AutoMLMetricEnumMase,
		AutoMLMetricEnumWape,
		AutoMLMetricEnumAverageWeightedQuantileLoss,
	}
}

const (
	// AutoMLMetricExtendedEnumAccuracy is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumAccuracy = "Accuracy"

	// AutoMLMetricExtendedEnumMse is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumMse = "MSE"

	// AutoMLMetricExtendedEnumF1 is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumF1 = "F1"

	// AutoMLMetricExtendedEnumF1macro is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumF1macro = "F1macro"

	// AutoMLMetricExtendedEnumAuc is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumAuc = "AUC"

	// AutoMLMetricExtendedEnumRmse is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumRmse = "RMSE"

	// AutoMLMetricExtendedEnumMae is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumMae = "MAE"

	// AutoMLMetricExtendedEnumR2 is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumR2 = "R2"

	// AutoMLMetricExtendedEnumBalancedAccuracy is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumBalancedAccuracy = "BalancedAccuracy"

	// AutoMLMetricExtendedEnumPrecision is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumPrecision = "Precision"

	// AutoMLMetricExtendedEnumPrecisionMacro is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumPrecisionMacro = "PrecisionMacro"

	// AutoMLMetricExtendedEnumRecall is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumRecall = "Recall"

	// AutoMLMetricExtendedEnumRecallMacro is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumRecallMacro = "RecallMacro"

	// AutoMLMetricExtendedEnumLogLoss is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumLogLoss = "LogLoss"

	// AutoMLMetricExtendedEnumInferenceLatency is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumInferenceLatency = "InferenceLatency"

	// AutoMLMetricExtendedEnumMape is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumMape = "MAPE"

	// AutoMLMetricExtendedEnumMase is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumMase = "MASE"

	// AutoMLMetricExtendedEnumWape is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumWape = "WAPE"

	// AutoMLMetricExtendedEnumAverageWeightedQuantileLoss is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumAverageWeightedQuantileLoss = "AverageWeightedQuantileLoss"

	// AutoMLMetricExtendedEnumRouge1 is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumRouge1 = "Rouge1"

	// AutoMLMetricExtendedEnumRouge2 is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumRouge2 = "Rouge2"

	// AutoMLMetricExtendedEnumRougeL is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumRougeL = "RougeL"

	// AutoMLMetricExtendedEnumRougeLsum is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumRougeLsum = "RougeLSum"

	// AutoMLMetricExtendedEnumPerplexity is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumPerplexity = "Perplexity"

	// AutoMLMetricExtendedEnumValidationLoss is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumValidationLoss = "ValidationLoss"

	// AutoMLMetricExtendedEnumTrainingLoss is a AutoMLMetricExtendedEnum enum value
	AutoMLMetricExtendedEnumTrainingLoss = "TrainingLoss"
)

// AutoMLMetricExtendedEnum_Values returns all elements of the AutoMLMetricExtendedEnum enum
func AutoMLMetricExtendedEnum_Values() []string {
	return []string{
		AutoMLMetricExtendedEnumAccuracy,
		AutoMLMetricExtendedEnumMse,
		AutoMLMetricExtendedEnumF1,
		AutoMLMetricExtendedEnumF1macro,
		AutoMLMetricExtendedEnumAuc,
		AutoMLMetricExtendedEnumRmse,
		AutoMLMetricExtendedEnumMae,
		AutoMLMetricExtendedEnumR2,
		AutoMLMetricExtendedEnumBalancedAccuracy,
		AutoMLMetricExtendedEnumPrecision,
		AutoMLMetricExtendedEnumPrecisionMacro,
		AutoMLMetricExtendedEnumRecall,
		AutoMLMetricExtendedEnumRecallMacro,
		AutoMLMetricExtendedEnumLogLoss,
		AutoMLMetricExtendedEnumInferenceLatency,
		AutoMLMetricExtendedEnumMape,
		AutoMLMetricExtendedEnumMase,
		AutoMLMetricExtendedEnumWape,
		AutoMLMetricExtendedEnumAverageWeightedQuantileLoss,
		AutoMLMetricExtendedEnumRouge1,
		AutoMLMetricExtendedEnumRouge2,
		AutoMLMetricExtendedEnumRougeL,
		AutoMLMetricExtendedEnumRougeLsum,
		AutoMLMetricExtendedEnumPerplexity,
		AutoMLMetricExtendedEnumValidationLoss,
		AutoMLMetricExtendedEnumTrainingLoss,
	}
}

const (
	// AutoMLModeAuto is a AutoMLMode enum value
	AutoMLModeAuto = "AUTO"

	// AutoMLModeEnsembling is a AutoMLMode enum value
	AutoMLModeEnsembling = "ENSEMBLING"

	// AutoMLModeHyperparameterTuning is a AutoMLMode enum value
	AutoMLModeHyperparameterTuning = "HYPERPARAMETER_TUNING"
)

// AutoMLMode_Values returns all elements of the AutoMLMode enum
func AutoMLMode_Values() []string {
	return []string{
		AutoMLModeAuto,
		AutoMLModeEnsembling,
		AutoMLModeHyperparameterTuning,
	}
}

const (
	// AutoMLProblemTypeConfigNameImageClassification is a AutoMLProblemTypeConfigName enum value
	AutoMLProblemTypeConfigNameImageClassification = "ImageClassification"

	// AutoMLProblemTypeConfigNameTextClassification is a AutoMLProblemTypeConfigName enum value
	AutoMLProblemTypeConfigNameTextClassification = "TextClassification"

	// AutoMLProblemTypeConfigNameTimeSeriesForecasting is a AutoMLProblemTypeConfigName enum value
	AutoMLProblemTypeConfigNameTimeSeriesForecasting = "TimeSeriesForecasting"

	// AutoMLProblemTypeConfigNameTabular is a AutoMLProblemTypeConfigName enum value
	AutoMLProblemTypeConfigNameTabular = "Tabular"

	// AutoMLProblemTypeConfigNameTextGeneration is a AutoMLProblemTypeConfigName enum value
	AutoMLProblemTypeConfigNameTextGeneration = "TextGeneration"
)

// AutoMLProblemTypeConfigName_Values returns all elements of the AutoMLProblemTypeConfigName enum
func AutoMLProblemTypeConfigName_Values() []string {
	return []string{
		AutoMLProblemTypeConfigNameImageClassification,
		AutoMLProblemTypeConfigNameTextClassification,
		AutoMLProblemTypeConfigNameTimeSeriesForecasting,
		AutoMLProblemTypeConfigNameTabular,
		AutoMLProblemTypeConfigNameTextGeneration,
	}
}

const (
	// AutoMLProcessingUnitCpu is a AutoMLProcessingUnit enum value
	AutoMLProcessingUnitCpu = "CPU"

	// AutoMLProcessingUnitGpu is a AutoMLProcessingUnit enum value
	AutoMLProcessingUnitGpu = "GPU"
)

// AutoMLProcessingUnit_Values returns all elements of the AutoMLProcessingUnit enum
func AutoMLProcessingUnit_Values() []string {
	return []string{
		AutoMLProcessingUnitCpu,
		AutoMLProcessingUnitGpu,
	}
}

const (
	// AutoMLS3DataTypeManifestFile is a AutoMLS3DataType enum value
	AutoMLS3DataTypeManifestFile = "ManifestFile"

	// AutoMLS3DataTypeS3prefix is a AutoMLS3DataType enum value
	AutoMLS3DataTypeS3prefix = "S3Prefix"

	// AutoMLS3DataTypeAugmentedManifestFile is a AutoMLS3DataType enum value
	AutoMLS3DataTypeAugmentedManifestFile = "AugmentedManifestFile"
)

// AutoMLS3DataType_Values returns all elements of the AutoMLS3DataType enum
func AutoMLS3DataType_Values() []string {
	return []string{
		AutoMLS3DataTypeManifestFile,
		AutoMLS3DataTypeS3prefix,
		AutoMLS3DataTypeAugmentedManifestFile,
	}
}

const (
	// AutoMLSortByName is a AutoMLSortBy enum value
	AutoMLSortByName = "Name"

	// AutoMLSortByCreationTime is a AutoMLSortBy enum value
	AutoMLSortByCreationTime = "CreationTime"

	// AutoMLSortByStatus is a AutoMLSortBy enum value
	AutoMLSortByStatus = "Status"
)

// AutoMLSortBy_Values returns all elements of the AutoMLSortBy enum
func AutoMLSortBy_Values() []string {
	return []string{
		AutoMLSortByName,
		AutoMLSortByCreationTime,
		AutoMLSortByStatus,
	}
}

const (
	// AutoMLSortOrderAscending is a AutoMLSortOrder enum value
	AutoMLSortOrderAscending = "Ascending"

	// AutoMLSortOrderDescending is a AutoMLSortOrder enum value
	AutoMLSortOrderDescending = "Descending"
)

// AutoMLSortOrder_Values returns all elements of the AutoMLSortOrder enum
func AutoMLSortOrder_Values() []string {
	return []string{
		AutoMLSortOrderAscending,
		AutoMLSortOrderDescending,
	}
}

const (
	// AutotuneModeEnabled is a AutotuneMode enum value
	AutotuneModeEnabled = "Enabled"
)

// AutotuneMode_Values returns all elements of the AutotuneMode enum
func AutotuneMode_Values() []string {
	return []string{
		AutotuneModeEnabled,
	}
}

const (
	// AwsManagedHumanLoopRequestSourceAwsRekognitionDetectModerationLabelsImageV3 is a AwsManagedHumanLoopRequestSource enum value
	AwsManagedHumanLoopRequestSourceAwsRekognitionDetectModerationLabelsImageV3 = "AWS/Rekognition/DetectModerationLabels/Image/V3"

	// AwsManagedHumanLoopRequestSourceAwsTextractAnalyzeDocumentFormsV1 is a AwsManagedHumanLoopRequestSource enum value
	AwsManagedHumanLoopRequestSourceAwsTextractAnalyzeDocumentFormsV1 = "AWS/Textract/AnalyzeDocument/Forms/V1"

	// AwsManagedHumanLoopRequestSourceAwsTextractAnalyzeExpense is a AwsManagedHumanLoopRequestSource enum value
	AwsManagedHumanLoopRequestSourceAwsTextractAnalyzeExpense = "AWS/Textract/AnalyzeExpense"

	// AwsManagedHumanLoopRequestSourceAwsHandshakeVerifyIdentity is a AwsManagedHumanLoopRequestSource enum value
	AwsManagedHumanLoopRequestSourceAwsHandshakeVerifyIdentity = "AWS/Handshake/VerifyIdentity"

	// AwsManagedHumanLoopRequestSourceAwsBedrockModelEvaluation is a AwsManagedHumanLoopRequestSource enum value
	AwsManagedHumanLoopRequestSourceAwsBedrockModelEvaluation = "AWS/Bedrock/ModelEvaluation"
)

// AwsManagedHumanLoopRequestSource_Values returns all elements of the AwsManagedHumanLoopRequestSource enum
func AwsManagedHumanLoopRequestSource_Values() []string {
	return []string{
		AwsManagedHumanLoopRequestSourceAwsRekognitionDetectModerationLabelsImageV3,
		AwsManagedHumanLoopRequestSourceAwsTextractAnalyzeDocumentFormsV1,
		AwsManagedHumanLoopRequestSourceAwsTextractAnalyzeExpense,
		AwsManagedHumanLoopRequestSourceAwsHandshakeVerifyIdentity,
		AwsManagedHumanLoopRequestSourceAwsBedrockModelEvaluation,
	}
}

const (
	// BatchStrategyMultiRecord is a BatchStrategy enum value
	BatchStrategyMultiRecord = "MultiRecord"

	// BatchStrategySingleRecord is a BatchStrategy enum value
	BatchStrategySingleRecord = "SingleRecord"
)

// BatchStrategy_Values returns all elements of the BatchStrategy enum
func BatchStrategy_Values() []string {
	return []string{
		BatchStrategyMultiRecord,
		BatchStrategySingleRecord,
	}
}

const (
	// BooleanOperatorAnd is a BooleanOperator enum value
	BooleanOperatorAnd = "And"

	// BooleanOperatorOr is a BooleanOperator enum value
	BooleanOperatorOr = "Or"
)

// BooleanOperator_Values returns all elements of the BooleanOperator enum
func BooleanOperator_Values() []string {
	return []string{
		BooleanOperatorAnd,
		BooleanOperatorOr,
	}
}

const (
	// CandidateSortByCreationTime is a CandidateSortBy enum value
	CandidateSortByCreationTime = "CreationTime"

	// CandidateSortByStatus is a CandidateSortBy enum value
	CandidateSortByStatus = "Status"

	// CandidateSortByFinalObjectiveMetricValue is a CandidateSortBy enum value
	CandidateSortByFinalObjectiveMetricValue = "FinalObjectiveMetricValue"
)

// CandidateSortBy_Values returns all elements of the CandidateSortBy enum
func CandidateSortBy_Values() []string {
	return []string{
		CandidateSortByCreationTime,
		CandidateSortByStatus,
		CandidateSortByFinalObjectiveMetricValue,
	}
}

const (
	// CandidateStatusCompleted is a CandidateStatus enum value
	CandidateStatusCompleted = "Completed"

	// CandidateStatusInProgress is a CandidateStatus enum value
	CandidateStatusInProgress = "InProgress"

	// CandidateStatusFailed is a CandidateStatus enum value
	CandidateStatusFailed = "Failed"

	// CandidateStatusStopped is a CandidateStatus enum value
	CandidateStatusStopped = "Stopped"

	// CandidateStatusStopping is a CandidateStatus enum value
	CandidateStatusStopping = "Stopping"
)

// CandidateStatus_Values returns all elements of the CandidateStatus enum
func CandidateStatus_Values() []string {
	return []string{
		CandidateStatusCompleted,
		CandidateStatusInProgress,
		CandidateStatusFailed,
		CandidateStatusStopped,
		CandidateStatusStopping,
	}
}

const (
	// CandidateStepTypeAwsSageMakerTrainingJob is a CandidateStepType enum value
	CandidateStepTypeAwsSageMakerTrainingJob = "AWS::SageMaker::TrainingJob"

	// CandidateStepTypeAwsSageMakerTransformJob is a CandidateStepType enum value
	CandidateStepTypeAwsSageMakerTransformJob = "AWS::SageMaker::TransformJob"

	// CandidateStepTypeAwsSageMakerProcessingJob is a CandidateStepType enum value
	CandidateStepTypeAwsSageMakerProcessingJob = "AWS::SageMaker::ProcessingJob"
)

// CandidateStepType_Values returns all elements of the CandidateStepType enum
func CandidateStepType_Values() []string {
	return []string{
		CandidateStepTypeAwsSageMakerTrainingJob,
		CandidateStepTypeAwsSageMakerTransformJob,
		CandidateStepTypeAwsSageMakerProcessingJob,
	}
}

const (
	// CapacitySizeTypeInstanceCount is a CapacitySizeType enum value
	CapacitySizeTypeInstanceCount = "INSTANCE_COUNT"

	// CapacitySizeTypeCapacityPercent is a CapacitySizeType enum value
	CapacitySizeTypeCapacityPercent = "CAPACITY_PERCENT"
)

// CapacitySizeType_Values returns all elements of the CapacitySizeType enum
func CapacitySizeType_Values() []string {
	return []string{
		CapacitySizeTypeInstanceCount,
		CapacitySizeTypeCapacityPercent,
	}
}

const (
	// CaptureModeInput is a CaptureMode enum value
	CaptureModeInput = "Input"

	// CaptureModeOutput is a CaptureMode enum value
	CaptureModeOutput = "Output"

	// CaptureModeInputAndOutput is a CaptureMode enum value
	CaptureModeInputAndOutput = "InputAndOutput"
)

// CaptureMode_Values returns all elements of the CaptureMode enum
func CaptureMode_Values() []string {
	return []string{
		CaptureModeInput,
		CaptureModeOutput,
		CaptureModeInputAndOutput,
	}
}

const (
	// CaptureStatusStarted is a CaptureStatus enum value
	CaptureStatusStarted = "Started"

	// CaptureStatusStopped is a CaptureStatus enum value
	CaptureStatusStopped = "Stopped"
)

// CaptureStatus_Values returns all elements of the CaptureStatus enum
func CaptureStatus_Values() []string {
	return []string{
		CaptureStatusStarted,
		CaptureStatusStopped,
	}
}

const (
	// ClarifyFeatureTypeNumerical is a ClarifyFeatureType enum value
	ClarifyFeatureTypeNumerical = "numerical"

	// ClarifyFeatureTypeCategorical is a ClarifyFeatureType enum value
	ClarifyFeatureTypeCategorical = "categorical"

	// ClarifyFeatureTypeText is a ClarifyFeatureType enum value
	ClarifyFeatureTypeText = "text"
)

// ClarifyFeatureType_Values returns all elements of the ClarifyFeatureType enum
func ClarifyFeatureType_Values() []string {
	return []string{
		ClarifyFeatureTypeNumerical,
		ClarifyFeatureTypeCategorical,
		ClarifyFeatureTypeText,
	}
}

const (
	// ClarifyTextGranularityToken is a ClarifyTextGranularity enum value
	ClarifyTextGranularityToken = "token"

	// ClarifyTextGranularitySentence is a ClarifyTextGranularity enum value
	ClarifyTextGranularitySentence = "sentence"

	// ClarifyTextGranularityParagraph is a ClarifyTextGranularity enum value
	ClarifyTextGranularityParagraph = "paragraph"
)

// ClarifyTextGranularity_Values returns all elements of the ClarifyTextGranularity enum
func ClarifyTextGranularity_Values() []string {
	return []string{
		ClarifyTextGranularityToken,
		ClarifyTextGranularitySentence,
		ClarifyTextGranularityParagraph,
	}
}

const (
	// ClarifyTextLanguageAf is a ClarifyTextLanguage enum value
	ClarifyTextLanguageAf = "af"

	// ClarifyTextLanguageSq is a ClarifyTextLanguage enum value
	ClarifyTextLanguageSq = "sq"

	// ClarifyTextLanguageAr is a ClarifyTextLanguage enum value
	ClarifyTextLanguageAr = "ar"

	// ClarifyTextLanguageHy is a ClarifyTextLanguage enum value
	ClarifyTextLanguageHy = "hy"

	// ClarifyTextLanguageEu is a ClarifyTextLanguage enum value
	ClarifyTextLanguageEu = "eu"

	// ClarifyTextLanguageBn is a ClarifyTextLanguage enum value
	ClarifyTextLanguageBn = "bn"

	// ClarifyTextLanguageBg is a ClarifyTextLanguage enum value
	ClarifyTextLanguageBg = "bg"

	// ClarifyTextLanguageCa is a ClarifyTextLanguage enum value
	ClarifyTextLanguageCa = "ca"

	// ClarifyTextLanguageZh is a ClarifyTextLanguage enum value
	ClarifyTextLanguageZh = "zh"

	// ClarifyTextLanguageHr is a ClarifyTextLanguage enum value
	ClarifyTextLanguageHr = "hr"

	// ClarifyTextLanguageCs is a ClarifyTextLanguage enum value
	ClarifyTextLanguageCs = "cs"

	// ClarifyTextLanguageDa is a ClarifyTextLanguage enum value
	ClarifyTextLanguageDa = "da"

	// ClarifyTextLanguageNl is a ClarifyTextLanguage enum value
	ClarifyTextLanguageNl = "nl"

	// ClarifyTextLanguageEn is a ClarifyTextLanguage enum value
	ClarifyTextLanguageEn = "en"

	// ClarifyTextLanguageEt is a ClarifyTextLanguage enum value
	ClarifyTextLanguageEt = "et"

	// ClarifyTextLanguageFi is a ClarifyTextLanguage enum value
	ClarifyTextLanguageFi = "fi"

	// ClarifyTextLanguageFr is a ClarifyTextLanguage enum value
	ClarifyTextLanguageFr = "fr"

	// ClarifyTextLanguageDe is a ClarifyTextLanguage enum value
	ClarifyTextLanguageDe = "de"

	// ClarifyTextLanguageEl is a ClarifyTextLanguage enum value
	ClarifyTextLanguageEl = "el"

	// ClarifyTextLanguageGu is a ClarifyTextLanguage enum value
	ClarifyTextLanguageGu = "gu"

	// ClarifyTextLanguageHe is a ClarifyTextLanguage enum value
	ClarifyTextLanguageHe = "he"

	// ClarifyTextLanguageHi is a ClarifyTextLanguage enum value
	ClarifyTextLanguageHi = "hi"

	// ClarifyTextLanguageHu is a ClarifyTextLanguage enum value
	ClarifyTextLanguageHu = "hu"

	// ClarifyTextLanguageIs is a ClarifyTextLanguage enum value
	ClarifyTextLanguageIs = "is"

	// ClarifyTextLanguageId is a ClarifyTextLanguage enum value
	ClarifyTextLanguageId = "id"

	// ClarifyTextLanguageGa is a ClarifyTextLanguage enum value
	ClarifyTextLanguageGa = "ga"

	// ClarifyTextLanguageIt is a ClarifyTextLanguage enum value
	ClarifyTextLanguageIt = "it"

	// ClarifyTextLanguageKn is a ClarifyTextLanguage enum value
	ClarifyTextLanguageKn = "kn"

	// ClarifyTextLanguageKy is a ClarifyTextLanguage enum value
	ClarifyTextLanguageKy = "ky"

	// ClarifyTextLanguageLv is a ClarifyTextLanguage enum value
	ClarifyTextLanguageLv = "lv"

	// ClarifyTextLanguageLt is a ClarifyTextLanguage enum value
	ClarifyTextLanguageLt = "lt"

	// ClarifyTextLanguageLb is a ClarifyTextLanguage enum value
	ClarifyTextLanguageLb = "lb"

	// ClarifyTextLanguageMk is a ClarifyTextLanguage enum value
	ClarifyTextLanguageMk = "mk"

	// ClarifyTextLanguageMl is a ClarifyTextLanguage enum value
	ClarifyTextLanguageMl = "ml"

	// ClarifyTextLanguageMr is a ClarifyTextLanguage enum value
	ClarifyTextLanguageMr = "mr"

	// ClarifyTextLanguageNe is a ClarifyTextLanguage enum value
	ClarifyTextLanguageNe = "ne"

	// ClarifyTextLanguageNb is a ClarifyTextLanguage enum value
	ClarifyTextLanguageNb = "nb"

	// ClarifyTextLanguageFa is a ClarifyTextLanguage enum value
	ClarifyTextLanguageFa = "fa"

	// ClarifyTextLanguagePl is a ClarifyTextLanguage enum value
	ClarifyTextLanguagePl = "pl"

	// ClarifyTextLanguagePt is a ClarifyTextLanguage enum value
	ClarifyTextLanguagePt = "pt"

	// ClarifyTextLanguageRo is a ClarifyTextLanguage enum value
	ClarifyTextLanguageRo = "ro"

	// ClarifyTextLanguageRu is a ClarifyTextLanguage enum value
	ClarifyTextLanguageRu = "ru"

	// ClarifyTextLanguageSa is a ClarifyTextLanguage enum value
	ClarifyTextLanguageSa = "sa"

	// ClarifyTextLanguageSr is a ClarifyTextLanguage enum value
	ClarifyTextLanguageSr = "sr"

	// ClarifyTextLanguageTn is a ClarifyTextLanguage enum value
	ClarifyTextLanguageTn = "tn"

	// ClarifyTextLanguageSi is a ClarifyTextLanguage enum value
	ClarifyTextLanguageSi = "si"

	// ClarifyTextLanguageSk is a ClarifyTextLanguage enum value
	ClarifyTextLanguageSk = "sk"

	// ClarifyTextLanguageSl is a ClarifyTextLanguage enum value
	ClarifyTextLanguageSl = "sl"

	// ClarifyTextLanguageEs is a ClarifyTextLanguage enum value
	ClarifyTextLanguageEs = "es"

	// ClarifyTextLanguageSv is a ClarifyTextLanguage enum value
	ClarifyTextLanguageSv = "sv"

	// ClarifyTextLanguageTl is a ClarifyTextLanguage enum value
	ClarifyTextLanguageTl = "tl"

	// ClarifyTextLanguageTa is a ClarifyTextLanguage enum value
	ClarifyTextLanguageTa = "ta"

	// ClarifyTextLanguageTt is a ClarifyTextLanguage enum value
	ClarifyTextLanguageTt = "tt"

	// ClarifyTextLanguageTe is a ClarifyTextLanguage enum value
	ClarifyTextLanguageTe = "te"

	// ClarifyTextLanguageTr is a ClarifyTextLanguage enum value
	ClarifyTextLanguageTr = "tr"

	// ClarifyTextLanguageUk is a ClarifyTextLanguage enum value
	ClarifyTextLanguageUk = "uk"

	// ClarifyTextLanguageUr is a ClarifyTextLanguage enum value
	ClarifyTextLanguageUr = "ur"

	// ClarifyTextLanguageYo is a ClarifyTextLanguage enum value
	ClarifyTextLanguageYo = "yo"

	// ClarifyTextLanguageLij is a ClarifyTextLanguage enum value
	ClarifyTextLanguageLij = "lij"

	// ClarifyTextLanguageXx is a ClarifyTextLanguage enum value
	ClarifyTextLanguageXx = "xx"
)

// ClarifyTextLanguage_Values returns all elements of the ClarifyTextLanguage enum
func ClarifyTextLanguage_Values() []string {
	return []string{
		ClarifyTextLanguageAf,
		ClarifyTextLanguageSq,
		ClarifyTextLanguageAr,
		ClarifyTextLanguageHy,
		ClarifyTextLanguageEu,
		ClarifyTextLanguageBn,
		ClarifyTextLanguageBg,
		ClarifyTextLanguageCa,
		ClarifyTextLanguageZh,
		ClarifyTextLanguageHr,
		ClarifyTextLanguageCs,
		ClarifyTextLanguageDa,
		ClarifyTextLanguageNl,
		ClarifyTextLanguageEn,
		ClarifyTextLanguageEt,
		ClarifyTextLanguageFi,
		ClarifyTextLanguageFr,
		ClarifyTextLanguageDe,
		ClarifyTextLanguageEl,
		ClarifyTextLanguageGu,
		ClarifyTextLanguageHe,
		ClarifyTextLanguageHi,
		ClarifyTextLanguageHu,
		ClarifyTextLanguageIs,
		ClarifyTextLanguageId,
		ClarifyTextLanguageGa,
		ClarifyTextLanguageIt,
		ClarifyTextLanguageKn,
		ClarifyTextLanguageKy,
		ClarifyTextLanguageLv,
		ClarifyTextLanguageLt,
		ClarifyTextLanguageLb,
		ClarifyTextLanguageMk,
		ClarifyTextLanguageMl,
		ClarifyTextLanguageMr,
		ClarifyTextLanguageNe,
		ClarifyTextLanguageNb,
		ClarifyTextLanguageFa,
		ClarifyTextLanguagePl,
		ClarifyTextLanguagePt,
		ClarifyTextLanguageRo,
		ClarifyTextLanguageRu,
		ClarifyTextLanguageSa,
		ClarifyTextLanguageSr,
		ClarifyTextLanguageTn,
		ClarifyTextLanguageSi,
		ClarifyTextLanguageSk,
		ClarifyTextLanguageSl,
		ClarifyTextLanguageEs,
		ClarifyTextLanguageSv,
		ClarifyTextLanguageTl,
		ClarifyTextLanguageTa,
		ClarifyTextLanguageTt,
		ClarifyTextLanguageTe,
		ClarifyTextLanguageTr,
		ClarifyTextLanguageUk,
		ClarifyTextLanguageUr,
		ClarifyTextLanguageYo,
		ClarifyTextLanguageLij,
		ClarifyTextLanguageXx,
	}
}

const (
	// ClusterInstanceStatusRunning is a ClusterInstanceStatus enum value
	ClusterInstanceStatusRunning = "Running"

	// ClusterInstanceStatusFailure is a ClusterInstanceStatus enum value
	ClusterInstanceStatusFailure = "Failure"

	// ClusterInstanceStatusPending is a ClusterInstanceStatus enum value
	ClusterInstanceStatusPending = "Pending"

	// ClusterInstanceStatusShuttingDown is a ClusterInstanceStatus enum value
	ClusterInstanceStatusShuttingDown = "ShuttingDown"

	// ClusterInstanceStatusSystemUpdating is a ClusterInstanceStatus enum value
	ClusterInstanceStatusSystemUpdating = "SystemUpdating"
)

// ClusterInstanceStatus_Values returns all elements of the ClusterInstanceStatus enum
func ClusterInstanceStatus_Values() []string {
	return []string{
		ClusterInstanceStatusRunning,
		ClusterInstanceStatusFailure,
		ClusterInstanceStatusPending,
		ClusterInstanceStatusShuttingDown,
		ClusterInstanceStatusSystemUpdating,
	}
}

const (
	// ClusterInstanceTypeMlP4d24xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlP4d24xlarge = "ml.p4d.24xlarge"

	// ClusterInstanceTypeMlP4de24xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlP4de24xlarge = "ml.p4de.24xlarge"

	// ClusterInstanceTypeMlP548xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlP548xlarge = "ml.p5.48xlarge"

	// ClusterInstanceTypeMlTrn132xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlTrn132xlarge = "ml.trn1.32xlarge"

	// ClusterInstanceTypeMlTrn1n32xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlTrn1n32xlarge = "ml.trn1n.32xlarge"

	// ClusterInstanceTypeMlG5Xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlG5Xlarge = "ml.g5.xlarge"

	// ClusterInstanceTypeMlG52xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlG52xlarge = "ml.g5.2xlarge"

	// ClusterInstanceTypeMlG54xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlG54xlarge = "ml.g5.4xlarge"

	// ClusterInstanceTypeMlG58xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlG58xlarge = "ml.g5.8xlarge"

	// ClusterInstanceTypeMlG512xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlG512xlarge = "ml.g5.12xlarge"

	// ClusterInstanceTypeMlG516xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlG516xlarge = "ml.g5.16xlarge"

	// ClusterInstanceTypeMlG524xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlG524xlarge = "ml.g5.24xlarge"

	// ClusterInstanceTypeMlG548xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlG548xlarge = "ml.g5.48xlarge"

	// ClusterInstanceTypeMlC5Large is a ClusterInstanceType enum value
	ClusterInstanceTypeMlC5Large = "ml.c5.large"

	// ClusterInstanceTypeMlC5Xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlC5Xlarge = "ml.c5.xlarge"

	// ClusterInstanceTypeMlC52xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlC52xlarge = "ml.c5.2xlarge"

	// ClusterInstanceTypeMlC54xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlC54xlarge = "ml.c5.4xlarge"

	// ClusterInstanceTypeMlC59xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlC59xlarge = "ml.c5.9xlarge"

	// ClusterInstanceTypeMlC512xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlC512xlarge = "ml.c5.12xlarge"

	// ClusterInstanceTypeMlC518xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlC518xlarge = "ml.c5.18xlarge"

	// ClusterInstanceTypeMlC524xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlC524xlarge = "ml.c5.24xlarge"

	// ClusterInstanceTypeMlC5nLarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlC5nLarge = "ml.c5n.large"

	// ClusterInstanceTypeMlC5n2xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlC5n2xlarge = "ml.c5n.2xlarge"

	// ClusterInstanceTypeMlC5n4xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlC5n4xlarge = "ml.c5n.4xlarge"

	// ClusterInstanceTypeMlC5n9xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlC5n9xlarge = "ml.c5n.9xlarge"

	// ClusterInstanceTypeMlC5n18xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlC5n18xlarge = "ml.c5n.18xlarge"

	// ClusterInstanceTypeMlM5Large is a ClusterInstanceType enum value
	ClusterInstanceTypeMlM5Large = "ml.m5.large"

	// ClusterInstanceTypeMlM5Xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlM5Xlarge = "ml.m5.xlarge"

	// ClusterInstanceTypeMlM52xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlM52xlarge = "ml.m5.2xlarge"

	// ClusterInstanceTypeMlM54xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlM54xlarge = "ml.m5.4xlarge"

	// ClusterInstanceTypeMlM58xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlM58xlarge = "ml.m5.8xlarge"

	// ClusterInstanceTypeMlM512xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlM512xlarge = "ml.m5.12xlarge"

	// ClusterInstanceTypeMlM516xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlM516xlarge = "ml.m5.16xlarge"

	// ClusterInstanceTypeMlM524xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlM524xlarge = "ml.m5.24xlarge"

	// ClusterInstanceTypeMlT3Medium is a ClusterInstanceType enum value
	ClusterInstanceTypeMlT3Medium = "ml.t3.medium"

	// ClusterInstanceTypeMlT3Large is a ClusterInstanceType enum value
	ClusterInstanceTypeMlT3Large = "ml.t3.large"

	// ClusterInstanceTypeMlT3Xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlT3Xlarge = "ml.t3.xlarge"

	// ClusterInstanceTypeMlT32xlarge is a ClusterInstanceType enum value
	ClusterInstanceTypeMlT32xlarge = "ml.t3.2xlarge"
)

// ClusterInstanceType_Values returns all elements of the ClusterInstanceType enum
func ClusterInstanceType_Values() []string {
	return []string{
		ClusterInstanceTypeMlP4d24xlarge,
		ClusterInstanceTypeMlP4de24xlarge,
		ClusterInstanceTypeMlP548xlarge,
		ClusterInstanceTypeMlTrn132xlarge,
		ClusterInstanceTypeMlTrn1n32xlarge,
		ClusterInstanceTypeMlG5Xlarge,
		ClusterInstanceTypeMlG52xlarge,
		ClusterInstanceTypeMlG54xlarge,
		ClusterInstanceTypeMlG58xlarge,
		ClusterInstanceTypeMlG512xlarge,
		ClusterInstanceTypeMlG516xlarge,
		ClusterInstanceTypeMlG524xlarge,
		ClusterInstanceTypeMlG548xlarge,
		ClusterInstanceTypeMlC5Large,
		ClusterInstanceTypeMlC5Xlarge,
		ClusterInstanceTypeMlC52xlarge,
		ClusterInstanceTypeMlC54xlarge,
		ClusterInstanceTypeMlC59xlarge,
		ClusterInstanceTypeMlC512xlarge,
		ClusterInstanceTypeMlC518xlarge,
		ClusterInstanceTypeMlC524xlarge,
		ClusterInstanceTypeMlC5nLarge,
		ClusterInstanceTypeMlC5n2xlarge,
		ClusterInstanceTypeMlC5n4xlarge,
		ClusterInstanceTypeMlC5n9xlarge,
		ClusterInstanceTypeMlC5n18xlarge,
		ClusterInstanceTypeMlM5Large,
		ClusterInstanceTypeMlM5Xlarge,
		ClusterInstanceTypeMlM52xlarge,
		ClusterInstanceTypeMlM54xlarge,
		ClusterInstanceTypeMlM58xlarge,
		ClusterInstanceTypeMlM512xlarge,
		ClusterInstanceTypeMlM516xlarge,
		ClusterInstanceTypeMlM524xlarge,
		ClusterInstanceTypeMlT3Medium,
		ClusterInstanceTypeMlT3Large,
		ClusterInstanceTypeMlT3Xlarge,
		ClusterInstanceTypeMlT32xlarge,
	}
}

const (
	// ClusterSortByCreationTime is a ClusterSortBy enum value
	ClusterSortByCreationTime = "CREATION_TIME"

	// ClusterSortByName is a ClusterSortBy enum value
	ClusterSortByName = "NAME"
)

// ClusterSortBy_Values returns all elements of the ClusterSortBy enum
func ClusterSortBy_Values() []string {
	return []string{
		ClusterSortByCreationTime,
		ClusterSortByName,
	}
}

const (
	// ClusterStatusCreating is a ClusterStatus enum value
	ClusterStatusCreating = "Creating"

	// ClusterStatusDeleting is a ClusterStatus enum value
	ClusterStatusDeleting = "Deleting"

	// ClusterStatusFailed is a ClusterStatus enum value
	ClusterStatusFailed = "Failed"

	// ClusterStatusInService is a ClusterStatus enum value
	ClusterStatusInService = "InService"

	// ClusterStatusRollingBack is a ClusterStatus enum value
	ClusterStatusRollingBack = "RollingBack"

	// ClusterStatusSystemUpdating is a ClusterStatus enum value
	ClusterStatusSystemUpdating = "SystemUpdating"

	// ClusterStatusUpdating is a ClusterStatus enum value
	ClusterStatusUpdating = "Updating"
)

// ClusterStatus_Values returns all elements of the ClusterStatus enum
func ClusterStatus_Values() []string {
	return []string{
		ClusterStatusCreating,
		ClusterStatusDeleting,
		ClusterStatusFailed,
		ClusterStatusInService,
		ClusterStatusRollingBack,
		ClusterStatusSystemUpdating,
		ClusterStatusUpdating,
	}
}

const (
	// CodeRepositorySortByName is a CodeRepositorySortBy enum value
	CodeRepositorySortByName = "Name"

	// CodeRepositorySortByCreationTime is a CodeRepositorySortBy enum value
	CodeRepositorySortByCreationTime = "CreationTime"

	// CodeRepositorySortByLastModifiedTime is a CodeRepositorySortBy enum value
	CodeRepositorySortByLastModifiedTime = "LastModifiedTime"
)

// CodeRepositorySortBy_Values returns all elements of the CodeRepositorySortBy enum
func CodeRepositorySortBy_Values() []string {
	return []string{
		CodeRepositorySortByName,
		CodeRepositorySortByCreationTime,
		CodeRepositorySortByLastModifiedTime,
	}
}

const (
	// CodeRepositorySortOrderAscending is a CodeRepositorySortOrder enum value
	CodeRepositorySortOrderAscending = "Ascending"

	// CodeRepositorySortOrderDescending is a CodeRepositorySortOrder enum value
	CodeRepositorySortOrderDescending = "Descending"
)

// CodeRepositorySortOrder_Values returns all elements of the CodeRepositorySortOrder enum
func CodeRepositorySortOrder_Values() []string {
	return []string{
		CodeRepositorySortOrderAscending,
		CodeRepositorySortOrderDescending,
	}
}

const (
	// CollectionTypeList is a CollectionType enum value
	CollectionTypeList = "List"

	// CollectionTypeSet is a CollectionType enum value
	CollectionTypeSet = "Set"

	// CollectionTypeVector is a CollectionType enum value
	CollectionTypeVector = "Vector"
)

// CollectionType_Values returns all elements of the CollectionType enum
func CollectionType_Values() []string {
	return []string{
		CollectionTypeList,
		CollectionTypeSet,
		CollectionTypeVector,
	}
}

const (
	// CompilationJobStatusInprogress is a CompilationJobStatus enum value
	CompilationJobStatusInprogress = "INPROGRESS"

	// CompilationJobStatusCompleted is a CompilationJobStatus enum value
	CompilationJobStatusCompleted = "COMPLETED"

	// CompilationJobStatusFailed is a CompilationJobStatus enum value
	CompilationJobStatusFailed = "FAILED"

	// CompilationJobStatusStarting is a CompilationJobStatus enum value
	CompilationJobStatusStarting = "STARTING"

	// CompilationJobStatusStopping is a CompilationJobStatus enum value
	CompilationJobStatusStopping = "STOPPING"

	// CompilationJobStatusStopped is a CompilationJobStatus enum value
	CompilationJobStatusStopped = "STOPPED"
)

// CompilationJobStatus_Values returns all elements of the CompilationJobStatus enum
func CompilationJobStatus_Values() []string {
	return []string{
		CompilationJobStatusInprogress,
		CompilationJobStatusCompleted,
		CompilationJobStatusFailed,
		CompilationJobStatusStarting,
		CompilationJobStatusStopping,
		CompilationJobStatusStopped,
	}
}

const (
	// CompleteOnConvergenceDisabled is a CompleteOnConvergence enum value
	CompleteOnConvergenceDisabled = "Disabled"

	// CompleteOnConvergenceEnabled is a CompleteOnConvergence enum value
	CompleteOnConvergenceEnabled = "Enabled"
)

// CompleteOnConvergence_Values returns all elements of the CompleteOnConvergence enum
func CompleteOnConvergence_Values() []string {
	return []string{
		CompleteOnConvergenceDisabled,
		CompleteOnConvergenceEnabled,
	}
}

const (
	// CompressionTypeNone is a CompressionType enum value
	CompressionTypeNone = "None"

	// CompressionTypeGzip is a CompressionType enum value
	CompressionTypeGzip = "Gzip"
)

// CompressionType_Values returns all elements of the CompressionType enum
func CompressionType_Values() []string {
	return []string{
		CompressionTypeNone,
		CompressionTypeGzip,
	}
}

const (
	// ConditionOutcomeTrue is a ConditionOutcome enum value
	ConditionOutcomeTrue = "True"

	// ConditionOutcomeFalse is a ConditionOutcome enum value
	ConditionOutcomeFalse = "False"
)

// ConditionOutcome_Values returns all elements of the ConditionOutcome enum
func ConditionOutcome_Values() []string {
	return []string{
		ConditionOutcomeTrue,
		ConditionOutcomeFalse,
	}
}

const (
	// ContainerModeSingleModel is a ContainerMode enum value
	ContainerModeSingleModel = "SingleModel"

	// ContainerModeMultiModel is a ContainerMode enum value
	ContainerModeMultiModel = "MultiModel"
)

// ContainerMode_Values returns all elements of the ContainerMode enum
func ContainerMode_Values() []string {
	return []string{
		ContainerModeSingleModel,
		ContainerModeMultiModel,
	}
}

const (
	// ContentClassifierFreeOfPersonallyIdentifiableInformation is a ContentClassifier enum value
	ContentClassifierFreeOfPersonallyIdentifiableInformation = "FreeOfPersonallyIdentifiableInformation"

	// ContentClassifierFreeOfAdultContent is a ContentClassifier enum value
	ContentClassifierFreeOfAdultContent = "FreeOfAdultContent"
)

// ContentClassifier_Values returns all elements of the ContentClassifier enum
func ContentClassifier_Values() []string {
	return []string{
		ContentClassifierFreeOfPersonallyIdentifiableInformation,
		ContentClassifierFreeOfAdultContent,
	}
}

const (
	// CrossAccountFilterOptionSameAccount is a CrossAccountFilterOption enum value
	CrossAccountFilterOptionSameAccount = "SameAccount"

	// CrossAccountFilterOptionCrossAccount is a CrossAccountFilterOption enum value
	CrossAccountFilterOptionCrossAccount = "CrossAccount"
)

// CrossAccountFilterOption_Values returns all elements of the CrossAccountFilterOption enum
func CrossAccountFilterOption_Values() []string {
	return []string{
		CrossAccountFilterOptionSameAccount,
		CrossAccountFilterOptionCrossAccount,
	}
}

const (
	// DataDistributionTypeFullyReplicated is a DataDistributionType enum value
	DataDistributionTypeFullyReplicated = "FullyReplicated"

	// DataDistributionTypeShardedByS3key is a DataDistributionType enum value
	DataDistributionTypeShardedByS3key = "ShardedByS3Key"
)

// DataDistributionType_Values returns all elements of the DataDistributionType enum
func DataDistributionType_Values() []string {
	return []string{
		DataDistributionTypeFullyReplicated,
		DataDistributionTypeShardedByS3key,
	}
}

const (
	// DataSourceNameSalesforceGenie is a DataSourceName enum value
	DataSourceNameSalesforceGenie = "SalesforceGenie"

	// DataSourceNameSnowflake is a DataSourceName enum value
	DataSourceNameSnowflake = "Snowflake"
)

// DataSourceName_Values returns all elements of the DataSourceName enum
func DataSourceName_Values() []string {
	return []string{
		DataSourceNameSalesforceGenie,
		DataSourceNameSnowflake,
	}
}

const (
	// DetailedAlgorithmStatusNotStarted is a DetailedAlgorithmStatus enum value
	DetailedAlgorithmStatusNotStarted = "NotStarted"

	// DetailedAlgorithmStatusInProgress is a DetailedAlgorithmStatus enum value
	DetailedAlgorithmStatusInProgress = "InProgress"

	// DetailedAlgorithmStatusCompleted is a DetailedAlgorithmStatus enum value
	DetailedAlgorithmStatusCompleted = "Completed"

	// DetailedAlgorithmStatusFailed is a DetailedAlgorithmStatus enum value
	DetailedAlgorithmStatusFailed = "Failed"
)

// DetailedAlgorithmStatus_Values returns all elements of the DetailedAlgorithmStatus enum
func DetailedAlgorithmStatus_Values() []string {
	return []string{
		DetailedAlgorithmStatusNotStarted,
		DetailedAlgorithmStatusInProgress,
		DetailedAlgorithmStatusCompleted,
		DetailedAlgorithmStatusFailed,
	}
}

const (
	// DetailedModelPackageStatusNotStarted is a DetailedModelPackageStatus enum value
	DetailedModelPackageStatusNotStarted = "NotStarted"

	// DetailedModelPackageStatusInProgress is a DetailedModelPackageStatus enum value
	DetailedModelPackageStatusInProgress = "InProgress"

	// DetailedModelPackageStatusCompleted is a DetailedModelPackageStatus enum value
	DetailedModelPackageStatusCompleted = "Completed"

	// DetailedModelPackageStatusFailed is a DetailedModelPackageStatus enum value
	DetailedModelPackageStatusFailed = "Failed"
)

// DetailedModelPackageStatus_Values returns all elements of the DetailedModelPackageStatus enum
func DetailedModelPackageStatus_Values() []string {
	return []string{
		DetailedModelPackageStatusNotStarted,
		DetailedModelPackageStatusInProgress,
		DetailedModelPackageStatusCompleted,
		DetailedModelPackageStatusFailed,
	}
}

const (
	// DeviceDeploymentStatusReadytodeploy is a DeviceDeploymentStatus enum value
	DeviceDeploymentStatusReadytodeploy = "READYTODEPLOY"

	// DeviceDeploymentStatusInprogress is a DeviceDeploymentStatus enum value
	DeviceDeploymentStatusInprogress = "INPROGRESS"

	// DeviceDeploymentStatusDeployed is a DeviceDeploymentStatus enum value
	DeviceDeploymentStatusDeployed = "DEPLOYED"

	// DeviceDeploymentStatusFailed is a DeviceDeploymentStatus enum value
	DeviceDeploymentStatusFailed = "FAILED"

	// DeviceDeploymentStatusStopping is a DeviceDeploymentStatus enum value
	DeviceDeploymentStatusStopping = "STOPPING"

	// DeviceDeploymentStatusStopped is a DeviceDeploymentStatus enum value
	DeviceDeploymentStatusStopped = "STOPPED"
)

// DeviceDeploymentStatus_Values returns all elements of the DeviceDeploymentStatus enum
func DeviceDeploymentStatus_Values() []string {
	return []string{
		DeviceDeploymentStatusReadytodeploy,
		DeviceDeploymentStatusInprogress,
		DeviceDeploymentStatusDeployed,
		DeviceDeploymentStatusFailed,
		DeviceDeploymentStatusStopping,
		DeviceDeploymentStatusStopped,
	}
}

const (
	// DeviceSubsetTypePercentage is a DeviceSubsetType enum value
	DeviceSubsetTypePercentage = "PERCENTAGE"

	// DeviceSubsetTypeSelection is a DeviceSubsetType enum value
	DeviceSubsetTypeSelection = "SELECTION"

	// DeviceSubsetTypeNamecontains is a DeviceSubsetType enum value
	DeviceSubsetTypeNamecontains = "NAMECONTAINS"
)

// DeviceSubsetType_Values returns all elements of the DeviceSubsetType enum
func DeviceSubsetType_Values() []string {
	return []string{
		DeviceSubsetTypePercentage,
		DeviceSubsetTypeSelection,
		DeviceSubsetTypeNamecontains,
	}
}

const (
	// DirectInternetAccessEnabled is a DirectInternetAccess enum value
	DirectInternetAccessEnabled = "Enabled"

	// DirectInternetAccessDisabled is a DirectInternetAccess enum value
	DirectInternetAccessDisabled = "Disabled"
)

// DirectInternetAccess_Values returns all elements of the DirectInternetAccess enum
func DirectInternetAccess_Values() []string {
	return []string{
		DirectInternetAccessEnabled,
		DirectInternetAccessDisabled,
	}
}

const (
	// DirectionBoth is a Direction enum value
	DirectionBoth = "Both"

	// DirectionAscendants is a Direction enum value
	DirectionAscendants = "Ascendants"

	// DirectionDescendants is a Direction enum value
	DirectionDescendants = "Descendants"
)

// Direction_Values returns all elements of the Direction enum
func Direction_Values() []string {
	return []string{
		DirectionBoth,
		DirectionAscendants,
		DirectionDescendants,
	}
}

const (
	// DomainStatusDeleting is a DomainStatus enum value
	DomainStatusDeleting = "Deleting"

	// DomainStatusFailed is a DomainStatus enum value
	DomainStatusFailed = "Failed"

	// DomainStatusInService is a DomainStatus enum value
	DomainStatusInService = "InService"

	// DomainStatusPending is a DomainStatus enum value
	DomainStatusPending = "Pending"

	// DomainStatusUpdating is a DomainStatus enum value
	DomainStatusUpdating = "Updating"

	// DomainStatusUpdateFailed is a DomainStatus enum value
	DomainStatusUpdateFailed = "Update_Failed"

	// DomainStatusDeleteFailed is a DomainStatus enum value
	DomainStatusDeleteFailed = "Delete_Failed"
)

// DomainStatus_Values returns all elements of the DomainStatus enum
func DomainStatus_Values() []string {
	return []string{
		DomainStatusDeleting,
		DomainStatusFailed,
		DomainStatusInService,
		DomainStatusPending,
		DomainStatusUpdating,
		DomainStatusUpdateFailed,
		DomainStatusDeleteFailed,
	}
}

const (
	// EdgePackagingJobStatusStarting is a EdgePackagingJobStatus enum value
	EdgePackagingJobStatusStarting = "STARTING"

	// EdgePackagingJobStatusInprogress is a EdgePackagingJobStatus enum value
	EdgePackagingJobStatusInprogress = "INPROGRESS"

	// EdgePackagingJobStatusCompleted is a EdgePackagingJobStatus enum value
	EdgePackagingJobStatusCompleted = "COMPLETED"

	// EdgePackagingJobStatusFailed is a EdgePackagingJobStatus enum value
	EdgePackagingJobStatusFailed = "FAILED"

	// EdgePackagingJobStatusStopping is a EdgePackagingJobStatus enum value
	EdgePackagingJobStatusStopping = "STOPPING"

	// EdgePackagingJobStatusStopped is a EdgePackagingJobStatus enum value
	EdgePackagingJobStatusStopped = "STOPPED"
)

// EdgePackagingJobStatus_Values returns all elements of the EdgePackagingJobStatus enum
func EdgePackagingJobStatus_Values() []string {
	return []string{
		EdgePackagingJobStatusStarting,
		EdgePackagingJobStatusInprogress,
		EdgePackagingJobStatusCompleted,
		EdgePackagingJobStatusFailed,
		EdgePackagingJobStatusStopping,
		EdgePackagingJobStatusStopped,
	}
}

const (
	// EdgePresetDeploymentStatusCompleted is a EdgePresetDeploymentStatus enum value
	EdgePresetDeploymentStatusCompleted = "COMPLETED"

	// EdgePresetDeploymentStatusFailed is a EdgePresetDeploymentStatus enum value
	EdgePresetDeploymentStatusFailed = "FAILED"
)

// EdgePresetDeploymentStatus_Values returns all elements of the EdgePresetDeploymentStatus enum
func EdgePresetDeploymentStatus_Values() []string {
	return []string{
		EdgePresetDeploymentStatusCompleted,
		EdgePresetDeploymentStatusFailed,
	}
}

const (
	// EdgePresetDeploymentTypeGreengrassV2component is a EdgePresetDeploymentType enum value
	EdgePresetDeploymentTypeGreengrassV2component = "GreengrassV2Component"
)

// EdgePresetDeploymentType_Values returns all elements of the EdgePresetDeploymentType enum
func EdgePresetDeploymentType_Values() []string {
	return []string{
		EdgePresetDeploymentTypeGreengrassV2component,
	}
}

const (
	// EndpointConfigSortKeyName is a EndpointConfigSortKey enum value
	EndpointConfigSortKeyName = "Name"

	// EndpointConfigSortKeyCreationTime is a EndpointConfigSortKey enum value
	EndpointConfigSortKeyCreationTime = "CreationTime"
)

// EndpointConfigSortKey_Values returns all elements of the EndpointConfigSortKey enum
func EndpointConfigSortKey_Values() []string {
	return []string{
		EndpointConfigSortKeyName,
		EndpointConfigSortKeyCreationTime,
	}
}

const (
	// EndpointSortKeyName is a EndpointSortKey enum value
	EndpointSortKeyName = "Name"

	// EndpointSortKeyCreationTime is a EndpointSortKey enum value
	EndpointSortKeyCreationTime = "CreationTime"

	// EndpointSortKeyStatus is a EndpointSortKey enum value
	EndpointSortKeyStatus = "Status"
)

// EndpointSortKey_Values returns all elements of the EndpointSortKey enum
func EndpointSortKey_Values() []string {
	return []string{
		EndpointSortKeyName,
		EndpointSortKeyCreationTime,
		EndpointSortKeyStatus,
	}
}

const (
	// EndpointStatusOutOfService is a EndpointStatus enum value
	EndpointStatusOutOfService = "OutOfService"

	// EndpointStatusCreating is a EndpointStatus enum value
	EndpointStatusCreating = "Creating"

	// EndpointStatusUpdating is a EndpointStatus enum value
	EndpointStatusUpdating = "Updating"

	// EndpointStatusSystemUpdating is a EndpointStatus enum value
	EndpointStatusSystemUpdating = "SystemUpdating"

	// EndpointStatusRollingBack is a EndpointStatus enum value
	EndpointStatusRollingBack = "RollingBack"

	// EndpointStatusInService is a EndpointStatus enum value
	EndpointStatusInService = "InService"

	// EndpointStatusDeleting is a EndpointStatus enum value
	EndpointStatusDeleting = "Deleting"

	// EndpointStatusFailed is a EndpointStatus enum value
	EndpointStatusFailed = "Failed"

	// EndpointStatusUpdateRollbackFailed is a EndpointStatus enum value
	EndpointStatusUpdateRollbackFailed = "UpdateRollbackFailed"
)

// EndpointStatus_Values returns all elements of the EndpointStatus enum
func EndpointStatus_Values() []string {
	return []string{
		EndpointStatusOutOfService,
		EndpointStatusCreating,
		EndpointStatusUpdating,
		EndpointStatusSystemUpdating,
		EndpointStatusRollingBack,
		EndpointStatusInService,
		EndpointStatusDeleting,
		EndpointStatusFailed,
		EndpointStatusUpdateRollbackFailed,
	}
}

const (
	// ExecutionRoleIdentityConfigUserProfileName is a ExecutionRoleIdentityConfig enum value
	ExecutionRoleIdentityConfigUserProfileName = "USER_PROFILE_NAME"

	// ExecutionRoleIdentityConfigDisabled is a ExecutionRoleIdentityConfig enum value
	ExecutionRoleIdentityConfigDisabled = "DISABLED"
)

// ExecutionRoleIdentityConfig_Values returns all elements of the ExecutionRoleIdentityConfig enum
func ExecutionRoleIdentityConfig_Values() []string {
	return []string{
		ExecutionRoleIdentityConfigUserProfileName,
		ExecutionRoleIdentityConfigDisabled,
	}
}

const (
	// ExecutionStatusPending is a ExecutionStatus enum value
	ExecutionStatusPending = "Pending"

	// ExecutionStatusCompleted is a ExecutionStatus enum value
	ExecutionStatusCompleted = "Completed"

	// ExecutionStatusCompletedWithViolations is a ExecutionStatus enum value
	ExecutionStatusCompletedWithViolations = "CompletedWithViolations"

	// ExecutionStatusInProgress is a ExecutionStatus enum value
	ExecutionStatusInProgress = "InProgress"

	// ExecutionStatusFailed is a ExecutionStatus enum value
	ExecutionStatusFailed = "Failed"

	// ExecutionStatusStopping is a ExecutionStatus enum value
	ExecutionStatusStopping = "Stopping"

	// ExecutionStatusStopped is a ExecutionStatus enum value
	ExecutionStatusStopped = "Stopped"
)

// ExecutionStatus_Values returns all elements of the ExecutionStatus enum
func ExecutionStatus_Values() []string {
	return []string{
		ExecutionStatusPending,
		ExecutionStatusCompleted,
		ExecutionStatusCompletedWithViolations,
		ExecutionStatusInProgress,
		ExecutionStatusFailed,
		ExecutionStatusStopping,
		ExecutionStatusStopped,
	}
}

const (
	// FailureHandlingPolicyRollbackOnFailure is a FailureHandlingPolicy enum value
	FailureHandlingPolicyRollbackOnFailure = "ROLLBACK_ON_FAILURE"

	// FailureHandlingPolicyDoNothing is a FailureHandlingPolicy enum value
	FailureHandlingPolicyDoNothing = "DO_NOTHING"
)

// FailureHandlingPolicy_Values returns all elements of the FailureHandlingPolicy enum
func FailureHandlingPolicy_Values() []string {
	return []string{
		FailureHandlingPolicyRollbackOnFailure,
		FailureHandlingPolicyDoNothing,
	}
}

const (
	// FeatureGroupSortByName is a FeatureGroupSortBy enum value
	FeatureGroupSortByName = "Name"

	// FeatureGroupSortByFeatureGroupStatus is a FeatureGroupSortBy enum value
	FeatureGroupSortByFeatureGroupStatus = "FeatureGroupStatus"

	// FeatureGroupSortByOfflineStoreStatus is a FeatureGroupSortBy enum value
	FeatureGroupSortByOfflineStoreStatus = "OfflineStoreStatus"

	// FeatureGroupSortByCreationTime is a FeatureGroupSortBy enum value
	FeatureGroupSortByCreationTime = "CreationTime"
)

// FeatureGroupSortBy_Values returns all elements of the FeatureGroupSortBy enum
func FeatureGroupSortBy_Values() []string {
	return []string{
		FeatureGroupSortByName,
		FeatureGroupSortByFeatureGroupStatus,
		FeatureGroupSortByOfflineStoreStatus,
		FeatureGroupSortByCreationTime,
	}
}

const (
	// FeatureGroupSortOrderAscending is a FeatureGroupSortOrder enum value
	FeatureGroupSortOrderAscending = "Ascending"

	// FeatureGroupSortOrderDescending is a FeatureGroupSortOrder enum value
	FeatureGroupSortOrderDescending = "Descending"
)

// FeatureGroupSortOrder_Values returns all elements of the FeatureGroupSortOrder enum
func FeatureGroupSortOrder_Values() []string {
	return []string{
		FeatureGroupSortOrderAscending,
		FeatureGroupSortOrderDescending,
	}
}

const (
	// FeatureGroupStatusCreating is a FeatureGroupStatus enum value
	FeatureGroupStatusCreating = "Creating"

	// FeatureGroupStatusCreated is a FeatureGroupStatus enum value
	FeatureGroupStatusCreated = "Created"

	// FeatureGroupStatusCreateFailed is a FeatureGroupStatus enum value
	FeatureGroupStatusCreateFailed = "CreateFailed"

	// FeatureGroupStatusDeleting is a FeatureGroupStatus enum value
	FeatureGroupStatusDeleting = "Deleting"

	// FeatureGroupStatusDeleteFailed is a FeatureGroupStatus enum value
	FeatureGroupStatusDeleteFailed = "DeleteFailed"
)

// FeatureGroupStatus_Values returns all elements of the FeatureGroupStatus enum
func FeatureGroupStatus_Values() []string {
	return []string{
		FeatureGroupStatusCreating,
		FeatureGroupStatusCreated,
		FeatureGroupStatusCreateFailed,
		FeatureGroupStatusDeleting,
		FeatureGroupStatusDeleteFailed,
	}
}

const (
	// FeatureStatusEnabled is a FeatureStatus enum value
	FeatureStatusEnabled = "ENABLED"

	// FeatureStatusDisabled is a FeatureStatus enum value
	FeatureStatusDisabled = "DISABLED"
)

// FeatureStatus_Values returns all elements of the FeatureStatus enum
func FeatureStatus_Values() []string {
	return []string{
		FeatureStatusEnabled,
		FeatureStatusDisabled,
	}
}

const (
	// FeatureTypeIntegral is a FeatureType enum value
	FeatureTypeIntegral = "Integral"

	// FeatureTypeFractional is a FeatureType enum value
	FeatureTypeFractional = "Fractional"

	// FeatureTypeString is a FeatureType enum value
	FeatureTypeString = "String"
)

// FeatureType_Values returns all elements of the FeatureType enum
func FeatureType_Values() []string {
	return []string{
		FeatureTypeIntegral,
		FeatureTypeFractional,
		FeatureTypeString,
	}
}

const (
	// FileSystemAccessModeRw is a FileSystemAccessMode enum value
	FileSystemAccessModeRw = "rw"

	// FileSystemAccessModeRo is a FileSystemAccessMode enum value
	FileSystemAccessModeRo = "ro"
)

// FileSystemAccessMode_Values returns all elements of the FileSystemAccessMode enum
func FileSystemAccessMode_Values() []string {
	return []string{
		FileSystemAccessModeRw,
		FileSystemAccessModeRo,
	}
}

const (
	// FileSystemTypeEfs is a FileSystemType enum value
	FileSystemTypeEfs = "EFS"

	// FileSystemTypeFsxLustre is a FileSystemType enum value
	FileSystemTypeFsxLustre = "FSxLustre"
)

// FileSystemType_Values returns all elements of the FileSystemType enum
func FileSystemType_Values() []string {
	return []string{
		FileSystemTypeEfs,
		FileSystemTypeFsxLustre,
	}
}

const (
	// FillingTypeFrontfill is a FillingType enum value
	FillingTypeFrontfill = "frontfill"

	// FillingTypeMiddlefill is a FillingType enum value
	FillingTypeMiddlefill = "middlefill"

	// FillingTypeBackfill is a FillingType enum value
	FillingTypeBackfill = "backfill"

	// FillingTypeFuturefill is a FillingType enum value
	FillingTypeFuturefill = "futurefill"

	// FillingTypeFrontfillValue is a FillingType enum value
	FillingTypeFrontfillValue = "frontfill_value"

	// FillingTypeMiddlefillValue is a FillingType enum value
	FillingTypeMiddlefillValue = "middlefill_value"

	// FillingTypeBackfillValue is a FillingType enum value
	FillingTypeBackfillValue = "backfill_value"

	// FillingTypeFuturefillValue is a FillingType enum value
	FillingTypeFuturefillValue = "futurefill_value"
)

// FillingType_Values returns all elements of the FillingType enum
func FillingType_Values() []string {
	return []string{
		FillingTypeFrontfill,
		FillingTypeMiddlefill,
		FillingTypeBackfill,
		FillingTypeFuturefill,
		FillingTypeFrontfillValue,
		FillingTypeMiddlefillValue,
		FillingTypeBackfillValue,
		FillingTypeFuturefillValue,
	}
}

const (
	// FlatInvocationsContinue is a FlatInvocations enum value
	FlatInvocationsContinue = "Continue"

	// FlatInvocationsStop is a FlatInvocations enum value
	FlatInvocationsStop = "Stop"
)

// FlatInvocations_Values returns all elements of the FlatInvocations enum
func FlatInvocations_Values() []string {
	return []string{
		FlatInvocationsContinue,
		FlatInvocationsStop,
	}
}

const (
	// FlowDefinitionStatusInitializing is a FlowDefinitionStatus enum value
	FlowDefinitionStatusInitializing = "Initializing"

	// FlowDefinitionStatusActive is a FlowDefinitionStatus enum value
	FlowDefinitionStatusActive = "Active"

	// FlowDefinitionStatusFailed is a FlowDefinitionStatus enum value
	FlowDefinitionStatusFailed = "Failed"

	// FlowDefinitionStatusDeleting is a FlowDefinitionStatus enum value
	FlowDefinitionStatusDeleting = "Deleting"
)

// FlowDefinitionStatus_Values returns all elements of the FlowDefinitionStatus enum
func FlowDefinitionStatus_Values() []string {
	return []string{
		FlowDefinitionStatusInitializing,
		FlowDefinitionStatusActive,
		FlowDefinitionStatusFailed,
		FlowDefinitionStatusDeleting,
	}
}

const (
	// FrameworkTensorflow is a Framework enum value
	FrameworkTensorflow = "TENSORFLOW"

	// FrameworkKeras is a Framework enum value
	FrameworkKeras = "KERAS"

	// FrameworkMxnet is a Framework enum value
	FrameworkMxnet = "MXNET"

	// FrameworkOnnx is a Framework enum value
	FrameworkOnnx = "ONNX"

	// FrameworkPytorch is a Framework enum value
	FrameworkPytorch = "PYTORCH"

	// FrameworkXgboost is a Framework enum value
	FrameworkXgboost = "XGBOOST"

	// FrameworkTflite is a Framework enum value
	FrameworkTflite = "TFLITE"

	// FrameworkDarknet is a Framework enum value
	FrameworkDarknet = "DARKNET"

	// FrameworkSklearn is a Framework enum value
	FrameworkSklearn = "SKLEARN"
)

// Framework_Values returns all elements of the Framework enum
func Framework_Values() []string {
	return []string{
		FrameworkTensorflow,
		FrameworkKeras,
		FrameworkMxnet,
		FrameworkOnnx,
		FrameworkPytorch,
		FrameworkXgboost,
		FrameworkTflite,
		FrameworkDarknet,
		FrameworkSklearn,
	}
}

const (
	// HubContentSortByHubContentName is a HubContentSortBy enum value
	HubContentSortByHubContentName = "HubContentName"

	// HubContentSortByCreationTime is a HubContentSortBy enum value
	HubContentSortByCreationTime = "CreationTime"

	// HubContentSortByHubContentStatus is a HubContentSortBy enum value
	HubContentSortByHubContentStatus = "HubContentStatus"
)

// HubContentSortBy_Values returns all elements of the HubContentSortBy enum
func HubContentSortBy_Values() []string {
	return []string{
		HubContentSortByHubContentName,
		HubContentSortByCreationTime,
		HubContentSortByHubContentStatus,
	}
}

const (
	// HubContentStatusAvailable is a HubContentStatus enum value
	HubContentStatusAvailable = "Available"

	// HubContentStatusImporting is a HubContentStatus enum value
	HubContentStatusImporting = "Importing"

	// HubContentStatusDeleting is a HubContentStatus enum value
	HubContentStatusDeleting = "Deleting"

	// HubContentStatusImportFailed is a HubContentStatus enum value
	HubContentStatusImportFailed = "ImportFailed"

	// HubContentStatusDeleteFailed is a HubContentStatus enum value
	HubContentStatusDeleteFailed = "DeleteFailed"
)

// HubContentStatus_Values returns all elements of the HubContentStatus enum
func HubContentStatus_Values() []string {
	return []string{
		HubContentStatusAvailable,
		HubContentStatusImporting,
		HubContentStatusDeleting,
		HubContentStatusImportFailed,
		HubContentStatusDeleteFailed,
	}
}

const (
	// HubContentTypeModel is a HubContentType enum value
	HubContentTypeModel = "Model"

	// HubContentTypeNotebook is a HubContentType enum value
	HubContentTypeNotebook = "Notebook"
)

// HubContentType_Values returns all elements of the HubContentType enum
func HubContentType_Values() []string {
	return []string{
		HubContentTypeModel,
		HubContentTypeNotebook,
	}
}

const (
	// HubSortByHubName is a HubSortBy enum value
	HubSortByHubName = "HubName"

	// HubSortByCreationTime is a HubSortBy enum value
	HubSortByCreationTime = "CreationTime"

	// HubSortByHubStatus is a HubSortBy enum value
	HubSortByHubStatus = "HubStatus"

	// HubSortByAccountIdOwner is a HubSortBy enum value
	HubSortByAccountIdOwner = "AccountIdOwner"
)

// HubSortBy_Values returns all elements of the HubSortBy enum
func HubSortBy_Values() []string {
	return []string{
		HubSortByHubName,
		HubSortByCreationTime,
		HubSortByHubStatus,
		HubSortByAccountIdOwner,
	}
}

const (
	// HubStatusInService is a HubStatus enum value
	HubStatusInService = "InService"

	// HubStatusCreating is a HubStatus enum value
	HubStatusCreating = "Creating"

	// HubStatusUpdating is a HubStatus enum value
	HubStatusUpdating = "Updating"

	// HubStatusDeleting is a HubStatus enum value
	HubStatusDeleting = "Deleting"

	// HubStatusCreateFailed is a HubStatus enum value
	HubStatusCreateFailed = "CreateFailed"

	// HubStatusUpdateFailed is a HubStatus enum value
	HubStatusUpdateFailed = "UpdateFailed"

	// HubStatusDeleteFailed is a HubStatus enum value
	HubStatusDeleteFailed = "DeleteFailed"
)

// HubStatus_Values returns all elements of the HubStatus enum
func HubStatus_Values() []string {
	return []string{
		HubStatusInService,
		HubStatusCreating,
		HubStatusUpdating,
		HubStatusDeleting,
		HubStatusCreateFailed,
		HubStatusUpdateFailed,
		HubStatusDeleteFailed,
	}
}

const (
	// HumanTaskUiStatusActive is a HumanTaskUiStatus enum value
	HumanTaskUiStatusActive = "Active"

	// HumanTaskUiStatusDeleting is a HumanTaskUiStatus enum value
	HumanTaskUiStatusDeleting = "Deleting"
)

// HumanTaskUiStatus_Values returns all elements of the HumanTaskUiStatus enum
func HumanTaskUiStatus_Values() []string {
	return []string{
		HumanTaskUiStatusActive,
		HumanTaskUiStatusDeleting,
	}
}

const (
	// HyperParameterScalingTypeAuto is a HyperParameterScalingType enum value
	HyperParameterScalingTypeAuto = "Auto"

	// HyperParameterScalingTypeLinear is a HyperParameterScalingType enum value
	HyperParameterScalingTypeLinear = "Linear"

	// HyperParameterScalingTypeLogarithmic is a HyperParameterScalingType enum value
	HyperParameterScalingTypeLogarithmic = "Logarithmic"

	// HyperParameterScalingTypeReverseLogarithmic is a HyperParameterScalingType enum value
	HyperParameterScalingTypeReverseLogarithmic = "ReverseLogarithmic"
)

// HyperParameterScalingType_Values returns all elements of the HyperParameterScalingType enum
func HyperParameterScalingType_Values() []string {
	return []string{
		HyperParameterScalingTypeAuto,
		HyperParameterScalingTypeLinear,
		HyperParameterScalingTypeLogarithmic,
		HyperParameterScalingTypeReverseLogarithmic,
	}
}

const (
	// HyperParameterTuningAllocationStrategyPrioritized is a HyperParameterTuningAllocationStrategy enum value
	HyperParameterTuningAllocationStrategyPrioritized = "Prioritized"
)

// HyperParameterTuningAllocationStrategy_Values returns all elements of the HyperParameterTuningAllocationStrategy enum
func HyperParameterTuningAllocationStrategy_Values() []string {
	return []string{
		HyperParameterTuningAllocationStrategyPrioritized,
	}
}

const (
	// HyperParameterTuningJobObjectiveTypeMaximize is a HyperParameterTuningJobObjectiveType enum value
	HyperParameterTuningJobObjectiveTypeMaximize = "Maximize"

	// HyperParameterTuningJobObjectiveTypeMinimize is a HyperParameterTuningJobObjectiveType enum value
	HyperParameterTuningJobObjectiveTypeMinimize = "Minimize"
)

// HyperParameterTuningJobObjectiveType_Values returns all elements of the HyperParameterTuningJobObjectiveType enum
func HyperParameterTuningJobObjectiveType_Values() []string {
	return []string{
		HyperParameterTuningJobObjectiveTypeMaximize,
		HyperParameterTuningJobObjectiveTypeMinimize,
	}
}

const (
	// HyperParameterTuningJobSortByOptionsName is a HyperParameterTuningJobSortByOptions enum value
	HyperParameterTuningJobSortByOptionsName = "Name"

	// HyperParameterTuningJobSortByOptionsStatus is a HyperParameterTuningJobSortByOptions enum value
	HyperParameterTuningJobSortByOptionsStatus = "Status"

	// HyperParameterTuningJobSortByOptionsCreationTime is a HyperParameterTuningJobSortByOptions enum value
	HyperParameterTuningJobSortByOptionsCreationTime = "CreationTime"
)

// HyperParameterTuningJobSortByOptions_Values returns all elements of the HyperParameterTuningJobSortByOptions enum
func HyperParameterTuningJobSortByOptions_Values() []string {
	return []string{
		HyperParameterTuningJobSortByOptionsName,
		HyperParameterTuningJobSortByOptionsStatus,
		HyperParameterTuningJobSortByOptionsCreationTime,
	}
}

const (
	// HyperParameterTuningJobStatusCompleted is a HyperParameterTuningJobStatus enum value
	HyperParameterTuningJobStatusCompleted = "Completed"

	// HyperParameterTuningJobStatusInProgress is a HyperParameterTuningJobStatus enum value
	HyperParameterTuningJobStatusInProgress = "InProgress"

	// HyperParameterTuningJobStatusFailed is a HyperParameterTuningJobStatus enum value
	HyperParameterTuningJobStatusFailed = "Failed"

	// HyperParameterTuningJobStatusStopped is a HyperParameterTuningJobStatus enum value
	HyperParameterTuningJobStatusStopped = "Stopped"

	// HyperParameterTuningJobStatusStopping is a HyperParameterTuningJobStatus enum value
	HyperParameterTuningJobStatusStopping = "Stopping"

	// HyperParameterTuningJobStatusDeleting is a HyperParameterTuningJobStatus enum value
	HyperParameterTuningJobStatusDeleting = "Deleting"

	// HyperParameterTuningJobStatusDeleteFailed is a HyperParameterTuningJobStatus enum value
	HyperParameterTuningJobStatusDeleteFailed = "DeleteFailed"
)

// HyperParameterTuningJobStatus_Values returns all elements of the HyperParameterTuningJobStatus enum
func HyperParameterTuningJobStatus_Values() []string {
	return []string{
		HyperParameterTuningJobStatusCompleted,
		HyperParameterTuningJobStatusInProgress,
		HyperParameterTuningJobStatusFailed,
		HyperParameterTuningJobStatusStopped,
		HyperParameterTuningJobStatusStopping,
		HyperParameterTuningJobStatusDeleting,
		HyperParameterTuningJobStatusDeleteFailed,
	}
}

// The strategy hyperparameter tuning uses to find the best combination of hyperparameters
// for your model.
const (
	// HyperParameterTuningJobStrategyTypeBayesian is a HyperParameterTuningJobStrategyType enum value
	HyperParameterTuningJobStrategyTypeBayesian = "Bayesian"

	// HyperParameterTuningJobStrategyTypeRandom is a HyperParameterTuningJobStrategyType enum value
	HyperParameterTuningJobStrategyTypeRandom = "Random"

	// HyperParameterTuningJobStrategyTypeHyperband is a HyperParameterTuningJobStrategyType enum value
	HyperParameterTuningJobStrategyTypeHyperband = "Hyperband"

	// HyperParameterTuningJobStrategyTypeGrid is a HyperParameterTuningJobStrategyType enum value
	HyperParameterTuningJobStrategyTypeGrid = "Grid"
)

// HyperParameterTuningJobStrategyType_Values returns all elements of the HyperParameterTuningJobStrategyType enum
func HyperParameterTuningJobStrategyType_Values() []string {
	return []string{
		HyperParameterTuningJobStrategyTypeBayesian,
		HyperParameterTuningJobStrategyTypeRandom,
		HyperParameterTuningJobStrategyTypeHyperband,
		HyperParameterTuningJobStrategyTypeGrid,
	}
}

const (
	// HyperParameterTuningJobWarmStartTypeIdenticalDataAndAlgorithm is a HyperParameterTuningJobWarmStartType enum value
	HyperParameterTuningJobWarmStartTypeIdenticalDataAndAlgorithm = "IdenticalDataAndAlgorithm"

	// HyperParameterTuningJobWarmStartTypeTransferLearning is a HyperParameterTuningJobWarmStartType enum value
	HyperParameterTuningJobWarmStartTypeTransferLearning = "TransferLearning"
)

// HyperParameterTuningJobWarmStartType_Values returns all elements of the HyperParameterTuningJobWarmStartType enum
func HyperParameterTuningJobWarmStartType_Values() []string {
	return []string{
		HyperParameterTuningJobWarmStartTypeIdenticalDataAndAlgorithm,
		HyperParameterTuningJobWarmStartTypeTransferLearning,
	}
}

const (
	// ImageSortByCreationTime is a ImageSortBy enum value
	ImageSortByCreationTime = "CREATION_TIME"

	// ImageSortByLastModifiedTime is a ImageSortBy enum value
	ImageSortByLastModifiedTime = "LAST_MODIFIED_TIME"

	// ImageSortByImageName is a ImageSortBy enum value
	ImageSortByImageName = "IMAGE_NAME"
)

// ImageSortBy_Values returns all elements of the ImageSortBy enum
func ImageSortBy_Values() []string {
	return []string{
		ImageSortByCreationTime,
		ImageSortByLastModifiedTime,
		ImageSortByImageName,
	}
}

const (
	// ImageSortOrderAscending is a ImageSortOrder enum value
	ImageSortOrderAscending = "ASCENDING"

	// ImageSortOrderDescending is a ImageSortOrder enum value
	ImageSortOrderDescending = "DESCENDING"
)

// ImageSortOrder_Values returns all elements of the ImageSortOrder enum
func ImageSortOrder_Values() []string {
	return []string{
		ImageSortOrderAscending,
		ImageSortOrderDescending,
	}
}

const (
	// ImageStatusCreating is a ImageStatus enum value
	ImageStatusCreating = "CREATING"

	// ImageStatusCreated is a ImageStatus enum value
	ImageStatusCreated = "CREATED"

	// ImageStatusCreateFailed is a ImageStatus enum value
	ImageStatusCreateFailed = "CREATE_FAILED"

	// ImageStatusUpdating is a ImageStatus enum value
	ImageStatusUpdating = "UPDATING"

	// ImageStatusUpdateFailed is a ImageStatus enum value
	ImageStatusUpdateFailed = "UPDATE_FAILED"

	// ImageStatusDeleting is a ImageStatus enum value
	ImageStatusDeleting = "DELETING"

	// ImageStatusDeleteFailed is a ImageStatus enum value
	ImageStatusDeleteFailed = "DELETE_FAILED"
)

// ImageStatus_Values returns all elements of the ImageStatus enum
func ImageStatus_Values() []string {
	return []string{
		ImageStatusCreating,
		ImageStatusCreated,
		ImageStatusCreateFailed,
		ImageStatusUpdating,
		ImageStatusUpdateFailed,
		ImageStatusDeleting,
		ImageStatusDeleteFailed,
	}
}

const (
	// ImageVersionSortByCreationTime is a ImageVersionSortBy enum value
	ImageVersionSortByCreationTime = "CREATION_TIME"

	// ImageVersionSortByLastModifiedTime is a ImageVersionSortBy enum value
	ImageVersionSortByLastModifiedTime = "LAST_MODIFIED_TIME"

	// ImageVersionSortByVersion is a ImageVersionSortBy enum value
	ImageVersionSortByVersion = "VERSION"
)

// ImageVersionSortBy_Values returns all elements of the ImageVersionSortBy enum
func ImageVersionSortBy_Values() []string {
	return []string{
		ImageVersionSortByCreationTime,
		ImageVersionSortByLastModifiedTime,
		ImageVersionSortByVersion,
	}
}

const (
	// ImageVersionSortOrderAscending is a ImageVersionSortOrder enum value
	ImageVersionSortOrderAscending = "ASCENDING"

	// ImageVersionSortOrderDescending is a ImageVersionSortOrder enum value
	ImageVersionSortOrderDescending = "DESCENDING"
)

// ImageVersionSortOrder_Values returns all elements of the ImageVersionSortOrder enum
func ImageVersionSortOrder_Values() []string {
	return []string{
		ImageVersionSortOrderAscending,
		ImageVersionSortOrderDescending,
	}
}

const (
	// ImageVersionStatusCreating is a ImageVersionStatus enum value
	ImageVersionStatusCreating = "CREATING"

	// ImageVersionStatusCreated is a ImageVersionStatus enum value
	ImageVersionStatusCreated = "CREATED"

	// ImageVersionStatusCreateFailed is a ImageVersionStatus enum value
	ImageVersionStatusCreateFailed = "CREATE_FAILED"

	// ImageVersionStatusDeleting is a ImageVersionStatus enum value
	ImageVersionStatusDeleting = "DELETING"

	// ImageVersionStatusDeleteFailed is a ImageVersionStatus enum value
	ImageVersionStatusDeleteFailed = "DELETE_FAILED"
)

// ImageVersionStatus_Values returns all elements of the ImageVersionStatus enum
func ImageVersionStatus_Values() []string {
	return []string{
		ImageVersionStatusCreating,
		ImageVersionStatusCreated,
		ImageVersionStatusCreateFailed,
		ImageVersionStatusDeleting,
		ImageVersionStatusDeleteFailed,
	}
}

const (
	// InferenceComponentSortKeyName is a InferenceComponentSortKey enum value
	InferenceComponentSortKeyName = "Name"

	// InferenceComponentSortKeyCreationTime is a InferenceComponentSortKey enum value
	InferenceComponentSortKeyCreationTime = "CreationTime"

	// InferenceComponentSortKeyStatus is a InferenceComponentSortKey enum value
	InferenceComponentSortKeyStatus = "Status"
)

// InferenceComponentSortKey_Values returns all elements of the InferenceComponentSortKey enum
func InferenceComponentSortKey_Values() []string {
	return []string{
		InferenceComponentSortKeyName,
		InferenceComponentSortKeyCreationTime,
		InferenceComponentSortKeyStatus,
	}
}

const (
	// InferenceComponentStatusInService is a InferenceComponentStatus enum value
	InferenceComponentStatusInService = "InService"

	// InferenceComponentStatusCreating is a InferenceComponentStatus enum value
	InferenceComponentStatusCreating = "Creating"

	// InferenceComponentStatusUpdating is a InferenceComponentStatus enum value
	InferenceComponentStatusUpdating = "Updating"

	// InferenceComponentStatusFailed is a InferenceComponentStatus enum value
	InferenceComponentStatusFailed = "Failed"

	// InferenceComponentStatusDeleting is a InferenceComponentStatus enum value
	InferenceComponentStatusDeleting = "Deleting"
)

// InferenceComponentStatus_Values returns all elements of the InferenceComponentStatus enum
func InferenceComponentStatus_Values() []string {
	return []string{
		InferenceComponentStatusInService,
		InferenceComponentStatusCreating,
		InferenceComponentStatusUpdating,
		InferenceComponentStatusFailed,
		InferenceComponentStatusDeleting,
	}
}

const (
	// InferenceExecutionModeSerial is a InferenceExecutionMode enum value
	InferenceExecutionModeSerial = "Serial"

	// InferenceExecutionModeDirect is a InferenceExecutionMode enum value
	InferenceExecutionModeDirect = "Direct"
)

// InferenceExecutionMode_Values returns all elements of the InferenceExecutionMode enum
func InferenceExecutionMode_Values() []string {
	return []string{
		InferenceExecutionModeSerial,
		InferenceExecutionModeDirect,
	}
}

const (
	// InferenceExperimentStatusCreating is a InferenceExperimentStatus enum value
	InferenceExperimentStatusCreating = "Creating"

	// InferenceExperimentStatusCreated is a InferenceExperimentStatus enum value
	InferenceExperimentStatusCreated = "Created"

	// InferenceExperimentStatusUpdating is a InferenceExperimentStatus enum value
	InferenceExperimentStatusUpdating = "Updating"

	// InferenceExperimentStatusRunning is a InferenceExperimentStatus enum value
	InferenceExperimentStatusRunning = "Running"

	// InferenceExperimentStatusStarting is a InferenceExperimentStatus enum value
	InferenceExperimentStatusStarting = "Starting"

	// InferenceExperimentStatusStopping is a InferenceExperimentStatus enum value
	InferenceExperimentStatusStopping = "Stopping"

	// InferenceExperimentStatusCompleted is a InferenceExperimentStatus enum value
	InferenceExperimentStatusCompleted = "Completed"

	// InferenceExperimentStatusCancelled is a InferenceExperimentStatus enum value
	InferenceExperimentStatusCancelled = "Cancelled"
)

// InferenceExperimentStatus_Values returns all elements of the InferenceExperimentStatus enum
func InferenceExperimentStatus_Values() []string {
	return []string{
		InferenceExperimentStatusCreating,
		InferenceExperimentStatusCreated,
		InferenceExperimentStatusUpdating,
		InferenceExperimentStatusRunning,
		InferenceExperimentStatusStarting,
		InferenceExperimentStatusStopping,
		InferenceExperimentStatusCompleted,
		InferenceExperimentStatusCancelled,
	}
}

const (
	// InferenceExperimentStopDesiredStateCompleted is a InferenceExperimentStopDesiredState enum value
	InferenceExperimentStopDesiredStateCompleted = "Completed"

	// InferenceExperimentStopDesiredStateCancelled is a InferenceExperimentStopDesiredState enum value
	InferenceExperimentStopDesiredStateCancelled = "Cancelled"
)

// InferenceExperimentStopDesiredState_Values returns all elements of the InferenceExperimentStopDesiredState enum
func InferenceExperimentStopDesiredState_Values() []string {
	return []string{
		InferenceExperimentStopDesiredStateCompleted,
		InferenceExperimentStopDesiredStateCancelled,
	}
}

const (
	// InferenceExperimentTypeShadowMode is a InferenceExperimentType enum value
	InferenceExperimentTypeShadowMode = "ShadowMode"
)

// InferenceExperimentType_Values returns all elements of the InferenceExperimentType enum
func InferenceExperimentType_Values() []string {
	return []string{
		InferenceExperimentTypeShadowMode,
	}
}

const (
	// InputModePipe is a InputMode enum value
	InputModePipe = "Pipe"

	// InputModeFile is a InputMode enum value
	InputModeFile = "File"
)

// InputMode_Values returns all elements of the InputMode enum
func InputMode_Values() []string {
	return []string{
		InputModePipe,
		InputModeFile,
	}
}

const (
	// InstanceTypeMlT2Medium is a InstanceType enum value
	InstanceTypeMlT2Medium = "ml.t2.medium"

	// InstanceTypeMlT2Large is a InstanceType enum value
	InstanceTypeMlT2Large = "ml.t2.large"

	// InstanceTypeMlT2Xlarge is a InstanceType enum value
	InstanceTypeMlT2Xlarge = "ml.t2.xlarge"

	// InstanceTypeMlT22xlarge is a InstanceType enum value
	InstanceTypeMlT22xlarge = "ml.t2.2xlarge"

	// InstanceTypeMlT3Medium is a InstanceType enum value
	InstanceTypeMlT3Medium = "ml.t3.medium"

	// InstanceTypeMlT3Large is a InstanceType enum value
	InstanceTypeMlT3Large = "ml.t3.large"

	// InstanceTypeMlT3Xlarge is a InstanceType enum value
	InstanceTypeMlT3Xlarge = "ml.t3.xlarge"

	// InstanceTypeMlT32xlarge is a InstanceType enum value
	InstanceTypeMlT32xlarge = "ml.t3.2xlarge"

	// InstanceTypeMlM4Xlarge is a InstanceType enum value
	InstanceTypeMlM4Xlarge = "ml.m4.xlarge"

	// InstanceTypeMlM42xlarge is a InstanceType enum value
	InstanceTypeMlM42xlarge = "ml.m4.2xlarge"

	// InstanceTypeMlM44xlarge is a InstanceType enum value
	InstanceTypeMlM44xlarge = "ml.m4.4xlarge"

	// InstanceTypeMlM410xlarge is a InstanceType enum value
	InstanceTypeMlM410xlarge = "ml.m4.10xlarge"

	// InstanceTypeMlM416xlarge is a InstanceType enum value
	InstanceTypeMlM416xlarge = "ml.m4.16xlarge"

	// InstanceTypeMlM5Xlarge is a InstanceType enum value
	InstanceTypeMlM5Xlarge = "ml.m5.xlarge"

	// InstanceTypeMlM52xlarge is a InstanceType enum value
	InstanceTypeMlM52xlarge = "ml.m5.2xlarge"

	// InstanceTypeMlM54xlarge is a InstanceType enum value
	InstanceTypeMlM54xlarge = "ml.m5.4xlarge"

	// InstanceTypeMlM512xlarge is a InstanceType enum value
	InstanceTypeMlM512xlarge = "ml.m5.12xlarge"

	// InstanceTypeMlM524xlarge is a InstanceType enum value
	InstanceTypeMlM524xlarge = "ml.m5.24xlarge"

	// InstanceTypeMlM5dLarge is a InstanceType enum value
	InstanceTypeMlM5dLarge = "ml.m5d.large"

	// InstanceTypeMlM5dXlarge is a InstanceType enum value
	InstanceTypeMlM5dXlarge = "ml.m5d.xlarge"

	// InstanceTypeMlM5d2xlarge is a InstanceType enum value
	InstanceTypeMlM5d2xlarge = "ml.m5d.2xlarge"

	// InstanceTypeMlM5d4xlarge is a InstanceType enum value
	InstanceTypeMlM5d4xlarge = "ml.m5d.4xlarge"

	// InstanceTypeMlM5d8xlarge is a InstanceType enum value
	InstanceTypeMlM5d8xlarge = "ml.m5d.8xlarge"

	// InstanceTypeMlM5d12xlarge is a InstanceType enum value
	InstanceTypeMlM5d12xlarge = "ml.m5d.12xlarge"

	// InstanceTypeMlM5d16xlarge is a InstanceType enum value
	InstanceTypeMlM5d16xlarge = "ml.m5d.16xlarge"

	// InstanceTypeMlM5d24xlarge is a InstanceType enum value
	InstanceTypeMlM5d24xlarge = "ml.m5d.24xlarge"

	// InstanceTypeMlC4Xlarge is a InstanceType enum value
	InstanceTypeMlC4Xlarge = "ml.c4.xlarge"

	// InstanceTypeMlC42xlarge is a InstanceType enum value
	InstanceTypeMlC42xlarge = "ml.c4.2xlarge"

	// InstanceTypeMlC44xlarge is a InstanceType enum value
	InstanceTypeMlC44xlarge = "ml.c4.4xlarge"

	// InstanceTypeMlC48xlarge is a InstanceType enum value
	InstanceTypeMlC48xlarge = "ml.c4.8xlarge"

	// InstanceTypeMlC5Xlarge is a InstanceType enum value
	InstanceTypeMlC5Xlarge = "ml.c5.xlarge"

	// InstanceTypeMlC52xlarge is a InstanceType enum value
	InstanceTypeMlC52xlarge = "ml.c5.2xlarge"

	// InstanceTypeMlC54xlarge is a InstanceType enum value
	InstanceTypeMlC54xlarge = "ml.c5.4xlarge"

	// InstanceTypeMlC59xlarge is a InstanceType enum value
	InstanceTypeMlC59xlarge = "ml.c5.9xlarge"

	// InstanceTypeMlC518xlarge is a InstanceType enum value
	InstanceTypeMlC518xlarge = "ml.c5.18xlarge"

	// InstanceTypeMlC5dXlarge is a InstanceType enum value
	InstanceTypeMlC5dXlarge = "ml.c5d.xlarge"

	// InstanceTypeMlC5d2xlarge is a InstanceType enum value
	InstanceTypeMlC5d2xlarge = "ml.c5d.2xlarge"

	// InstanceTypeMlC5d4xlarge is a InstanceType enum value
	InstanceTypeMlC5d4xlarge = "ml.c5d.4xlarge"

	// InstanceTypeMlC5d9xlarge is a InstanceType enum value
	InstanceTypeMlC5d9xlarge = "ml.c5d.9xlarge"

	// InstanceTypeMlC5d18xlarge is a InstanceType enum value
	InstanceTypeMlC5d18xlarge = "ml.c5d.18xlarge"

	// InstanceTypeMlP2Xlarge is a InstanceType enum value
	InstanceTypeMlP2Xlarge = "ml.p2.xlarge"

	// InstanceTypeMlP28xlarge is a InstanceType enum value
	InstanceTypeMlP28xlarge = "ml.p2.8xlarge"

	// InstanceTypeMlP216xlarge is a InstanceType enum value
	InstanceTypeMlP216xlarge = "ml.p2.16xlarge"

	// InstanceTypeMlP32xlarge is a InstanceType enum value
	InstanceTypeMlP32xlarge = "ml.p3.2xlarge"

	// InstanceTypeMlP38xlarge is a InstanceType enum value
	InstanceTypeMlP38xlarge = "ml.p3.8xlarge"

	// InstanceTypeMlP316xlarge is a InstanceType enum value
	InstanceTypeMlP316xlarge = "ml.p3.16xlarge"

	// InstanceTypeMlP3dn24xlarge is a InstanceType enum value
	InstanceTypeMlP3dn24xlarge = "ml.p3dn.24xlarge"

	// InstanceTypeMlG4dnXlarge is a InstanceType enum value
	InstanceTypeMlG4dnXlarge = "ml.g4dn.xlarge"

	// InstanceTypeMlG4dn2xlarge is a InstanceType enum value
	InstanceTypeMlG4dn2xlarge = "ml.g4dn.2xlarge"

	// InstanceTypeMlG4dn4xlarge is a InstanceType enum value
	InstanceTypeMlG4dn4xlarge = "ml.g4dn.4xlarge"

	// InstanceTypeMlG4dn8xlarge is a InstanceType enum value
	InstanceTypeMlG4dn8xlarge = "ml.g4dn.8xlarge"

	// InstanceTypeMlG4dn12xlarge is a InstanceType enum value
	InstanceTypeMlG4dn12xlarge = "ml.g4dn.12xlarge"

	// InstanceTypeMlG4dn16xlarge is a InstanceType enum value
	InstanceTypeMlG4dn16xlarge = "ml.g4dn.16xlarge"

	// InstanceTypeMlR5Large is a InstanceType enum value
	InstanceTypeMlR5Large = "ml.r5.large"

	// InstanceTypeMlR5Xlarge is a InstanceType enum value
	InstanceTypeMlR5Xlarge = "ml.r5.xlarge"

	// InstanceTypeMlR52xlarge is a InstanceType enum value
	InstanceTypeMlR52xlarge = "ml.r5.2xlarge"

	// InstanceTypeMlR54xlarge is a InstanceType enum value
	InstanceTypeMlR54xlarge = "ml.r5.4xlarge"

	// InstanceTypeMlR58xlarge is a InstanceType enum value
	InstanceTypeMlR58xlarge = "ml.r5.8xlarge"

	// InstanceTypeMlR512xlarge is a InstanceType enum value
	InstanceTypeMlR512xlarge = "ml.r5.12xlarge"

	// InstanceTypeMlR516xlarge is a InstanceType enum value
	InstanceTypeMlR516xlarge = "ml.r5.16xlarge"

	// InstanceTypeMlR524xlarge is a InstanceType enum value
	InstanceTypeMlR524xlarge = "ml.r5.24xlarge"

	// InstanceTypeMlG5Xlarge is a InstanceType enum value
	InstanceTypeMlG5Xlarge = "ml.g5.xlarge"

	// InstanceTypeMlG52xlarge is a InstanceType enum value
	InstanceTypeMlG52xlarge = "ml.g5.2xlarge"

	// InstanceTypeMlG54xlarge is a InstanceType enum value
	InstanceTypeMlG54xlarge = "ml.g5.4xlarge"

	// InstanceTypeMlG58xlarge is a InstanceType enum value
	InstanceTypeMlG58xlarge = "ml.g5.8xlarge"

	// InstanceTypeMlG516xlarge is a InstanceType enum value
	InstanceTypeMlG516xlarge = "ml.g5.16xlarge"

	// InstanceTypeMlG512xlarge is a InstanceType enum value
	InstanceTypeMlG512xlarge = "ml.g5.12xlarge"

	// InstanceTypeMlG524xlarge is a InstanceType enum value
	InstanceTypeMlG524xlarge = "ml.g5.24xlarge"

	// InstanceTypeMlG548xlarge is a InstanceType enum value
	InstanceTypeMlG548xlarge = "ml.g5.48xlarge"

	// InstanceTypeMlInf1Xlarge is a InstanceType enum value
	InstanceTypeMlInf1Xlarge = "ml.inf1.xlarge"

	// InstanceTypeMlInf12xlarge is a InstanceType enum value
	InstanceTypeMlInf12xlarge = "ml.inf1.2xlarge"

	// InstanceTypeMlInf16xlarge is a InstanceType enum value
	InstanceTypeMlInf16xlarge = "ml.inf1.6xlarge"

	// InstanceTypeMlInf124xlarge is a InstanceType enum value
	InstanceTypeMlInf124xlarge = "ml.inf1.24xlarge"

	// InstanceTypeMlP4d24xlarge is a InstanceType enum value
	InstanceTypeMlP4d24xlarge = "ml.p4d.24xlarge"

	// InstanceTypeMlP4de24xlarge is a InstanceType enum value
	InstanceTypeMlP4de24xlarge = "ml.p4de.24xlarge"
)

// InstanceType_Values returns all elements of the InstanceType enum
func InstanceType_Values() []string {
	return []string{
		InstanceTypeMlT2Medium,
		InstanceTypeMlT2Large,
		InstanceTypeMlT2Xlarge,
		InstanceTypeMlT22xlarge,
		InstanceTypeMlT3Medium,
		InstanceTypeMlT3Large,
		InstanceTypeMlT3Xlarge,
		InstanceTypeMlT32xlarge,
		InstanceTypeMlM4Xlarge,
		InstanceTypeMlM42xlarge,
		InstanceTypeMlM44xlarge,
		InstanceTypeMlM410xlarge,
		InstanceTypeMlM416xlarge,
		InstanceTypeMlM5Xlarge,
		InstanceTypeMlM52xlarge,
		InstanceTypeMlM54xlarge,
		InstanceTypeMlM512xlarge,
		InstanceTypeMlM524xlarge,
		InstanceTypeMlM5dLarge,
		InstanceTypeMlM5dXlarge,
		InstanceTypeMlM5d2xlarge,
		InstanceTypeMlM5d4xlarge,
		InstanceTypeMlM5d8xlarge,
		InstanceTypeMlM5d12xlarge,
		InstanceTypeMlM5d16xlarge,
		InstanceTypeMlM5d24xlarge,
		InstanceTypeMlC4Xlarge,
		InstanceTypeMlC42xlarge,
		InstanceTypeMlC44xlarge,
		InstanceTypeMlC48xlarge,
		InstanceTypeMlC5Xlarge,
		InstanceTypeMlC52xlarge,
		InstanceTypeMlC54xlarge,
		InstanceTypeMlC59xlarge,
		InstanceTypeMlC518xlarge,
		InstanceTypeMlC5dXlarge,
		InstanceTypeMlC5d2xlarge,
		InstanceTypeMlC5d4xlarge,
		InstanceTypeMlC5d9xlarge,
		InstanceTypeMlC5d18xlarge,
		InstanceTypeMlP2Xlarge,
		InstanceTypeMlP28xlarge,
		InstanceTypeMlP216xlarge,
		InstanceTypeMlP32xlarge,
		InstanceTypeMlP38xlarge,
		InstanceTypeMlP316xlarge,
		InstanceTypeMlP3dn24xlarge,
		InstanceTypeMlG4dnXlarge,
		InstanceTypeMlG4dn2xlarge,
		InstanceTypeMlG4dn4xlarge,
		InstanceTypeMlG4dn8xlarge,
		InstanceTypeMlG4dn12xlarge,
		InstanceTypeMlG4dn16xlarge,
		InstanceTypeMlR5Large,
		InstanceTypeMlR5Xlarge,
		InstanceTypeMlR52xlarge,
		InstanceTypeMlR54xlarge,
		InstanceTypeMlR58xlarge,
		InstanceTypeMlR512xlarge,
		InstanceTypeMlR516xlarge,
		InstanceTypeMlR524xlarge,
		InstanceTypeMlG5Xlarge,
		InstanceTypeMlG52xlarge,
		InstanceTypeMlG54xlarge,
		InstanceTypeMlG58xlarge,
		InstanceTypeMlG516xlarge,
		InstanceTypeMlG512xlarge,
		InstanceTypeMlG524xlarge,
		InstanceTypeMlG548xlarge,
		InstanceTypeMlInf1Xlarge,
		InstanceTypeMlInf12xlarge,
		InstanceTypeMlInf16xlarge,
		InstanceTypeMlInf124xlarge,
		InstanceTypeMlP4d24xlarge,
		InstanceTypeMlP4de24xlarge,
	}
}

const (
	// JobTypeTraining is a JobType enum value
	JobTypeTraining = "TRAINING"

	// JobTypeInference is a JobType enum value
	JobTypeInference = "INFERENCE"

	// JobTypeNotebookKernel is a JobType enum value
	JobTypeNotebookKernel = "NOTEBOOK_KERNEL"
)

// JobType_Values returns all elements of the JobType enum
func JobType_Values() []string {
	return []string{
		JobTypeTraining,
		JobTypeInference,
		JobTypeNotebookKernel,
	}
}

const (
	// JoinSourceInput is a JoinSource enum value
	JoinSourceInput = "Input"

	// JoinSourceNone is a JoinSource enum value
	JoinSourceNone = "None"
)

// JoinSource_Values returns all elements of the JoinSource enum
func JoinSource_Values() []string {
	return []string{
		JoinSourceInput,
		JoinSourceNone,
	}
}

const (
	// LabelingJobStatusInitializing is a LabelingJobStatus enum value
	LabelingJobStatusInitializing = "Initializing"

	// LabelingJobStatusInProgress is a LabelingJobStatus enum value
	LabelingJobStatusInProgress = "InProgress"

	// LabelingJobStatusCompleted is a LabelingJobStatus enum value
	LabelingJobStatusCompleted = "Completed"

	// LabelingJobStatusFailed is a LabelingJobStatus enum value
	LabelingJobStatusFailed = "Failed"

	// LabelingJobStatusStopping is a LabelingJobStatus enum value
	LabelingJobStatusStopping = "Stopping"

	// LabelingJobStatusStopped is a LabelingJobStatus enum value
	LabelingJobStatusStopped = "Stopped"
)

// LabelingJobStatus_Values returns all elements of the LabelingJobStatus enum
func LabelingJobStatus_Values() []string {
	return []string{
		LabelingJobStatusInitializing,
		LabelingJobStatusInProgress,
		LabelingJobStatusCompleted,
		LabelingJobStatusFailed,
		LabelingJobStatusStopping,
		LabelingJobStatusStopped,
	}
}

const (
	// LastUpdateStatusValueSuccessful is a LastUpdateStatusValue enum value
	LastUpdateStatusValueSuccessful = "Successful"

	// LastUpdateStatusValueFailed is a LastUpdateStatusValue enum value
	LastUpdateStatusValueFailed = "Failed"

	// LastUpdateStatusValueInProgress is a LastUpdateStatusValue enum value
	LastUpdateStatusValueInProgress = "InProgress"
)

// LastUpdateStatusValue_Values returns all elements of the LastUpdateStatusValue enum
func LastUpdateStatusValue_Values() []string {
	return []string{
		LastUpdateStatusValueSuccessful,
		LastUpdateStatusValueFailed,
		LastUpdateStatusValueInProgress,
	}
}

const (
	// LineageTypeTrialComponent is a LineageType enum value
	LineageTypeTrialComponent = "TrialComponent"

	// LineageTypeArtifact is a LineageType enum value
	LineageTypeArtifact = "Artifact"

	// LineageTypeContext is a LineageType enum value
	LineageTypeContext = "Context"

	// LineageTypeAction is a LineageType enum value
	LineageTypeAction = "Action"
)

// LineageType_Values returns all elements of the LineageType enum
func LineageType_Values() []string {
	return []string{
		LineageTypeTrialComponent,
		LineageTypeArtifact,
		LineageTypeContext,
		LineageTypeAction,
	}
}

const (
	// ListCompilationJobsSortByName is a ListCompilationJobsSortBy enum value
	ListCompilationJobsSortByName = "Name"

	// ListCompilationJobsSortByCreationTime is a ListCompilationJobsSortBy enum value
	ListCompilationJobsSortByCreationTime = "CreationTime"

	// ListCompilationJobsSortByStatus is a ListCompilationJobsSortBy enum value
	ListCompilationJobsSortByStatus = "Status"
)

// ListCompilationJobsSortBy_Values returns all elements of the ListCompilationJobsSortBy enum
func ListCompilationJobsSortBy_Values() []string {
	return []string{
		ListCompilationJobsSortByName,
		ListCompilationJobsSortByCreationTime,
		ListCompilationJobsSortByStatus,
	}
}

const (
	// ListDeviceFleetsSortByName is a ListDeviceFleetsSortBy enum value
	ListDeviceFleetsSortByName = "NAME"

	// ListDeviceFleetsSortByCreationTime is a ListDeviceFleetsSortBy enum value
	ListDeviceFleetsSortByCreationTime = "CREATION_TIME"

	// ListDeviceFleetsSortByLastModifiedTime is a ListDeviceFleetsSortBy enum value
	ListDeviceFleetsSortByLastModifiedTime = "LAST_MODIFIED_TIME"
)

// ListDeviceFleetsSortBy_Values returns all elements of the ListDeviceFleetsSortBy enum
func ListDeviceFleetsSortBy_Values() []string {
	return []string{
		ListDeviceFleetsSortByName,
		ListDeviceFleetsSortByCreationTime,
		ListDeviceFleetsSortByLastModifiedTime,
	}
}

const (
	// ListEdgeDeploymentPlansSortByName is a ListEdgeDeploymentPlansSortBy enum value
	ListEdgeDeploymentPlansSortByName = "NAME"

	// ListEdgeDeploymentPlansSortByDeviceFleetName is a ListEdgeDeploymentPlansSortBy enum value
	ListEdgeDeploymentPlansSortByDeviceFleetName = "DEVICE_FLEET_NAME"

	// ListEdgeDeploymentPlansSortByCreationTime is a ListEdgeDeploymentPlansSortBy enum value
	ListEdgeDeploymentPlansSortByCreationTime = "CREATION_TIME"

	// ListEdgeDeploymentPlansSortByLastModifiedTime is a ListEdgeDeploymentPlansSortBy enum value
	ListEdgeDeploymentPlansSortByLastModifiedTime = "LAST_MODIFIED_TIME"
)

// ListEdgeDeploymentPlansSortBy_Values returns all elements of the ListEdgeDeploymentPlansSortBy enum
func ListEdgeDeploymentPlansSortBy_Values() []string {
	return []string{
		ListEdgeDeploymentPlansSortByName,
		ListEdgeDeploymentPlansSortByDeviceFleetName,
		ListEdgeDeploymentPlansSortByCreationTime,
		ListEdgeDeploymentPlansSortByLastModifiedTime,
	}
}

const (
	// ListEdgePackagingJobsSortByName is a ListEdgePackagingJobsSortBy enum value
	ListEdgePackagingJobsSortByName = "NAME"

	// ListEdgePackagingJobsSortByModelName is a ListEdgePackagingJobsSortBy enum value
	ListEdgePackagingJobsSortByModelName = "MODEL_NAME"

	// ListEdgePackagingJobsSortByCreationTime is a ListEdgePackagingJobsSortBy enum value
	ListEdgePackagingJobsSortByCreationTime = "CREATION_TIME"

	// ListEdgePackagingJobsSortByLastModifiedTime is a ListEdgePackagingJobsSortBy enum value
	ListEdgePackagingJobsSortByLastModifiedTime = "LAST_MODIFIED_TIME"

	// ListEdgePackagingJobsSortByStatus is a ListEdgePackagingJobsSortBy enum value
	ListEdgePackagingJobsSortByStatus = "STATUS"
)

// ListEdgePackagingJobsSortBy_Values returns all elements of the ListEdgePackagingJobsSortBy enum
func ListEdgePackagingJobsSortBy_Values() []string {
	return []string{
		ListEdgePackagingJobsSortByName,
		ListEdgePackagingJobsSortByModelName,
		ListEdgePackagingJobsSortByCreationTime,
		ListEdgePackagingJobsSortByLastModifiedTime,
		ListEdgePackagingJobsSortByStatus,
	}
}

const (
	// ListInferenceRecommendationsJobsSortByName is a ListInferenceRecommendationsJobsSortBy enum value
	ListInferenceRecommendationsJobsSortByName = "Name"

	// ListInferenceRecommendationsJobsSortByCreationTime is a ListInferenceRecommendationsJobsSortBy enum value
	ListInferenceRecommendationsJobsSortByCreationTime = "CreationTime"

	// ListInferenceRecommendationsJobsSortByStatus is a ListInferenceRecommendationsJobsSortBy enum value
	ListInferenceRecommendationsJobsSortByStatus = "Status"
)

// ListInferenceRecommendationsJobsSortBy_Values returns all elements of the ListInferenceRecommendationsJobsSortBy enum
func ListInferenceRecommendationsJobsSortBy_Values() []string {
	return []string{
		ListInferenceRecommendationsJobsSortByName,
		ListInferenceRecommendationsJobsSortByCreationTime,
		ListInferenceRecommendationsJobsSortByStatus,
	}
}

const (
	// ListLabelingJobsForWorkteamSortByOptionsCreationTime is a ListLabelingJobsForWorkteamSortByOptions enum value
	ListLabelingJobsForWorkteamSortByOptionsCreationTime = "CreationTime"
)

// ListLabelingJobsForWorkteamSortByOptions_Values returns all elements of the ListLabelingJobsForWorkteamSortByOptions enum
func ListLabelingJobsForWorkteamSortByOptions_Values() []string {
	return []string{
		ListLabelingJobsForWorkteamSortByOptionsCreationTime,
	}
}

const (
	// ListWorkforcesSortByOptionsName is a ListWorkforcesSortByOptions enum value
	ListWorkforcesSortByOptionsName = "Name"

	// ListWorkforcesSortByOptionsCreateDate is a ListWorkforcesSortByOptions enum value
	ListWorkforcesSortByOptionsCreateDate = "CreateDate"
)

// ListWorkforcesSortByOptions_Values returns all elements of the ListWorkforcesSortByOptions enum
func ListWorkforcesSortByOptions_Values() []string {
	return []string{
		ListWorkforcesSortByOptionsName,
		ListWorkforcesSortByOptionsCreateDate,
	}
}

const (
	// ListWorkteamsSortByOptionsName is a ListWorkteamsSortByOptions enum value
	ListWorkteamsSortByOptionsName = "Name"

	// ListWorkteamsSortByOptionsCreateDate is a ListWorkteamsSortByOptions enum value
	ListWorkteamsSortByOptionsCreateDate = "CreateDate"
)

// ListWorkteamsSortByOptions_Values returns all elements of the ListWorkteamsSortByOptions enum
func ListWorkteamsSortByOptions_Values() []string {
	return []string{
		ListWorkteamsSortByOptionsName,
		ListWorkteamsSortByOptionsCreateDate,
	}
}

const (
	// ManagedInstanceScalingStatusEnabled is a ManagedInstanceScalingStatus enum value
	ManagedInstanceScalingStatusEnabled = "ENABLED"

	// ManagedInstanceScalingStatusDisabled is a ManagedInstanceScalingStatus enum value
	ManagedInstanceScalingStatusDisabled = "DISABLED"
)

// ManagedInstanceScalingStatus_Values returns all elements of the ManagedInstanceScalingStatus enum
func ManagedInstanceScalingStatus_Values() []string {
	return []string{
		ManagedInstanceScalingStatusEnabled,
		ManagedInstanceScalingStatusDisabled,
	}
}

const (
	// MetricSetSourceTrain is a MetricSetSource enum value
	MetricSetSourceTrain = "Train"

	// MetricSetSourceValidation is a MetricSetSource enum value
	MetricSetSourceValidation = "Validation"

	// MetricSetSourceTest is a MetricSetSource enum value
	MetricSetSourceTest = "Test"
)

// MetricSetSource_Values returns all elements of the MetricSetSource enum
func MetricSetSource_Values() []string {
	return []string{
		MetricSetSourceTrain,
		MetricSetSourceValidation,
		MetricSetSourceTest,
	}
}

const (
	// ModelApprovalStatusApproved is a ModelApprovalStatus enum value
	ModelApprovalStatusApproved = "Approved"

	// ModelApprovalStatusRejected is a ModelApprovalStatus enum value
	ModelApprovalStatusRejected = "Rejected"

	// ModelApprovalStatusPendingManualApproval is a ModelApprovalStatus enum value
	ModelApprovalStatusPendingManualApproval = "PendingManualApproval"
)

// ModelApprovalStatus_Values returns all elements of the ModelApprovalStatus enum
func ModelApprovalStatus_Values() []string {
	return []string{
		ModelApprovalStatusApproved,
		ModelApprovalStatusRejected,
		ModelApprovalStatusPendingManualApproval,
	}
}

const (
	// ModelCacheSettingEnabled is a ModelCacheSetting enum value
	ModelCacheSettingEnabled = "Enabled"

	// ModelCacheSettingDisabled is a ModelCacheSetting enum value
	ModelCacheSettingDisabled = "Disabled"
)

// ModelCacheSetting_Values returns all elements of the ModelCacheSetting enum
func ModelCacheSetting_Values() []string {
	return []string{
		ModelCacheSettingEnabled,
		ModelCacheSettingDisabled,
	}
}

// Attribute by which to sort returned export jobs.
const (
	// ModelCardExportJobSortByName is a ModelCardExportJobSortBy enum value
	ModelCardExportJobSortByName = "Name"

	// ModelCardExportJobSortByCreationTime is a ModelCardExportJobSortBy enum value
	ModelCardExportJobSortByCreationTime = "CreationTime"

	// ModelCardExportJobSortByStatus is a ModelCardExportJobSortBy enum value
	ModelCardExportJobSortByStatus = "Status"
)

// ModelCardExportJobSortBy_Values returns all elements of the ModelCardExportJobSortBy enum
func ModelCardExportJobSortBy_Values() []string {
	return []string{
		ModelCardExportJobSortByName,
		ModelCardExportJobSortByCreationTime,
		ModelCardExportJobSortByStatus,
	}
}

const (
	// ModelCardExportJobSortOrderAscending is a ModelCardExportJobSortOrder enum value
	ModelCardExportJobSortOrderAscending = "Ascending"

	// ModelCardExportJobSortOrderDescending is a ModelCardExportJobSortOrder enum value
	ModelCardExportJobSortOrderDescending = "Descending"
)

// ModelCardExportJobSortOrder_Values returns all elements of the ModelCardExportJobSortOrder enum
func ModelCardExportJobSortOrder_Values() []string {
	return []string{
		ModelCardExportJobSortOrderAscending,
		ModelCardExportJobSortOrderDescending,
	}
}

const (
	// ModelCardExportJobStatusInProgress is a ModelCardExportJobStatus enum value
	ModelCardExportJobStatusInProgress = "InProgress"

	// ModelCardExportJobStatusCompleted is a ModelCardExportJobStatus enum value
	ModelCardExportJobStatusCompleted = "Completed"

	// ModelCardExportJobStatusFailed is a ModelCardExportJobStatus enum value
	ModelCardExportJobStatusFailed = "Failed"
)

// ModelCardExportJobStatus_Values returns all elements of the ModelCardExportJobStatus enum
func ModelCardExportJobStatus_Values() []string {
	return []string{
		ModelCardExportJobStatusInProgress,
		ModelCardExportJobStatusCompleted,
		ModelCardExportJobStatusFailed,
	}
}

const (
	// ModelCardProcessingStatusDeleteInProgress is a ModelCardProcessingStatus enum value
	ModelCardProcessingStatusDeleteInProgress = "DeleteInProgress"

	// ModelCardProcessingStatusDeletePending is a ModelCardProcessingStatus enum value
	ModelCardProcessingStatusDeletePending = "DeletePending"

	// ModelCardProcessingStatusContentDeleted is a ModelCardProcessingStatus enum value
	ModelCardProcessingStatusContentDeleted = "ContentDeleted"

	// ModelCardProcessingStatusExportJobsDeleted is a ModelCardProcessingStatus enum value
	ModelCardProcessingStatusExportJobsDeleted = "ExportJobsDeleted"

	// ModelCardProcessingStatusDeleteCompleted is a ModelCardProcessingStatus enum value
	ModelCardProcessingStatusDeleteCompleted = "DeleteCompleted"

	// ModelCardProcessingStatusDeleteFailed is a ModelCardProcessingStatus enum value
	ModelCardProcessingStatusDeleteFailed = "DeleteFailed"
)

// ModelCardProcessingStatus_Values returns all elements of the ModelCardProcessingStatus enum
func ModelCardProcessingStatus_Values() []string {
	return []string{
		ModelCardProcessingStatusDeleteInProgress,
		ModelCardProcessingStatusDeletePending,
		ModelCardProcessingStatusContentDeleted,
		ModelCardProcessingStatusExportJobsDeleted,
		ModelCardProcessingStatusDeleteCompleted,
		ModelCardProcessingStatusDeleteFailed,
	}
}

const (
	// ModelCardSortByName is a ModelCardSortBy enum value
	ModelCardSortByName = "Name"

	// ModelCardSortByCreationTime is a ModelCardSortBy enum value
	ModelCardSortByCreationTime = "CreationTime"
)

// ModelCardSortBy_Values returns all elements of the ModelCardSortBy enum
func ModelCardSortBy_Values() []string {
	return []string{
		ModelCardSortByName,
		ModelCardSortByCreationTime,
	}
}

const (
	// ModelCardSortOrderAscending is a ModelCardSortOrder enum value
	ModelCardSortOrderAscending = "Ascending"

	// ModelCardSortOrderDescending is a ModelCardSortOrder enum value
	ModelCardSortOrderDescending = "Descending"
)

// ModelCardSortOrder_Values returns all elements of the ModelCardSortOrder enum
func ModelCardSortOrder_Values() []string {
	return []string{
		ModelCardSortOrderAscending,
		ModelCardSortOrderDescending,
	}
}

const (
	// ModelCardStatusDraft is a ModelCardStatus enum value
	ModelCardStatusDraft = "Draft"

	// ModelCardStatusPendingReview is a ModelCardStatus enum value
	ModelCardStatusPendingReview = "PendingReview"

	// ModelCardStatusApproved is a ModelCardStatus enum value
	ModelCardStatusApproved = "Approved"

	// ModelCardStatusArchived is a ModelCardStatus enum value
	ModelCardStatusArchived = "Archived"
)

// ModelCardStatus_Values returns all elements of the ModelCardStatus enum
func ModelCardStatus_Values() []string {
	return []string{
		ModelCardStatusDraft,
		ModelCardStatusPendingReview,
		ModelCardStatusApproved,
		ModelCardStatusArchived,
	}
}

const (
	// ModelCardVersionSortByVersion is a ModelCardVersionSortBy enum value
	ModelCardVersionSortByVersion = "Version"
)

// ModelCardVersionSortBy_Values returns all elements of the ModelCardVersionSortBy enum
func ModelCardVersionSortBy_Values() []string {
	return []string{
		ModelCardVersionSortByVersion,
	}
}

const (
	// ModelCompressionTypeNone is a ModelCompressionType enum value
	ModelCompressionTypeNone = "None"

	// ModelCompressionTypeGzip is a ModelCompressionType enum value
	ModelCompressionTypeGzip = "Gzip"
)

// ModelCompressionType_Values returns all elements of the ModelCompressionType enum
func ModelCompressionType_Values() []string {
	return []string{
		ModelCompressionTypeNone,
		ModelCompressionTypeGzip,
	}
}

const (
	// ModelInfrastructureTypeRealTimeInference is a ModelInfrastructureType enum value
	ModelInfrastructureTypeRealTimeInference = "RealTimeInference"
)

// ModelInfrastructureType_Values returns all elements of the ModelInfrastructureType enum
func ModelInfrastructureType_Values() []string {
	return []string{
		ModelInfrastructureTypeRealTimeInference,
	}
}

const (
	// ModelMetadataFilterTypeDomain is a ModelMetadataFilterType enum value
	ModelMetadataFilterTypeDomain = "Domain"

	// ModelMetadataFilterTypeFramework is a ModelMetadataFilterType enum value
	ModelMetadataFilterTypeFramework = "Framework"

	// ModelMetadataFilterTypeTask is a ModelMetadataFilterType enum value
	ModelMetadataFilterTypeTask = "Task"

	// ModelMetadataFilterTypeFrameworkVersion is a ModelMetadataFilterType enum value
	ModelMetadataFilterTypeFrameworkVersion = "FrameworkVersion"
)

// ModelMetadataFilterType_Values returns all elements of the ModelMetadataFilterType enum
func ModelMetadataFilterType_Values() []string {
	return []string{
		ModelMetadataFilterTypeDomain,
		ModelMetadataFilterTypeFramework,
		ModelMetadataFilterTypeTask,
		ModelMetadataFilterTypeFrameworkVersion,
	}
}

const (
	// ModelPackageGroupSortByName is a ModelPackageGroupSortBy enum value
	ModelPackageGroupSortByName = "Name"

	// ModelPackageGroupSortByCreationTime is a ModelPackageGroupSortBy enum value
	ModelPackageGroupSortByCreationTime = "CreationTime"
)

// ModelPackageGroupSortBy_Values returns all elements of the ModelPackageGroupSortBy enum
func ModelPackageGroupSortBy_Values() []string {
	return []string{
		ModelPackageGroupSortByName,
		ModelPackageGroupSortByCreationTime,
	}
}

const (
	// ModelPackageGroupStatusPending is a ModelPackageGroupStatus enum value
	ModelPackageGroupStatusPending = "Pending"

	// ModelPackageGroupStatusInProgress is a ModelPackageGroupStatus enum value
	ModelPackageGroupStatusInProgress = "InProgress"

	// ModelPackageGroupStatusCompleted is a ModelPackageGroupStatus enum value
	ModelPackageGroupStatusCompleted = "Completed"

	// ModelPackageGroupStatusFailed is a ModelPackageGroupStatus enum value
	ModelPackageGroupStatusFailed = "Failed"

	// ModelPackageGroupStatusDeleting is a ModelPackageGroupStatus enum value
	ModelPackageGroupStatusDeleting = "Deleting"

	// ModelPackageGroupStatusDeleteFailed is a ModelPackageGroupStatus enum value
	ModelPackageGroupStatusDeleteFailed = "DeleteFailed"
)

// ModelPackageGroupStatus_Values returns all elements of the ModelPackageGroupStatus enum
func ModelPackageGroupStatus_Values() []string {
	return []string{
		ModelPackageGroupStatusPending,
		ModelPackageGroupStatusInProgress,
		ModelPackageGroupStatusCompleted,
		ModelPackageGroupStatusFailed,
		ModelPackageGroupStatusDeleting,
		ModelPackageGroupStatusDeleteFailed,
	}
}

const (
	// ModelPackageSortByName is a ModelPackageSortBy enum value
	ModelPackageSortByName = "Name"

	// ModelPackageSortByCreationTime is a ModelPackageSortBy enum value
	ModelPackageSortByCreationTime = "CreationTime"
)

// ModelPackageSortBy_Values returns all elements of the ModelPackageSortBy enum
func ModelPackageSortBy_Values() []string {
	return []string{
		ModelPackageSortByName,
		ModelPackageSortByCreationTime,
	}
}

const (
	// ModelPackageStatusPending is a ModelPackageStatus enum value
	ModelPackageStatusPending = "Pending"

	// ModelPackageStatusInProgress is a ModelPackageStatus enum value
	ModelPackageStatusInProgress = "InProgress"

	// ModelPackageStatusCompleted is a ModelPackageStatus enum value
	ModelPackageStatusCompleted = "Completed"

	// ModelPackageStatusFailed is a ModelPackageStatus enum value
	ModelPackageStatusFailed = "Failed"

	// ModelPackageStatusDeleting is a ModelPackageStatus enum value
	ModelPackageStatusDeleting = "Deleting"
)

// ModelPackageStatus_Values returns all elements of the ModelPackageStatus enum
func ModelPackageStatus_Values() []string {
	return []string{
		ModelPackageStatusPending,
		ModelPackageStatusInProgress,
		ModelPackageStatusCompleted,
		ModelPackageStatusFailed,
		ModelPackageStatusDeleting,
	}
}

const (
	// ModelPackageTypeVersioned is a ModelPackageType enum value
	ModelPackageTypeVersioned = "Versioned"

	// ModelPackageTypeUnversioned is a ModelPackageType enum value
	ModelPackageTypeUnversioned = "Unversioned"

	// ModelPackageTypeBoth is a ModelPackageType enum value
	ModelPackageTypeBoth = "Both"
)

// ModelPackageType_Values returns all elements of the ModelPackageType enum
func ModelPackageType_Values() []string {
	return []string{
		ModelPackageTypeVersioned,
		ModelPackageTypeUnversioned,
		ModelPackageTypeBoth,
	}
}

const (
	// ModelSortKeyName is a ModelSortKey enum value
	ModelSortKeyName = "Name"

	// ModelSortKeyCreationTime is a ModelSortKey enum value
	ModelSortKeyCreationTime = "CreationTime"
)

// ModelSortKey_Values returns all elements of the ModelSortKey enum
func ModelSortKey_Values() []string {
	return []string{
		ModelSortKeyName,
		ModelSortKeyCreationTime,
	}
}

const (
	// ModelVariantActionRetain is a ModelVariantAction enum value
	ModelVariantActionRetain = "Retain"

	// ModelVariantActionRemove is a ModelVariantAction enum value
	ModelVariantActionRemove = "Remove"

	// ModelVariantActionPromote is a ModelVariantAction enum value
	ModelVariantActionPromote = "Promote"
)

// ModelVariantAction_Values returns all elements of the ModelVariantAction enum
func ModelVariantAction_Values() []string {
	return []string{
		ModelVariantActionRetain,
		ModelVariantActionRemove,
		ModelVariantActionPromote,
	}
}

const (
	// ModelVariantStatusCreating is a ModelVariantStatus enum value
	ModelVariantStatusCreating = "Creating"

	// ModelVariantStatusUpdating is a ModelVariantStatus enum value
	ModelVariantStatusUpdating = "Updating"

	// ModelVariantStatusInService is a ModelVariantStatus enum value
	ModelVariantStatusInService = "InService"

	// ModelVariantStatusDeleting is a ModelVariantStatus enum value
	ModelVariantStatusDeleting = "Deleting"

	// ModelVariantStatusDeleted is a ModelVariantStatus enum value
	ModelVariantStatusDeleted = "Deleted"
)

// ModelVariantStatus_Values returns all elements of the ModelVariantStatus enum
func ModelVariantStatus_Values() []string {
	return []string{
		ModelVariantStatusCreating,
		ModelVariantStatusUpdating,
		ModelVariantStatusInService,
		ModelVariantStatusDeleting,
		ModelVariantStatusDeleted,
	}
}

const (
	// MonitoringAlertHistorySortKeyCreationTime is a MonitoringAlertHistorySortKey enum value
	MonitoringAlertHistorySortKeyCreationTime = "CreationTime"

	// MonitoringAlertHistorySortKeyStatus is a MonitoringAlertHistorySortKey enum value
	MonitoringAlertHistorySortKeyStatus = "Status"
)

// MonitoringAlertHistorySortKey_Values returns all elements of the MonitoringAlertHistorySortKey enum
func MonitoringAlertHistorySortKey_Values() []string {
	return []string{
		MonitoringAlertHistorySortKeyCreationTime,
		MonitoringAlertHistorySortKeyStatus,
	}
}

const (
	// MonitoringAlertStatusInAlert is a MonitoringAlertStatus enum value
	MonitoringAlertStatusInAlert = "InAlert"

	// MonitoringAlertStatusOk is a MonitoringAlertStatus enum value
	MonitoringAlertStatusOk = "OK"
)

// MonitoringAlertStatus_Values returns all elements of the MonitoringAlertStatus enum
func MonitoringAlertStatus_Values() []string {
	return []string{
		MonitoringAlertStatusInAlert,
		MonitoringAlertStatusOk,
	}
}

const (
	// MonitoringExecutionSortKeyCreationTime is a MonitoringExecutionSortKey enum value
	MonitoringExecutionSortKeyCreationTime = "CreationTime"

	// MonitoringExecutionSortKeyScheduledTime is a MonitoringExecutionSortKey enum value
	MonitoringExecutionSortKeyScheduledTime = "ScheduledTime"

	// MonitoringExecutionSortKeyStatus is a MonitoringExecutionSortKey enum value
	MonitoringExecutionSortKeyStatus = "Status"
)

// MonitoringExecutionSortKey_Values returns all elements of the MonitoringExecutionSortKey enum
func MonitoringExecutionSortKey_Values() []string {
	return []string{
		MonitoringExecutionSortKeyCreationTime,
		MonitoringExecutionSortKeyScheduledTime,
		MonitoringExecutionSortKeyStatus,
	}
}

const (
	// MonitoringJobDefinitionSortKeyName is a MonitoringJobDefinitionSortKey enum value
	MonitoringJobDefinitionSortKeyName = "Name"

	// MonitoringJobDefinitionSortKeyCreationTime is a MonitoringJobDefinitionSortKey enum value
	MonitoringJobDefinitionSortKeyCreationTime = "CreationTime"
)

// MonitoringJobDefinitionSortKey_Values returns all elements of the MonitoringJobDefinitionSortKey enum
func MonitoringJobDefinitionSortKey_Values() []string {
	return []string{
		MonitoringJobDefinitionSortKeyName,
		MonitoringJobDefinitionSortKeyCreationTime,
	}
}

const (
	// MonitoringProblemTypeBinaryClassification is a MonitoringProblemType enum value
	MonitoringProblemTypeBinaryClassification = "BinaryClassification"

	// MonitoringProblemTypeMulticlassClassification is a MonitoringProblemType enum value
	MonitoringProblemTypeMulticlassClassification = "MulticlassClassification"

	// MonitoringProblemTypeRegression is a MonitoringProblemType enum value
	MonitoringProblemTypeRegression = "Regression"
)

// MonitoringProblemType_Values returns all elements of the MonitoringProblemType enum
func MonitoringProblemType_Values() []string {
	return []string{
		MonitoringProblemTypeBinaryClassification,
		MonitoringProblemTypeMulticlassClassification,
		MonitoringProblemTypeRegression,
	}
}

const (
	// MonitoringScheduleSortKeyName is a MonitoringScheduleSortKey enum value
	MonitoringScheduleSortKeyName = "Name"

	// MonitoringScheduleSortKeyCreationTime is a MonitoringScheduleSortKey enum value
	MonitoringScheduleSortKeyCreationTime = "CreationTime"

	// MonitoringScheduleSortKeyStatus is a MonitoringScheduleSortKey enum value
	MonitoringScheduleSortKeyStatus = "Status"
)

// MonitoringScheduleSortKey_Values returns all elements of the MonitoringScheduleSortKey enum
func MonitoringScheduleSortKey_Values() []string {
	return []string{
		MonitoringScheduleSortKeyName,
		MonitoringScheduleSortKeyCreationTime,
		MonitoringScheduleSortKeyStatus,
	}
}

const (
	// MonitoringTypeDataQuality is a MonitoringType enum value
	MonitoringTypeDataQuality = "DataQuality"

	// MonitoringTypeModelQuality is a MonitoringType enum value
	MonitoringTypeModelQuality = "ModelQuality"

	// MonitoringTypeModelBias is a MonitoringType enum value
	MonitoringTypeModelBias = "ModelBias"

	// MonitoringTypeModelExplainability is a MonitoringType enum value
	MonitoringTypeModelExplainability = "ModelExplainability"
)

// MonitoringType_Values returns all elements of the MonitoringType enum
func MonitoringType_Values() []string {
	return []string{
		MonitoringTypeDataQuality,
		MonitoringTypeModelQuality,
		MonitoringTypeModelBias,
		MonitoringTypeModelExplainability,
	}
}

const (
	// NotebookInstanceAcceleratorTypeMlEia1Medium is a NotebookInstanceAcceleratorType enum value
	NotebookInstanceAcceleratorTypeMlEia1Medium = "ml.eia1.medium"

	// NotebookInstanceAcceleratorTypeMlEia1Large is a NotebookInstanceAcceleratorType enum value
	NotebookInstanceAcceleratorTypeMlEia1Large = "ml.eia1.large"

	// NotebookInstanceAcceleratorTypeMlEia1Xlarge is a NotebookInstanceAcceleratorType enum value
	NotebookInstanceAcceleratorTypeMlEia1Xlarge = "ml.eia1.xlarge"

	// NotebookInstanceAcceleratorTypeMlEia2Medium is a NotebookInstanceAcceleratorType enum value
	NotebookInstanceAcceleratorTypeMlEia2Medium = "ml.eia2.medium"

	// NotebookInstanceAcceleratorTypeMlEia2Large is a NotebookInstanceAcceleratorType enum value
	NotebookInstanceAcceleratorTypeMlEia2Large = "ml.eia2.large"

	// NotebookInstanceAcceleratorTypeMlEia2Xlarge is a NotebookInstanceAcceleratorType enum value
	NotebookInstanceAcceleratorTypeMlEia2Xlarge = "ml.eia2.xlarge"
)

// NotebookInstanceAcceleratorType_Values returns all elements of the NotebookInstanceAcceleratorType enum
func NotebookInstanceAcceleratorType_Values() []string {
	return []string{
		NotebookInstanceAcceleratorTypeMlEia1Medium,
		NotebookInstanceAcceleratorTypeMlEia1Large,
		NotebookInstanceAcceleratorTypeMlEia1Xlarge,
		NotebookInstanceAcceleratorTypeMlEia2Medium,
		NotebookInstanceAcceleratorTypeMlEia2Large,
		NotebookInstanceAcceleratorTypeMlEia2Xlarge,
	}
}

const (
	// NotebookInstanceLifecycleConfigSortKeyName is a NotebookInstanceLifecycleConfigSortKey enum value
	NotebookInstanceLifecycleConfigSortKeyName = "Name"

	// NotebookInstanceLifecycleConfigSortKeyCreationTime is a NotebookInstanceLifecycleConfigSortKey enum value
	NotebookInstanceLifecycleConfigSortKeyCreationTime = "CreationTime"

	// NotebookInstanceLifecycleConfigSortKeyLastModifiedTime is a NotebookInstanceLifecycleConfigSortKey enum value
	NotebookInstanceLifecycleConfigSortKeyLastModifiedTime = "LastModifiedTime"
)

// NotebookInstanceLifecycleConfigSortKey_Values returns all elements of the NotebookInstanceLifecycleConfigSortKey enum
func NotebookInstanceLifecycleConfigSortKey_Values() []string {
	return []string{
		NotebookInstanceLifecycleConfigSortKeyName,
		NotebookInstanceLifecycleConfigSortKeyCreationTime,
		NotebookInstanceLifecycleConfigSortKeyLastModifiedTime,
	}
}

const (
	// NotebookInstanceLifecycleConfigSortOrderAscending is a NotebookInstanceLifecycleConfigSortOrder enum value
	NotebookInstanceLifecycleConfigSortOrderAscending = "Ascending"

	// NotebookInstanceLifecycleConfigSortOrderDescending is a NotebookInstanceLifecycleConfigSortOrder enum value
	NotebookInstanceLifecycleConfigSortOrderDescending = "Descending"
)

// NotebookInstanceLifecycleConfigSortOrder_Values returns all elements of the NotebookInstanceLifecycleConfigSortOrder enum
func NotebookInstanceLifecycleConfigSortOrder_Values() []string {
	return []string{
		NotebookInstanceLifecycleConfigSortOrderAscending,
		NotebookInstanceLifecycleConfigSortOrderDescending,
	}
}

const (
	// NotebookInstanceSortKeyName is a NotebookInstanceSortKey enum value
	NotebookInstanceSortKeyName = "Name"

	// NotebookInstanceSortKeyCreationTime is a NotebookInstanceSortKey enum value
	NotebookInstanceSortKeyCreationTime = "CreationTime"

	// NotebookInstanceSortKeyStatus is a NotebookInstanceSortKey enum value
	NotebookInstanceSortKeyStatus = "Status"
)

// NotebookInstanceSortKey_Values returns all elements of the NotebookInstanceSortKey enum
func NotebookInstanceSortKey_Values() []string {
	return []string{
		NotebookInstanceSortKeyName,
		NotebookInstanceSortKeyCreationTime,
		NotebookInstanceSortKeyStatus,
	}
}

const (
	// NotebookInstanceSortOrderAscending is a NotebookInstanceSortOrder enum value
	NotebookInstanceSortOrderAscending = "Ascending"

	// NotebookInstanceSortOrderDescending is a NotebookInstanceSortOrder enum value
	NotebookInstanceSortOrderDescending = "Descending"
)

// NotebookInstanceSortOrder_Values returns all elements of the NotebookInstanceSortOrder enum
func NotebookInstanceSortOrder_Values() []string {
	return []string{
		NotebookInstanceSortOrderAscending,
		NotebookInstanceSortOrderDescending,
	}
}

const (
	// NotebookInstanceStatusPending is a NotebookInstanceStatus enum value
	NotebookInstanceStatusPending = "Pending"

	// NotebookInstanceStatusInService is a NotebookInstanceStatus enum value
	NotebookInstanceStatusInService = "InService"

	// NotebookInstanceStatusStopping is a NotebookInstanceStatus enum value
	NotebookInstanceStatusStopping = "Stopping"

	// NotebookInstanceStatusStopped is a NotebookInstanceStatus enum value
	NotebookInstanceStatusStopped = "Stopped"

	// NotebookInstanceStatusFailed is a NotebookInstanceStatus enum value
	NotebookInstanceStatusFailed = "Failed"

	// NotebookInstanceStatusDeleting is a NotebookInstanceStatus enum value
	NotebookInstanceStatusDeleting = "Deleting"

	// NotebookInstanceStatusUpdating is a NotebookInstanceStatus enum value
	NotebookInstanceStatusUpdating = "Updating"
)

// NotebookInstanceStatus_Values returns all elements of the NotebookInstanceStatus enum
func NotebookInstanceStatus_Values() []string {
	return []string{
		NotebookInstanceStatusPending,
		NotebookInstanceStatusInService,
		NotebookInstanceStatusStopping,
		NotebookInstanceStatusStopped,
		NotebookInstanceStatusFailed,
		NotebookInstanceStatusDeleting,
		NotebookInstanceStatusUpdating,
	}
}

const (
	// NotebookOutputOptionAllowed is a NotebookOutputOption enum value
	NotebookOutputOptionAllowed = "Allowed"

	// NotebookOutputOptionDisabled is a NotebookOutputOption enum value
	NotebookOutputOptionDisabled = "Disabled"
)

// NotebookOutputOption_Values returns all elements of the NotebookOutputOption enum
func NotebookOutputOption_Values() []string {
	return []string{
		NotebookOutputOptionAllowed,
		NotebookOutputOptionDisabled,
	}
}

const (
	// ObjectiveStatusSucceeded is a ObjectiveStatus enum value
	ObjectiveStatusSucceeded = "Succeeded"

	// ObjectiveStatusPending is a ObjectiveStatus enum value
	ObjectiveStatusPending = "Pending"

	// ObjectiveStatusFailed is a ObjectiveStatus enum value
	ObjectiveStatusFailed = "Failed"
)

// ObjectiveStatus_Values returns all elements of the ObjectiveStatus enum
func ObjectiveStatus_Values() []string {
	return []string{
		ObjectiveStatusSucceeded,
		ObjectiveStatusPending,
		ObjectiveStatusFailed,
	}
}

const (
	// OfflineStoreStatusValueActive is a OfflineStoreStatusValue enum value
	OfflineStoreStatusValueActive = "Active"

	// OfflineStoreStatusValueBlocked is a OfflineStoreStatusValue enum value
	OfflineStoreStatusValueBlocked = "Blocked"

	// OfflineStoreStatusValueDisabled is a OfflineStoreStatusValue enum value
	OfflineStoreStatusValueDisabled = "Disabled"
)

// OfflineStoreStatusValue_Values returns all elements of the OfflineStoreStatusValue enum
func OfflineStoreStatusValue_Values() []string {
	return []string{
		OfflineStoreStatusValueActive,
		OfflineStoreStatusValueBlocked,
		OfflineStoreStatusValueDisabled,
	}
}

const (
	// OperatorEquals is a Operator enum value
	OperatorEquals = "Equals"

	// OperatorNotEquals is a Operator enum value
	OperatorNotEquals = "NotEquals"

	// OperatorGreaterThan is a Operator enum value
	OperatorGreaterThan = "GreaterThan"

	// OperatorGreaterThanOrEqualTo is a Operator enum value
	OperatorGreaterThanOrEqualTo = "GreaterThanOrEqualTo"

	// OperatorLessThan is a Operator enum value
	OperatorLessThan = "LessThan"

	// OperatorLessThanOrEqualTo is a Operator enum value
	OperatorLessThanOrEqualTo = "LessThanOrEqualTo"

	// OperatorContains is a Operator enum value
	OperatorContains = "Contains"

	// OperatorExists is a Operator enum value
	OperatorExists = "Exists"

	// OperatorNotExists is a Operator enum value
	OperatorNotExists = "NotExists"

	// OperatorIn is a Operator enum value
	OperatorIn = "In"
)

// Operator_Values returns all elements of the Operator enum
func Operator_Values() []string {
	return []string{
		OperatorEquals,
		OperatorNotEquals,
		OperatorGreaterThan,
		OperatorGreaterThanOrEqualTo,
		OperatorLessThan,
		OperatorLessThanOrEqualTo,
		OperatorContains,
		OperatorExists,
		OperatorNotExists,
		OperatorIn,
	}
}

const (
	// OrderKeyAscending is a OrderKey enum value
	OrderKeyAscending = "Ascending"

	// OrderKeyDescending is a OrderKey enum value
	OrderKeyDescending = "Descending"
)

// OrderKey_Values returns all elements of the OrderKey enum
func OrderKey_Values() []string {
	return []string{
		OrderKeyAscending,
		OrderKeyDescending,
	}
}

const (
	// OutputCompressionTypeGzip is a OutputCompressionType enum value
	OutputCompressionTypeGzip = "GZIP"

	// OutputCompressionTypeNone is a OutputCompressionType enum value
	OutputCompressionTypeNone = "NONE"
)

// OutputCompressionType_Values returns all elements of the OutputCompressionType enum
func OutputCompressionType_Values() []string {
	return []string{
		OutputCompressionTypeGzip,
		OutputCompressionTypeNone,
	}
}

const (
	// ParameterTypeInteger is a ParameterType enum value
	ParameterTypeInteger = "Integer"

	// ParameterTypeContinuous is a ParameterType enum value
	ParameterTypeContinuous = "Continuous"

	// ParameterTypeCategorical is a ParameterType enum value
	ParameterTypeCategorical = "Categorical"

	// ParameterTypeFreeText is a ParameterType enum value
	ParameterTypeFreeText = "FreeText"
)

// ParameterType_Values returns all elements of the ParameterType enum
func ParameterType_Values() []string {
	return []string{
		ParameterTypeInteger,
		ParameterTypeContinuous,
		ParameterTypeCategorical,
		ParameterTypeFreeText,
	}
}

const (
	// PipelineExecutionStatusExecuting is a PipelineExecutionStatus enum value
	PipelineExecutionStatusExecuting = "Executing"

	// PipelineExecutionStatusStopping is a PipelineExecutionStatus enum value
	PipelineExecutionStatusStopping = "Stopping"

	// PipelineExecutionStatusStopped is a PipelineExecutionStatus enum value
	PipelineExecutionStatusStopped = "Stopped"

	// PipelineExecutionStatusFailed is a PipelineExecutionStatus enum value
	PipelineExecutionStatusFailed = "Failed"

	// PipelineExecutionStatusSucceeded is a PipelineExecutionStatus enum value
	PipelineExecutionStatusSucceeded = "Succeeded"
)

// PipelineExecutionStatus_Values returns all elements of the PipelineExecutionStatus enum
func PipelineExecutionStatus_Values() []string {
	return []string{
		PipelineExecutionStatusExecuting,
		PipelineExecutionStatusStopping,
		PipelineExecutionStatusStopped,
		PipelineExecutionStatusFailed,
		PipelineExecutionStatusSucceeded,
	}
}

const (
	// PipelineStatusActive is a PipelineStatus enum value
	PipelineStatusActive = "Active"

	// PipelineStatusDeleting is a PipelineStatus enum value
	PipelineStatusDeleting = "Deleting"
)

// PipelineStatus_Values returns all elements of the PipelineStatus enum
func PipelineStatus_Values() []string {
	return []string{
		PipelineStatusActive,
		PipelineStatusDeleting,
	}
}

const (
	// ProblemTypeBinaryClassification is a ProblemType enum value
	ProblemTypeBinaryClassification = "BinaryClassification"

	// ProblemTypeMulticlassClassification is a ProblemType enum value
	ProblemTypeMulticlassClassification = "MulticlassClassification"

	// ProblemTypeRegression is a ProblemType enum value
	ProblemTypeRegression = "Regression"
)

// ProblemType_Values returns all elements of the ProblemType enum
func ProblemType_Values() []string {
	return []string{
		ProblemTypeBinaryClassification,
		ProblemTypeMulticlassClassification,
		ProblemTypeRegression,
	}
}

const (
	// ProcessingInstanceTypeMlT3Medium is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlT3Medium = "ml.t3.medium"

	// ProcessingInstanceTypeMlT3Large is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlT3Large = "ml.t3.large"

	// ProcessingInstanceTypeMlT3Xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlT3Xlarge = "ml.t3.xlarge"

	// ProcessingInstanceTypeMlT32xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlT32xlarge = "ml.t3.2xlarge"

	// ProcessingInstanceTypeMlM4Xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlM4Xlarge = "ml.m4.xlarge"

	// ProcessingInstanceTypeMlM42xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlM42xlarge = "ml.m4.2xlarge"

	// ProcessingInstanceTypeMlM44xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlM44xlarge = "ml.m4.4xlarge"

	// ProcessingInstanceTypeMlM410xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlM410xlarge = "ml.m4.10xlarge"

	// ProcessingInstanceTypeMlM416xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlM416xlarge = "ml.m4.16xlarge"

	// ProcessingInstanceTypeMlC4Xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlC4Xlarge = "ml.c4.xlarge"

	// ProcessingInstanceTypeMlC42xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlC42xlarge = "ml.c4.2xlarge"

	// ProcessingInstanceTypeMlC44xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlC44xlarge = "ml.c4.4xlarge"

	// ProcessingInstanceTypeMlC48xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlC48xlarge = "ml.c4.8xlarge"

	// ProcessingInstanceTypeMlP2Xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlP2Xlarge = "ml.p2.xlarge"

	// ProcessingInstanceTypeMlP28xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlP28xlarge = "ml.p2.8xlarge"

	// ProcessingInstanceTypeMlP216xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlP216xlarge = "ml.p2.16xlarge"

	// ProcessingInstanceTypeMlP32xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlP32xlarge = "ml.p3.2xlarge"

	// ProcessingInstanceTypeMlP38xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlP38xlarge = "ml.p3.8xlarge"

	// ProcessingInstanceTypeMlP316xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlP316xlarge = "ml.p3.16xlarge"

	// ProcessingInstanceTypeMlC5Xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlC5Xlarge = "ml.c5.xlarge"

	// ProcessingInstanceTypeMlC52xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlC52xlarge = "ml.c5.2xlarge"

	// ProcessingInstanceTypeMlC54xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlC54xlarge = "ml.c5.4xlarge"

	// ProcessingInstanceTypeMlC59xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlC59xlarge = "ml.c5.9xlarge"

	// ProcessingInstanceTypeMlC518xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlC518xlarge = "ml.c5.18xlarge"

	// ProcessingInstanceTypeMlM5Large is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlM5Large = "ml.m5.large"

	// ProcessingInstanceTypeMlM5Xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlM5Xlarge = "ml.m5.xlarge"

	// ProcessingInstanceTypeMlM52xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlM52xlarge = "ml.m5.2xlarge"

	// ProcessingInstanceTypeMlM54xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlM54xlarge = "ml.m5.4xlarge"

	// ProcessingInstanceTypeMlM512xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlM512xlarge = "ml.m5.12xlarge"

	// ProcessingInstanceTypeMlM524xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlM524xlarge = "ml.m5.24xlarge"

	// ProcessingInstanceTypeMlR5Large is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlR5Large = "ml.r5.large"

	// ProcessingInstanceTypeMlR5Xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlR5Xlarge = "ml.r5.xlarge"

	// ProcessingInstanceTypeMlR52xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlR52xlarge = "ml.r5.2xlarge"

	// ProcessingInstanceTypeMlR54xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlR54xlarge = "ml.r5.4xlarge"

	// ProcessingInstanceTypeMlR58xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlR58xlarge = "ml.r5.8xlarge"

	// ProcessingInstanceTypeMlR512xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlR512xlarge = "ml.r5.12xlarge"

	// ProcessingInstanceTypeMlR516xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlR516xlarge = "ml.r5.16xlarge"

	// ProcessingInstanceTypeMlR524xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlR524xlarge = "ml.r5.24xlarge"

	// ProcessingInstanceTypeMlG4dnXlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlG4dnXlarge = "ml.g4dn.xlarge"

	// ProcessingInstanceTypeMlG4dn2xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlG4dn2xlarge = "ml.g4dn.2xlarge"

	// ProcessingInstanceTypeMlG4dn4xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlG4dn4xlarge = "ml.g4dn.4xlarge"

	// ProcessingInstanceTypeMlG4dn8xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlG4dn8xlarge = "ml.g4dn.8xlarge"

	// ProcessingInstanceTypeMlG4dn12xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlG4dn12xlarge = "ml.g4dn.12xlarge"

	// ProcessingInstanceTypeMlG4dn16xlarge is a ProcessingInstanceType enum value
	ProcessingInstanceTypeMlG4dn16xlarge = "ml.g4dn.16xlarge"
)

// ProcessingInstanceType_Values returns all elements of the ProcessingInstanceType enum
func ProcessingInstanceType_Values() []string {
	return []string{
		ProcessingInstanceTypeMlT3Medium,
		ProcessingInstanceTypeMlT3Large,
		ProcessingInstanceTypeMlT3Xlarge,
		ProcessingInstanceTypeMlT32xlarge,
		ProcessingInstanceTypeMlM4Xlarge,
		ProcessingInstanceTypeMlM42xlarge,
		ProcessingInstanceTypeMlM44xlarge,
		ProcessingInstanceTypeMlM410xlarge,
		ProcessingInstanceTypeMlM416xlarge,
		ProcessingInstanceTypeMlC4Xlarge,
		ProcessingInstanceTypeMlC42xlarge,
		ProcessingInstanceTypeMlC44xlarge,
		ProcessingInstanceTypeMlC48xlarge,
		ProcessingInstanceTypeMlP2Xlarge,
		ProcessingInstanceTypeMlP28xlarge,
		ProcessingInstanceTypeMlP216xlarge,
		ProcessingInstanceTypeMlP32xlarge,
		ProcessingInstanceTypeMlP38xlarge,
		ProcessingInstanceTypeMlP316xlarge,
		ProcessingInstanceTypeMlC5Xlarge,
		ProcessingInstanceTypeMlC52xlarge,
		ProcessingInstanceTypeMlC54xlarge,
		ProcessingInstanceTypeMlC59xlarge,
		ProcessingInstanceTypeMlC518xlarge,
		ProcessingInstanceTypeMlM5Large,
		ProcessingInstanceTypeMlM5Xlarge,
		ProcessingInstanceTypeMlM52xlarge,
		ProcessingInstanceTypeMlM54xlarge,
		ProcessingInstanceTypeMlM512xlarge,
		ProcessingInstanceTypeMlM524xlarge,
		ProcessingInstanceTypeMlR5Large,
		ProcessingInstanceTypeMlR5Xlarge,
		ProcessingInstanceTypeMlR52xlarge,
		ProcessingInstanceTypeMlR54xlarge,
		ProcessingInstanceTypeMlR58xlarge,
		ProcessingInstanceTypeMlR512xlarge,
		ProcessingInstanceTypeMlR516xlarge,
		ProcessingInstanceTypeMlR524xlarge,
		ProcessingInstanceTypeMlG4dnXlarge,
		ProcessingInstanceTypeMlG4dn2xlarge,
		ProcessingInstanceTypeMlG4dn4xlarge,
		ProcessingInstanceTypeMlG4dn8xlarge,
		ProcessingInstanceTypeMlG4dn12xlarge,
		ProcessingInstanceTypeMlG4dn16xlarge,
	}
}

const (
	// ProcessingJobStatusInProgress is a ProcessingJobStatus enum value
	ProcessingJobStatusInProgress = "InProgress"

	// ProcessingJobStatusCompleted is a ProcessingJobStatus enum value
	ProcessingJobStatusCompleted = "Completed"

	// ProcessingJobStatusFailed is a ProcessingJobStatus enum value
	ProcessingJobStatusFailed = "Failed"

	// ProcessingJobStatusStopping is a ProcessingJobStatus enum value
	ProcessingJobStatusStopping = "Stopping"

	// ProcessingJobStatusStopped is a ProcessingJobStatus enum value
	ProcessingJobStatusStopped = "Stopped"
)

// ProcessingJobStatus_Values returns all elements of the ProcessingJobStatus enum
func ProcessingJobStatus_Values() []string {
	return []string{
		ProcessingJobStatusInProgress,
		ProcessingJobStatusCompleted,
		ProcessingJobStatusFailed,
		ProcessingJobStatusStopping,
		ProcessingJobStatusStopped,
	}
}

const (
	// ProcessingS3CompressionTypeNone is a ProcessingS3CompressionType enum value
	ProcessingS3CompressionTypeNone = "None"

	// ProcessingS3CompressionTypeGzip is a ProcessingS3CompressionType enum value
	ProcessingS3CompressionTypeGzip = "Gzip"
)

// ProcessingS3CompressionType_Values returns all elements of the ProcessingS3CompressionType enum
func ProcessingS3CompressionType_Values() []string {
	return []string{
		ProcessingS3CompressionTypeNone,
		ProcessingS3CompressionTypeGzip,
	}
}

const (
	// ProcessingS3DataDistributionTypeFullyReplicated is a ProcessingS3DataDistributionType enum value
	ProcessingS3DataDistributionTypeFullyReplicated = "FullyReplicated"

	// ProcessingS3DataDistributionTypeShardedByS3key is a ProcessingS3DataDistributionType enum value
	ProcessingS3DataDistributionTypeShardedByS3key = "ShardedByS3Key"
)

// ProcessingS3DataDistributionType_Values returns all elements of the ProcessingS3DataDistributionType enum
func ProcessingS3DataDistributionType_Values() []string {
	return []string{
		ProcessingS3DataDistributionTypeFullyReplicated,
		ProcessingS3DataDistributionTypeShardedByS3key,
	}
}

const (
	// ProcessingS3DataTypeManifestFile is a ProcessingS3DataType enum value
	ProcessingS3DataTypeManifestFile = "ManifestFile"

	// ProcessingS3DataTypeS3prefix is a ProcessingS3DataType enum value
	ProcessingS3DataTypeS3prefix = "S3Prefix"
)

// ProcessingS3DataType_Values returns all elements of the ProcessingS3DataType enum
func ProcessingS3DataType_Values() []string {
	return []string{
		ProcessingS3DataTypeManifestFile,
		ProcessingS3DataTypeS3prefix,
	}
}

const (
	// ProcessingS3InputModePipe is a ProcessingS3InputMode enum value
	ProcessingS3InputModePipe = "Pipe"

	// ProcessingS3InputModeFile is a ProcessingS3InputMode enum value
	ProcessingS3InputModeFile = "File"
)

// ProcessingS3InputMode_Values returns all elements of the ProcessingS3InputMode enum
func ProcessingS3InputMode_Values() []string {
	return []string{
		ProcessingS3InputModePipe,
		ProcessingS3InputModeFile,
	}
}

const (
	// ProcessingS3UploadModeContinuous is a ProcessingS3UploadMode enum value
	ProcessingS3UploadModeContinuous = "Continuous"

	// ProcessingS3UploadModeEndOfJob is a ProcessingS3UploadMode enum value
	ProcessingS3UploadModeEndOfJob = "EndOfJob"
)

// ProcessingS3UploadMode_Values returns all elements of the ProcessingS3UploadMode enum
func ProcessingS3UploadMode_Values() []string {
	return []string{
		ProcessingS3UploadModeContinuous,
		ProcessingS3UploadModeEndOfJob,
	}
}

const (
	// ProcessorCpu is a Processor enum value
	ProcessorCpu = "CPU"

	// ProcessorGpu is a Processor enum value
	ProcessorGpu = "GPU"
)

// Processor_Values returns all elements of the Processor enum
func Processor_Values() []string {
	return []string{
		ProcessorCpu,
		ProcessorGpu,
	}
}

const (
	// ProductionVariantAcceleratorTypeMlEia1Medium is a ProductionVariantAcceleratorType enum value
	ProductionVariantAcceleratorTypeMlEia1Medium = "ml.eia1.medium"

	// ProductionVariantAcceleratorTypeMlEia1Large is a ProductionVariantAcceleratorType enum value
	ProductionVariantAcceleratorTypeMlEia1Large = "ml.eia1.large"

	// ProductionVariantAcceleratorTypeMlEia1Xlarge is a ProductionVariantAcceleratorType enum value
	ProductionVariantAcceleratorTypeMlEia1Xlarge = "ml.eia1.xlarge"

	// ProductionVariantAcceleratorTypeMlEia2Medium is a ProductionVariantAcceleratorType enum value
	ProductionVariantAcceleratorTypeMlEia2Medium = "ml.eia2.medium"

	// ProductionVariantAcceleratorTypeMlEia2Large is a ProductionVariantAcceleratorType enum value
	ProductionVariantAcceleratorTypeMlEia2Large = "ml.eia2.large"

	// ProductionVariantAcceleratorTypeMlEia2Xlarge is a ProductionVariantAcceleratorType enum value
	ProductionVariantAcceleratorTypeMlEia2Xlarge = "ml.eia2.xlarge"
)

// ProductionVariantAcceleratorType_Values returns all elements of the ProductionVariantAcceleratorType enum
func ProductionVariantAcceleratorType_Values() []string {
	return []string{
		ProductionVariantAcceleratorTypeMlEia1Medium,
		ProductionVariantAcceleratorTypeMlEia1Large,
		ProductionVariantAcceleratorTypeMlEia1Xlarge,
		ProductionVariantAcceleratorTypeMlEia2Medium,
		ProductionVariantAcceleratorTypeMlEia2Large,
		ProductionVariantAcceleratorTypeMlEia2Xlarge,
	}
}

const (
	// ProductionVariantInstanceTypeMlT2Medium is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlT2Medium = "ml.t2.medium"

	// ProductionVariantInstanceTypeMlT2Large is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlT2Large = "ml.t2.large"

	// ProductionVariantInstanceTypeMlT2Xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlT2Xlarge = "ml.t2.xlarge"

	// ProductionVariantInstanceTypeMlT22xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlT22xlarge = "ml.t2.2xlarge"

	// ProductionVariantInstanceTypeMlM4Xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM4Xlarge = "ml.m4.xlarge"

	// ProductionVariantInstanceTypeMlM42xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM42xlarge = "ml.m4.2xlarge"

	// ProductionVariantInstanceTypeMlM44xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM44xlarge = "ml.m4.4xlarge"

	// ProductionVariantInstanceTypeMlM410xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM410xlarge = "ml.m4.10xlarge"

	// ProductionVariantInstanceTypeMlM416xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM416xlarge = "ml.m4.16xlarge"

	// ProductionVariantInstanceTypeMlM5Large is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM5Large = "ml.m5.large"

	// ProductionVariantInstanceTypeMlM5Xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM5Xlarge = "ml.m5.xlarge"

	// ProductionVariantInstanceTypeMlM52xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM52xlarge = "ml.m5.2xlarge"

	// ProductionVariantInstanceTypeMlM54xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM54xlarge = "ml.m5.4xlarge"

	// ProductionVariantInstanceTypeMlM512xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM512xlarge = "ml.m5.12xlarge"

	// ProductionVariantInstanceTypeMlM524xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM524xlarge = "ml.m5.24xlarge"

	// ProductionVariantInstanceTypeMlM5dLarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM5dLarge = "ml.m5d.large"

	// ProductionVariantInstanceTypeMlM5dXlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM5dXlarge = "ml.m5d.xlarge"

	// ProductionVariantInstanceTypeMlM5d2xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM5d2xlarge = "ml.m5d.2xlarge"

	// ProductionVariantInstanceTypeMlM5d4xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM5d4xlarge = "ml.m5d.4xlarge"

	// ProductionVariantInstanceTypeMlM5d12xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM5d12xlarge = "ml.m5d.12xlarge"

	// ProductionVariantInstanceTypeMlM5d24xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM5d24xlarge = "ml.m5d.24xlarge"

	// ProductionVariantInstanceTypeMlC4Large is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC4Large = "ml.c4.large"

	// ProductionVariantInstanceTypeMlC4Xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC4Xlarge = "ml.c4.xlarge"

	// ProductionVariantInstanceTypeMlC42xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC42xlarge = "ml.c4.2xlarge"

	// ProductionVariantInstanceTypeMlC44xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC44xlarge = "ml.c4.4xlarge"

	// ProductionVariantInstanceTypeMlC48xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC48xlarge = "ml.c4.8xlarge"

	// ProductionVariantInstanceTypeMlP2Xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlP2Xlarge = "ml.p2.xlarge"

	// ProductionVariantInstanceTypeMlP28xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlP28xlarge = "ml.p2.8xlarge"

	// ProductionVariantInstanceTypeMlP216xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlP216xlarge = "ml.p2.16xlarge"

	// ProductionVariantInstanceTypeMlP32xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlP32xlarge = "ml.p3.2xlarge"

	// ProductionVariantInstanceTypeMlP38xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlP38xlarge = "ml.p3.8xlarge"

	// ProductionVariantInstanceTypeMlP316xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlP316xlarge = "ml.p3.16xlarge"

	// ProductionVariantInstanceTypeMlC5Large is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC5Large = "ml.c5.large"

	// ProductionVariantInstanceTypeMlC5Xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC5Xlarge = "ml.c5.xlarge"

	// ProductionVariantInstanceTypeMlC52xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC52xlarge = "ml.c5.2xlarge"

	// ProductionVariantInstanceTypeMlC54xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC54xlarge = "ml.c5.4xlarge"

	// ProductionVariantInstanceTypeMlC59xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC59xlarge = "ml.c5.9xlarge"

	// ProductionVariantInstanceTypeMlC518xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC518xlarge = "ml.c5.18xlarge"

	// ProductionVariantInstanceTypeMlC5dLarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC5dLarge = "ml.c5d.large"

	// ProductionVariantInstanceTypeMlC5dXlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC5dXlarge = "ml.c5d.xlarge"

	// ProductionVariantInstanceTypeMlC5d2xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC5d2xlarge = "ml.c5d.2xlarge"

	// ProductionVariantInstanceTypeMlC5d4xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC5d4xlarge = "ml.c5d.4xlarge"

	// ProductionVariantInstanceTypeMlC5d9xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC5d9xlarge = "ml.c5d.9xlarge"

	// ProductionVariantInstanceTypeMlC5d18xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC5d18xlarge = "ml.c5d.18xlarge"

	// ProductionVariantInstanceTypeMlG4dnXlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlG4dnXlarge = "ml.g4dn.xlarge"

	// ProductionVariantInstanceTypeMlG4dn2xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlG4dn2xlarge = "ml.g4dn.2xlarge"

	// ProductionVariantInstanceTypeMlG4dn4xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlG4dn4xlarge = "ml.g4dn.4xlarge"

	// ProductionVariantInstanceTypeMlG4dn8xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlG4dn8xlarge = "ml.g4dn.8xlarge"

	// ProductionVariantInstanceTypeMlG4dn12xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlG4dn12xlarge = "ml.g4dn.12xlarge"

	// ProductionVariantInstanceTypeMlG4dn16xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlG4dn16xlarge = "ml.g4dn.16xlarge"

	// ProductionVariantInstanceTypeMlR5Large is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR5Large = "ml.r5.large"

	// ProductionVariantInstanceTypeMlR5Xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR5Xlarge = "ml.r5.xlarge"

	// ProductionVariantInstanceTypeMlR52xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR52xlarge = "ml.r5.2xlarge"

	// ProductionVariantInstanceTypeMlR54xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR54xlarge = "ml.r5.4xlarge"

	// ProductionVariantInstanceTypeMlR512xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR512xlarge = "ml.r5.12xlarge"

	// ProductionVariantInstanceTypeMlR524xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR524xlarge = "ml.r5.24xlarge"

	// ProductionVariantInstanceTypeMlR5dLarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR5dLarge = "ml.r5d.large"

	// ProductionVariantInstanceTypeMlR5dXlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR5dXlarge = "ml.r5d.xlarge"

	// ProductionVariantInstanceTypeMlR5d2xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR5d2xlarge = "ml.r5d.2xlarge"

	// ProductionVariantInstanceTypeMlR5d4xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR5d4xlarge = "ml.r5d.4xlarge"

	// ProductionVariantInstanceTypeMlR5d12xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR5d12xlarge = "ml.r5d.12xlarge"

	// ProductionVariantInstanceTypeMlR5d24xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR5d24xlarge = "ml.r5d.24xlarge"

	// ProductionVariantInstanceTypeMlInf1Xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlInf1Xlarge = "ml.inf1.xlarge"

	// ProductionVariantInstanceTypeMlInf12xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlInf12xlarge = "ml.inf1.2xlarge"

	// ProductionVariantInstanceTypeMlInf16xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlInf16xlarge = "ml.inf1.6xlarge"

	// ProductionVariantInstanceTypeMlInf124xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlInf124xlarge = "ml.inf1.24xlarge"

	// ProductionVariantInstanceTypeMlDl124xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlDl124xlarge = "ml.dl1.24xlarge"

	// ProductionVariantInstanceTypeMlC6iLarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6iLarge = "ml.c6i.large"

	// ProductionVariantInstanceTypeMlC6iXlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6iXlarge = "ml.c6i.xlarge"

	// ProductionVariantInstanceTypeMlC6i2xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6i2xlarge = "ml.c6i.2xlarge"

	// ProductionVariantInstanceTypeMlC6i4xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6i4xlarge = "ml.c6i.4xlarge"

	// ProductionVariantInstanceTypeMlC6i8xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6i8xlarge = "ml.c6i.8xlarge"

	// ProductionVariantInstanceTypeMlC6i12xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6i12xlarge = "ml.c6i.12xlarge"

	// ProductionVariantInstanceTypeMlC6i16xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6i16xlarge = "ml.c6i.16xlarge"

	// ProductionVariantInstanceTypeMlC6i24xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6i24xlarge = "ml.c6i.24xlarge"

	// ProductionVariantInstanceTypeMlC6i32xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6i32xlarge = "ml.c6i.32xlarge"

	// ProductionVariantInstanceTypeMlG5Xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlG5Xlarge = "ml.g5.xlarge"

	// ProductionVariantInstanceTypeMlG52xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlG52xlarge = "ml.g5.2xlarge"

	// ProductionVariantInstanceTypeMlG54xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlG54xlarge = "ml.g5.4xlarge"

	// ProductionVariantInstanceTypeMlG58xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlG58xlarge = "ml.g5.8xlarge"

	// ProductionVariantInstanceTypeMlG512xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlG512xlarge = "ml.g5.12xlarge"

	// ProductionVariantInstanceTypeMlG516xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlG516xlarge = "ml.g5.16xlarge"

	// ProductionVariantInstanceTypeMlG524xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlG524xlarge = "ml.g5.24xlarge"

	// ProductionVariantInstanceTypeMlG548xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlG548xlarge = "ml.g5.48xlarge"

	// ProductionVariantInstanceTypeMlP4d24xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlP4d24xlarge = "ml.p4d.24xlarge"

	// ProductionVariantInstanceTypeMlC7gLarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC7gLarge = "ml.c7g.large"

	// ProductionVariantInstanceTypeMlC7gXlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC7gXlarge = "ml.c7g.xlarge"

	// ProductionVariantInstanceTypeMlC7g2xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC7g2xlarge = "ml.c7g.2xlarge"

	// ProductionVariantInstanceTypeMlC7g4xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC7g4xlarge = "ml.c7g.4xlarge"

	// ProductionVariantInstanceTypeMlC7g8xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC7g8xlarge = "ml.c7g.8xlarge"

	// ProductionVariantInstanceTypeMlC7g12xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC7g12xlarge = "ml.c7g.12xlarge"

	// ProductionVariantInstanceTypeMlC7g16xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC7g16xlarge = "ml.c7g.16xlarge"

	// ProductionVariantInstanceTypeMlM6gLarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM6gLarge = "ml.m6g.large"

	// ProductionVariantInstanceTypeMlM6gXlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM6gXlarge = "ml.m6g.xlarge"

	// ProductionVariantInstanceTypeMlM6g2xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM6g2xlarge = "ml.m6g.2xlarge"

	// ProductionVariantInstanceTypeMlM6g4xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM6g4xlarge = "ml.m6g.4xlarge"

	// ProductionVariantInstanceTypeMlM6g8xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM6g8xlarge = "ml.m6g.8xlarge"

	// ProductionVariantInstanceTypeMlM6g12xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM6g12xlarge = "ml.m6g.12xlarge"

	// ProductionVariantInstanceTypeMlM6g16xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM6g16xlarge = "ml.m6g.16xlarge"

	// ProductionVariantInstanceTypeMlM6gdLarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM6gdLarge = "ml.m6gd.large"

	// ProductionVariantInstanceTypeMlM6gdXlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM6gdXlarge = "ml.m6gd.xlarge"

	// ProductionVariantInstanceTypeMlM6gd2xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM6gd2xlarge = "ml.m6gd.2xlarge"

	// ProductionVariantInstanceTypeMlM6gd4xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM6gd4xlarge = "ml.m6gd.4xlarge"

	// ProductionVariantInstanceTypeMlM6gd8xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM6gd8xlarge = "ml.m6gd.8xlarge"

	// ProductionVariantInstanceTypeMlM6gd12xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM6gd12xlarge = "ml.m6gd.12xlarge"

	// ProductionVariantInstanceTypeMlM6gd16xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM6gd16xlarge = "ml.m6gd.16xlarge"

	// ProductionVariantInstanceTypeMlC6gLarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6gLarge = "ml.c6g.large"

	// ProductionVariantInstanceTypeMlC6gXlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6gXlarge = "ml.c6g.xlarge"

	// ProductionVariantInstanceTypeMlC6g2xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6g2xlarge = "ml.c6g.2xlarge"

	// ProductionVariantInstanceTypeMlC6g4xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6g4xlarge = "ml.c6g.4xlarge"

	// ProductionVariantInstanceTypeMlC6g8xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6g8xlarge = "ml.c6g.8xlarge"

	// ProductionVariantInstanceTypeMlC6g12xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6g12xlarge = "ml.c6g.12xlarge"

	// ProductionVariantInstanceTypeMlC6g16xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6g16xlarge = "ml.c6g.16xlarge"

	// ProductionVariantInstanceTypeMlC6gdLarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6gdLarge = "ml.c6gd.large"

	// ProductionVariantInstanceTypeMlC6gdXlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6gdXlarge = "ml.c6gd.xlarge"

	// ProductionVariantInstanceTypeMlC6gd2xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6gd2xlarge = "ml.c6gd.2xlarge"

	// ProductionVariantInstanceTypeMlC6gd4xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6gd4xlarge = "ml.c6gd.4xlarge"

	// ProductionVariantInstanceTypeMlC6gd8xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6gd8xlarge = "ml.c6gd.8xlarge"

	// ProductionVariantInstanceTypeMlC6gd12xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6gd12xlarge = "ml.c6gd.12xlarge"

	// ProductionVariantInstanceTypeMlC6gd16xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6gd16xlarge = "ml.c6gd.16xlarge"

	// ProductionVariantInstanceTypeMlC6gnLarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6gnLarge = "ml.c6gn.large"

	// ProductionVariantInstanceTypeMlC6gnXlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6gnXlarge = "ml.c6gn.xlarge"

	// ProductionVariantInstanceTypeMlC6gn2xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6gn2xlarge = "ml.c6gn.2xlarge"

	// ProductionVariantInstanceTypeMlC6gn4xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6gn4xlarge = "ml.c6gn.4xlarge"

	// ProductionVariantInstanceTypeMlC6gn8xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6gn8xlarge = "ml.c6gn.8xlarge"

	// ProductionVariantInstanceTypeMlC6gn12xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6gn12xlarge = "ml.c6gn.12xlarge"

	// ProductionVariantInstanceTypeMlC6gn16xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC6gn16xlarge = "ml.c6gn.16xlarge"

	// ProductionVariantInstanceTypeMlR6gLarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR6gLarge = "ml.r6g.large"

	// ProductionVariantInstanceTypeMlR6gXlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR6gXlarge = "ml.r6g.xlarge"

	// ProductionVariantInstanceTypeMlR6g2xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR6g2xlarge = "ml.r6g.2xlarge"

	// ProductionVariantInstanceTypeMlR6g4xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR6g4xlarge = "ml.r6g.4xlarge"

	// ProductionVariantInstanceTypeMlR6g8xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR6g8xlarge = "ml.r6g.8xlarge"

	// ProductionVariantInstanceTypeMlR6g12xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR6g12xlarge = "ml.r6g.12xlarge"

	// ProductionVariantInstanceTypeMlR6g16xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR6g16xlarge = "ml.r6g.16xlarge"

	// ProductionVariantInstanceTypeMlR6gdLarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR6gdLarge = "ml.r6gd.large"

	// ProductionVariantInstanceTypeMlR6gdXlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR6gdXlarge = "ml.r6gd.xlarge"

	// ProductionVariantInstanceTypeMlR6gd2xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR6gd2xlarge = "ml.r6gd.2xlarge"

	// ProductionVariantInstanceTypeMlR6gd4xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR6gd4xlarge = "ml.r6gd.4xlarge"

	// ProductionVariantInstanceTypeMlR6gd8xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR6gd8xlarge = "ml.r6gd.8xlarge"

	// ProductionVariantInstanceTypeMlR6gd12xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR6gd12xlarge = "ml.r6gd.12xlarge"

	// ProductionVariantInstanceTypeMlR6gd16xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR6gd16xlarge = "ml.r6gd.16xlarge"

	// ProductionVariantInstanceTypeMlP4de24xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlP4de24xlarge = "ml.p4de.24xlarge"

	// ProductionVariantInstanceTypeMlTrn12xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlTrn12xlarge = "ml.trn1.2xlarge"

	// ProductionVariantInstanceTypeMlTrn132xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlTrn132xlarge = "ml.trn1.32xlarge"

	// ProductionVariantInstanceTypeMlTrn1n32xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlTrn1n32xlarge = "ml.trn1n.32xlarge"

	// ProductionVariantInstanceTypeMlInf2Xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlInf2Xlarge = "ml.inf2.xlarge"

	// ProductionVariantInstanceTypeMlInf28xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlInf28xlarge = "ml.inf2.8xlarge"

	// ProductionVariantInstanceTypeMlInf224xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlInf224xlarge = "ml.inf2.24xlarge"

	// ProductionVariantInstanceTypeMlInf248xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlInf248xlarge = "ml.inf2.48xlarge"

	// ProductionVariantInstanceTypeMlP548xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlP548xlarge = "ml.p5.48xlarge"

	// ProductionVariantInstanceTypeMlM7iLarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM7iLarge = "ml.m7i.large"

	// ProductionVariantInstanceTypeMlM7iXlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM7iXlarge = "ml.m7i.xlarge"

	// ProductionVariantInstanceTypeMlM7i2xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM7i2xlarge = "ml.m7i.2xlarge"

	// ProductionVariantInstanceTypeMlM7i4xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM7i4xlarge = "ml.m7i.4xlarge"

	// ProductionVariantInstanceTypeMlM7i8xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM7i8xlarge = "ml.m7i.8xlarge"

	// ProductionVariantInstanceTypeMlM7i12xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM7i12xlarge = "ml.m7i.12xlarge"

	// ProductionVariantInstanceTypeMlM7i16xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM7i16xlarge = "ml.m7i.16xlarge"

	// ProductionVariantInstanceTypeMlM7i24xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM7i24xlarge = "ml.m7i.24xlarge"

	// ProductionVariantInstanceTypeMlM7i48xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlM7i48xlarge = "ml.m7i.48xlarge"

	// ProductionVariantInstanceTypeMlC7iLarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC7iLarge = "ml.c7i.large"

	// ProductionVariantInstanceTypeMlC7iXlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC7iXlarge = "ml.c7i.xlarge"

	// ProductionVariantInstanceTypeMlC7i2xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC7i2xlarge = "ml.c7i.2xlarge"

	// ProductionVariantInstanceTypeMlC7i4xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC7i4xlarge = "ml.c7i.4xlarge"

	// ProductionVariantInstanceTypeMlC7i8xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC7i8xlarge = "ml.c7i.8xlarge"

	// ProductionVariantInstanceTypeMlC7i12xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC7i12xlarge = "ml.c7i.12xlarge"

	// ProductionVariantInstanceTypeMlC7i16xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC7i16xlarge = "ml.c7i.16xlarge"

	// ProductionVariantInstanceTypeMlC7i24xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC7i24xlarge = "ml.c7i.24xlarge"

	// ProductionVariantInstanceTypeMlC7i48xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlC7i48xlarge = "ml.c7i.48xlarge"

	// ProductionVariantInstanceTypeMlR7iLarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR7iLarge = "ml.r7i.large"

	// ProductionVariantInstanceTypeMlR7iXlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR7iXlarge = "ml.r7i.xlarge"

	// ProductionVariantInstanceTypeMlR7i2xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR7i2xlarge = "ml.r7i.2xlarge"

	// ProductionVariantInstanceTypeMlR7i4xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR7i4xlarge = "ml.r7i.4xlarge"

	// ProductionVariantInstanceTypeMlR7i8xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR7i8xlarge = "ml.r7i.8xlarge"

	// ProductionVariantInstanceTypeMlR7i12xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR7i12xlarge = "ml.r7i.12xlarge"

	// ProductionVariantInstanceTypeMlR7i16xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR7i16xlarge = "ml.r7i.16xlarge"

	// ProductionVariantInstanceTypeMlR7i24xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR7i24xlarge = "ml.r7i.24xlarge"

	// ProductionVariantInstanceTypeMlR7i48xlarge is a ProductionVariantInstanceType enum value
	ProductionVariantInstanceTypeMlR7i48xlarge = "ml.r7i.48xlarge"
)

// ProductionVariantInstanceType_Values returns all elements of the ProductionVariantInstanceType enum
func ProductionVariantInstanceType_Values() []string {
	return []string{
		ProductionVariantInstanceTypeMlT2Medium,
		ProductionVariantInstanceTypeMlT2Large,
		ProductionVariantInstanceTypeMlT2Xlarge,
		ProductionVariantInstanceTypeMlT22xlarge,
		ProductionVariantInstanceTypeMlM4Xlarge,
		ProductionVariantInstanceTypeMlM42xlarge,
		ProductionVariantInstanceTypeMlM44xlarge,
		ProductionVariantInstanceTypeMlM410xlarge,
		ProductionVariantInstanceTypeMlM416xlarge,
		ProductionVariantInstanceTypeMlM5Large,
		ProductionVariantInstanceTypeMlM5Xlarge,
		ProductionVariantInstanceTypeMlM52xlarge,
		ProductionVariantInstanceTypeMlM54xlarge,
		ProductionVariantInstanceTypeMlM512xlarge,
		ProductionVariantInstanceTypeMlM524xlarge,
		ProductionVariantInstanceTypeMlM5dLarge,
		ProductionVariantInstanceTypeMlM5dXlarge,
		ProductionVariantInstanceTypeMlM5d2xlarge,
		ProductionVariantInstanceTypeMlM5d4xlarge,
		ProductionVariantInstanceTypeMlM5d12xlarge,
		ProductionVariantInstanceTypeMlM5d24xlarge,
		ProductionVariantInstanceTypeMlC4Large,
		ProductionVariantInstanceTypeMlC4Xlarge,
		ProductionVariantInstanceTypeMlC42xlarge,
		ProductionVariantInstanceTypeMlC44xlarge,
		ProductionVariantInstanceTypeMlC48xlarge,
		ProductionVariantInstanceTypeMlP2Xlarge,
		ProductionVariantInstanceTypeMlP28xlarge,
		ProductionVariantInstanceTypeMlP216xlarge,
		ProductionVariantInstanceTypeMlP32xlarge,
		ProductionVariantInstanceTypeMlP38xlarge,
		ProductionVariantInstanceTypeMlP316xlarge,
		ProductionVariantInstanceTypeMlC5Large,
		ProductionVariantInstanceTypeMlC5Xlarge,
		ProductionVariantInstanceTypeMlC52xlarge,
		ProductionVariantInstanceTypeMlC54xlarge,
		ProductionVariantInstanceTypeMlC59xlarge,
		ProductionVariantInstanceTypeMlC518xlarge,
		ProductionVariantInstanceTypeMlC5dLarge,
		ProductionVariantInstanceTypeMlC5dXlarge,
		ProductionVariantInstanceTypeMlC5d2xlarge,
		ProductionVariantInstanceTypeMlC5d4xlarge,
		ProductionVariantInstanceTypeMlC5d9xlarge,
		ProductionVariantInstanceTypeMlC5d18xlarge,
		ProductionVariantInstanceTypeMlG4dnXlarge,
		ProductionVariantInstanceTypeMlG4dn2xlarge,
		ProductionVariantInstanceTypeMlG4dn4xlarge,
		ProductionVariantInstanceTypeMlG4dn8xlarge,
		ProductionVariantInstanceTypeMlG4dn12xlarge,
		ProductionVariantInstanceTypeMlG4dn16xlarge,
		ProductionVariantInstanceTypeMlR5Large,
		ProductionVariantInstanceTypeMlR5Xlarge,
		ProductionVariantInstanceTypeMlR52xlarge,
		ProductionVariantInstanceTypeMlR54xlarge,
		ProductionVariantInstanceTypeMlR512xlarge,
		ProductionVariantInstanceTypeMlR524xlarge,
		ProductionVariantInstanceTypeMlR5dLarge,
		ProductionVariantInstanceTypeMlR5dXlarge,
		ProductionVariantInstanceTypeMlR5d2xlarge,
		ProductionVariantInstanceTypeMlR5d4xlarge,
		ProductionVariantInstanceTypeMlR5d12xlarge,
		ProductionVariantInstanceTypeMlR5d24xlarge,
		ProductionVariantInstanceTypeMlInf1Xlarge,
		ProductionVariantInstanceTypeMlInf12xlarge,
		ProductionVariantInstanceTypeMlInf16xlarge,
		ProductionVariantInstanceTypeMlInf124xlarge,
		ProductionVariantInstanceTypeMlDl124xlarge,
		ProductionVariantInstanceTypeMlC6iLarge,
		ProductionVariantInstanceTypeMlC6iXlarge,
		ProductionVariantInstanceTypeMlC6i2xlarge,
		ProductionVariantInstanceTypeMlC6i4xlarge,
		ProductionVariantInstanceTypeMlC6i8xlarge,
		ProductionVariantInstanceTypeMlC6i12xlarge,
		ProductionVariantInstanceTypeMlC6i16xlarge,
		ProductionVariantInstanceTypeMlC6i24xlarge,
		ProductionVariantInstanceTypeMlC6i32xlarge,
		ProductionVariantInstanceTypeMlG5Xlarge,
		ProductionVariantInstanceTypeMlG52xlarge,
		ProductionVariantInstanceTypeMlG54xlarge,
		ProductionVariantInstanceTypeMlG58xlarge,
		ProductionVariantInstanceTypeMlG512xlarge,
		ProductionVariantInstanceTypeMlG516xlarge,
		ProductionVariantInstanceTypeMlG524xlarge,
		ProductionVariantInstanceTypeMlG548xlarge,
		ProductionVariantInstanceTypeMlP4d24xlarge,
		ProductionVariantInstanceTypeMlC7gLarge,
		ProductionVariantInstanceTypeMlC7gXlarge,
		ProductionVariantInstanceTypeMlC7g2xlarge,
		ProductionVariantInstanceTypeMlC7g4xlarge,
		ProductionVariantInstanceTypeMlC7g8xlarge,
		ProductionVariantInstanceTypeMlC7g12xlarge,
		ProductionVariantInstanceTypeMlC7g16xlarge,
		ProductionVariantInstanceTypeMlM6gLarge,
		ProductionVariantInstanceTypeMlM6gXlarge,
		ProductionVariantInstanceTypeMlM6g2xlarge,
		ProductionVariantInstanceTypeMlM6g4xlarge,
		ProductionVariantInstanceTypeMlM6g8xlarge,
		ProductionVariantInstanceTypeMlM6g12xlarge,
		ProductionVariantInstanceTypeMlM6g16xlarge,
		ProductionVariantInstanceTypeMlM6gdLarge,
		ProductionVariantInstanceTypeMlM6gdXlarge,
		ProductionVariantInstanceTypeMlM6gd2xlarge,
		ProductionVariantInstanceTypeMlM6gd4xlarge,
		ProductionVariantInstanceTypeMlM6gd8xlarge,
		ProductionVariantInstanceTypeMlM6gd12xlarge,
		ProductionVariantInstanceTypeMlM6gd16xlarge,
		ProductionVariantInstanceTypeMlC6gLarge,
		ProductionVariantInstanceTypeMlC6gXlarge,
		ProductionVariantInstanceTypeMlC6g2xlarge,
		ProductionVariantInstanceTypeMlC6g4xlarge,
		ProductionVariantInstanceTypeMlC6g8xlarge,
		ProductionVariantInstanceTypeMlC6g12xlarge,
		ProductionVariantInstanceTypeMlC6g16xlarge,
		ProductionVariantInstanceTypeMlC6gdLarge,
		ProductionVariantInstanceTypeMlC6gdXlarge,
		ProductionVariantInstanceTypeMlC6gd2xlarge,
		ProductionVariantInstanceTypeMlC6gd4xlarge,
		ProductionVariantInstanceTypeMlC6gd8xlarge,
		ProductionVariantInstanceTypeMlC6gd12xlarge,
		ProductionVariantInstanceTypeMlC6gd16xlarge,
		ProductionVariantInstanceTypeMlC6gnLarge,
		ProductionVariantInstanceTypeMlC6gnXlarge,
		ProductionVariantInstanceTypeMlC6gn2xlarge,
		ProductionVariantInstanceTypeMlC6gn4xlarge,
		ProductionVariantInstanceTypeMlC6gn8xlarge,
		ProductionVariantInstanceTypeMlC6gn12xlarge,
		ProductionVariantInstanceTypeMlC6gn16xlarge,
		ProductionVariantInstanceTypeMlR6gLarge,
		ProductionVariantInstanceTypeMlR6gXlarge,
		ProductionVariantInstanceTypeMlR6g2xlarge,
		ProductionVariantInstanceTypeMlR6g4xlarge,
		ProductionVariantInstanceTypeMlR6g8xlarge,
		ProductionVariantInstanceTypeMlR6g12xlarge,
		ProductionVariantInstanceTypeMlR6g16xlarge,
		ProductionVariantInstanceTypeMlR6gdLarge,
		ProductionVariantInstanceTypeMlR6gdXlarge,
		ProductionVariantInstanceTypeMlR6gd2xlarge,
		ProductionVariantInstanceTypeMlR6gd4xlarge,
		ProductionVariantInstanceTypeMlR6gd8xlarge,
		ProductionVariantInstanceTypeMlR6gd12xlarge,
		ProductionVariantInstanceTypeMlR6gd16xlarge,
		ProductionVariantInstanceTypeMlP4de24xlarge,
		ProductionVariantInstanceTypeMlTrn12xlarge,
		ProductionVariantInstanceTypeMlTrn132xlarge,
		ProductionVariantInstanceTypeMlTrn1n32xlarge,
		ProductionVariantInstanceTypeMlInf2Xlarge,
		ProductionVariantInstanceTypeMlInf28xlarge,
		ProductionVariantInstanceTypeMlInf224xlarge,
		ProductionVariantInstanceTypeMlInf248xlarge,
		ProductionVariantInstanceTypeMlP548xlarge,
		ProductionVariantInstanceTypeMlM7iLarge,
		ProductionVariantInstanceTypeMlM7iXlarge,
		ProductionVariantInstanceTypeMlM7i2xlarge,
		ProductionVariantInstanceTypeMlM7i4xlarge,
		ProductionVariantInstanceTypeMlM7i8xlarge,
		ProductionVariantInstanceTypeMlM7i12xlarge,
		ProductionVariantInstanceTypeMlM7i16xlarge,
		ProductionVariantInstanceTypeMlM7i24xlarge,
		ProductionVariantInstanceTypeMlM7i48xlarge,
		ProductionVariantInstanceTypeMlC7iLarge,
		ProductionVariantInstanceTypeMlC7iXlarge,
		ProductionVariantInstanceTypeMlC7i2xlarge,
		ProductionVariantInstanceTypeMlC7i4xlarge,
		ProductionVariantInstanceTypeMlC7i8xlarge,
		ProductionVariantInstanceTypeMlC7i12xlarge,
		ProductionVariantInstanceTypeMlC7i16xlarge,
		ProductionVariantInstanceTypeMlC7i24xlarge,
		ProductionVariantInstanceTypeMlC7i48xlarge,
		ProductionVariantInstanceTypeMlR7iLarge,
		ProductionVariantInstanceTypeMlR7iXlarge,
		ProductionVariantInstanceTypeMlR7i2xlarge,
		ProductionVariantInstanceTypeMlR7i4xlarge,
		ProductionVariantInstanceTypeMlR7i8xlarge,
		ProductionVariantInstanceTypeMlR7i12xlarge,
		ProductionVariantInstanceTypeMlR7i16xlarge,
		ProductionVariantInstanceTypeMlR7i24xlarge,
		ProductionVariantInstanceTypeMlR7i48xlarge,
	}
}

const (
	// ProfilingStatusEnabled is a ProfilingStatus enum value
	ProfilingStatusEnabled = "Enabled"

	// ProfilingStatusDisabled is a ProfilingStatus enum value
	ProfilingStatusDisabled = "Disabled"
)

// ProfilingStatus_Values returns all elements of the ProfilingStatus enum
func ProfilingStatus_Values() []string {
	return []string{
		ProfilingStatusEnabled,
		ProfilingStatusDisabled,
	}
}

const (
	// ProjectSortByName is a ProjectSortBy enum value
	ProjectSortByName = "Name"

	// ProjectSortByCreationTime is a ProjectSortBy enum value
	ProjectSortByCreationTime = "CreationTime"
)

// ProjectSortBy_Values returns all elements of the ProjectSortBy enum
func ProjectSortBy_Values() []string {
	return []string{
		ProjectSortByName,
		ProjectSortByCreationTime,
	}
}

const (
	// ProjectSortOrderAscending is a ProjectSortOrder enum value
	ProjectSortOrderAscending = "Ascending"

	// ProjectSortOrderDescending is a ProjectSortOrder enum value
	ProjectSortOrderDescending = "Descending"
)

// ProjectSortOrder_Values returns all elements of the ProjectSortOrder enum
func ProjectSortOrder_Values() []string {
	return []string{
		ProjectSortOrderAscending,
		ProjectSortOrderDescending,
	}
}

const (
	// ProjectStatusPending is a ProjectStatus enum value
	ProjectStatusPending = "Pending"

	// ProjectStatusCreateInProgress is a ProjectStatus enum value
	ProjectStatusCreateInProgress = "CreateInProgress"

	// ProjectStatusCreateCompleted is a ProjectStatus enum value
	ProjectStatusCreateCompleted = "CreateCompleted"

	// ProjectStatusCreateFailed is a ProjectStatus enum value
	ProjectStatusCreateFailed = "CreateFailed"

	// ProjectStatusDeleteInProgress is a ProjectStatus enum value
	ProjectStatusDeleteInProgress = "DeleteInProgress"

	// ProjectStatusDeleteFailed is a ProjectStatus enum value
	ProjectStatusDeleteFailed = "DeleteFailed"

	// ProjectStatusDeleteCompleted is a ProjectStatus enum value
	ProjectStatusDeleteCompleted = "DeleteCompleted"

	// ProjectStatusUpdateInProgress is a ProjectStatus enum value
	ProjectStatusUpdateInProgress = "UpdateInProgress"

	// ProjectStatusUpdateCompleted is a ProjectStatus enum value
	ProjectStatusUpdateCompleted = "UpdateCompleted"

	// ProjectStatusUpdateFailed is a ProjectStatus enum value
	ProjectStatusUpdateFailed = "UpdateFailed"
)

// ProjectStatus_Values returns all elements of the ProjectStatus enum
func ProjectStatus_Values() []string {
	return []string{
		ProjectStatusPending,
		ProjectStatusCreateInProgress,
		ProjectStatusCreateCompleted,
		ProjectStatusCreateFailed,
		ProjectStatusDeleteInProgress,
		ProjectStatusDeleteFailed,
		ProjectStatusDeleteCompleted,
		ProjectStatusUpdateInProgress,
		ProjectStatusUpdateCompleted,
		ProjectStatusUpdateFailed,
	}
}

const (
	// RStudioServerProAccessStatusEnabled is a RStudioServerProAccessStatus enum value
	RStudioServerProAccessStatusEnabled = "ENABLED"

	// RStudioServerProAccessStatusDisabled is a RStudioServerProAccessStatus enum value
	RStudioServerProAccessStatusDisabled = "DISABLED"
)

// RStudioServerProAccessStatus_Values returns all elements of the RStudioServerProAccessStatus enum
func RStudioServerProAccessStatus_Values() []string {
	return []string{
		RStudioServerProAccessStatusEnabled,
		RStudioServerProAccessStatusDisabled,
	}
}

const (
	// RStudioServerProUserGroupRStudioAdmin is a RStudioServerProUserGroup enum value
	RStudioServerProUserGroupRStudioAdmin = "R_STUDIO_ADMIN"

	// RStudioServerProUserGroupRStudioUser is a RStudioServerProUserGroup enum value
	RStudioServerProUserGroupRStudioUser = "R_STUDIO_USER"
)

// RStudioServerProUserGroup_Values returns all elements of the RStudioServerProUserGroup enum
func RStudioServerProUserGroup_Values() []string {
	return []string{
		RStudioServerProUserGroupRStudioAdmin,
		RStudioServerProUserGroupRStudioUser,
	}
}

const (
	// RecommendationJobStatusPending is a RecommendationJobStatus enum value
	RecommendationJobStatusPending = "PENDING"

	// RecommendationJobStatusInProgress is a RecommendationJobStatus enum value
	RecommendationJobStatusInProgress = "IN_PROGRESS"

	// RecommendationJobStatusCompleted is a RecommendationJobStatus enum value
	RecommendationJobStatusCompleted = "COMPLETED"

	// RecommendationJobStatusFailed is a RecommendationJobStatus enum value
	RecommendationJobStatusFailed = "FAILED"

	// RecommendationJobStatusStopping is a RecommendationJobStatus enum value
	RecommendationJobStatusStopping = "STOPPING"

	// RecommendationJobStatusStopped is a RecommendationJobStatus enum value
	RecommendationJobStatusStopped = "STOPPED"

	// RecommendationJobStatusDeleting is a RecommendationJobStatus enum value
	RecommendationJobStatusDeleting = "DELETING"

	// RecommendationJobStatusDeleted is a RecommendationJobStatus enum value
	RecommendationJobStatusDeleted = "DELETED"
)

// RecommendationJobStatus_Values returns all elements of the RecommendationJobStatus enum
func RecommendationJobStatus_Values() []string {
	return []string{
		RecommendationJobStatusPending,
		RecommendationJobStatusInProgress,
		RecommendationJobStatusCompleted,
		RecommendationJobStatusFailed,
		RecommendationJobStatusStopping,
		RecommendationJobStatusStopped,
		RecommendationJobStatusDeleting,
		RecommendationJobStatusDeleted,
	}
}

const (
	// RecommendationJobSupportedEndpointTypeRealTime is a RecommendationJobSupportedEndpointType enum value
	RecommendationJobSupportedEndpointTypeRealTime = "RealTime"

	// RecommendationJobSupportedEndpointTypeServerless is a RecommendationJobSupportedEndpointType enum value
	RecommendationJobSupportedEndpointTypeServerless = "Serverless"
)

// RecommendationJobSupportedEndpointType_Values returns all elements of the RecommendationJobSupportedEndpointType enum
func RecommendationJobSupportedEndpointType_Values() []string {
	return []string{
		RecommendationJobSupportedEndpointTypeRealTime,
		RecommendationJobSupportedEndpointTypeServerless,
	}
}

const (
	// RecommendationJobTypeDefault is a RecommendationJobType enum value
	RecommendationJobTypeDefault = "Default"

	// RecommendationJobTypeAdvanced is a RecommendationJobType enum value
	RecommendationJobTypeAdvanced = "Advanced"
)

// RecommendationJobType_Values returns all elements of the RecommendationJobType enum
func RecommendationJobType_Values() []string {
	return []string{
		RecommendationJobTypeDefault,
		RecommendationJobTypeAdvanced,
	}
}

const (
	// RecommendationStatusInProgress is a RecommendationStatus enum value
	RecommendationStatusInProgress = "IN_PROGRESS"

	// RecommendationStatusCompleted is a RecommendationStatus enum value
	RecommendationStatusCompleted = "COMPLETED"

	// RecommendationStatusFailed is a RecommendationStatus enum value
	RecommendationStatusFailed = "FAILED"

	// RecommendationStatusNotApplicable is a RecommendationStatus enum value
	RecommendationStatusNotApplicable = "NOT_APPLICABLE"
)

// RecommendationStatus_Values returns all elements of the RecommendationStatus enum
func RecommendationStatus_Values() []string {
	return []string{
		RecommendationStatusInProgress,
		RecommendationStatusCompleted,
		RecommendationStatusFailed,
		RecommendationStatusNotApplicable,
	}
}

const (
	// RecommendationStepTypeBenchmark is a RecommendationStepType enum value
	RecommendationStepTypeBenchmark = "BENCHMARK"
)

// RecommendationStepType_Values returns all elements of the RecommendationStepType enum
func RecommendationStepType_Values() []string {
	return []string{
		RecommendationStepTypeBenchmark,
	}
}

const (
	// RecordWrapperNone is a RecordWrapper enum value
	RecordWrapperNone = "None"

	// RecordWrapperRecordIo is a RecordWrapper enum value
	RecordWrapperRecordIo = "RecordIO"
)

// RecordWrapper_Values returns all elements of the RecordWrapper enum
func RecordWrapper_Values() []string {
	return []string{
		RecordWrapperNone,
		RecordWrapperRecordIo,
	}
}

// The compression used for Redshift query results.
const (
	// RedshiftResultCompressionTypeNone is a RedshiftResultCompressionType enum value
	RedshiftResultCompressionTypeNone = "None"

	// RedshiftResultCompressionTypeGzip is a RedshiftResultCompressionType enum value
	RedshiftResultCompressionTypeGzip = "GZIP"

	// RedshiftResultCompressionTypeBzip2 is a RedshiftResultCompressionType enum value
	RedshiftResultCompressionTypeBzip2 = "BZIP2"

	// RedshiftResultCompressionTypeZstd is a RedshiftResultCompressionType enum value
	RedshiftResultCompressionTypeZstd = "ZSTD"

	// RedshiftResultCompressionTypeSnappy is a RedshiftResultCompressionType enum value
	RedshiftResultCompressionTypeSnappy = "SNAPPY"
)

// RedshiftResultCompressionType_Values returns all elements of the RedshiftResultCompressionType enum
func RedshiftResultCompressionType_Values() []string {
	return []string{
		RedshiftResultCompressionTypeNone,
		RedshiftResultCompressionTypeGzip,
		RedshiftResultCompressionTypeBzip2,
		RedshiftResultCompressionTypeZstd,
		RedshiftResultCompressionTypeSnappy,
	}
}

// The data storage format for Redshift query results.
const (
	// RedshiftResultFormatParquet is a RedshiftResultFormat enum value
	RedshiftResultFormatParquet = "PARQUET"

	// RedshiftResultFormatCsv is a RedshiftResultFormat enum value
	RedshiftResultFormatCsv = "CSV"
)

// RedshiftResultFormat_Values returns all elements of the RedshiftResultFormat enum
func RedshiftResultFormat_Values() []string {
	return []string{
		RedshiftResultFormatParquet,
		RedshiftResultFormatCsv,
	}
}

const (
	// RepositoryAccessModePlatform is a RepositoryAccessMode enum value
	RepositoryAccessModePlatform = "Platform"

	// RepositoryAccessModeVpc is a RepositoryAccessMode enum value
	RepositoryAccessModeVpc = "Vpc"
)

// RepositoryAccessMode_Values returns all elements of the RepositoryAccessMode enum
func RepositoryAccessMode_Values() []string {
	return []string{
		RepositoryAccessModePlatform,
		RepositoryAccessModeVpc,
	}
}

const (
	// ResourceCatalogSortByCreationTime is a ResourceCatalogSortBy enum value
	ResourceCatalogSortByCreationTime = "CreationTime"
)

// ResourceCatalogSortBy_Values returns all elements of the ResourceCatalogSortBy enum
func ResourceCatalogSortBy_Values() []string {
	return []string{
		ResourceCatalogSortByCreationTime,
	}
}

const (
	// ResourceCatalogSortOrderAscending is a ResourceCatalogSortOrder enum value
	ResourceCatalogSortOrderAscending = "Ascending"

	// ResourceCatalogSortOrderDescending is a ResourceCatalogSortOrder enum value
	ResourceCatalogSortOrderDescending = "Descending"
)

// ResourceCatalogSortOrder_Values returns all elements of the ResourceCatalogSortOrder enum
func ResourceCatalogSortOrder_Values() []string {
	return []string{
		ResourceCatalogSortOrderAscending,
		ResourceCatalogSortOrderDescending,
	}
}

const (
	// ResourceTypeTrainingJob is a ResourceType enum value
	ResourceTypeTrainingJob = "TrainingJob"

	// ResourceTypeExperiment is a ResourceType enum value
	ResourceTypeExperiment = "Experiment"

	// ResourceTypeExperimentTrial is a ResourceType enum value
	ResourceTypeExperimentTrial = "ExperimentTrial"

	// ResourceTypeExperimentTrialComponent is a ResourceType enum value
	ResourceTypeExperimentTrialComponent = "ExperimentTrialComponent"

	// ResourceTypeEndpoint is a ResourceType enum value
	ResourceTypeEndpoint = "Endpoint"

	// ResourceTypeModel is a ResourceType enum value
	ResourceTypeModel = "Model"

	// ResourceTypeModelPackage is a ResourceType enum value
	ResourceTypeModelPackage = "ModelPackage"

	// ResourceTypeModelPackageGroup is a ResourceType enum value
	ResourceTypeModelPackageGroup = "ModelPackageGroup"

	// ResourceTypePipeline is a ResourceType enum value
	ResourceTypePipeline = "Pipeline"

	// ResourceTypePipelineExecution is a ResourceType enum value
	ResourceTypePipelineExecution = "PipelineExecution"

	// ResourceTypeFeatureGroup is a ResourceType enum value
	ResourceTypeFeatureGroup = "FeatureGroup"

	// ResourceTypeFeatureMetadata is a ResourceType enum value
	ResourceTypeFeatureMetadata = "FeatureMetadata"

	// ResourceTypeImage is a ResourceType enum value
	ResourceTypeImage = "Image"

	// ResourceTypeImageVersion is a ResourceType enum value
	ResourceTypeImageVersion = "ImageVersion"

	// ResourceTypeProject is a ResourceType enum value
	ResourceTypeProject = "Project"

	// ResourceTypeHyperParameterTuningJob is a ResourceType enum value
	ResourceTypeHyperParameterTuningJob = "HyperParameterTuningJob"

	// ResourceTypeModelCard is a ResourceType enum value
	ResourceTypeModelCard = "ModelCard"
)

// ResourceType_Values returns all elements of the ResourceType enum
func ResourceType_Values() []string {
	return []string{
		ResourceTypeTrainingJob,
		ResourceTypeExperiment,
		ResourceTypeExperimentTrial,
		ResourceTypeExperimentTrialComponent,
		ResourceTypeEndpoint,
		ResourceTypeModel,
		ResourceTypeModelPackage,
		ResourceTypeModelPackageGroup,
		ResourceTypePipeline,
		ResourceTypePipelineExecution,
		ResourceTypeFeatureGroup,
		ResourceTypeFeatureMetadata,
		ResourceTypeImage,
		ResourceTypeImageVersion,
		ResourceTypeProject,
		ResourceTypeHyperParameterTuningJob,
		ResourceTypeModelCard,
	}
}

const (
	// RetentionTypeRetain is a RetentionType enum value
	RetentionTypeRetain = "Retain"

	// RetentionTypeDelete is a RetentionType enum value
	RetentionTypeDelete = "Delete"
)

// RetentionType_Values returns all elements of the RetentionType enum
func RetentionType_Values() []string {
	return []string{
		RetentionTypeRetain,
		RetentionTypeDelete,
	}
}

const (
	// RootAccessEnabled is a RootAccess enum value
	RootAccessEnabled = "Enabled"

	// RootAccessDisabled is a RootAccess enum value
	RootAccessDisabled = "Disabled"
)

// RootAccess_Values returns all elements of the RootAccess enum
func RootAccess_Values() []string {
	return []string{
		RootAccessEnabled,
		RootAccessDisabled,
	}
}

const (
	// RoutingStrategyLeastOutstandingRequests is a RoutingStrategy enum value
	RoutingStrategyLeastOutstandingRequests = "LEAST_OUTSTANDING_REQUESTS"

	// RoutingStrategyRandom is a RoutingStrategy enum value
	RoutingStrategyRandom = "RANDOM"
)

// RoutingStrategy_Values returns all elements of the RoutingStrategy enum
func RoutingStrategy_Values() []string {
	return []string{
		RoutingStrategyLeastOutstandingRequests,
		RoutingStrategyRandom,
	}
}

const (
	// RuleEvaluationStatusInProgress is a RuleEvaluationStatus enum value
	RuleEvaluationStatusInProgress = "InProgress"

	// RuleEvaluationStatusNoIssuesFound is a RuleEvaluationStatus enum value
	RuleEvaluationStatusNoIssuesFound = "NoIssuesFound"

	// RuleEvaluationStatusIssuesFound is a RuleEvaluationStatus enum value
	RuleEvaluationStatusIssuesFound = "IssuesFound"

	// RuleEvaluationStatusError is a RuleEvaluationStatus enum value
	RuleEvaluationStatusError = "Error"

	// RuleEvaluationStatusStopping is a RuleEvaluationStatus enum value
	RuleEvaluationStatusStopping = "Stopping"

	// RuleEvaluationStatusStopped is a RuleEvaluationStatus enum value
	RuleEvaluationStatusStopped = "Stopped"
)

// RuleEvaluationStatus_Values returns all elements of the RuleEvaluationStatus enum
func RuleEvaluationStatus_Values() []string {
	return []string{
		RuleEvaluationStatusInProgress,
		RuleEvaluationStatusNoIssuesFound,
		RuleEvaluationStatusIssuesFound,
		RuleEvaluationStatusError,
		RuleEvaluationStatusStopping,
		RuleEvaluationStatusStopped,
	}
}

const (
	// S3DataDistributionFullyReplicated is a S3DataDistribution enum value
	S3DataDistributionFullyReplicated = "FullyReplicated"

	// S3DataDistributionShardedByS3key is a S3DataDistribution enum value
	S3DataDistributionShardedByS3key = "ShardedByS3Key"
)

// S3DataDistribution_Values returns all elements of the S3DataDistribution enum
func S3DataDistribution_Values() []string {
	return []string{
		S3DataDistributionFullyReplicated,
		S3DataDistributionShardedByS3key,
	}
}

const (
	// S3DataTypeManifestFile is a S3DataType enum value
	S3DataTypeManifestFile = "ManifestFile"

	// S3DataTypeS3prefix is a S3DataType enum value
	S3DataTypeS3prefix = "S3Prefix"

	// S3DataTypeAugmentedManifestFile is a S3DataType enum value
	S3DataTypeAugmentedManifestFile = "AugmentedManifestFile"
)

// S3DataType_Values returns all elements of the S3DataType enum
func S3DataType_Values() []string {
	return []string{
		S3DataTypeManifestFile,
		S3DataTypeS3prefix,
		S3DataTypeAugmentedManifestFile,
	}
}

const (
	// S3ModelDataTypeS3prefix is a S3ModelDataType enum value
	S3ModelDataTypeS3prefix = "S3Prefix"

	// S3ModelDataTypeS3object is a S3ModelDataType enum value
	S3ModelDataTypeS3object = "S3Object"
)

// S3ModelDataType_Values returns all elements of the S3ModelDataType enum
func S3ModelDataType_Values() []string {
	return []string{
		S3ModelDataTypeS3prefix,
		S3ModelDataTypeS3object,
	}
}

const (
	// SagemakerServicecatalogStatusEnabled is a SagemakerServicecatalogStatus enum value
	SagemakerServicecatalogStatusEnabled = "Enabled"

	// SagemakerServicecatalogStatusDisabled is a SagemakerServicecatalogStatus enum value
	SagemakerServicecatalogStatusDisabled = "Disabled"
)

// SagemakerServicecatalogStatus_Values returns all elements of the SagemakerServicecatalogStatus enum
func SagemakerServicecatalogStatus_Values() []string {
	return []string{
		SagemakerServicecatalogStatusEnabled,
		SagemakerServicecatalogStatusDisabled,
	}
}

const (
	// ScheduleStatusPending is a ScheduleStatus enum value
	ScheduleStatusPending = "Pending"

	// ScheduleStatusFailed is a ScheduleStatus enum value
	ScheduleStatusFailed = "Failed"

	// ScheduleStatusScheduled is a ScheduleStatus enum value
	ScheduleStatusScheduled = "Scheduled"

	// ScheduleStatusStopped is a ScheduleStatus enum value
	ScheduleStatusStopped = "Stopped"
)

// ScheduleStatus_Values returns all elements of the ScheduleStatus enum
func ScheduleStatus_Values() []string {
	return []string{
		ScheduleStatusPending,
		ScheduleStatusFailed,
		ScheduleStatusScheduled,
		ScheduleStatusStopped,
	}
}

const (
	// SearchSortOrderAscending is a SearchSortOrder enum value
	SearchSortOrderAscending = "Ascending"

	// SearchSortOrderDescending is a SearchSortOrder enum value
	SearchSortOrderDescending = "Descending"
)

// SearchSortOrder_Values returns all elements of the SearchSortOrder enum
func SearchSortOrder_Values() []string {
	return []string{
		SearchSortOrderAscending,
		SearchSortOrderDescending,
	}
}

const (
	// SecondaryStatusStarting is a SecondaryStatus enum value
	SecondaryStatusStarting = "Starting"

	// SecondaryStatusLaunchingMlinstances is a SecondaryStatus enum value
	SecondaryStatusLaunchingMlinstances = "LaunchingMLInstances"

	// SecondaryStatusPreparingTrainingStack is a SecondaryStatus enum value
	SecondaryStatusPreparingTrainingStack = "PreparingTrainingStack"

	// SecondaryStatusDownloading is a SecondaryStatus enum value
	SecondaryStatusDownloading = "Downloading"

	// SecondaryStatusDownloadingTrainingImage is a SecondaryStatus enum value
	SecondaryStatusDownloadingTrainingImage = "DownloadingTrainingImage"

	// SecondaryStatusTraining is a SecondaryStatus enum value
	SecondaryStatusTraining = "Training"

	// SecondaryStatusUploading is a SecondaryStatus enum value
	SecondaryStatusUploading = "Uploading"

	// SecondaryStatusStopping is a SecondaryStatus enum value
	SecondaryStatusStopping = "Stopping"

	// SecondaryStatusStopped is a SecondaryStatus enum value
	SecondaryStatusStopped = "Stopped"

	// SecondaryStatusMaxRuntimeExceeded is a SecondaryStatus enum value
	SecondaryStatusMaxRuntimeExceeded = "MaxRuntimeExceeded"

	// SecondaryStatusCompleted is a SecondaryStatus enum value
	SecondaryStatusCompleted = "Completed"

	// SecondaryStatusFailed is a SecondaryStatus enum value
	SecondaryStatusFailed = "Failed"

	// SecondaryStatusInterrupted is a SecondaryStatus enum value
	SecondaryStatusInterrupted = "Interrupted"

	// SecondaryStatusMaxWaitTimeExceeded is a SecondaryStatus enum value
	SecondaryStatusMaxWaitTimeExceeded = "MaxWaitTimeExceeded"

	// SecondaryStatusUpdating is a SecondaryStatus enum value
	SecondaryStatusUpdating = "Updating"

	// SecondaryStatusRestarting is a SecondaryStatus enum value
	SecondaryStatusRestarting = "Restarting"

	// SecondaryStatusPending is a SecondaryStatus enum value
	SecondaryStatusPending = "Pending"
)

// SecondaryStatus_Values returns all elements of the SecondaryStatus enum
func SecondaryStatus_Values() []string {
	return []string{
		SecondaryStatusStarting,
		SecondaryStatusLaunchingMlinstances,
		SecondaryStatusPreparingTrainingStack,
		SecondaryStatusDownloading,
		SecondaryStatusDownloadingTrainingImage,
		SecondaryStatusTraining,
		SecondaryStatusUploading,
		SecondaryStatusStopping,
		SecondaryStatusStopped,
		SecondaryStatusMaxRuntimeExceeded,
		SecondaryStatusCompleted,
		SecondaryStatusFailed,
		SecondaryStatusInterrupted,
		SecondaryStatusMaxWaitTimeExceeded,
		SecondaryStatusUpdating,
		SecondaryStatusRestarting,
		SecondaryStatusPending,
	}
}

const (
	// SharingTypePrivate is a SharingType enum value
	SharingTypePrivate = "Private"

	// SharingTypeShared is a SharingType enum value
	SharingTypeShared = "Shared"
)

// SharingType_Values returns all elements of the SharingType enum
func SharingType_Values() []string {
	return []string{
		SharingTypePrivate,
		SharingTypeShared,
	}
}

const (
	// SkipModelValidationAll is a SkipModelValidation enum value
	SkipModelValidationAll = "All"

	// SkipModelValidationNone is a SkipModelValidation enum value
	SkipModelValidationNone = "None"
)

// SkipModelValidation_Values returns all elements of the SkipModelValidation enum
func SkipModelValidation_Values() []string {
	return []string{
		SkipModelValidationAll,
		SkipModelValidationNone,
	}
}

const (
	// SortActionsByName is a SortActionsBy enum value
	SortActionsByName = "Name"

	// SortActionsByCreationTime is a SortActionsBy enum value
	SortActionsByCreationTime = "CreationTime"
)

// SortActionsBy_Values returns all elements of the SortActionsBy enum
func SortActionsBy_Values() []string {
	return []string{
		SortActionsByName,
		SortActionsByCreationTime,
	}
}

const (
	// SortArtifactsByCreationTime is a SortArtifactsBy enum value
	SortArtifactsByCreationTime = "CreationTime"
)

// SortArtifactsBy_Values returns all elements of the SortArtifactsBy enum
func SortArtifactsBy_Values() []string {
	return []string{
		SortArtifactsByCreationTime,
	}
}

const (
	// SortAssociationsBySourceArn is a SortAssociationsBy enum value
	SortAssociationsBySourceArn = "SourceArn"

	// SortAssociationsByDestinationArn is a SortAssociationsBy enum value
	SortAssociationsByDestinationArn = "DestinationArn"

	// SortAssociationsBySourceType is a SortAssociationsBy enum value
	SortAssociationsBySourceType = "SourceType"

	// SortAssociationsByDestinationType is a SortAssociationsBy enum value
	SortAssociationsByDestinationType = "DestinationType"

	// SortAssociationsByCreationTime is a SortAssociationsBy enum value
	SortAssociationsByCreationTime = "CreationTime"
)

// SortAssociationsBy_Values returns all elements of the SortAssociationsBy enum
func SortAssociationsBy_Values() []string {
	return []string{
		SortAssociationsBySourceArn,
		SortAssociationsByDestinationArn,
		SortAssociationsBySourceType,
		SortAssociationsByDestinationType,
		SortAssociationsByCreationTime,
	}
}

const (
	// SortByName is a SortBy enum value
	SortByName = "Name"

	// SortByCreationTime is a SortBy enum value
	SortByCreationTime = "CreationTime"

	// SortByStatus is a SortBy enum value
	SortByStatus = "Status"
)

// SortBy_Values returns all elements of the SortBy enum
func SortBy_Values() []string {
	return []string{
		SortByName,
		SortByCreationTime,
		SortByStatus,
	}
}

const (
	// SortContextsByName is a SortContextsBy enum value
	SortContextsByName = "Name"

	// SortContextsByCreationTime is a SortContextsBy enum value
	SortContextsByCreationTime = "CreationTime"
)

// SortContextsBy_Values returns all elements of the SortContextsBy enum
func SortContextsBy_Values() []string {
	return []string{
		SortContextsByName,
		SortContextsByCreationTime,
	}
}

const (
	// SortExperimentsByName is a SortExperimentsBy enum value
	SortExperimentsByName = "Name"

	// SortExperimentsByCreationTime is a SortExperimentsBy enum value
	SortExperimentsByCreationTime = "CreationTime"
)

// SortExperimentsBy_Values returns all elements of the SortExperimentsBy enum
func SortExperimentsBy_Values() []string {
	return []string{
		SortExperimentsByName,
		SortExperimentsByCreationTime,
	}
}

const (
	// SortInferenceExperimentsByName is a SortInferenceExperimentsBy enum value
	SortInferenceExperimentsByName = "Name"

	// SortInferenceExperimentsByCreationTime is a SortInferenceExperimentsBy enum value
	SortInferenceExperimentsByCreationTime = "CreationTime"

	// SortInferenceExperimentsByStatus is a SortInferenceExperimentsBy enum value
	SortInferenceExperimentsByStatus = "Status"
)

// SortInferenceExperimentsBy_Values returns all elements of the SortInferenceExperimentsBy enum
func SortInferenceExperimentsBy_Values() []string {
	return []string{
		SortInferenceExperimentsByName,
		SortInferenceExperimentsByCreationTime,
		SortInferenceExperimentsByStatus,
	}
}

const (
	// SortLineageGroupsByName is a SortLineageGroupsBy enum value
	SortLineageGroupsByName = "Name"

	// SortLineageGroupsByCreationTime is a SortLineageGroupsBy enum value
	SortLineageGroupsByCreationTime = "CreationTime"
)

// SortLineageGroupsBy_Values returns all elements of the SortLineageGroupsBy enum
func SortLineageGroupsBy_Values() []string {
	return []string{
		SortLineageGroupsByName,
		SortLineageGroupsByCreationTime,
	}
}

const (
	// SortOrderAscending is a SortOrder enum value
	SortOrderAscending = "Ascending"

	// SortOrderDescending is a SortOrder enum value
	SortOrderDescending = "Descending"
)

// SortOrder_Values returns all elements of the SortOrder enum
func SortOrder_Values() []string {
	return []string{
		SortOrderAscending,
		SortOrderDescending,
	}
}

const (
	// SortPipelineExecutionsByCreationTime is a SortPipelineExecutionsBy enum value
	SortPipelineExecutionsByCreationTime = "CreationTime"

	// SortPipelineExecutionsByPipelineExecutionArn is a SortPipelineExecutionsBy enum value
	SortPipelineExecutionsByPipelineExecutionArn = "PipelineExecutionArn"
)

// SortPipelineExecutionsBy_Values returns all elements of the SortPipelineExecutionsBy enum
func SortPipelineExecutionsBy_Values() []string {
	return []string{
		SortPipelineExecutionsByCreationTime,
		SortPipelineExecutionsByPipelineExecutionArn,
	}
}

const (
	// SortPipelinesByName is a SortPipelinesBy enum value
	SortPipelinesByName = "Name"

	// SortPipelinesByCreationTime is a SortPipelinesBy enum value
	SortPipelinesByCreationTime = "CreationTime"
)

// SortPipelinesBy_Values returns all elements of the SortPipelinesBy enum
func SortPipelinesBy_Values() []string {
	return []string{
		SortPipelinesByName,
		SortPipelinesByCreationTime,
	}
}

const (
	// SortTrialComponentsByName is a SortTrialComponentsBy enum value
	SortTrialComponentsByName = "Name"

	// SortTrialComponentsByCreationTime is a SortTrialComponentsBy enum value
	SortTrialComponentsByCreationTime = "CreationTime"
)

// SortTrialComponentsBy_Values returns all elements of the SortTrialComponentsBy enum
func SortTrialComponentsBy_Values() []string {
	return []string{
		SortTrialComponentsByName,
		SortTrialComponentsByCreationTime,
	}
}

const (
	// SortTrialsByName is a SortTrialsBy enum value
	SortTrialsByName = "Name"

	// SortTrialsByCreationTime is a SortTrialsBy enum value
	SortTrialsByCreationTime = "CreationTime"
)

// SortTrialsBy_Values returns all elements of the SortTrialsBy enum
func SortTrialsBy_Values() []string {
	return []string{
		SortTrialsByName,
		SortTrialsByCreationTime,
	}
}

const (
	// SpaceSortKeyCreationTime is a SpaceSortKey enum value
	SpaceSortKeyCreationTime = "CreationTime"

	// SpaceSortKeyLastModifiedTime is a SpaceSortKey enum value
	SpaceSortKeyLastModifiedTime = "LastModifiedTime"
)

// SpaceSortKey_Values returns all elements of the SpaceSortKey enum
func SpaceSortKey_Values() []string {
	return []string{
		SpaceSortKeyCreationTime,
		SpaceSortKeyLastModifiedTime,
	}
}

const (
	// SpaceStatusDeleting is a SpaceStatus enum value
	SpaceStatusDeleting = "Deleting"

	// SpaceStatusFailed is a SpaceStatus enum value
	SpaceStatusFailed = "Failed"

	// SpaceStatusInService is a SpaceStatus enum value
	SpaceStatusInService = "InService"

	// SpaceStatusPending is a SpaceStatus enum value
	SpaceStatusPending = "Pending"

	// SpaceStatusUpdating is a SpaceStatus enum value
	SpaceStatusUpdating = "Updating"

	// SpaceStatusUpdateFailed is a SpaceStatus enum value
	SpaceStatusUpdateFailed = "Update_Failed"

	// SpaceStatusDeleteFailed is a SpaceStatus enum value
	SpaceStatusDeleteFailed = "Delete_Failed"
)

// SpaceStatus_Values returns all elements of the SpaceStatus enum
func SpaceStatus_Values() []string {
	return []string{
		SpaceStatusDeleting,
		SpaceStatusFailed,
		SpaceStatusInService,
		SpaceStatusPending,
		SpaceStatusUpdating,
		SpaceStatusUpdateFailed,
		SpaceStatusDeleteFailed,
	}
}

const (
	// SplitTypeNone is a SplitType enum value
	SplitTypeNone = "None"

	// SplitTypeLine is a SplitType enum value
	SplitTypeLine = "Line"

	// SplitTypeRecordIo is a SplitType enum value
	SplitTypeRecordIo = "RecordIO"

	// SplitTypeTfrecord is a SplitType enum value
	SplitTypeTfrecord = "TFRecord"
)

// SplitType_Values returns all elements of the SplitType enum
func SplitType_Values() []string {
	return []string{
		SplitTypeNone,
		SplitTypeLine,
		SplitTypeRecordIo,
		SplitTypeTfrecord,
	}
}

const (
	// StageStatusCreating is a StageStatus enum value
	StageStatusCreating = "CREATING"

	// StageStatusReadytodeploy is a StageStatus enum value
	StageStatusReadytodeploy = "READYTODEPLOY"

	// StageStatusStarting is a StageStatus enum value
	StageStatusStarting = "STARTING"

	// StageStatusInprogress is a StageStatus enum value
	StageStatusInprogress = "INPROGRESS"

	// StageStatusDeployed is a StageStatus enum value
	StageStatusDeployed = "DEPLOYED"

	// StageStatusFailed is a StageStatus enum value
	StageStatusFailed = "FAILED"

	// StageStatusStopping is a StageStatus enum value
	StageStatusStopping = "STOPPING"

	// StageStatusStopped is a StageStatus enum value
	StageStatusStopped = "STOPPED"
)

// StageStatus_Values returns all elements of the StageStatus enum
func StageStatus_Values() []string {
	return []string{
		StageStatusCreating,
		StageStatusReadytodeploy,
		StageStatusStarting,
		StageStatusInprogress,
		StageStatusDeployed,
		StageStatusFailed,
		StageStatusStopping,
		StageStatusStopped,
	}
}

const (
	// StatisticAverage is a Statistic enum value
	StatisticAverage = "Average"

	// StatisticMinimum is a Statistic enum value
	StatisticMinimum = "Minimum"

	// StatisticMaximum is a Statistic enum value
	StatisticMaximum = "Maximum"

	// StatisticSampleCount is a Statistic enum value
	StatisticSampleCount = "SampleCount"

	// StatisticSum is a Statistic enum value
	StatisticSum = "Sum"
)

// Statistic_Values returns all elements of the Statistic enum
func Statistic_Values() []string {
	return []string{
		StatisticAverage,
		StatisticMinimum,
		StatisticMaximum,
		StatisticSampleCount,
		StatisticSum,
	}
}

const (
	// StepStatusStarting is a StepStatus enum value
	StepStatusStarting = "Starting"

	// StepStatusExecuting is a StepStatus enum value
	StepStatusExecuting = "Executing"

	// StepStatusStopping is a StepStatus enum value
	StepStatusStopping = "Stopping"

	// StepStatusStopped is a StepStatus enum value
	StepStatusStopped = "Stopped"

	// StepStatusFailed is a StepStatus enum value
	StepStatusFailed = "Failed"

	// StepStatusSucceeded is a StepStatus enum value
	StepStatusSucceeded = "Succeeded"
)

// StepStatus_Values returns all elements of the StepStatus enum
func StepStatus_Values() []string {
	return []string{
		StepStatusStarting,
		StepStatusExecuting,
		StepStatusStopping,
		StepStatusStopped,
		StepStatusFailed,
		StepStatusSucceeded,
	}
}

const (
	// StorageTypeStandard is a StorageType enum value
	StorageTypeStandard = "Standard"

	// StorageTypeInMemory is a StorageType enum value
	StorageTypeInMemory = "InMemory"
)

// StorageType_Values returns all elements of the StorageType enum
func StorageType_Values() []string {
	return []string{
		StorageTypeStandard,
		StorageTypeInMemory,
	}
}

const (
	// StudioLifecycleConfigAppTypeJupyterServer is a StudioLifecycleConfigAppType enum value
	StudioLifecycleConfigAppTypeJupyterServer = "JupyterServer"

	// StudioLifecycleConfigAppTypeKernelGateway is a StudioLifecycleConfigAppType enum value
	StudioLifecycleConfigAppTypeKernelGateway = "KernelGateway"

	// StudioLifecycleConfigAppTypeCodeEditor is a StudioLifecycleConfigAppType enum value
	StudioLifecycleConfigAppTypeCodeEditor = "CodeEditor"

	// StudioLifecycleConfigAppTypeJupyterLab is a StudioLifecycleConfigAppType enum value
	StudioLifecycleConfigAppTypeJupyterLab = "JupyterLab"
)

// StudioLifecycleConfigAppType_Values returns all elements of the StudioLifecycleConfigAppType enum
func StudioLifecycleConfigAppType_Values() []string {
	return []string{
		StudioLifecycleConfigAppTypeJupyterServer,
		StudioLifecycleConfigAppTypeKernelGateway,
		StudioLifecycleConfigAppTypeCodeEditor,
		StudioLifecycleConfigAppTypeJupyterLab,
	}
}

const (
	// StudioLifecycleConfigSortKeyCreationTime is a StudioLifecycleConfigSortKey enum value
	StudioLifecycleConfigSortKeyCreationTime = "CreationTime"

	// StudioLifecycleConfigSortKeyLastModifiedTime is a StudioLifecycleConfigSortKey enum value
	StudioLifecycleConfigSortKeyLastModifiedTime = "LastModifiedTime"

	// StudioLifecycleConfigSortKeyName is a StudioLifecycleConfigSortKey enum value
	StudioLifecycleConfigSortKeyName = "Name"
)

// StudioLifecycleConfigSortKey_Values returns all elements of the StudioLifecycleConfigSortKey enum
func StudioLifecycleConfigSortKey_Values() []string {
	return []string{
		StudioLifecycleConfigSortKeyCreationTime,
		StudioLifecycleConfigSortKeyLastModifiedTime,
		StudioLifecycleConfigSortKeyName,
	}
}

const (
	// StudioWebPortalEnabled is a StudioWebPortal enum value
	StudioWebPortalEnabled = "ENABLED"

	// StudioWebPortalDisabled is a StudioWebPortal enum value
	StudioWebPortalDisabled = "DISABLED"
)

// StudioWebPortal_Values returns all elements of the StudioWebPortal enum
func StudioWebPortal_Values() []string {
	return []string{
		StudioWebPortalEnabled,
		StudioWebPortalDisabled,
	}
}

const (
	// TableFormatDefault is a TableFormat enum value
	TableFormatDefault = "Default"

	// TableFormatGlue is a TableFormat enum value
	TableFormatGlue = "Glue"

	// TableFormatIceberg is a TableFormat enum value
	TableFormatIceberg = "Iceberg"
)

// TableFormat_Values returns all elements of the TableFormat enum
func TableFormat_Values() []string {
	return []string{
		TableFormatDefault,
		TableFormatGlue,
		TableFormatIceberg,
	}
}

const (
	// TargetDeviceLambda is a TargetDevice enum value
	TargetDeviceLambda = "lambda"

	// TargetDeviceMlM4 is a TargetDevice enum value
	TargetDeviceMlM4 = "ml_m4"

	// TargetDeviceMlM5 is a TargetDevice enum value
	TargetDeviceMlM5 = "ml_m5"

	// TargetDeviceMlM6g is a TargetDevice enum value
	TargetDeviceMlM6g = "ml_m6g"

	// TargetDeviceMlC4 is a TargetDevice enum value
	TargetDeviceMlC4 = "ml_c4"

	// TargetDeviceMlC5 is a TargetDevice enum value
	TargetDeviceMlC5 = "ml_c5"

	// TargetDeviceMlC6g is a TargetDevice enum value
	TargetDeviceMlC6g = "ml_c6g"

	// TargetDeviceMlP2 is a TargetDevice enum value
	TargetDeviceMlP2 = "ml_p2"

	// TargetDeviceMlP3 is a TargetDevice enum value
	TargetDeviceMlP3 = "ml_p3"

	// TargetDeviceMlG4dn is a TargetDevice enum value
	TargetDeviceMlG4dn = "ml_g4dn"

	// TargetDeviceMlInf1 is a TargetDevice enum value
	TargetDeviceMlInf1 = "ml_inf1"

	// TargetDeviceMlInf2 is a TargetDevice enum value
	TargetDeviceMlInf2 = "ml_inf2"

	// TargetDeviceMlTrn1 is a TargetDevice enum value
	TargetDeviceMlTrn1 = "ml_trn1"

	// TargetDeviceMlEia2 is a TargetDevice enum value
	TargetDeviceMlEia2 = "ml_eia2"

	// TargetDeviceJetsonTx1 is a TargetDevice enum value
	TargetDeviceJetsonTx1 = "jetson_tx1"

	// TargetDeviceJetsonTx2 is a TargetDevice enum value
	TargetDeviceJetsonTx2 = "jetson_tx2"

	// TargetDeviceJetsonNano is a TargetDevice enum value
	TargetDeviceJetsonNano = "jetson_nano"

	// TargetDeviceJetsonXavier is a TargetDevice enum value
	TargetDeviceJetsonXavier = "jetson_xavier"

	// TargetDeviceRasp3b is a TargetDevice enum value
	TargetDeviceRasp3b = "rasp3b"

	// TargetDeviceRasp4b is a TargetDevice enum value
	TargetDeviceRasp4b = "rasp4b"

	// TargetDeviceImx8qm is a TargetDevice enum value
	TargetDeviceImx8qm = "imx8qm"

	// TargetDeviceDeeplens is a TargetDevice enum value
	TargetDeviceDeeplens = "deeplens"

	// TargetDeviceRk3399 is a TargetDevice enum value
	TargetDeviceRk3399 = "rk3399"

	// TargetDeviceRk3288 is a TargetDevice enum value
	TargetDeviceRk3288 = "rk3288"

	// TargetDeviceAisage is a TargetDevice enum value
	TargetDeviceAisage = "aisage"

	// TargetDeviceSbeC is a TargetDevice enum value
	TargetDeviceSbeC = "sbe_c"

	// TargetDeviceQcs605 is a TargetDevice enum value
	TargetDeviceQcs605 = "qcs605"

	// TargetDeviceQcs603 is a TargetDevice enum value
	TargetDeviceQcs603 = "qcs603"

	// TargetDeviceSitaraAm57x is a TargetDevice enum value
	TargetDeviceSitaraAm57x = "sitara_am57x"

	// TargetDeviceAmbaCv2 is a TargetDevice enum value
	TargetDeviceAmbaCv2 = "amba_cv2"

	// TargetDeviceAmbaCv22 is a TargetDevice enum value
	TargetDeviceAmbaCv22 = "amba_cv22"

	// TargetDeviceAmbaCv25 is a TargetDevice enum value
	TargetDeviceAmbaCv25 = "amba_cv25"

	// TargetDeviceX86Win32 is a TargetDevice enum value
	TargetDeviceX86Win32 = "x86_win32"

	// TargetDeviceX86Win64 is a TargetDevice enum value
	TargetDeviceX86Win64 = "x86_win64"

	// TargetDeviceCoreml is a TargetDevice enum value
	TargetDeviceCoreml = "coreml"

	// TargetDeviceJacintoTda4vm is a TargetDevice enum value
	TargetDeviceJacintoTda4vm = "jacinto_tda4vm"

	// TargetDeviceImx8mplus is a TargetDevice enum value
	TargetDeviceImx8mplus = "imx8mplus"
)

// TargetDevice_Values returns all elements of the TargetDevice enum
func TargetDevice_Values() []string {
	return []string{
		TargetDeviceLambda,
		TargetDeviceMlM4,
		TargetDeviceMlM5,
		TargetDeviceMlM6g,
		TargetDeviceMlC4,
		TargetDeviceMlC5,
		TargetDeviceMlC6g,
		TargetDeviceMlP2,
		TargetDeviceMlP3,
		TargetDeviceMlG4dn,
		TargetDeviceMlInf1,
		TargetDeviceMlInf2,
		TargetDeviceMlTrn1,
		TargetDeviceMlEia2,
		TargetDeviceJetsonTx1,
		TargetDeviceJetsonTx2,
		TargetDeviceJetsonNano,
		TargetDeviceJetsonXavier,
		TargetDeviceRasp3b,
		TargetDeviceRasp4b,
		TargetDeviceImx8qm,
		TargetDeviceDeeplens,
		TargetDeviceRk3399,
		TargetDeviceRk3288,
		TargetDeviceAisage,
		TargetDeviceSbeC,
		TargetDeviceQcs605,
		TargetDeviceQcs603,
		TargetDeviceSitaraAm57x,
		TargetDeviceAmbaCv2,
		TargetDeviceAmbaCv22,
		TargetDeviceAmbaCv25,
		TargetDeviceX86Win32,
		TargetDeviceX86Win64,
		TargetDeviceCoreml,
		TargetDeviceJacintoTda4vm,
		TargetDeviceImx8mplus,
	}
}

const (
	// TargetPlatformAcceleratorIntelGraphics is a TargetPlatformAccelerator enum value
	TargetPlatformAcceleratorIntelGraphics = "INTEL_GRAPHICS"

	// TargetPlatformAcceleratorMali is a TargetPlatformAccelerator enum value
	TargetPlatformAcceleratorMali = "MALI"

	// TargetPlatformAcceleratorNvidia is a TargetPlatformAccelerator enum value
	TargetPlatformAcceleratorNvidia = "NVIDIA"

	// TargetPlatformAcceleratorNna is a TargetPlatformAccelerator enum value
	TargetPlatformAcceleratorNna = "NNA"
)

// TargetPlatformAccelerator_Values returns all elements of the TargetPlatformAccelerator enum
func TargetPlatformAccelerator_Values() []string {
	return []string{
		TargetPlatformAcceleratorIntelGraphics,
		TargetPlatformAcceleratorMali,
		TargetPlatformAcceleratorNvidia,
		TargetPlatformAcceleratorNna,
	}
}

const (
	// TargetPlatformArchX8664 is a TargetPlatformArch enum value
	TargetPlatformArchX8664 = "X86_64"

	// TargetPlatformArchX86 is a TargetPlatformArch enum value
	TargetPlatformArchX86 = "X86"

	// TargetPlatformArchArm64 is a TargetPlatformArch enum value
	TargetPlatformArchArm64 = "ARM64"

	// TargetPlatformArchArmEabi is a TargetPlatformArch enum value
	TargetPlatformArchArmEabi = "ARM_EABI"

	// TargetPlatformArchArmEabihf is a TargetPlatformArch enum value
	TargetPlatformArchArmEabihf = "ARM_EABIHF"
)

// TargetPlatformArch_Values returns all elements of the TargetPlatformArch enum
func TargetPlatformArch_Values() []string {
	return []string{
		TargetPlatformArchX8664,
		TargetPlatformArchX86,
		TargetPlatformArchArm64,
		TargetPlatformArchArmEabi,
		TargetPlatformArchArmEabihf,
	}
}

const (
	// TargetPlatformOsAndroid is a TargetPlatformOs enum value
	TargetPlatformOsAndroid = "ANDROID"

	// TargetPlatformOsLinux is a TargetPlatformOs enum value
	TargetPlatformOsLinux = "LINUX"
)

// TargetPlatformOs_Values returns all elements of the TargetPlatformOs enum
func TargetPlatformOs_Values() []string {
	return []string{
		TargetPlatformOsAndroid,
		TargetPlatformOsLinux,
	}
}

const (
	// ThroughputModeOnDemand is a ThroughputMode enum value
	ThroughputModeOnDemand = "OnDemand"

	// ThroughputModeProvisioned is a ThroughputMode enum value
	ThroughputModeProvisioned = "Provisioned"
)

// ThroughputMode_Values returns all elements of the ThroughputMode enum
func ThroughputMode_Values() []string {
	return []string{
		ThroughputModeOnDemand,
		ThroughputModeProvisioned,
	}
}

const (
	// TrafficRoutingConfigTypeAllAtOnce is a TrafficRoutingConfigType enum value
	TrafficRoutingConfigTypeAllAtOnce = "ALL_AT_ONCE"

	// TrafficRoutingConfigTypeCanary is a TrafficRoutingConfigType enum value
	TrafficRoutingConfigTypeCanary = "CANARY"

	// TrafficRoutingConfigTypeLinear is a TrafficRoutingConfigType enum value
	TrafficRoutingConfigTypeLinear = "LINEAR"
)

// TrafficRoutingConfigType_Values returns all elements of the TrafficRoutingConfigType enum
func TrafficRoutingConfigType_Values() []string {
	return []string{
		TrafficRoutingConfigTypeAllAtOnce,
		TrafficRoutingConfigTypeCanary,
		TrafficRoutingConfigTypeLinear,
	}
}

const (
	// TrafficTypePhases is a TrafficType enum value
	TrafficTypePhases = "PHASES"

	// TrafficTypeStairs is a TrafficType enum value
	TrafficTypeStairs = "STAIRS"
)

// TrafficType_Values returns all elements of the TrafficType enum
func TrafficType_Values() []string {
	return []string{
		TrafficTypePhases,
		TrafficTypeStairs,
	}
}

// The training input mode that the algorithm supports. For more information
// about input modes, see Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html).
//
// # Pipe mode
//
// If an algorithm supports Pipe mode, Amazon SageMaker streams data directly
// from Amazon S3 to the container.
//
// # File mode
//
// If an algorithm supports File mode, SageMaker downloads the training data
// from S3 to the provisioned ML storage volume, and mounts the directory to
// the Docker volume for the training container.
//
// You must provision the ML storage volume with sufficient capacity to accommodate
// the data downloaded from S3. In addition to the training data, the ML storage
// volume also stores the output model. The algorithm container uses the ML
// storage volume to also store intermediate information, if any.
//
// For distributed algorithms, training data is distributed uniformly. Your
// training duration is predictable if the input data objects sizes are approximately
// the same. SageMaker does not split the files any further for model training.
// If the object sizes are skewed, training won't be optimal as the data distribution
// is also skewed when one host in a training cluster is overloaded, thus becoming
// a bottleneck in training.
//
// # FastFile mode
//
// If an algorithm supports FastFile mode, SageMaker streams data directly from
// S3 to the container with no code changes, and provides file system access
// to the data. Users can author their training script to interact with these
// files as if they were stored on disk.
//
// FastFile mode works best when the data is read sequentially. Augmented manifest
// files aren't supported. The startup time is lower when there are fewer files
// in the S3 bucket provided.
const (
	// TrainingInputModePipe is a TrainingInputMode enum value
	TrainingInputModePipe = "Pipe"

	// TrainingInputModeFile is a TrainingInputMode enum value
	TrainingInputModeFile = "File"

	// TrainingInputModeFastFile is a TrainingInputMode enum value
	TrainingInputModeFastFile = "FastFile"
)

// TrainingInputMode_Values returns all elements of the TrainingInputMode enum
func TrainingInputMode_Values() []string {
	return []string{
		TrainingInputModePipe,
		TrainingInputModeFile,
		TrainingInputModeFastFile,
	}
}

const (
	// TrainingInstanceTypeMlM4Xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlM4Xlarge = "ml.m4.xlarge"

	// TrainingInstanceTypeMlM42xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlM42xlarge = "ml.m4.2xlarge"

	// TrainingInstanceTypeMlM44xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlM44xlarge = "ml.m4.4xlarge"

	// TrainingInstanceTypeMlM410xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlM410xlarge = "ml.m4.10xlarge"

	// TrainingInstanceTypeMlM416xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlM416xlarge = "ml.m4.16xlarge"

	// TrainingInstanceTypeMlG4dnXlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlG4dnXlarge = "ml.g4dn.xlarge"

	// TrainingInstanceTypeMlG4dn2xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlG4dn2xlarge = "ml.g4dn.2xlarge"

	// TrainingInstanceTypeMlG4dn4xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlG4dn4xlarge = "ml.g4dn.4xlarge"

	// TrainingInstanceTypeMlG4dn8xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlG4dn8xlarge = "ml.g4dn.8xlarge"

	// TrainingInstanceTypeMlG4dn12xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlG4dn12xlarge = "ml.g4dn.12xlarge"

	// TrainingInstanceTypeMlG4dn16xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlG4dn16xlarge = "ml.g4dn.16xlarge"

	// TrainingInstanceTypeMlM5Large is a TrainingInstanceType enum value
	TrainingInstanceTypeMlM5Large = "ml.m5.large"

	// TrainingInstanceTypeMlM5Xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlM5Xlarge = "ml.m5.xlarge"

	// TrainingInstanceTypeMlM52xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlM52xlarge = "ml.m5.2xlarge"

	// TrainingInstanceTypeMlM54xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlM54xlarge = "ml.m5.4xlarge"

	// TrainingInstanceTypeMlM512xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlM512xlarge = "ml.m5.12xlarge"

	// TrainingInstanceTypeMlM524xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlM524xlarge = "ml.m5.24xlarge"

	// TrainingInstanceTypeMlC4Xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlC4Xlarge = "ml.c4.xlarge"

	// TrainingInstanceTypeMlC42xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlC42xlarge = "ml.c4.2xlarge"

	// TrainingInstanceTypeMlC44xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlC44xlarge = "ml.c4.4xlarge"

	// TrainingInstanceTypeMlC48xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlC48xlarge = "ml.c4.8xlarge"

	// TrainingInstanceTypeMlP2Xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlP2Xlarge = "ml.p2.xlarge"

	// TrainingInstanceTypeMlP28xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlP28xlarge = "ml.p2.8xlarge"

	// TrainingInstanceTypeMlP216xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlP216xlarge = "ml.p2.16xlarge"

	// TrainingInstanceTypeMlP32xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlP32xlarge = "ml.p3.2xlarge"

	// TrainingInstanceTypeMlP38xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlP38xlarge = "ml.p3.8xlarge"

	// TrainingInstanceTypeMlP316xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlP316xlarge = "ml.p3.16xlarge"

	// TrainingInstanceTypeMlP3dn24xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlP3dn24xlarge = "ml.p3dn.24xlarge"

	// TrainingInstanceTypeMlP4d24xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlP4d24xlarge = "ml.p4d.24xlarge"

	// TrainingInstanceTypeMlP4de24xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlP4de24xlarge = "ml.p4de.24xlarge"

	// TrainingInstanceTypeMlP548xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlP548xlarge = "ml.p5.48xlarge"

	// TrainingInstanceTypeMlC5Xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlC5Xlarge = "ml.c5.xlarge"

	// TrainingInstanceTypeMlC52xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlC52xlarge = "ml.c5.2xlarge"

	// TrainingInstanceTypeMlC54xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlC54xlarge = "ml.c5.4xlarge"

	// TrainingInstanceTypeMlC59xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlC59xlarge = "ml.c5.9xlarge"

	// TrainingInstanceTypeMlC518xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlC518xlarge = "ml.c5.18xlarge"

	// TrainingInstanceTypeMlC5nXlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlC5nXlarge = "ml.c5n.xlarge"

	// TrainingInstanceTypeMlC5n2xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlC5n2xlarge = "ml.c5n.2xlarge"

	// TrainingInstanceTypeMlC5n4xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlC5n4xlarge = "ml.c5n.4xlarge"

	// TrainingInstanceTypeMlC5n9xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlC5n9xlarge = "ml.c5n.9xlarge"

	// TrainingInstanceTypeMlC5n18xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlC5n18xlarge = "ml.c5n.18xlarge"

	// TrainingInstanceTypeMlG5Xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlG5Xlarge = "ml.g5.xlarge"

	// TrainingInstanceTypeMlG52xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlG52xlarge = "ml.g5.2xlarge"

	// TrainingInstanceTypeMlG54xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlG54xlarge = "ml.g5.4xlarge"

	// TrainingInstanceTypeMlG58xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlG58xlarge = "ml.g5.8xlarge"

	// TrainingInstanceTypeMlG516xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlG516xlarge = "ml.g5.16xlarge"

	// TrainingInstanceTypeMlG512xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlG512xlarge = "ml.g5.12xlarge"

	// TrainingInstanceTypeMlG524xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlG524xlarge = "ml.g5.24xlarge"

	// TrainingInstanceTypeMlG548xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlG548xlarge = "ml.g5.48xlarge"

	// TrainingInstanceTypeMlTrn12xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlTrn12xlarge = "ml.trn1.2xlarge"

	// TrainingInstanceTypeMlTrn132xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlTrn132xlarge = "ml.trn1.32xlarge"

	// TrainingInstanceTypeMlTrn1n32xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlTrn1n32xlarge = "ml.trn1n.32xlarge"

	// TrainingInstanceTypeMlM6iLarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlM6iLarge = "ml.m6i.large"

	// TrainingInstanceTypeMlM6iXlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlM6iXlarge = "ml.m6i.xlarge"

	// TrainingInstanceTypeMlM6i2xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlM6i2xlarge = "ml.m6i.2xlarge"

	// TrainingInstanceTypeMlM6i4xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlM6i4xlarge = "ml.m6i.4xlarge"

	// TrainingInstanceTypeMlM6i8xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlM6i8xlarge = "ml.m6i.8xlarge"

	// TrainingInstanceTypeMlM6i12xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlM6i12xlarge = "ml.m6i.12xlarge"

	// TrainingInstanceTypeMlM6i16xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlM6i16xlarge = "ml.m6i.16xlarge"

	// TrainingInstanceTypeMlM6i24xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlM6i24xlarge = "ml.m6i.24xlarge"

	// TrainingInstanceTypeMlM6i32xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlM6i32xlarge = "ml.m6i.32xlarge"

	// TrainingInstanceTypeMlC6iXlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlC6iXlarge = "ml.c6i.xlarge"

	// TrainingInstanceTypeMlC6i2xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlC6i2xlarge = "ml.c6i.2xlarge"

	// TrainingInstanceTypeMlC6i8xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlC6i8xlarge = "ml.c6i.8xlarge"

	// TrainingInstanceTypeMlC6i4xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlC6i4xlarge = "ml.c6i.4xlarge"

	// TrainingInstanceTypeMlC6i12xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlC6i12xlarge = "ml.c6i.12xlarge"

	// TrainingInstanceTypeMlC6i16xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlC6i16xlarge = "ml.c6i.16xlarge"

	// TrainingInstanceTypeMlC6i24xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlC6i24xlarge = "ml.c6i.24xlarge"

	// TrainingInstanceTypeMlC6i32xlarge is a TrainingInstanceType enum value
	TrainingInstanceTypeMlC6i32xlarge = "ml.c6i.32xlarge"
)

// TrainingInstanceType_Values returns all elements of the TrainingInstanceType enum
func TrainingInstanceType_Values() []string {
	return []string{
		TrainingInstanceTypeMlM4Xlarge,
		TrainingInstanceTypeMlM42xlarge,
		TrainingInstanceTypeMlM44xlarge,
		TrainingInstanceTypeMlM410xlarge,
		TrainingInstanceTypeMlM416xlarge,
		TrainingInstanceTypeMlG4dnXlarge,
		TrainingInstanceTypeMlG4dn2xlarge,
		TrainingInstanceTypeMlG4dn4xlarge,
		TrainingInstanceTypeMlG4dn8xlarge,
		TrainingInstanceTypeMlG4dn12xlarge,
		TrainingInstanceTypeMlG4dn16xlarge,
		TrainingInstanceTypeMlM5Large,
		TrainingInstanceTypeMlM5Xlarge,
		TrainingInstanceTypeMlM52xlarge,
		TrainingInstanceTypeMlM54xlarge,
		TrainingInstanceTypeMlM512xlarge,
		TrainingInstanceTypeMlM524xlarge,
		TrainingInstanceTypeMlC4Xlarge,
		TrainingInstanceTypeMlC42xlarge,
		TrainingInstanceTypeMlC44xlarge,
		TrainingInstanceTypeMlC48xlarge,
		TrainingInstanceTypeMlP2Xlarge,
		TrainingInstanceTypeMlP28xlarge,
		TrainingInstanceTypeMlP216xlarge,
		TrainingInstanceTypeMlP32xlarge,
		TrainingInstanceTypeMlP38xlarge,
		TrainingInstanceTypeMlP316xlarge,
		TrainingInstanceTypeMlP3dn24xlarge,
		TrainingInstanceTypeMlP4d24xlarge,
		TrainingInstanceTypeMlP4de24xlarge,
		TrainingInstanceTypeMlP548xlarge,
		TrainingInstanceTypeMlC5Xlarge,
		TrainingInstanceTypeMlC52xlarge,
		TrainingInstanceTypeMlC54xlarge,
		TrainingInstanceTypeMlC59xlarge,
		TrainingInstanceTypeMlC518xlarge,
		TrainingInstanceTypeMlC5nXlarge,
		TrainingInstanceTypeMlC5n2xlarge,
		TrainingInstanceTypeMlC5n4xlarge,
		TrainingInstanceTypeMlC5n9xlarge,
		TrainingInstanceTypeMlC5n18xlarge,
		TrainingInstanceTypeMlG5Xlarge,
		TrainingInstanceTypeMlG52xlarge,
		TrainingInstanceTypeMlG54xlarge,
		TrainingInstanceTypeMlG58xlarge,
		TrainingInstanceTypeMlG516xlarge,
		TrainingInstanceTypeMlG512xlarge,
		TrainingInstanceTypeMlG524xlarge,
		TrainingInstanceTypeMlG548xlarge,
		TrainingInstanceTypeMlTrn12xlarge,
		TrainingInstanceTypeMlTrn132xlarge,
		TrainingInstanceTypeMlTrn1n32xlarge,
		TrainingInstanceTypeMlM6iLarge,
		TrainingInstanceTypeMlM6iXlarge,
		TrainingInstanceTypeMlM6i2xlarge,
		TrainingInstanceTypeMlM6i4xlarge,
		TrainingInstanceTypeMlM6i8xlarge,
		TrainingInstanceTypeMlM6i12xlarge,
		TrainingInstanceTypeMlM6i16xlarge,
		TrainingInstanceTypeMlM6i24xlarge,
		TrainingInstanceTypeMlM6i32xlarge,
		TrainingInstanceTypeMlC6iXlarge,
		TrainingInstanceTypeMlC6i2xlarge,
		TrainingInstanceTypeMlC6i8xlarge,
		TrainingInstanceTypeMlC6i4xlarge,
		TrainingInstanceTypeMlC6i12xlarge,
		TrainingInstanceTypeMlC6i16xlarge,
		TrainingInstanceTypeMlC6i24xlarge,
		TrainingInstanceTypeMlC6i32xlarge,
	}
}

const (
	// TrainingJobEarlyStoppingTypeOff is a TrainingJobEarlyStoppingType enum value
	TrainingJobEarlyStoppingTypeOff = "Off"

	// TrainingJobEarlyStoppingTypeAuto is a TrainingJobEarlyStoppingType enum value
	TrainingJobEarlyStoppingTypeAuto = "Auto"
)

// TrainingJobEarlyStoppingType_Values returns all elements of the TrainingJobEarlyStoppingType enum
func TrainingJobEarlyStoppingType_Values() []string {
	return []string{
		TrainingJobEarlyStoppingTypeOff,
		TrainingJobEarlyStoppingTypeAuto,
	}
}

const (
	// TrainingJobSortByOptionsName is a TrainingJobSortByOptions enum value
	TrainingJobSortByOptionsName = "Name"

	// TrainingJobSortByOptionsCreationTime is a TrainingJobSortByOptions enum value
	TrainingJobSortByOptionsCreationTime = "CreationTime"

	// TrainingJobSortByOptionsStatus is a TrainingJobSortByOptions enum value
	TrainingJobSortByOptionsStatus = "Status"

	// TrainingJobSortByOptionsFinalObjectiveMetricValue is a TrainingJobSortByOptions enum value
	TrainingJobSortByOptionsFinalObjectiveMetricValue = "FinalObjectiveMetricValue"
)

// TrainingJobSortByOptions_Values returns all elements of the TrainingJobSortByOptions enum
func TrainingJobSortByOptions_Values() []string {
	return []string{
		TrainingJobSortByOptionsName,
		TrainingJobSortByOptionsCreationTime,
		TrainingJobSortByOptionsStatus,
		TrainingJobSortByOptionsFinalObjectiveMetricValue,
	}
}

const (
	// TrainingJobStatusInProgress is a TrainingJobStatus enum value
	TrainingJobStatusInProgress = "InProgress"

	// TrainingJobStatusCompleted is a TrainingJobStatus enum value
	TrainingJobStatusCompleted = "Completed"

	// TrainingJobStatusFailed is a TrainingJobStatus enum value
	TrainingJobStatusFailed = "Failed"

	// TrainingJobStatusStopping is a TrainingJobStatus enum value
	TrainingJobStatusStopping = "Stopping"

	// TrainingJobStatusStopped is a TrainingJobStatus enum value
	TrainingJobStatusStopped = "Stopped"
)

// TrainingJobStatus_Values returns all elements of the TrainingJobStatus enum
func TrainingJobStatus_Values() []string {
	return []string{
		TrainingJobStatusInProgress,
		TrainingJobStatusCompleted,
		TrainingJobStatusFailed,
		TrainingJobStatusStopping,
		TrainingJobStatusStopped,
	}
}

const (
	// TrainingRepositoryAccessModePlatform is a TrainingRepositoryAccessMode enum value
	TrainingRepositoryAccessModePlatform = "Platform"

	// TrainingRepositoryAccessModeVpc is a TrainingRepositoryAccessMode enum value
	TrainingRepositoryAccessModeVpc = "Vpc"
)

// TrainingRepositoryAccessMode_Values returns all elements of the TrainingRepositoryAccessMode enum
func TrainingRepositoryAccessMode_Values() []string {
	return []string{
		TrainingRepositoryAccessModePlatform,
		TrainingRepositoryAccessModeVpc,
	}
}

const (
	// TransformInstanceTypeMlM4Xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlM4Xlarge = "ml.m4.xlarge"

	// TransformInstanceTypeMlM42xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlM42xlarge = "ml.m4.2xlarge"

	// TransformInstanceTypeMlM44xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlM44xlarge = "ml.m4.4xlarge"

	// TransformInstanceTypeMlM410xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlM410xlarge = "ml.m4.10xlarge"

	// TransformInstanceTypeMlM416xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlM416xlarge = "ml.m4.16xlarge"

	// TransformInstanceTypeMlC4Xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlC4Xlarge = "ml.c4.xlarge"

	// TransformInstanceTypeMlC42xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlC42xlarge = "ml.c4.2xlarge"

	// TransformInstanceTypeMlC44xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlC44xlarge = "ml.c4.4xlarge"

	// TransformInstanceTypeMlC48xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlC48xlarge = "ml.c4.8xlarge"

	// TransformInstanceTypeMlP2Xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlP2Xlarge = "ml.p2.xlarge"

	// TransformInstanceTypeMlP28xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlP28xlarge = "ml.p2.8xlarge"

	// TransformInstanceTypeMlP216xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlP216xlarge = "ml.p2.16xlarge"

	// TransformInstanceTypeMlP32xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlP32xlarge = "ml.p3.2xlarge"

	// TransformInstanceTypeMlP38xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlP38xlarge = "ml.p3.8xlarge"

	// TransformInstanceTypeMlP316xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlP316xlarge = "ml.p3.16xlarge"

	// TransformInstanceTypeMlC5Xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlC5Xlarge = "ml.c5.xlarge"

	// TransformInstanceTypeMlC52xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlC52xlarge = "ml.c5.2xlarge"

	// TransformInstanceTypeMlC54xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlC54xlarge = "ml.c5.4xlarge"

	// TransformInstanceTypeMlC59xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlC59xlarge = "ml.c5.9xlarge"

	// TransformInstanceTypeMlC518xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlC518xlarge = "ml.c5.18xlarge"

	// TransformInstanceTypeMlM5Large is a TransformInstanceType enum value
	TransformInstanceTypeMlM5Large = "ml.m5.large"

	// TransformInstanceTypeMlM5Xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlM5Xlarge = "ml.m5.xlarge"

	// TransformInstanceTypeMlM52xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlM52xlarge = "ml.m5.2xlarge"

	// TransformInstanceTypeMlM54xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlM54xlarge = "ml.m5.4xlarge"

	// TransformInstanceTypeMlM512xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlM512xlarge = "ml.m5.12xlarge"

	// TransformInstanceTypeMlM524xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlM524xlarge = "ml.m5.24xlarge"

	// TransformInstanceTypeMlG4dnXlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlG4dnXlarge = "ml.g4dn.xlarge"

	// TransformInstanceTypeMlG4dn2xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlG4dn2xlarge = "ml.g4dn.2xlarge"

	// TransformInstanceTypeMlG4dn4xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlG4dn4xlarge = "ml.g4dn.4xlarge"

	// TransformInstanceTypeMlG4dn8xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlG4dn8xlarge = "ml.g4dn.8xlarge"

	// TransformInstanceTypeMlG4dn12xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlG4dn12xlarge = "ml.g4dn.12xlarge"

	// TransformInstanceTypeMlG4dn16xlarge is a TransformInstanceType enum value
	TransformInstanceTypeMlG4dn16xlarge = "ml.g4dn.16xlarge"
)

// TransformInstanceType_Values returns all elements of the TransformInstanceType enum
func TransformInstanceType_Values() []string {
	return []string{
		TransformInstanceTypeMlM4Xlarge,
		TransformInstanceTypeMlM42xlarge,
		TransformInstanceTypeMlM44xlarge,
		TransformInstanceTypeMlM410xlarge,
		TransformInstanceTypeMlM416xlarge,
		TransformInstanceTypeMlC4Xlarge,
		TransformInstanceTypeMlC42xlarge,
		TransformInstanceTypeMlC44xlarge,
		TransformInstanceTypeMlC48xlarge,
		TransformInstanceTypeMlP2Xlarge,
		TransformInstanceTypeMlP28xlarge,
		TransformInstanceTypeMlP216xlarge,
		TransformInstanceTypeMlP32xlarge,
		TransformInstanceTypeMlP38xlarge,
		TransformInstanceTypeMlP316xlarge,
		TransformInstanceTypeMlC5Xlarge,
		TransformInstanceTypeMlC52xlarge,
		TransformInstanceTypeMlC54xlarge,
		TransformInstanceTypeMlC59xlarge,
		TransformInstanceTypeMlC518xlarge,
		TransformInstanceTypeMlM5Large,
		TransformInstanceTypeMlM5Xlarge,
		TransformInstanceTypeMlM52xlarge,
		TransformInstanceTypeMlM54xlarge,
		TransformInstanceTypeMlM512xlarge,
		TransformInstanceTypeMlM524xlarge,
		TransformInstanceTypeMlG4dnXlarge,
		TransformInstanceTypeMlG4dn2xlarge,
		TransformInstanceTypeMlG4dn4xlarge,
		TransformInstanceTypeMlG4dn8xlarge,
		TransformInstanceTypeMlG4dn12xlarge,
		TransformInstanceTypeMlG4dn16xlarge,
	}
}

const (
	// TransformJobStatusInProgress is a TransformJobStatus enum value
	TransformJobStatusInProgress = "InProgress"

	// TransformJobStatusCompleted is a TransformJobStatus enum value
	TransformJobStatusCompleted = "Completed"

	// TransformJobStatusFailed is a TransformJobStatus enum value
	TransformJobStatusFailed = "Failed"

	// TransformJobStatusStopping is a TransformJobStatus enum value
	TransformJobStatusStopping = "Stopping"

	// TransformJobStatusStopped is a TransformJobStatus enum value
	TransformJobStatusStopped = "Stopped"
)

// TransformJobStatus_Values returns all elements of the TransformJobStatus enum
func TransformJobStatus_Values() []string {
	return []string{
		TransformJobStatusInProgress,
		TransformJobStatusCompleted,
		TransformJobStatusFailed,
		TransformJobStatusStopping,
		TransformJobStatusStopped,
	}
}

const (
	// TrialComponentPrimaryStatusInProgress is a TrialComponentPrimaryStatus enum value
	TrialComponentPrimaryStatusInProgress = "InProgress"

	// TrialComponentPrimaryStatusCompleted is a TrialComponentPrimaryStatus enum value
	TrialComponentPrimaryStatusCompleted = "Completed"

	// TrialComponentPrimaryStatusFailed is a TrialComponentPrimaryStatus enum value
	TrialComponentPrimaryStatusFailed = "Failed"

	// TrialComponentPrimaryStatusStopping is a TrialComponentPrimaryStatus enum value
	TrialComponentPrimaryStatusStopping = "Stopping"

	// TrialComponentPrimaryStatusStopped is a TrialComponentPrimaryStatus enum value
	TrialComponentPrimaryStatusStopped = "Stopped"
)

// TrialComponentPrimaryStatus_Values returns all elements of the TrialComponentPrimaryStatus enum
func TrialComponentPrimaryStatus_Values() []string {
	return []string{
		TrialComponentPrimaryStatusInProgress,
		TrialComponentPrimaryStatusCompleted,
		TrialComponentPrimaryStatusFailed,
		TrialComponentPrimaryStatusStopping,
		TrialComponentPrimaryStatusStopped,
	}
}

const (
	// TtlDurationUnitSeconds is a TtlDurationUnit enum value
	TtlDurationUnitSeconds = "Seconds"

	// TtlDurationUnitMinutes is a TtlDurationUnit enum value
	TtlDurationUnitMinutes = "Minutes"

	// TtlDurationUnitHours is a TtlDurationUnit enum value
	TtlDurationUnitHours = "Hours"

	// TtlDurationUnitDays is a TtlDurationUnit enum value
	TtlDurationUnitDays = "Days"

	// TtlDurationUnitWeeks is a TtlDurationUnit enum value
	TtlDurationUnitWeeks = "Weeks"
)

// TtlDurationUnit_Values returns all elements of the TtlDurationUnit enum
func TtlDurationUnit_Values() []string {
	return []string{
		TtlDurationUnitSeconds,
		TtlDurationUnitMinutes,
		TtlDurationUnitHours,
		TtlDurationUnitDays,
		TtlDurationUnitWeeks,
	}
}

const (
	// UserProfileSortKeyCreationTime is a UserProfileSortKey enum value
	UserProfileSortKeyCreationTime = "CreationTime"

	// UserProfileSortKeyLastModifiedTime is a UserProfileSortKey enum value
	UserProfileSortKeyLastModifiedTime = "LastModifiedTime"
)

// UserProfileSortKey_Values returns all elements of the UserProfileSortKey enum
func UserProfileSortKey_Values() []string {
	return []string{
		UserProfileSortKeyCreationTime,
		UserProfileSortKeyLastModifiedTime,
	}
}

const (
	// UserProfileStatusDeleting is a UserProfileStatus enum value
	UserProfileStatusDeleting = "Deleting"

	// UserProfileStatusFailed is a UserProfileStatus enum value
	UserProfileStatusFailed = "Failed"

	// UserProfileStatusInService is a UserProfileStatus enum value
	UserProfileStatusInService = "InService"

	// UserProfileStatusPending is a UserProfileStatus enum value
	UserProfileStatusPending = "Pending"

	// UserProfileStatusUpdating is a UserProfileStatus enum value
	UserProfileStatusUpdating = "Updating"

	// UserProfileStatusUpdateFailed is a UserProfileStatus enum value
	UserProfileStatusUpdateFailed = "Update_Failed"

	// UserProfileStatusDeleteFailed is a UserProfileStatus enum value
	UserProfileStatusDeleteFailed = "Delete_Failed"
)

// UserProfileStatus_Values returns all elements of the UserProfileStatus enum
func UserProfileStatus_Values() []string {
	return []string{
		UserProfileStatusDeleting,
		UserProfileStatusFailed,
		UserProfileStatusInService,
		UserProfileStatusPending,
		UserProfileStatusUpdating,
		UserProfileStatusUpdateFailed,
		UserProfileStatusDeleteFailed,
	}
}

const (
	// VariantPropertyTypeDesiredInstanceCount is a VariantPropertyType enum value
	VariantPropertyTypeDesiredInstanceCount = "DesiredInstanceCount"

	// VariantPropertyTypeDesiredWeight is a VariantPropertyType enum value
	VariantPropertyTypeDesiredWeight = "DesiredWeight"

	// VariantPropertyTypeDataCaptureConfig is a VariantPropertyType enum value
	VariantPropertyTypeDataCaptureConfig = "DataCaptureConfig"
)

// VariantPropertyType_Values returns all elements of the VariantPropertyType enum
func VariantPropertyType_Values() []string {
	return []string{
		VariantPropertyTypeDesiredInstanceCount,
		VariantPropertyTypeDesiredWeight,
		VariantPropertyTypeDataCaptureConfig,
	}
}

const (
	// VariantStatusCreating is a VariantStatus enum value
	VariantStatusCreating = "Creating"

	// VariantStatusUpdating is a VariantStatus enum value
	VariantStatusUpdating = "Updating"

	// VariantStatusDeleting is a VariantStatus enum value
	VariantStatusDeleting = "Deleting"

	// VariantStatusActivatingTraffic is a VariantStatus enum value
	VariantStatusActivatingTraffic = "ActivatingTraffic"

	// VariantStatusBaking is a VariantStatus enum value
	VariantStatusBaking = "Baking"
)

// VariantStatus_Values returns all elements of the VariantStatus enum
func VariantStatus_Values() []string {
	return []string{
		VariantStatusCreating,
		VariantStatusUpdating,
		VariantStatusDeleting,
		VariantStatusActivatingTraffic,
		VariantStatusBaking,
	}
}

const (
	// VendorGuidanceNotProvided is a VendorGuidance enum value
	VendorGuidanceNotProvided = "NOT_PROVIDED"

	// VendorGuidanceStable is a VendorGuidance enum value
	VendorGuidanceStable = "STABLE"

	// VendorGuidanceToBeArchived is a VendorGuidance enum value
	VendorGuidanceToBeArchived = "TO_BE_ARCHIVED"

	// VendorGuidanceArchived is a VendorGuidance enum value
	VendorGuidanceArchived = "ARCHIVED"
)

// VendorGuidance_Values returns all elements of the VendorGuidance enum
func VendorGuidance_Values() []string {
	return []string{
		VendorGuidanceNotProvided,
		VendorGuidanceStable,
		VendorGuidanceToBeArchived,
		VendorGuidanceArchived,
	}
}

const (
	// WarmPoolResourceStatusAvailable is a WarmPoolResourceStatus enum value
	WarmPoolResourceStatusAvailable = "Available"

	// WarmPoolResourceStatusTerminated is a WarmPoolResourceStatus enum value
	WarmPoolResourceStatusTerminated = "Terminated"

	// WarmPoolResourceStatusReused is a WarmPoolResourceStatus enum value
	WarmPoolResourceStatusReused = "Reused"

	// WarmPoolResourceStatusInUse is a WarmPoolResourceStatus enum value
	WarmPoolResourceStatusInUse = "InUse"
)

// WarmPoolResourceStatus_Values returns all elements of the WarmPoolResourceStatus enum
func WarmPoolResourceStatus_Values() []string {
	return []string{
		WarmPoolResourceStatusAvailable,
		WarmPoolResourceStatusTerminated,
		WarmPoolResourceStatusReused,
		WarmPoolResourceStatusInUse,
	}
}

const (
	// WorkforceStatusInitializing is a WorkforceStatus enum value
	WorkforceStatusInitializing = "Initializing"

	// WorkforceStatusUpdating is a WorkforceStatus enum value
	WorkforceStatusUpdating = "Updating"

	// WorkforceStatusDeleting is a WorkforceStatus enum value
	WorkforceStatusDeleting = "Deleting"

	// WorkforceStatusFailed is a WorkforceStatus enum value
	WorkforceStatusFailed = "Failed"

	// WorkforceStatusActive is a WorkforceStatus enum value
	WorkforceStatusActive = "Active"
)

// WorkforceStatus_Values returns all elements of the WorkforceStatus enum
func WorkforceStatus_Values() []string {
	return []string{
		WorkforceStatusInitializing,
		WorkforceStatusUpdating,
		WorkforceStatusDeleting,
		WorkforceStatusFailed,
		WorkforceStatusActive,
	}
}
