{-# LANGUAGE DisambiguateRecordFields #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Amazonka.DAX.Types
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.DAX.Types
( -- * Service Configuration
defaultService,
-- * Errors
_ClusterAlreadyExistsFault,
_ClusterNotFoundFault,
_ClusterQuotaForCustomerExceededFault,
_InsufficientClusterCapacityFault,
_InvalidARNFault,
_InvalidClusterStateFault,
_InvalidParameterCombinationException,
_InvalidParameterGroupStateFault,
_InvalidParameterValueException,
_InvalidSubnet,
_InvalidVPCNetworkStateFault,
_NodeNotFoundFault,
_NodeQuotaForClusterExceededFault,
_NodeQuotaForCustomerExceededFault,
_ParameterGroupAlreadyExistsFault,
_ParameterGroupNotFoundFault,
_ParameterGroupQuotaExceededFault,
_ServiceLinkedRoleNotFoundFault,
_ServiceQuotaExceededException,
_SubnetGroupAlreadyExistsFault,
_SubnetGroupInUseFault,
_SubnetGroupNotFoundFault,
_SubnetGroupQuotaExceededFault,
_SubnetInUse,
_SubnetQuotaExceededFault,
_TagNotFoundFault,
_TagQuotaPerResourceExceeded,
-- * ChangeType
ChangeType (..),
-- * ClusterEndpointEncryptionType
ClusterEndpointEncryptionType (..),
-- * IsModifiable
IsModifiable (..),
-- * ParameterType
ParameterType (..),
-- * SSEStatus
SSEStatus (..),
-- * SourceType
SourceType (..),
-- * Cluster
Cluster (..),
newCluster,
cluster_activeNodes,
cluster_clusterArn,
cluster_clusterDiscoveryEndpoint,
cluster_clusterEndpointEncryptionType,
cluster_clusterName,
cluster_description,
cluster_iamRoleArn,
cluster_nodeIdsToRemove,
cluster_nodeType,
cluster_nodes,
cluster_notificationConfiguration,
cluster_parameterGroup,
cluster_preferredMaintenanceWindow,
cluster_sSEDescription,
cluster_securityGroups,
cluster_status,
cluster_subnetGroup,
cluster_totalNodes,
-- * Endpoint
Endpoint (..),
newEndpoint,
endpoint_address,
endpoint_port,
endpoint_url,
-- * Event
Event (..),
newEvent,
event_date,
event_message,
event_sourceName,
event_sourceType,
-- * Node
Node (..),
newNode,
node_availabilityZone,
node_endpoint,
node_nodeCreateTime,
node_nodeId,
node_nodeStatus,
node_parameterGroupStatus,
-- * NodeTypeSpecificValue
NodeTypeSpecificValue (..),
newNodeTypeSpecificValue,
nodeTypeSpecificValue_nodeType,
nodeTypeSpecificValue_value,
-- * NotificationConfiguration
NotificationConfiguration (..),
newNotificationConfiguration,
notificationConfiguration_topicArn,
notificationConfiguration_topicStatus,
-- * Parameter
Parameter (..),
newParameter,
parameter_allowedValues,
parameter_changeType,
parameter_dataType,
parameter_description,
parameter_isModifiable,
parameter_nodeTypeSpecificValues,
parameter_parameterName,
parameter_parameterType,
parameter_parameterValue,
parameter_source,
-- * ParameterGroup
ParameterGroup (..),
newParameterGroup,
parameterGroup_description,
parameterGroup_parameterGroupName,
-- * ParameterGroupStatus
ParameterGroupStatus (..),
newParameterGroupStatus,
parameterGroupStatus_nodeIdsToReboot,
parameterGroupStatus_parameterApplyStatus,
parameterGroupStatus_parameterGroupName,
-- * ParameterNameValue
ParameterNameValue (..),
newParameterNameValue,
parameterNameValue_parameterName,
parameterNameValue_parameterValue,
-- * SSEDescription
SSEDescription (..),
newSSEDescription,
sSEDescription_status,
-- * SSESpecification
SSESpecification (..),
newSSESpecification,
sSESpecification_enabled,
-- * SecurityGroupMembership
SecurityGroupMembership (..),
newSecurityGroupMembership,
securityGroupMembership_securityGroupIdentifier,
securityGroupMembership_status,
-- * Subnet
Subnet (..),
newSubnet,
subnet_subnetAvailabilityZone,
subnet_subnetIdentifier,
-- * SubnetGroup
SubnetGroup (..),
newSubnetGroup,
subnetGroup_description,
subnetGroup_subnetGroupName,
subnetGroup_subnets,
subnetGroup_vpcId,
-- * Tag
Tag (..),
newTag,
tag_key,
tag_value,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import Amazonka.DAX.Types.ChangeType
import Amazonka.DAX.Types.Cluster
import Amazonka.DAX.Types.ClusterEndpointEncryptionType
import Amazonka.DAX.Types.Endpoint
import Amazonka.DAX.Types.Event
import Amazonka.DAX.Types.IsModifiable
import Amazonka.DAX.Types.Node
import Amazonka.DAX.Types.NodeTypeSpecificValue
import Amazonka.DAX.Types.NotificationConfiguration
import Amazonka.DAX.Types.Parameter
import Amazonka.DAX.Types.ParameterGroup
import Amazonka.DAX.Types.ParameterGroupStatus
import Amazonka.DAX.Types.ParameterNameValue
import Amazonka.DAX.Types.ParameterType
import Amazonka.DAX.Types.SSEDescription
import Amazonka.DAX.Types.SSESpecification
import Amazonka.DAX.Types.SSEStatus
import Amazonka.DAX.Types.SecurityGroupMembership
import Amazonka.DAX.Types.SourceType
import Amazonka.DAX.Types.Subnet
import Amazonka.DAX.Types.SubnetGroup
import Amazonka.DAX.Types.Tag
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Sign.V4 as Sign
-- | API version @2017-04-19@ of the Amazon DynamoDB Accelerator (DAX) SDK configuration.
defaultService :: Core.Service
defaultService =
Core.Service
{ Core.abbrev = "DAX",
Core.signer = Sign.v4,
Core.endpointPrefix = "dax",
Core.signingName = "dax",
Core.version = "2017-04-19",
Core.s3AddressingStyle = Core.S3AddressingStyleAuto,
Core.endpoint = Core.defaultEndpoint defaultService,
Core.timeout = Prelude.Just 70,
Core.check = Core.statusSuccess,
Core.error = Core.parseJSONError "DAX",
Core.retry = retry
}
where
retry =
Core.Exponential
{ Core.base = 5.0e-2,
Core.growth = 2,
Core.attempts = 5,
Core.check = check
}
check e
| Lens.has (Core.hasStatus 502) e =
Prelude.Just "bad_gateway"
| Lens.has (Core.hasStatus 504) e =
Prelude.Just "gateway_timeout"
| Lens.has (Core.hasStatus 500) e =
Prelude.Just "general_server_error"
| Lens.has (Core.hasStatus 509) e =
Prelude.Just "limit_exceeded"
| Lens.has
( Core.hasCode "RequestThrottledException"
Prelude.. Core.hasStatus 400
)
e =
Prelude.Just "request_throttled_exception"
| Lens.has (Core.hasStatus 503) e =
Prelude.Just "service_unavailable"
| Lens.has
( Core.hasCode "ThrottledException"
Prelude.. Core.hasStatus 400
)
e =
Prelude.Just "throttled_exception"
| Lens.has
( Core.hasCode "Throttling"
Prelude.. Core.hasStatus 400
)
e =
Prelude.Just "throttling"
| Lens.has
( Core.hasCode "ThrottlingException"
Prelude.. Core.hasStatus 400
)
e =
Prelude.Just "throttling_exception"
| Lens.has
( Core.hasCode
"ProvisionedThroughputExceededException"
Prelude.. Core.hasStatus 400
)
e =
Prelude.Just "throughput_exceeded"
| Lens.has (Core.hasStatus 429) e =
Prelude.Just "too_many_requests"
| Prelude.otherwise = Prelude.Nothing
-- | You already have a DAX cluster with the given identifier.
_ClusterAlreadyExistsFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_ClusterAlreadyExistsFault =
Core._MatchServiceError
defaultService
"ClusterAlreadyExistsFault"
-- | The requested cluster ID does not refer to an existing DAX cluster.
_ClusterNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_ClusterNotFoundFault =
Core._MatchServiceError
defaultService
"ClusterNotFoundFault"
-- | You have attempted to exceed the maximum number of DAX clusters for your
-- AWS account.
_ClusterQuotaForCustomerExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_ClusterQuotaForCustomerExceededFault =
Core._MatchServiceError
defaultService
"ClusterQuotaForCustomerExceededFault"
-- | There are not enough system resources to create the cluster you
-- requested (or to resize an already-existing cluster).
_InsufficientClusterCapacityFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_InsufficientClusterCapacityFault =
Core._MatchServiceError
defaultService
"InsufficientClusterCapacityFault"
-- | The Amazon Resource Name (ARN) supplied in the request is not valid.
_InvalidARNFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_InvalidARNFault =
Core._MatchServiceError
defaultService
"InvalidARNFault"
-- | The requested DAX cluster is not in the /available/ state.
_InvalidClusterStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_InvalidClusterStateFault =
Core._MatchServiceError
defaultService
"InvalidClusterStateFault"
-- | Two or more incompatible parameters were specified.
_InvalidParameterCombinationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_InvalidParameterCombinationException =
Core._MatchServiceError
defaultService
"InvalidParameterCombinationException"
-- | One or more parameters in a parameter group are in an invalid state.
_InvalidParameterGroupStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_InvalidParameterGroupStateFault =
Core._MatchServiceError
defaultService
"InvalidParameterGroupStateFault"
-- | The value for a parameter is invalid.
_InvalidParameterValueException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_InvalidParameterValueException =
Core._MatchServiceError
defaultService
"InvalidParameterValueException"
-- | An invalid subnet identifier was specified.
_InvalidSubnet :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_InvalidSubnet =
Core._MatchServiceError
defaultService
"InvalidSubnet"
-- | The VPC network is in an invalid state.
_InvalidVPCNetworkStateFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_InvalidVPCNetworkStateFault =
Core._MatchServiceError
defaultService
"InvalidVPCNetworkStateFault"
-- | None of the nodes in the cluster have the given node ID.
_NodeNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_NodeNotFoundFault =
Core._MatchServiceError
defaultService
"NodeNotFoundFault"
-- | You have attempted to exceed the maximum number of nodes for a DAX
-- cluster.
_NodeQuotaForClusterExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_NodeQuotaForClusterExceededFault =
Core._MatchServiceError
defaultService
"NodeQuotaForClusterExceededFault"
-- | You have attempted to exceed the maximum number of nodes for your AWS
-- account.
_NodeQuotaForCustomerExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_NodeQuotaForCustomerExceededFault =
Core._MatchServiceError
defaultService
"NodeQuotaForCustomerExceededFault"
-- | The specified parameter group already exists.
_ParameterGroupAlreadyExistsFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_ParameterGroupAlreadyExistsFault =
Core._MatchServiceError
defaultService
"ParameterGroupAlreadyExistsFault"
-- | The specified parameter group does not exist.
_ParameterGroupNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_ParameterGroupNotFoundFault =
Core._MatchServiceError
defaultService
"ParameterGroupNotFoundFault"
-- | You have attempted to exceed the maximum number of parameter groups.
_ParameterGroupQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_ParameterGroupQuotaExceededFault =
Core._MatchServiceError
defaultService
"ParameterGroupQuotaExceededFault"
-- | The specified service linked role (SLR) was not found.
_ServiceLinkedRoleNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_ServiceLinkedRoleNotFoundFault =
Core._MatchServiceError
defaultService
"ServiceLinkedRoleNotFoundFault"
-- | You have reached the maximum number of x509 certificates that can be
-- created for encrypted clusters in a 30 day period. Contact AWS customer
-- support to discuss options for continuing to create encrypted clusters.
_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_ServiceQuotaExceededException =
Core._MatchServiceError
defaultService
"ServiceQuotaExceededException"
-- | The specified subnet group already exists.
_SubnetGroupAlreadyExistsFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_SubnetGroupAlreadyExistsFault =
Core._MatchServiceError
defaultService
"SubnetGroupAlreadyExistsFault"
-- | The specified subnet group is currently in use.
_SubnetGroupInUseFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_SubnetGroupInUseFault =
Core._MatchServiceError
defaultService
"SubnetGroupInUseFault"
-- | The requested subnet group name does not refer to an existing subnet
-- group.
_SubnetGroupNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_SubnetGroupNotFoundFault =
Core._MatchServiceError
defaultService
"SubnetGroupNotFoundFault"
-- | The request cannot be processed because it would exceed the allowed
-- number of subnets in a subnet group.
_SubnetGroupQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_SubnetGroupQuotaExceededFault =
Core._MatchServiceError
defaultService
"SubnetGroupQuotaExceededFault"
-- | The requested subnet is being used by another subnet group.
_SubnetInUse :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_SubnetInUse =
Core._MatchServiceError
defaultService
"SubnetInUse"
-- | The request cannot be processed because it would exceed the allowed
-- number of subnets in a subnet group.
_SubnetQuotaExceededFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_SubnetQuotaExceededFault =
Core._MatchServiceError
defaultService
"SubnetQuotaExceededFault"
-- | The tag does not exist.
_TagNotFoundFault :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_TagNotFoundFault =
Core._MatchServiceError
defaultService
"TagNotFoundFault"
-- | You have exceeded the maximum number of tags for this DAX cluster.
_TagQuotaPerResourceExceeded :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_TagQuotaPerResourceExceeded =
Core._MatchServiceError
defaultService
"TagQuotaPerResourceExceeded"