404 Not Found


nginx
beegazpacho.com - GrazzMean
Uname: Linux in-mum-web1557.main-hosting.eu 5.14.0-611.42.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Mar 24 05:30:20 EDT 2026 x86_64
Software: LiteSpeed
PHP version: 8.2.30 [ PHP INFO ] PHP os: Linux
Server Ip: 88.222.243.12
Your Ip: 216.73.216.168
User: u848900432 (848900432) | Group: o51372345 (1051372345)
Safe Mode: OFF
Disable Function:
NONE

name : api.go
// 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,
	}
}
© 2026 GrazzMean
Beegazpacho


Let’s  Start  Your  Online  Journey  with  Beegazpacho 

Welcome to Beegazpacho,
where creativity meets strategy,
and innovation drives success.


Contact
Now


OUR CLIENTS

WhatsApp-Image-2021-12-06.png
Untitled-design-11.png
niaf-logo.png
20220406-163308-scaled.jpg
karchi-logo.png
20220405-171252.png
20220405-171309.png
20220321-161603.png
20220321-161611.png
20220321-161628.png
20220321-161244.png
20220321-161256.png
20220321-161450.png
20220321-161205.png
20220226-170222.png
20220321-161051.png
20211202-170852.png
Untitled-design-9
pidilite-png-logo-colour
logo-black-e1706125740216-qisosldqhzgcaerhdt6n4t3m4s50jr0iik48z0h5vk
Fraikin-Dayim-logo-1
hpcl-logo-2-1
services

Transforming Ideas into
Success

.01
Digital Marketing

We drive growth through data-driven strategies and cutting-edge techniques.

Learn More

.02
SEO

Improve your online visibility and rank higher on search engines with our expert SEO services.

Learn More

.03
Website Designing

We design websites that are not only visually stunning but also user-centric, ensuring seamless navigation and enhanced user experience.

Learn More

.04
App Development

Our apps are crafted to be intuitive, engaging, and functional, providing your users with an exceptional mobile experience.

Learn More

.05
Social Media Ads

Target the right audience with precision and creativity to maximize engagement and conversions.

Learn More

.06
Google Ads

Maximize ROI with precision-targeted campaigns on Google’s powerful ad platform.

Learn More

.07
Google My Business

Optimize your local presence with strategies that put your business on the map and attract more customers.

Learn More

.08
Graphic Designing

Our designs tell your brand’s story in a visually compelling way.

Learn More

.09
3D Videos

Bring your product to life with immersive and dynamic 3D explainer videos.

Learn More

about BEEGAZPACHO

creating special Things
For special brands

Join the ranks of successful brands by partnering with Beegazpacho

00+

Happy Customer

00+

Continents

Our vision is not just to be a service provider but to be your partner in growth. We see ourselves as an extension of your team, working tirelessly to ensure that your brand not only meets its goals but surpasses them.

Explore
more

Our Recent Work

Crafted with Passion and Precision

Connect now


Web Design
Design, Development & Identity

Logo Design
Design, Development & Identity

Creative Brand design
Design, Development & Identity

Product Design Marketing
Design, Development & Identity

DIGITAL MARKETING
SEO
WEBSITE DESIGNING
APP DEVELOPMENT
SOCIAL MEDIA ADS
GOOGLE ADS
GOOGLE MY BUSINESS
GRAPHIC DESINING
3D VIDEOS
Client Stories

Hear It from Those Who Know Us Best

Our clients’ success stories speak volumes about our commitment to excellence. Don’t just take our word for it—hear directly from the brands we’ve partnered with. Their testimonials highlight our ability to bring visions to life and create a lasting impact on their businesses.

“Beegazpacho feels like an extension of our team. Their content marketing and social media expertise have elevated our brand. They listen, adapt, and always deliver on time. We look forward to continuing this partnership.”

— Sarah Williams

Head of Marketing, GreenPlanet Apparel

“Beegazpacho’s data-driven strategies helped us improve our online ads, optimize our website, and enhance branding. We’ve seen great ROI and increased visibility. Their professionalism is unmatched.”

— Arvind Shah

CEO, InnovateTech Solutions

“Partnering with Beegazpacho has been a game-changer for our brand. Their creative ad campaigns and SEO services have boosted our online presence and significantly increased leads and sales. We couldn’t ask for a better partner!”

— Rina Kapoor

Marketing Director, Luxury Home Interiors

“Beegazpacho feels like an extension of our team. Their content marketing and social media expertise have elevated our brand. They listen, adapt, and always deliver on time. We look forward to continuing this partnership.”

— Sarah Williams

Head of Marketing, GreenPlanet Apparel

“Beegazpacho’s data-driven strategies helped us improve our online ads, optimize our website, and enhance branding. We’ve seen great ROI and increased visibility. Their professionalism is unmatched.”

— Arvind Shah

CEO, InnovateTech Solutions

“Partnering with Beegazpacho has been a game-changer for our brand. Their creative ad campaigns and SEO services have boosted our online presence and significantly increased leads and sales. We couldn’t ask for a better partner!”

— Rina Kapoor

Marketing Director, Luxury Home Interiors