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

package types

import (
	"fmt"
	smithy "github.com/aws/smithy-go"
)

// You don't have authorization to perform the requested action.
type AccessDeniedException struct {
	Message *string

	ErrorCodeOverride *string

	noSmithyDocumentSerde
}

func (e *AccessDeniedException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *AccessDeniedException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *AccessDeniedException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "AccessDeniedException"
	}
	return *e.ErrorCodeOverride
}
func (e *AccessDeniedException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient }

// You can apply up to 10 custom attributes for each resource. You can view the
// attributes of a resource with [ListAttributes]. You can remove existing attributes on a
// resource with [DeleteAttributes].
//
// [ListAttributes]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListAttributes.html
// [DeleteAttributes]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeleteAttributes.html
type AttributeLimitExceededException struct {
	Message *string

	ErrorCodeOverride *string

	noSmithyDocumentSerde
}

func (e *AttributeLimitExceededException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *AttributeLimitExceededException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *AttributeLimitExceededException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "AttributeLimitExceededException"
	}
	return *e.ErrorCodeOverride
}
func (e *AttributeLimitExceededException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient }

// Your Amazon Web Services account was blocked. For more information, contact [Amazon Web Services Support].
//
// [Amazon Web Services Support]: http://aws.amazon.com/contact-us/
type BlockedException struct {
	Message *string

	ErrorCodeOverride *string

	noSmithyDocumentSerde
}

func (e *BlockedException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *BlockedException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *BlockedException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "BlockedException"
	}
	return *e.ErrorCodeOverride
}
func (e *BlockedException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient }

// These errors are usually caused by a client action. This client action might be
// using an action or resource on behalf of a user that doesn't have permissions to
// use the action or resource. Or, it might be specifying an identifier that isn't
// valid.
//
// The following list includes additional causes for the error:
//
//   - The RunTask could not be processed because you use managed scaling and there
//     is a capacity error because the quota of tasks in the PROVISIONING per cluster
//     has been reached. For information about the service quotas, see [Amazon ECS service quotas].
//
// [Amazon ECS service quotas]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-quotas.html
type ClientException struct {
	Message *string

	ErrorCodeOverride *string

	noSmithyDocumentSerde
}

func (e *ClientException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *ClientException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *ClientException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "ClientException"
	}
	return *e.ErrorCodeOverride
}
func (e *ClientException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient }

// You can't delete a cluster that has registered container instances. First,
// deregister the container instances before you can delete the cluster. For more
// information, see [DeregisterContainerInstance].
//
// [DeregisterContainerInstance]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeregisterContainerInstance.html
type ClusterContainsContainerInstancesException struct {
	Message *string

	ErrorCodeOverride *string

	noSmithyDocumentSerde
}

func (e *ClusterContainsContainerInstancesException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *ClusterContainsContainerInstancesException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *ClusterContainsContainerInstancesException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "ClusterContainsContainerInstancesException"
	}
	return *e.ErrorCodeOverride
}
func (e *ClusterContainsContainerInstancesException) ErrorFault() smithy.ErrorFault {
	return smithy.FaultClient
}

// You can't delete a cluster that contains services. First, update the service to
// reduce its desired task count to 0, and then delete the service. For more
// information, see [UpdateService]and [DeleteService].
//
// [UpdateService]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html
// [DeleteService]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeleteService.html
type ClusterContainsServicesException struct {
	Message *string

	ErrorCodeOverride *string

	noSmithyDocumentSerde
}

func (e *ClusterContainsServicesException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *ClusterContainsServicesException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *ClusterContainsServicesException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "ClusterContainsServicesException"
	}
	return *e.ErrorCodeOverride
}
func (e *ClusterContainsServicesException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient }

// You can't delete a cluster that has active tasks.
type ClusterContainsTasksException struct {
	Message *string

	ErrorCodeOverride *string

	noSmithyDocumentSerde
}

func (e *ClusterContainsTasksException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *ClusterContainsTasksException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *ClusterContainsTasksException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "ClusterContainsTasksException"
	}
	return *e.ErrorCodeOverride
}
func (e *ClusterContainsTasksException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient }

// The specified cluster wasn't found. You can view your available clusters with [ListClusters].
// Amazon ECS clusters are Region specific.
//
// [ListClusters]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListClusters.html
type ClusterNotFoundException struct {
	Message *string

	ErrorCodeOverride *string

	noSmithyDocumentSerde
}

func (e *ClusterNotFoundException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *ClusterNotFoundException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *ClusterNotFoundException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "ClusterNotFoundException"
	}
	return *e.ErrorCodeOverride
}
func (e *ClusterNotFoundException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient }

// The RunTask request could not be processed due to conflicts. The provided
// clientToken is already in use with a different RunTask request. The resourceIds
// are the existing task ARNs which are already associated with the clientToken .
//
// To fix this issue:
//
//   - Run RunTask with a unique clientToken .
//
//   - Run RunTask with the clientToken and the original set of parameters
type ConflictException struct {
	Message *string

	ErrorCodeOverride *string

	ResourceIds []string

	noSmithyDocumentSerde
}

func (e *ConflictException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *ConflictException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *ConflictException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "ConflictException"
	}
	return *e.ErrorCodeOverride
}
func (e *ConflictException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient }

// The specified parameter isn't valid. Review the available parameters for the
// API request.
type InvalidParameterException struct {
	Message *string

	ErrorCodeOverride *string

	noSmithyDocumentSerde
}

func (e *InvalidParameterException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *InvalidParameterException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *InvalidParameterException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "InvalidParameterException"
	}
	return *e.ErrorCodeOverride
}
func (e *InvalidParameterException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient }

// The limit for the resource was exceeded.
type LimitExceededException struct {
	Message *string

	ErrorCodeOverride *string

	noSmithyDocumentSerde
}

func (e *LimitExceededException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *LimitExceededException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *LimitExceededException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "LimitExceededException"
	}
	return *e.ErrorCodeOverride
}
func (e *LimitExceededException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient }

// Amazon ECS can't determine the current version of the Amazon ECS container
// agent on the container instance and doesn't have enough information to proceed
// with an update. This could be because the agent running on the container
// instance is a previous or custom version that doesn't use our version
// information.
type MissingVersionException struct {
	Message *string

	ErrorCodeOverride *string

	noSmithyDocumentSerde
}

func (e *MissingVersionException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *MissingVersionException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *MissingVersionException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "MissingVersionException"
	}
	return *e.ErrorCodeOverride
}
func (e *MissingVersionException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient }

// The specified namespace wasn't found.
type NamespaceNotFoundException struct {
	Message *string

	ErrorCodeOverride *string

	noSmithyDocumentSerde
}

func (e *NamespaceNotFoundException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *NamespaceNotFoundException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *NamespaceNotFoundException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "NamespaceNotFoundException"
	}
	return *e.ErrorCodeOverride
}
func (e *NamespaceNotFoundException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient }

// There's no update available for this Amazon ECS container agent. This might be
// because the agent is already running the latest version or because it's so old
// that there's no update path to the current version.
type NoUpdateAvailableException struct {
	Message *string

	ErrorCodeOverride *string

	noSmithyDocumentSerde
}

func (e *NoUpdateAvailableException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *NoUpdateAvailableException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *NoUpdateAvailableException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "NoUpdateAvailableException"
	}
	return *e.ErrorCodeOverride
}
func (e *NoUpdateAvailableException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient }

// The specified platform version doesn't satisfy the required capabilities of the
// task definition.
type PlatformTaskDefinitionIncompatibilityException struct {
	Message *string

	ErrorCodeOverride *string

	noSmithyDocumentSerde
}

func (e *PlatformTaskDefinitionIncompatibilityException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *PlatformTaskDefinitionIncompatibilityException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *PlatformTaskDefinitionIncompatibilityException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "PlatformTaskDefinitionIncompatibilityException"
	}
	return *e.ErrorCodeOverride
}
func (e *PlatformTaskDefinitionIncompatibilityException) ErrorFault() smithy.ErrorFault {
	return smithy.FaultClient
}

// The specified platform version doesn't exist.
type PlatformUnknownException struct {
	Message *string

	ErrorCodeOverride *string

	noSmithyDocumentSerde
}

func (e *PlatformUnknownException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *PlatformUnknownException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *PlatformUnknownException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "PlatformUnknownException"
	}
	return *e.ErrorCodeOverride
}
func (e *PlatformUnknownException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient }

// The specified resource is in-use and can't be removed.
type ResourceInUseException struct {
	Message *string

	ErrorCodeOverride *string

	noSmithyDocumentSerde
}

func (e *ResourceInUseException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *ResourceInUseException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *ResourceInUseException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "ResourceInUseException"
	}
	return *e.ErrorCodeOverride
}
func (e *ResourceInUseException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient }

// The specified resource wasn't found.
type ResourceNotFoundException struct {
	Message *string

	ErrorCodeOverride *string

	noSmithyDocumentSerde
}

func (e *ResourceNotFoundException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *ResourceNotFoundException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *ResourceNotFoundException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "ResourceNotFoundException"
	}
	return *e.ErrorCodeOverride
}
func (e *ResourceNotFoundException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient }

// These errors are usually caused by a server issue.
type ServerException struct {
	Message *string

	ErrorCodeOverride *string

	noSmithyDocumentSerde
}

func (e *ServerException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *ServerException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *ServerException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "ServerException"
	}
	return *e.ErrorCodeOverride
}
func (e *ServerException) ErrorFault() smithy.ErrorFault { return smithy.FaultServer }

// The specified service isn't active. You can't update a service that's inactive.
// If you have previously deleted a service, you can re-create it with [CreateService].
//
// [CreateService]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html
type ServiceNotActiveException struct {
	Message *string

	ErrorCodeOverride *string

	noSmithyDocumentSerde
}

func (e *ServiceNotActiveException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *ServiceNotActiveException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *ServiceNotActiveException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "ServiceNotActiveException"
	}
	return *e.ErrorCodeOverride
}
func (e *ServiceNotActiveException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient }

// The specified service wasn't found. You can view your available services with [ListServices].
// Amazon ECS services are cluster specific and Region specific.
//
// [ListServices]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListServices.html
type ServiceNotFoundException struct {
	Message *string

	ErrorCodeOverride *string

	noSmithyDocumentSerde
}

func (e *ServiceNotFoundException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *ServiceNotFoundException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *ServiceNotFoundException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "ServiceNotFoundException"
	}
	return *e.ErrorCodeOverride
}
func (e *ServiceNotFoundException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient }

// The execute command cannot run. This error can be caused by any of the
// following configuration issues:
//
//   - Incorrect IAM permissions
//
//   - The SSM agent is not installed or is not running
//
//   - There is an interface Amazon VPC endpoint for Amazon ECS, but there is not
//     one for Systems Manager Session Manager
//
// For information about how to troubleshoot the issues, see [Troubleshooting issues with ECS Exec] in the Amazon
// Elastic Container Service Developer Guide.
//
// [Troubleshooting issues with ECS Exec]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html
type TargetNotConnectedException struct {
	Message *string

	ErrorCodeOverride *string

	noSmithyDocumentSerde
}

func (e *TargetNotConnectedException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *TargetNotConnectedException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *TargetNotConnectedException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "TargetNotConnectedException"
	}
	return *e.ErrorCodeOverride
}
func (e *TargetNotConnectedException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient }

// The specified target wasn't found. You can view your available container
// instances with [ListContainerInstances]. Amazon ECS container instances are cluster-specific and
// Region-specific.
//
// [ListContainerInstances]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListContainerInstances.html
type TargetNotFoundException struct {
	Message *string

	ErrorCodeOverride *string

	noSmithyDocumentSerde
}

func (e *TargetNotFoundException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *TargetNotFoundException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *TargetNotFoundException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "TargetNotFoundException"
	}
	return *e.ErrorCodeOverride
}
func (e *TargetNotFoundException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient }

// The specified task set wasn't found. You can view your available task sets with [DescribeTaskSets]
// . Task sets are specific to each cluster, service and Region.
//
// [DescribeTaskSets]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTaskSets.html
type TaskSetNotFoundException struct {
	Message *string

	ErrorCodeOverride *string

	noSmithyDocumentSerde
}

func (e *TaskSetNotFoundException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *TaskSetNotFoundException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *TaskSetNotFoundException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "TaskSetNotFoundException"
	}
	return *e.ErrorCodeOverride
}
func (e *TaskSetNotFoundException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient }

// The specified task isn't supported in this Region.
type UnsupportedFeatureException struct {
	Message *string

	ErrorCodeOverride *string

	noSmithyDocumentSerde
}

func (e *UnsupportedFeatureException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *UnsupportedFeatureException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *UnsupportedFeatureException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "UnsupportedFeatureException"
	}
	return *e.ErrorCodeOverride
}
func (e *UnsupportedFeatureException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient }

// There's already a current Amazon ECS container agent update in progress on the
// container instance that's specified. If the container agent becomes disconnected
// while it's in a transitional stage, such as PENDING or STAGING , the update
// process can get stuck in that state. However, when the agent reconnects, it
// resumes where it stopped previously.
type UpdateInProgressException struct {
	Message *string

	ErrorCodeOverride *string

	noSmithyDocumentSerde
}

func (e *UpdateInProgressException) Error() string {
	return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage())
}
func (e *UpdateInProgressException) ErrorMessage() string {
	if e.Message == nil {
		return ""
	}
	return *e.Message
}
func (e *UpdateInProgressException) ErrorCode() string {
	if e == nil || e.ErrorCodeOverride == nil {
		return "UpdateInProgressException"
	}
	return *e.ErrorCodeOverride
}
func (e *UpdateInProgressException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient }
