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

package marketplacemetering

import (
	"github.com/aws/aws-sdk-go/private/protocol"
)

const (

	// ErrCodeCustomerNotEntitledException for service response error code
	// "CustomerNotEntitledException".
	//
	// Exception thrown when the customer does not have a valid subscription for
	// the product.
	ErrCodeCustomerNotEntitledException = "CustomerNotEntitledException"

	// ErrCodeDisabledApiException for service response error code
	// "DisabledApiException".
	//
	// The API is disabled in the Region.
	ErrCodeDisabledApiException = "DisabledApiException"

	// ErrCodeDuplicateRequestException for service response error code
	// "DuplicateRequestException".
	//
	// A metering record has already been emitted by the same EC2 instance, ECS
	// task, or EKS pod for the given {usageDimension, timestamp} with a different
	// usageQuantity.
	ErrCodeDuplicateRequestException = "DuplicateRequestException"

	// ErrCodeExpiredTokenException for service response error code
	// "ExpiredTokenException".
	//
	// The submitted registration token has expired. This can happen if the buyer's
	// browser takes too long to redirect to your page, the buyer has resubmitted
	// the registration token, or your application has held on to the registration
	// token for too long. Your SaaS registration website should redeem this token
	// as soon as it is submitted by the buyer's browser.
	ErrCodeExpiredTokenException = "ExpiredTokenException"

	// ErrCodeInternalServiceErrorException for service response error code
	// "InternalServiceErrorException".
	//
	// An internal error has occurred. Retry your request. If the problem persists,
	// post a message with details on the AWS forums.
	ErrCodeInternalServiceErrorException = "InternalServiceErrorException"

	// ErrCodeInvalidCustomerIdentifierException for service response error code
	// "InvalidCustomerIdentifierException".
	//
	// You have metered usage for a CustomerIdentifier that does not exist.
	ErrCodeInvalidCustomerIdentifierException = "InvalidCustomerIdentifierException"

	// ErrCodeInvalidEndpointRegionException for service response error code
	// "InvalidEndpointRegionException".
	//
	// The endpoint being called is in a AWS Region different from your EC2 instance,
	// ECS task, or EKS pod. The Region of the Metering Service endpoint and the
	// AWS Region of the resource must match.
	ErrCodeInvalidEndpointRegionException = "InvalidEndpointRegionException"

	// ErrCodeInvalidProductCodeException for service response error code
	// "InvalidProductCodeException".
	//
	// The product code passed does not match the product code used for publishing
	// the product.
	ErrCodeInvalidProductCodeException = "InvalidProductCodeException"

	// ErrCodeInvalidPublicKeyVersionException for service response error code
	// "InvalidPublicKeyVersionException".
	//
	// Public Key version is invalid.
	ErrCodeInvalidPublicKeyVersionException = "InvalidPublicKeyVersionException"

	// ErrCodeInvalidRegionException for service response error code
	// "InvalidRegionException".
	//
	// RegisterUsage must be called in the same AWS Region the ECS task was launched
	// in. This prevents a container from hardcoding a Region (e.g. withRegion(“us-east-1”)
	// when calling RegisterUsage.
	ErrCodeInvalidRegionException = "InvalidRegionException"

	// ErrCodeInvalidTagException for service response error code
	// "InvalidTagException".
	//
	// The tag is invalid, or the number of tags is greater than 5.
	ErrCodeInvalidTagException = "InvalidTagException"

	// ErrCodeInvalidTokenException for service response error code
	// "InvalidTokenException".
	//
	// Registration token is invalid.
	ErrCodeInvalidTokenException = "InvalidTokenException"

	// ErrCodeInvalidUsageAllocationsException for service response error code
	// "InvalidUsageAllocationsException".
	//
	// The usage allocation objects are invalid, or the number of allocations is
	// greater than 500 for a single usage record.
	ErrCodeInvalidUsageAllocationsException = "InvalidUsageAllocationsException"

	// ErrCodeInvalidUsageDimensionException for service response error code
	// "InvalidUsageDimensionException".
	//
	// The usage dimension does not match one of the UsageDimensions associated
	// with products.
	ErrCodeInvalidUsageDimensionException = "InvalidUsageDimensionException"

	// ErrCodePlatformNotSupportedException for service response error code
	// "PlatformNotSupportedException".
	//
	// AWS Marketplace does not support metering usage from the underlying platform.
	// Currently, Amazon ECS, Amazon EKS, and AWS Fargate are supported.
	ErrCodePlatformNotSupportedException = "PlatformNotSupportedException"

	// ErrCodeThrottlingException for service response error code
	// "ThrottlingException".
	//
	// The calls to the API are throttled.
	ErrCodeThrottlingException = "ThrottlingException"

	// ErrCodeTimestampOutOfBoundsException for service response error code
	// "TimestampOutOfBoundsException".
	//
	// The timestamp value passed in the meterUsage() is out of allowed range.
	ErrCodeTimestampOutOfBoundsException = "TimestampOutOfBoundsException"
)

var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{
	"CustomerNotEntitledException":       newErrorCustomerNotEntitledException,
	"DisabledApiException":               newErrorDisabledApiException,
	"DuplicateRequestException":          newErrorDuplicateRequestException,
	"ExpiredTokenException":              newErrorExpiredTokenException,
	"InternalServiceErrorException":      newErrorInternalServiceErrorException,
	"InvalidCustomerIdentifierException": newErrorInvalidCustomerIdentifierException,
	"InvalidEndpointRegionException":     newErrorInvalidEndpointRegionException,
	"InvalidProductCodeException":        newErrorInvalidProductCodeException,
	"InvalidPublicKeyVersionException":   newErrorInvalidPublicKeyVersionException,
	"InvalidRegionException":             newErrorInvalidRegionException,
	"InvalidTagException":                newErrorInvalidTagException,
	"InvalidTokenException":              newErrorInvalidTokenException,
	"InvalidUsageAllocationsException":   newErrorInvalidUsageAllocationsException,
	"InvalidUsageDimensionException":     newErrorInvalidUsageDimensionException,
	"PlatformNotSupportedException":      newErrorPlatformNotSupportedException,
	"ThrottlingException":                newErrorThrottlingException,
	"TimestampOutOfBoundsException":      newErrorTimestampOutOfBoundsException,
}
