// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License"). You may
// not use this file except in compliance with the License. A copy of the
// License is located at
//
//     http://aws.amazon.com/apache2.0/
//
// or in the "license" file accompanying this file. This file is distributed
// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
// express or implied. See the License for the specific language governing
// permissions and limitations under the License.
//
// Code generated by [agent/gogenerate/awssdk.go] DO NOT EDIT.

package ecsacs

import (
	"fmt"

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

type ASMAuthData struct {
	_ struct{} `type:"structure"`

	CredentialsParameter *string `json:"credentialsParameter,omitempty" type:"string"`

	Region *string `json:"region,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ASMAuthData) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ASMAuthData) GoString() string {
	return s.String()
}

type AccessDeniedException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `json:"message,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AccessDeniedException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AccessDeniedException) GoString() string {
	return s.String()
}

func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
	return &AccessDeniedException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *AccessDeniedException) Code() string {
	return "AccessDeniedException"
}

// Message returns the exception's message.
func (s *AccessDeniedException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *AccessDeniedException) OrigErr() error {
	return nil
}

func (s *AccessDeniedException) 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 *AccessDeniedException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *AccessDeniedException) RequestID() string {
	return s.RespMetadata.RequestID
}

type AckRequest struct {
	_ struct{} `type:"structure"`

	Cluster *string `json:"cluster,omitempty" type:"string"`

	ContainerInstance *string `json:"containerInstance,omitempty" type:"string"`

	MessageId *string `json:"messageId,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AckRequest) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AckRequest) GoString() string {
	return s.String()
}

type Association struct {
	_ struct{} `type:"structure"`

	Containers []*string `json:"containers,omitempty" type:"list"`

	Content *EncodedString `json:"content,omitempty" type:"structure"`

	Name *string `json:"name,omitempty" type:"string"`

	Type *string `json:"type,omitempty" type:"string" enum:"AssociationType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Association) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Association) GoString() string {
	return s.String()
}

type AttachInstanceNetworkInterfacesInput struct {
	_ struct{} `type:"structure"`

	ClusterArn *string `json:"clusterArn,omitempty" type:"string"`

	ContainerInstanceArn *string `json:"containerInstanceArn,omitempty" type:"string"`

	ElasticNetworkInterfaces []*ElasticNetworkInterface `json:"elasticNetworkInterfaces,omitempty" type:"list"`

	GeneratedAt *int64 `json:"generatedAt,omitempty" type:"long"`

	MessageId *string `json:"messageId,omitempty" type:"string"`

	WaitTimeoutMs *int64 `json:"waitTimeoutMs,omitempty" type:"long"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AttachInstanceNetworkInterfacesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AttachInstanceNetworkInterfacesInput) GoString() string {
	return s.String()
}

type AttachInstanceNetworkInterfacesMessage struct {
	_ struct{} `type:"structure"`

	ClusterArn *string `json:"clusterArn,omitempty" type:"string"`

	ContainerInstanceArn *string `json:"containerInstanceArn,omitempty" type:"string"`

	ElasticNetworkInterfaces []*ElasticNetworkInterface `json:"elasticNetworkInterfaces,omitempty" type:"list"`

	GeneratedAt *int64 `json:"generatedAt,omitempty" type:"long"`

	MessageId *string `json:"messageId,omitempty" type:"string"`

	WaitTimeoutMs *int64 `json:"waitTimeoutMs,omitempty" type:"long"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AttachInstanceNetworkInterfacesMessage) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AttachInstanceNetworkInterfacesMessage) GoString() string {
	return s.String()
}

type AttachInstanceNetworkInterfacesOutput struct {
	_ struct{} `type:"structure"`

	Cluster *string `json:"cluster,omitempty" type:"string"`

	ContainerInstance *string `json:"containerInstance,omitempty" type:"string"`

	MessageId *string `json:"messageId,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AttachInstanceNetworkInterfacesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AttachInstanceNetworkInterfacesOutput) GoString() string {
	return s.String()
}

type AttachTaskNetworkInterfacesInput struct {
	_ struct{} `type:"structure"`

	ClusterArn *string `json:"clusterArn,omitempty" type:"string"`

	ContainerInstanceArn *string `json:"containerInstanceArn,omitempty" type:"string"`

	ElasticNetworkInterfaces []*ElasticNetworkInterface `json:"elasticNetworkInterfaces,omitempty" type:"list"`

	GeneratedAt *int64 `json:"generatedAt,omitempty" type:"long"`

	MessageId *string `json:"messageId,omitempty" type:"string"`

	TaskArn *string `json:"taskArn,omitempty" type:"string"`

	TaskClusterArn *string `json:"taskClusterArn,omitempty" type:"string"`

	WaitTimeoutMs *int64 `json:"waitTimeoutMs,omitempty" type:"long"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AttachTaskNetworkInterfacesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AttachTaskNetworkInterfacesInput) GoString() string {
	return s.String()
}

type AttachTaskNetworkInterfacesMessage struct {
	_ struct{} `type:"structure"`

	ClusterArn *string `json:"clusterArn,omitempty" type:"string"`

	ContainerInstanceArn *string `json:"containerInstanceArn,omitempty" type:"string"`

	ElasticNetworkInterfaces []*ElasticNetworkInterface `json:"elasticNetworkInterfaces,omitempty" type:"list"`

	GeneratedAt *int64 `json:"generatedAt,omitempty" type:"long"`

	MessageId *string `json:"messageId,omitempty" type:"string"`

	TaskArn *string `json:"taskArn,omitempty" type:"string"`

	TaskClusterArn *string `json:"taskClusterArn,omitempty" type:"string"`

	WaitTimeoutMs *int64 `json:"waitTimeoutMs,omitempty" type:"long"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AttachTaskNetworkInterfacesMessage) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AttachTaskNetworkInterfacesMessage) GoString() string {
	return s.String()
}

type AttachTaskNetworkInterfacesOutput struct {
	_ struct{} `type:"structure"`

	Cluster *string `json:"cluster,omitempty" type:"string"`

	ContainerInstance *string `json:"containerInstance,omitempty" type:"string"`

	MessageId *string `json:"messageId,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AttachTaskNetworkInterfacesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AttachTaskNetworkInterfacesOutput) GoString() string {
	return s.String()
}

type Attachment struct {
	_ struct{} `type:"structure"`

	AttachmentArn *string `json:"attachmentArn,omitempty" type:"string"`

	AttachmentProperties []*AttachmentProperty `json:"attachmentProperties,omitempty" type:"list"`

	AttachmentType *string `json:"attachmentType,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Attachment) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Attachment) GoString() string {
	return s.String()
}

type AttachmentProperty struct {
	_ struct{} `type:"structure"`

	Name *string `json:"name,omitempty" type:"string"`

	Value *string `json:"value,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AttachmentProperty) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AttachmentProperty) GoString() string {
	return s.String()
}

type BadRequestException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `json:"message,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BadRequestException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BadRequestException) GoString() string {
	return s.String()
}

func newErrorBadRequestException(v protocol.ResponseMetadata) error {
	return &BadRequestException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *BadRequestException) Code() string {
	return "BadRequestException"
}

// Message returns the exception's message.
func (s *BadRequestException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *BadRequestException) OrigErr() error {
	return nil
}

func (s *BadRequestException) 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 *BadRequestException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *BadRequestException) RequestID() string {
	return s.RespMetadata.RequestID
}

type CloseMessage struct {
	_ struct{} `type:"structure"`

	Message *string `json:"message,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CloseMessage) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CloseMessage) GoString() string {
	return s.String()
}

type ConfirmAttachmentInput struct {
	_ struct{} `type:"structure"`

	Attachment *Attachment `json:"attachment,omitempty" type:"structure"`

	ClusterArn *string `json:"clusterArn,omitempty" type:"string"`

	ContainerInstanceArn *string `json:"containerInstanceArn,omitempty" type:"string"`

	GeneratedAt *int64 `json:"generatedAt,omitempty" type:"long"`

	MessageId *string `json:"messageId,omitempty" type:"string"`

	TaskArn *string `json:"taskArn,omitempty" type:"string"`

	TaskClusterArn *string `json:"taskClusterArn,omitempty" type:"string"`

	WaitTimeoutMs *int64 `json:"waitTimeoutMs,omitempty" type:"long"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ConfirmAttachmentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ConfirmAttachmentInput) GoString() string {
	return s.String()
}

type ConfirmAttachmentMessage struct {
	_ struct{} `type:"structure"`

	Attachment *Attachment `json:"attachment,omitempty" type:"structure"`

	ClusterArn *string `json:"clusterArn,omitempty" type:"string"`

	ContainerInstanceArn *string `json:"containerInstanceArn,omitempty" type:"string"`

	GeneratedAt *int64 `json:"generatedAt,omitempty" type:"long"`

	MessageId *string `json:"messageId,omitempty" type:"string"`

	TaskArn *string `json:"taskArn,omitempty" type:"string"`

	TaskClusterArn *string `json:"taskClusterArn,omitempty" type:"string"`

	WaitTimeoutMs *int64 `json:"waitTimeoutMs,omitempty" type:"long"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ConfirmAttachmentMessage) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ConfirmAttachmentMessage) GoString() string {
	return s.String()
}

type ConfirmAttachmentOutput struct {
	_ struct{} `type:"structure"`

	Cluster *string `json:"cluster,omitempty" type:"string"`

	ContainerInstance *string `json:"containerInstance,omitempty" type:"string"`

	MessageId *string `json:"messageId,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ConfirmAttachmentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ConfirmAttachmentOutput) GoString() string {
	return s.String()
}

type Container struct {
	_ struct{} `type:"structure"`

	Command []*string `json:"command,omitempty" type:"list"`

	ContainerArn *string `json:"containerArn,omitempty" type:"string"`

	Cpu *int64 `json:"cpu,omitempty" type:"integer"`

	CredentialSpecs []*string `json:"credentialSpecs,omitempty" type:"list"`

	DependsOn []*ContainerDependency `json:"dependsOn,omitempty" type:"list"`

	DockerConfig *DockerConfig `json:"dockerConfig,omitempty" type:"structure"`

	EntryPoint []*string `json:"entryPoint,omitempty" type:"list"`

	// Environment is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Container's
	// String and GoString methods.
	Environment map[string]*string `json:"environment,omitempty" type:"map" sensitive:"true"`

	EnvironmentFiles []*EnvironmentFile `json:"environmentFiles,omitempty" type:"list"`

	Essential *bool `json:"essential,omitempty" type:"boolean"`

	FirelensConfiguration *FirelensConfiguration `json:"firelensConfiguration,omitempty" type:"structure"`

	HealthCheckType *string `json:"healthCheckType,omitempty" type:"string" enum:"HealthCheckType"`

	Image *string `json:"image,omitempty" type:"string"`

	Links []*string `json:"links,omitempty" type:"list"`

	LinuxParameters *LinuxParameters `json:"linuxParameters,omitempty" type:"structure"`

	LogsAuthStrategy *string `json:"logsAuthStrategy,omitempty" type:"string" enum:"AuthStrategy"`

	ManagedAgents []*ManagedAgent `json:"managedAgents,omitempty" type:"list"`

	Memory *int64 `json:"memory,omitempty" type:"integer"`

	MountPoints []*MountPoint `json:"mountPoints,omitempty" type:"list"`

	Name *string `json:"name,omitempty" type:"string"`

	NetworkInterfaceNames []*string `json:"networkInterfaceNames,omitempty" type:"list"`

	Overrides *string `json:"overrides,omitempty" type:"string"`

	PortMappings []*PortMapping `json:"portMappings,omitempty" type:"list"`

	Privileged *bool `json:"privileged,omitempty" type:"boolean"`

	RegistryAuthentication *RegistryAuthenticationData `json:"registryAuthentication,omitempty" type:"structure"`

	RestartPolicy *RestartPolicy `json:"restartPolicy,omitempty" type:"structure"`

	Secrets []*Secret `json:"secrets,omitempty" type:"list"`

	StartTimeout *int64 `json:"startTimeout,omitempty" type:"integer"`

	StopTimeout *int64 `json:"stopTimeout,omitempty" type:"integer"`

	VolumesFrom []*VolumeFrom `json:"volumesFrom,omitempty" 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 Container) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Container) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *Container) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "Container"}
	if s.LinuxParameters != nil {
		if err := s.LinuxParameters.Validate(); err != nil {
			invalidParams.AddNested("LinuxParameters", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

type ContainerDependency struct {
	_ struct{} `type:"structure"`

	Condition *string `json:"condition,omitempty" type:"string" enum:"ContainerCondition"`

	ContainerName *string `json:"containerName,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContainerDependency) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ContainerDependency) GoString() string {
	return s.String()
}

type Device struct {
	_ struct{} `type:"structure"`

	ContainerPath *string `json:"containerPath,omitempty" type:"string"`

	// HostPath is a required field
	HostPath *string `json:"hostPath" type:"string" required:"true"`

	Permissions []*string `json:"permissions,omitempty" type:"list" enum:"DeviceCgroupPermission"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API 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.HostPath == nil {
		invalidParams.Add(request.NewErrParamRequired("HostPath"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

type DockerConfig struct {
	_ struct{} `type:"structure"`

	Config *string `json:"config,omitempty" type:"string"`

	HostConfig *string `json:"hostConfig,omitempty" type:"string"`

	Version *string `json:"version,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DockerConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DockerConfig) GoString() string {
	return s.String()
}

type DockerVolumeConfiguration struct {
	_ struct{} `type:"structure"`

	Autoprovision *bool `json:"autoprovision,omitempty" type:"boolean"`

	Driver *string `json:"driver,omitempty" type:"string"`

	DriverOpts map[string]*string `json:"driverOpts,omitempty" type:"map"`

	Labels map[string]*string `json:"labels,omitempty" type:"map"`

	Scope *string `json:"scope,omitempty" type:"string" enum:"Scope"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DockerVolumeConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DockerVolumeConfiguration) GoString() string {
	return s.String()
}

type EBSVolumeConfiguration struct {
	_ struct{} `type:"structure"`

	DeleteOnTermination *bool `json:"deleteOnTermination,omitempty" type:"boolean"`

	DeviceName *string `json:"deviceName,omitempty" type:"string"`

	FilesystemType *string `json:"filesystemType,omitempty" type:"string"`

	VolumeId *string `json:"volumeId,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EBSVolumeConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EBSVolumeConfiguration) GoString() string {
	return s.String()
}

type ECRAuthData struct {
	_ struct{} `type:"structure"`

	EndpointOverride *string `json:"endpointOverride,omitempty" type:"string"`

	Region *string `json:"region,omitempty" type:"string"`

	RegistryId *string `json:"registryId,omitempty" type:"string"`

	UseExecutionRole *bool `json:"useExecutionRole,omitempty" 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 ECRAuthData) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ECRAuthData) GoString() string {
	return s.String()
}

type EFSAuthorizationConfig struct {
	_ struct{} `type:"structure"`

	AccessPointId *string `json:"accessPointId,omitempty" type:"string"`

	Iam *string `json:"iam,omitempty" type:"string" enum:"EFSAuthorizationConfigIAM"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EFSAuthorizationConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EFSAuthorizationConfig) GoString() string {
	return s.String()
}

type EFSVolumeConfiguration struct {
	_ struct{} `type:"structure"`

	AuthorizationConfig *EFSAuthorizationConfig `json:"authorizationConfig,omitempty" type:"structure"`

	FileSystemId *string `json:"fileSystemId,omitempty" type:"string"`

	RootDirectory *string `json:"rootDirectory,omitempty" type:"string"`

	TransitEncryption *string `json:"transitEncryption,omitempty" type:"string" enum:"EFSTransitEncryption"`

	TransitEncryptionPort *int64 `json:"transitEncryptionPort,omitempty" 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 EFSVolumeConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EFSVolumeConfiguration) GoString() string {
	return s.String()
}

type ElasticNetworkInterface struct {
	_ struct{} `type:"structure"`

	AttachmentArn *string `json:"attachmentArn,omitempty" type:"string"`

	DomainName []*string `json:"domainName,omitempty" type:"list"`

	DomainNameServers []*string `json:"domainNameServers,omitempty" type:"list"`

	Ec2Id *string `json:"ec2Id,omitempty" type:"string"`

	Index *int64 `json:"index,omitempty" type:"integer"`

	InterfaceAssociationProtocol *string `json:"interfaceAssociationProtocol,omitempty" type:"string" enum:"NetworkInterfaceAssociationProtocol"`

	InterfaceTunnelProperties *NetworkInterfaceTunnelProperties `json:"interfaceTunnelProperties,omitempty" type:"structure"`

	InterfaceVethProperties *NetworkInterfaceVethProperties `json:"interfaceVethProperties,omitempty" type:"structure"`

	InterfaceVlanProperties *NetworkInterfaceVlanProperties `json:"interfaceVlanProperties,omitempty" type:"structure"`

	Ipv4Addresses []*IPv4AddressAssignment `json:"ipv4Addresses,omitempty" type:"list"`

	Ipv6Addresses []*IPv6AddressAssignment `json:"ipv6Addresses,omitempty" type:"list"`

	MacAddress *string `json:"macAddress,omitempty" type:"string"`

	Name *string `json:"name,omitempty" type:"string"`

	PrivateDnsName *string `json:"privateDnsName,omitempty" type:"string"`

	SubnetGatewayIpv4Address *string `json:"subnetGatewayIpv4Address,omitempty" type:"string"`

	SubnetGatewayIpv6Address *string `json:"subnetGatewayIpv6Address,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ElasticNetworkInterface) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ElasticNetworkInterface) GoString() string {
	return s.String()
}

type EncodedString struct {
	_ struct{} `type:"structure"`

	Encoding *string `json:"encoding,omitempty" type:"string" enum:"Encoding"`

	Value *string `json:"value,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EncodedString) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EncodedString) GoString() string {
	return s.String()
}

type EnvironmentFile struct {
	_ struct{} `type:"structure"`

	Type *string `json:"type,omitempty" type:"string" enum:"EnvironmentFileType"`

	Value *string `json:"value,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EnvironmentFile) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EnvironmentFile) GoString() string {
	return s.String()
}

type ErrorInput struct {
	_ struct{} `type:"structure"`

	Message *string `json:"message,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ErrorInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ErrorInput) GoString() string {
	return s.String()
}

type ErrorMessage struct {
	_ struct{} `type:"structure"`

	Message *string `json:"message,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ErrorMessage) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ErrorMessage) GoString() string {
	return s.String()
}

type ErrorOutput 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 ErrorOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ErrorOutput) GoString() string {
	return s.String()
}

type FSxWindowsFileServerAuthorizationConfig struct {
	_ struct{} `type:"structure"`

	CredentialsParameter *string `json:"credentialsParameter,omitempty" type:"string"`

	Domain *string `json:"domain,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FSxWindowsFileServerAuthorizationConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FSxWindowsFileServerAuthorizationConfig) GoString() string {
	return s.String()
}

type FSxWindowsFileServerVolumeConfiguration struct {
	_ struct{} `type:"structure"`

	AuthorizationConfig *FSxWindowsFileServerAuthorizationConfig `json:"authorizationConfig,omitempty" type:"structure"`

	FileSystemId *string `json:"fileSystemId,omitempty" type:"string"`

	RootDirectory *string `json:"rootDirectory,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FSxWindowsFileServerVolumeConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FSxWindowsFileServerVolumeConfiguration) GoString() string {
	return s.String()
}

type FirelensConfiguration struct {
	_ struct{} `type:"structure"`

	Options map[string]*string `json:"options,omitempty" type:"map"`

	Type *string `json:"type,omitempty" type:"string" enum:"FirelensConfigurationType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FirelensConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FirelensConfiguration) GoString() string {
	return s.String()
}

type HeartbeatAckRequest struct {
	_ struct{} `type:"structure"`

	MessageId *string `json:"messageId,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HeartbeatAckRequest) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HeartbeatAckRequest) GoString() string {
	return s.String()
}

type HeartbeatInput struct {
	_ struct{} `type:"structure"`

	Healthy *bool `json:"healthy,omitempty" type:"boolean"`

	MessageId *string `json:"messageId,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HeartbeatInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HeartbeatInput) GoString() string {
	return s.String()
}

type HeartbeatMessage struct {
	_ struct{} `type:"structure"`

	Healthy *bool `json:"healthy,omitempty" type:"boolean"`

	MessageId *string `json:"messageId,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HeartbeatMessage) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HeartbeatMessage) GoString() string {
	return s.String()
}

type HeartbeatOutput struct {
	_ struct{} `type:"structure"`

	MessageId *string `json:"messageId,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HeartbeatOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HeartbeatOutput) GoString() string {
	return s.String()
}

type HostVolumeProperties struct {
	_ struct{} `type:"structure"`

	SourcePath *string `json:"sourcePath,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HostVolumeProperties) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s HostVolumeProperties) GoString() string {
	return s.String()
}

type IAMRoleCredentials struct {
	_ struct{} `type:"structure"`

	AccessKeyId *string `json:"accessKeyId,omitempty" type:"string"`

	CredentialScope *string `json:"credentialScope,omitempty" type:"string"`

	CredentialsId *string `json:"credentialsId,omitempty" type:"string"`

	Expiration *string `json:"expiration,omitempty" type:"string"`

	RoleArn *string `json:"roleArn,omitempty" type:"string"`

	// SecretAccessKey is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by IAMRoleCredentials's
	// String and GoString methods.
	SecretAccessKey *string `json:"secretAccessKey,omitempty" type:"string" sensitive:"true"`

	SessionToken *string `json:"sessionToken,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s IAMRoleCredentials) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s IAMRoleCredentials) GoString() string {
	return s.String()
}

type IAMRoleCredentialsAckRequest struct {
	_ struct{} `type:"structure"`

	CredentialsId *string `json:"credentialsId,omitempty" type:"string"`

	Expiration *string `json:"expiration,omitempty" type:"string"`

	MessageId *string `json:"messageId,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s IAMRoleCredentialsAckRequest) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s IAMRoleCredentialsAckRequest) GoString() string {
	return s.String()
}

type IAMRoleCredentialsMessage struct {
	_ struct{} `type:"structure"`

	MessageId *string `json:"messageId,omitempty" type:"string"`

	RoleCredentials *IAMRoleCredentials `json:"roleCredentials,omitempty" type:"structure"`

	RoleType *string `json:"roleType,omitempty" type:"string" enum:"RoleType"`

	TaskArn *string `json:"taskArn,omitempty" type:"string"`

	TaskClusterArn *string `json:"taskClusterArn,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s IAMRoleCredentialsMessage) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s IAMRoleCredentialsMessage) GoString() string {
	return s.String()
}

type IPv4AddressAssignment struct {
	_ struct{} `type:"structure"`

	Primary *bool `json:"primary,omitempty" type:"boolean"`

	PrivateAddress *string `json:"privateAddress,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s IPv4AddressAssignment) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s IPv4AddressAssignment) GoString() string {
	return s.String()
}

type IPv6AddressAssignment struct {
	_ struct{} `type:"structure"`

	Address *string `json:"address,omitempty" type:"string"`

	Primary *bool `json:"primary,omitempty" 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 IPv6AddressAssignment) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s IPv6AddressAssignment) GoString() string {
	return s.String()
}

type InactiveInstanceException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `json:"message,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InactiveInstanceException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InactiveInstanceException) GoString() string {
	return s.String()
}

func newErrorInactiveInstanceException(v protocol.ResponseMetadata) error {
	return &InactiveInstanceException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *InactiveInstanceException) Code() string {
	return "InactiveInstanceException"
}

// Message returns the exception's message.
func (s *InactiveInstanceException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *InactiveInstanceException) OrigErr() error {
	return nil
}

func (s *InactiveInstanceException) 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 *InactiveInstanceException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *InactiveInstanceException) RequestID() string {
	return s.RespMetadata.RequestID
}

type InvalidClusterException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `json:"message,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvalidClusterException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvalidClusterException) GoString() string {
	return s.String()
}

func newErrorInvalidClusterException(v protocol.ResponseMetadata) error {
	return &InvalidClusterException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *InvalidClusterException) Code() string {
	return "InvalidClusterException"
}

// Message returns the exception's message.
func (s *InvalidClusterException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *InvalidClusterException) OrigErr() error {
	return nil
}

func (s *InvalidClusterException) 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 *InvalidClusterException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *InvalidClusterException) RequestID() string {
	return s.RespMetadata.RequestID
}

type InvalidInstanceException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `json:"message,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvalidInstanceException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvalidInstanceException) GoString() string {
	return s.String()
}

func newErrorInvalidInstanceException(v protocol.ResponseMetadata) error {
	return &InvalidInstanceException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *InvalidInstanceException) Code() string {
	return "InvalidInstanceException"
}

// Message returns the exception's message.
func (s *InvalidInstanceException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *InvalidInstanceException) OrigErr() error {
	return nil
}

func (s *InvalidInstanceException) 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 *InvalidInstanceException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *InvalidInstanceException) RequestID() string {
	return s.RespMetadata.RequestID
}

type KernelCapabilities struct {
	_ struct{} `type:"structure"`

	Add []*string `json:"add,omitempty" type:"list"`

	Drop []*string `json:"drop,omitempty" 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 KernelCapabilities) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s KernelCapabilities) GoString() string {
	return s.String()
}

type LinuxParameters struct {
	_ struct{} `type:"structure"`

	Capabilities *KernelCapabilities `json:"capabilities,omitempty" type:"structure"`

	Devices []*Device `json:"devices,omitempty" type:"list"`

	InitProcessEnabled *bool `json:"initProcessEnabled,omitempty" type:"boolean"`

	SharedMemorySize *int64 `json:"sharedMemorySize,omitempty" 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 LinuxParameters) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LinuxParameters) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *LinuxParameters) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "LinuxParameters"}
	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
}

type ManagedAgent struct {
	_ struct{} `type:"structure"`

	Name *string `json:"name,omitempty" type:"string" enum:"ManagedAgentName"`

	Properties map[string]*string `json:"properties,omitempty" 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 ManagedAgent) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ManagedAgent) GoString() string {
	return s.String()
}

type MountPoint struct {
	_ struct{} `type:"structure"`

	ContainerPath *string `json:"containerPath,omitempty" type:"string"`

	ReadOnly *bool `json:"readOnly,omitempty" type:"boolean"`

	SourceVolume *string `json:"sourceVolume,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MountPoint) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MountPoint) GoString() string {
	return s.String()
}

type NackRequest struct {
	_ struct{} `type:"structure"`

	Cluster *string `json:"cluster,omitempty" type:"string"`

	ContainerInstance *string `json:"containerInstance,omitempty" type:"string"`

	MessageId *string `json:"messageId,omitempty" type:"string"`

	Reason *string `json:"reason,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NackRequest) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NackRequest) GoString() string {
	return s.String()
}

type NetworkInterfaceTunnelProperties struct {
	_ struct{} `type:"structure"`

	InterfaceIpAddress *string `json:"interfaceIpAddress,omitempty" type:"string"`

	TunnelId *string `json:"tunnelId,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NetworkInterfaceTunnelProperties) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NetworkInterfaceTunnelProperties) GoString() string {
	return s.String()
}

type NetworkInterfaceVethProperties struct {
	_ struct{} `type:"structure"`

	PeerInterface *string `json:"peerInterface,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NetworkInterfaceVethProperties) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NetworkInterfaceVethProperties) GoString() string {
	return s.String()
}

type NetworkInterfaceVlanProperties struct {
	_ struct{} `type:"structure"`

	TrunkInterfaceMacAddress *string `json:"trunkInterfaceMacAddress,omitempty" type:"string"`

	VlanId *string `json:"vlanId,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NetworkInterfaceVlanProperties) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NetworkInterfaceVlanProperties) GoString() string {
	return s.String()
}

type PayloadInput struct {
	_ struct{} `type:"structure"`

	ClusterArn *string `json:"clusterArn,omitempty" type:"string"`

	ContainerInstanceArn *string `json:"containerInstanceArn,omitempty" type:"string"`

	GeneratedAt *int64 `json:"generatedAt,omitempty" type:"long"`

	MessageId *string `json:"messageId,omitempty" type:"string"`

	SeqNum *int64 `json:"seqNum,omitempty" type:"integer"`

	Tasks []*Task `json:"tasks,omitempty" type:"list"`

	Timeline *int64 `json:"timeline,omitempty" type:"long"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PayloadInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PayloadInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PayloadInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PayloadInput"}
	if s.Tasks != nil {
		for i, v := range s.Tasks {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tasks", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

type PayloadMessage struct {
	_ struct{} `type:"structure"`

	ClusterArn *string `json:"clusterArn,omitempty" type:"string"`

	ContainerInstanceArn *string `json:"containerInstanceArn,omitempty" type:"string"`

	GeneratedAt *int64 `json:"generatedAt,omitempty" type:"long"`

	MessageId *string `json:"messageId,omitempty" type:"string"`

	SeqNum *int64 `json:"seqNum,omitempty" type:"integer"`

	Tasks []*Task `json:"tasks,omitempty" type:"list"`

	Timeline *int64 `json:"timeline,omitempty" type:"long"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PayloadMessage) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PayloadMessage) GoString() string {
	return s.String()
}

type PayloadOutput struct {
	_ struct{} `type:"structure"`

	Cluster *string `json:"cluster,omitempty" type:"string"`

	ContainerInstance *string `json:"containerInstance,omitempty" type:"string"`

	MessageId *string `json:"messageId,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PayloadOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PayloadOutput) GoString() string {
	return s.String()
}

type PerformUpdateInput struct {
	_ struct{} `type:"structure"`

	ClusterArn *string `json:"clusterArn,omitempty" type:"string"`

	ContainerInstanceArn *string `json:"containerInstanceArn,omitempty" type:"string"`

	MessageId *string `json:"messageId,omitempty" type:"string"`

	UpdateInfo *UpdateInfo `json:"updateInfo,omitempty" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PerformUpdateInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PerformUpdateInput) GoString() string {
	return s.String()
}

type PerformUpdateMessage struct {
	_ struct{} `type:"structure"`

	ClusterArn *string `json:"clusterArn,omitempty" type:"string"`

	ContainerInstanceArn *string `json:"containerInstanceArn,omitempty" type:"string"`

	MessageId *string `json:"messageId,omitempty" type:"string"`

	UpdateInfo *UpdateInfo `json:"updateInfo,omitempty" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PerformUpdateMessage) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PerformUpdateMessage) GoString() string {
	return s.String()
}

type PerformUpdateOutput struct {
	_ struct{} `type:"structure"`

	Cluster *string `json:"cluster,omitempty" type:"string"`

	ContainerInstance *string `json:"containerInstance,omitempty" type:"string"`

	MessageId *string `json:"messageId,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PerformUpdateOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PerformUpdateOutput) GoString() string {
	return s.String()
}

type PollInput struct {
	_ struct{} `type:"structure"`

	Cluster *string `json:"cluster,omitempty" type:"string"`

	ContainerInstance *string `json:"containerInstance,omitempty" type:"string"`

	ProtocolVersion *int64 `json:"protocolVersion,omitempty" type:"integer"`

	SendCredentials *bool `json:"sendCredentials,omitempty" type:"boolean"`

	SeqNum *int64 `json:"seqNum,omitempty" type:"integer"`

	Timeline *int64 `json:"timeline,omitempty" type:"long"`

	VersionInfo *VersionInfo `json:"versionInfo,omitempty" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PollInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PollInput) GoString() string {
	return s.String()
}

type PollOutput struct {
	_ struct{} `type:"structure"`

	Message *string `json:"message,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PollOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PollOutput) GoString() string {
	return s.String()
}

type PollRequest struct {
	_ struct{} `type:"structure"`

	Cluster *string `json:"cluster,omitempty" type:"string"`

	ContainerInstance *string `json:"containerInstance,omitempty" type:"string"`

	ProtocolVersion *int64 `json:"protocolVersion,omitempty" type:"integer"`

	SendCredentials *bool `json:"sendCredentials,omitempty" type:"boolean"`

	SeqNum *int64 `json:"seqNum,omitempty" type:"integer"`

	Timeline *int64 `json:"timeline,omitempty" type:"long"`

	VersionInfo *VersionInfo `json:"versionInfo,omitempty" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PollRequest) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PollRequest) GoString() string {
	return s.String()
}

type PortMapping struct {
	_ struct{} `type:"structure"`

	ContainerPort *int64 `json:"containerPort,omitempty" type:"integer"`

	ContainerPortRange *string `json:"containerPortRange,omitempty" type:"string"`

	HostPort *int64 `json:"hostPort,omitempty" type:"integer"`

	Protocol *string `json:"protocol,omitempty" type:"string" enum:"TransportProtocol"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PortMapping) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PortMapping) GoString() string {
	return s.String()
}

type ProxyConfiguration struct {
	_ struct{} `type:"structure"`

	ContainerName *string `json:"containerName,omitempty" type:"string"`

	Properties map[string]*string `json:"properties,omitempty" type:"map"`

	Type *string `json:"type,omitempty" type:"string" enum:"ProxyConfigurationType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProxyConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProxyConfiguration) GoString() string {
	return s.String()
}

type RefreshTaskIAMRoleCredentialsInput struct {
	_ struct{} `type:"structure"`

	MessageId *string `json:"messageId,omitempty" type:"string"`

	RoleCredentials *IAMRoleCredentials `json:"roleCredentials,omitempty" type:"structure"`

	RoleType *string `json:"roleType,omitempty" type:"string" enum:"RoleType"`

	TaskArn *string `json:"taskArn,omitempty" type:"string"`

	TaskClusterArn *string `json:"taskClusterArn,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RefreshTaskIAMRoleCredentialsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RefreshTaskIAMRoleCredentialsInput) GoString() string {
	return s.String()
}

type RefreshTaskIAMRoleCredentialsOutput struct {
	_ struct{} `type:"structure"`

	CredentialsId *string `json:"credentialsId,omitempty" type:"string"`

	Expiration *string `json:"expiration,omitempty" type:"string"`

	MessageId *string `json:"messageId,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RefreshTaskIAMRoleCredentialsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RefreshTaskIAMRoleCredentialsOutput) GoString() string {
	return s.String()
}

type RegistryAuthenticationData struct {
	_ struct{} `type:"structure"`

	AsmAuthData *ASMAuthData `json:"asmAuthData,omitempty" type:"structure"`

	EcrAuthData *ECRAuthData `json:"ecrAuthData,omitempty" type:"structure"`

	Type *string `json:"type,omitempty" type:"string" enum:"AuthenticationType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RegistryAuthenticationData) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RegistryAuthenticationData) GoString() string {
	return s.String()
}

type RestartPolicy struct {
	_ struct{} `type:"structure"`

	Enabled *bool `json:"enabled,omitempty" type:"boolean"`

	IgnoredExitCodes []*int64 `json:"ignoredExitCodes,omitempty" type:"list"`

	RestartAttemptPeriod *int64 `json:"restartAttemptPeriod,omitempty" 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 RestartPolicy) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RestartPolicy) GoString() string {
	return s.String()
}

type Secret struct {
	_ struct{} `type:"structure"`

	ContainerPath *string `json:"containerPath,omitempty" type:"string"`

	Name *string `json:"name,omitempty" type:"string"`

	Provider *string `json:"provider,omitempty" type:"string" enum:"SecretProvider"`

	Region *string `json:"region,omitempty" type:"string"`

	Target *string `json:"target,omitempty" type:"string" enum:"SecretTarget"`

	Type *string `json:"type,omitempty" type:"string" enum:"SecretType"`

	ValueFrom *string `json:"valueFrom,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Secret) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Secret) GoString() string {
	return s.String()
}

type ServerException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `json:"message,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ServerException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ServerException) GoString() string {
	return s.String()
}

func newErrorServerException(v protocol.ResponseMetadata) error {
	return &ServerException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ServerException) Code() string {
	return "ServerException"
}

// Message returns the exception's message.
func (s *ServerException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ServerException) OrigErr() error {
	return nil
}

func (s *ServerException) 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 *ServerException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ServerException) RequestID() string {
	return s.RespMetadata.RequestID
}

type StageUpdateInput struct {
	_ struct{} `type:"structure"`

	ClusterArn *string `json:"clusterArn,omitempty" type:"string"`

	ContainerInstanceArn *string `json:"containerInstanceArn,omitempty" type:"string"`

	MessageId *string `json:"messageId,omitempty" type:"string"`

	UpdateInfo *UpdateInfo `json:"updateInfo,omitempty" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StageUpdateInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StageUpdateInput) GoString() string {
	return s.String()
}

type StageUpdateMessage struct {
	_ struct{} `type:"structure"`

	ClusterArn *string `json:"clusterArn,omitempty" type:"string"`

	ContainerInstanceArn *string `json:"containerInstanceArn,omitempty" type:"string"`

	MessageId *string `json:"messageId,omitempty" type:"string"`

	UpdateInfo *UpdateInfo `json:"updateInfo,omitempty" type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StageUpdateMessage) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StageUpdateMessage) GoString() string {
	return s.String()
}

type StageUpdateOutput struct {
	_ struct{} `type:"structure"`

	Cluster *string `json:"cluster,omitempty" type:"string"`

	ContainerInstance *string `json:"containerInstance,omitempty" type:"string"`

	MessageId *string `json:"messageId,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StageUpdateOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StageUpdateOutput) GoString() string {
	return s.String()
}

type Task struct {
	_ struct{} `type:"structure"`

	AgentConfiguration *string `json:"agentConfiguration,omitempty" type:"string"`

	Arn *string `json:"arn,omitempty" type:"string"`

	Associations []*Association `json:"associations,omitempty" type:"list"`

	Attachments []*Attachment `json:"attachments,omitempty" type:"list"`

	Containers []*Container `json:"containers,omitempty" type:"list"`

	Cpu *float64 `json:"cpu,omitempty" type:"double"`

	DesiredStatus *string `json:"desiredStatus,omitempty" type:"string"`

	ElasticNetworkInterfaces []*ElasticNetworkInterface `json:"elasticNetworkInterfaces,omitempty" type:"list"`

	EnableFaultInjection *bool `json:"enableFaultInjection,omitempty" type:"boolean"`

	ExecutionRoleCredentials *IAMRoleCredentials `json:"executionRoleCredentials,omitempty" type:"structure"`

	Family *string `json:"family,omitempty" type:"string"`

	IpcMode *string `json:"ipcMode,omitempty" type:"string"`

	LaunchType *string `json:"launchType,omitempty" type:"string"`

	Memory *int64 `json:"memory,omitempty" type:"integer"`

	NetworkMode *string `json:"networkMode,omitempty" type:"string"`

	Overrides *string `json:"overrides,omitempty" type:"string"`

	PidMode *string `json:"pidMode,omitempty" type:"string"`

	ProxyConfiguration *ProxyConfiguration `json:"proxyConfiguration,omitempty" type:"structure"`

	RoleCredentials *IAMRoleCredentials `json:"roleCredentials,omitempty" type:"structure"`

	ServiceName *string `json:"serviceName,omitempty" type:"string"`

	TaskClusterArn *string `json:"taskClusterArn,omitempty" type:"string"`

	TaskDefinitionAccountId *string `json:"taskDefinitionAccountId,omitempty" type:"string"`

	Version *string `json:"version,omitempty" type:"string"`

	Volumes []*Volume `json:"volumes,omitempty" type:"list"`

	Zone *string `json:"zone,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Task) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Task) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *Task) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "Task"}
	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
}

type TaskIdentifier struct {
	_ struct{} `type:"structure"`

	DesiredStatus *string `json:"desiredStatus,omitempty" type:"string"`

	TaskArn *string `json:"taskArn,omitempty" type:"string"`

	TaskClusterArn *string `json:"taskClusterArn,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TaskIdentifier) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TaskIdentifier) GoString() string {
	return s.String()
}

type TaskManifestInput struct {
	_ struct{} `type:"structure"`

	ClusterArn *string `json:"clusterArn,omitempty" type:"string"`

	ContainerInstanceArn *string `json:"containerInstanceArn,omitempty" type:"string"`

	GeneratedAt *int64 `json:"generatedAt,omitempty" type:"long"`

	MessageId *string `json:"messageId,omitempty" type:"string"`

	Tasks []*TaskIdentifier `json:"tasks,omitempty" type:"list"`

	Timeline *int64 `json:"timeline,omitempty" type:"long"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TaskManifestInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TaskManifestInput) GoString() string {
	return s.String()
}

type TaskManifestMessage struct {
	_ struct{} `type:"structure"`

	ClusterArn *string `json:"clusterArn,omitempty" type:"string"`

	ContainerInstanceArn *string `json:"containerInstanceArn,omitempty" type:"string"`

	GeneratedAt *int64 `json:"generatedAt,omitempty" type:"long"`

	MessageId *string `json:"messageId,omitempty" type:"string"`

	Tasks []*TaskIdentifier `json:"tasks,omitempty" type:"list"`

	Timeline *int64 `json:"timeline,omitempty" type:"long"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TaskManifestMessage) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TaskManifestMessage) GoString() string {
	return s.String()
}

type TaskManifestOutput struct {
	_ struct{} `type:"structure"`

	Cluster *string `json:"cluster,omitempty" type:"string"`

	ContainerInstance *string `json:"containerInstance,omitempty" type:"string"`

	MessageId *string `json:"messageId,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TaskManifestOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TaskManifestOutput) GoString() string {
	return s.String()
}

type TaskStopVerificationAck struct {
	_ struct{} `type:"structure"`

	GeneratedAt *int64 `json:"generatedAt,omitempty" type:"long"`

	MessageId *string `json:"messageId,omitempty" type:"string"`

	StopTasks []*TaskIdentifier `json:"stopTasks,omitempty" 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 TaskStopVerificationAck) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TaskStopVerificationAck) GoString() string {
	return s.String()
}

type TaskStopVerificationInput struct {
	_ struct{} `type:"structure"`

	MessageId *string `json:"messageId,omitempty" type:"string"`

	StopCandidates []*TaskIdentifier `json:"stopCandidates,omitempty" 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 TaskStopVerificationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TaskStopVerificationInput) GoString() string {
	return s.String()
}

type TaskStopVerificationMessage struct {
	_ struct{} `type:"structure"`

	MessageId *string `json:"messageId,omitempty" type:"string"`

	StopCandidates []*TaskIdentifier `json:"stopCandidates,omitempty" 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 TaskStopVerificationMessage) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TaskStopVerificationMessage) GoString() string {
	return s.String()
}

type TaskStopVerificationOutput struct {
	_ struct{} `type:"structure"`

	GeneratedAt *int64 `json:"generatedAt,omitempty" type:"long"`

	MessageId *string `json:"messageId,omitempty" type:"string"`

	StopTasks []*TaskIdentifier `json:"stopTasks,omitempty" 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 TaskStopVerificationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TaskStopVerificationOutput) GoString() string {
	return s.String()
}

type UpdateFailureInput struct {
	_ struct{} `type:"structure"`

	Cluster *string `json:"cluster,omitempty" type:"string"`

	ContainerInstance *string `json:"containerInstance,omitempty" type:"string"`

	MessageId *string `json:"messageId,omitempty" type:"string"`

	Reason *string `json:"reason,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateFailureInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateFailureInput) GoString() string {
	return s.String()
}

type UpdateFailureOutput 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 UpdateFailureOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateFailureOutput) GoString() string {
	return s.String()
}

type UpdateInfo struct {
	_ struct{} `type:"structure"`

	Location *string `json:"location,omitempty" type:"string"`

	Signature *string `json:"signature,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateInfo) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateInfo) GoString() string {
	return s.String()
}

type VersionInfo struct {
	_ struct{} `type:"structure"`

	AgentHash *string `json:"agentHash,omitempty" type:"string"`

	AgentVersion *string `json:"agentVersion,omitempty" type:"string"`

	DockerVersion *string `json:"dockerVersion,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VersionInfo) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VersionInfo) GoString() string {
	return s.String()
}

type Volume struct {
	_ struct{} `type:"structure"`

	DockerVolumeConfiguration *DockerVolumeConfiguration `json:"dockerVolumeConfiguration,omitempty" type:"structure"`

	EbsVolumeConfiguration *EBSVolumeConfiguration `json:"ebsVolumeConfiguration,omitempty" type:"structure"`

	EfsVolumeConfiguration *EFSVolumeConfiguration `json:"efsVolumeConfiguration,omitempty" type:"structure"`

	FsxWindowsFileServerVolumeConfiguration *FSxWindowsFileServerVolumeConfiguration `json:"fsxWindowsFileServerVolumeConfiguration,omitempty" type:"structure"`

	Host *HostVolumeProperties `json:"host,omitempty" type:"structure"`

	Name *string `json:"name,omitempty" type:"string"`

	Type *string `json:"type,omitempty" type:"string" enum:"VolumeType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Volume) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Volume) GoString() string {
	return s.String()
}

type VolumeFrom struct {
	_ struct{} `type:"structure"`

	ReadOnly *bool `json:"readOnly,omitempty" type:"boolean"`

	SourceContainer *string `json:"sourceContainer,omitempty" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VolumeFrom) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VolumeFrom) GoString() string {
	return s.String()
}
