{-# 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.GreengrassV2.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.GreengrassV2.Types
( -- * Service Configuration
defaultService,
-- * Errors
_AccessDeniedException,
_ConflictException,
_InternalServerException,
_RequestAlreadyInProgressException,
_ResourceNotFoundException,
_ServiceQuotaExceededException,
_ThrottlingException,
_ValidationException,
-- * CloudComponentState
CloudComponentState (..),
-- * ComponentDependencyType
ComponentDependencyType (..),
-- * ComponentVisibilityScope
ComponentVisibilityScope (..),
-- * CoreDeviceStatus
CoreDeviceStatus (..),
-- * DeploymentComponentUpdatePolicyAction
DeploymentComponentUpdatePolicyAction (..),
-- * DeploymentFailureHandlingPolicy
DeploymentFailureHandlingPolicy (..),
-- * DeploymentHistoryFilter
DeploymentHistoryFilter (..),
-- * DeploymentStatus
DeploymentStatus (..),
-- * EffectiveDeploymentExecutionStatus
EffectiveDeploymentExecutionStatus (..),
-- * InstalledComponentLifecycleState
InstalledComponentLifecycleState (..),
-- * InstalledComponentTopologyFilter
InstalledComponentTopologyFilter (..),
-- * IoTJobAbortAction
IoTJobAbortAction (..),
-- * IoTJobExecutionFailureType
IoTJobExecutionFailureType (..),
-- * LambdaEventSourceType
LambdaEventSourceType (..),
-- * LambdaFilesystemPermission
LambdaFilesystemPermission (..),
-- * LambdaInputPayloadEncodingType
LambdaInputPayloadEncodingType (..),
-- * LambdaIsolationMode
LambdaIsolationMode (..),
-- * RecipeOutputFormat
RecipeOutputFormat (..),
-- * VendorGuidance
VendorGuidance (..),
-- * AssociateClientDeviceWithCoreDeviceEntry
AssociateClientDeviceWithCoreDeviceEntry (..),
newAssociateClientDeviceWithCoreDeviceEntry,
associateClientDeviceWithCoreDeviceEntry_thingName,
-- * AssociateClientDeviceWithCoreDeviceErrorEntry
AssociateClientDeviceWithCoreDeviceErrorEntry (..),
newAssociateClientDeviceWithCoreDeviceErrorEntry,
associateClientDeviceWithCoreDeviceErrorEntry_code,
associateClientDeviceWithCoreDeviceErrorEntry_message,
associateClientDeviceWithCoreDeviceErrorEntry_thingName,
-- * AssociatedClientDevice
AssociatedClientDevice (..),
newAssociatedClientDevice,
associatedClientDevice_associationTimestamp,
associatedClientDevice_thingName,
-- * CloudComponentStatus
CloudComponentStatus (..),
newCloudComponentStatus,
cloudComponentStatus_componentState,
cloudComponentStatus_errors,
cloudComponentStatus_message,
cloudComponentStatus_vendorGuidance,
cloudComponentStatus_vendorGuidanceMessage,
-- * Component
Component (..),
newComponent,
component_arn,
component_componentName,
component_latestVersion,
-- * ComponentCandidate
ComponentCandidate (..),
newComponentCandidate,
componentCandidate_componentName,
componentCandidate_componentVersion,
componentCandidate_versionRequirements,
-- * ComponentConfigurationUpdate
ComponentConfigurationUpdate (..),
newComponentConfigurationUpdate,
componentConfigurationUpdate_merge,
componentConfigurationUpdate_reset,
-- * ComponentDependencyRequirement
ComponentDependencyRequirement (..),
newComponentDependencyRequirement,
componentDependencyRequirement_dependencyType,
componentDependencyRequirement_versionRequirement,
-- * ComponentDeploymentSpecification
ComponentDeploymentSpecification (..),
newComponentDeploymentSpecification,
componentDeploymentSpecification_componentVersion,
componentDeploymentSpecification_configurationUpdate,
componentDeploymentSpecification_runWith,
-- * ComponentLatestVersion
ComponentLatestVersion (..),
newComponentLatestVersion,
componentLatestVersion_arn,
componentLatestVersion_componentVersion,
componentLatestVersion_creationTimestamp,
componentLatestVersion_description,
componentLatestVersion_platforms,
componentLatestVersion_publisher,
-- * ComponentPlatform
ComponentPlatform (..),
newComponentPlatform,
componentPlatform_attributes,
componentPlatform_name,
-- * ComponentRunWith
ComponentRunWith (..),
newComponentRunWith,
componentRunWith_posixUser,
componentRunWith_systemResourceLimits,
componentRunWith_windowsUser,
-- * ComponentVersionListItem
ComponentVersionListItem (..),
newComponentVersionListItem,
componentVersionListItem_arn,
componentVersionListItem_componentName,
componentVersionListItem_componentVersion,
-- * ConnectivityInfo
ConnectivityInfo (..),
newConnectivityInfo,
connectivityInfo_hostAddress,
connectivityInfo_id,
connectivityInfo_metadata,
connectivityInfo_portNumber,
-- * CoreDevice
CoreDevice (..),
newCoreDevice,
coreDevice_coreDeviceThingName,
coreDevice_lastStatusUpdateTimestamp,
coreDevice_status,
-- * Deployment
Deployment (..),
newDeployment,
deployment_creationTimestamp,
deployment_deploymentId,
deployment_deploymentName,
deployment_deploymentStatus,
deployment_isLatestForTarget,
deployment_parentTargetArn,
deployment_revisionId,
deployment_targetArn,
-- * DeploymentComponentUpdatePolicy
DeploymentComponentUpdatePolicy (..),
newDeploymentComponentUpdatePolicy,
deploymentComponentUpdatePolicy_action,
deploymentComponentUpdatePolicy_timeoutInSeconds,
-- * DeploymentConfigurationValidationPolicy
DeploymentConfigurationValidationPolicy (..),
newDeploymentConfigurationValidationPolicy,
deploymentConfigurationValidationPolicy_timeoutInSeconds,
-- * DeploymentIoTJobConfiguration
DeploymentIoTJobConfiguration (..),
newDeploymentIoTJobConfiguration,
deploymentIoTJobConfiguration_abortConfig,
deploymentIoTJobConfiguration_jobExecutionsRolloutConfig,
deploymentIoTJobConfiguration_timeoutConfig,
-- * DeploymentPolicies
DeploymentPolicies (..),
newDeploymentPolicies,
deploymentPolicies_componentUpdatePolicy,
deploymentPolicies_configurationValidationPolicy,
deploymentPolicies_failureHandlingPolicy,
-- * DisassociateClientDeviceFromCoreDeviceEntry
DisassociateClientDeviceFromCoreDeviceEntry (..),
newDisassociateClientDeviceFromCoreDeviceEntry,
disassociateClientDeviceFromCoreDeviceEntry_thingName,
-- * DisassociateClientDeviceFromCoreDeviceErrorEntry
DisassociateClientDeviceFromCoreDeviceErrorEntry (..),
newDisassociateClientDeviceFromCoreDeviceErrorEntry,
disassociateClientDeviceFromCoreDeviceErrorEntry_code,
disassociateClientDeviceFromCoreDeviceErrorEntry_message,
disassociateClientDeviceFromCoreDeviceErrorEntry_thingName,
-- * EffectiveDeployment
EffectiveDeployment (..),
newEffectiveDeployment,
effectiveDeployment_description,
effectiveDeployment_iotJobArn,
effectiveDeployment_iotJobId,
effectiveDeployment_reason,
effectiveDeployment_statusDetails,
effectiveDeployment_deploymentId,
effectiveDeployment_deploymentName,
effectiveDeployment_targetArn,
effectiveDeployment_coreDeviceExecutionStatus,
effectiveDeployment_creationTimestamp,
effectiveDeployment_modifiedTimestamp,
-- * EffectiveDeploymentStatusDetails
EffectiveDeploymentStatusDetails (..),
newEffectiveDeploymentStatusDetails,
effectiveDeploymentStatusDetails_errorStack,
effectiveDeploymentStatusDetails_errorTypes,
-- * InstalledComponent
InstalledComponent (..),
newInstalledComponent,
installedComponent_componentName,
installedComponent_componentVersion,
installedComponent_isRoot,
installedComponent_lastInstallationSource,
installedComponent_lastReportedTimestamp,
installedComponent_lastStatusChangeTimestamp,
installedComponent_lifecycleState,
installedComponent_lifecycleStateDetails,
installedComponent_lifecycleStatusCodes,
-- * IoTJobAbortConfig
IoTJobAbortConfig (..),
newIoTJobAbortConfig,
ioTJobAbortConfig_criteriaList,
-- * IoTJobAbortCriteria
IoTJobAbortCriteria (..),
newIoTJobAbortCriteria,
ioTJobAbortCriteria_failureType,
ioTJobAbortCriteria_action,
ioTJobAbortCriteria_thresholdPercentage,
ioTJobAbortCriteria_minNumberOfExecutedThings,
-- * IoTJobExecutionsRolloutConfig
IoTJobExecutionsRolloutConfig (..),
newIoTJobExecutionsRolloutConfig,
ioTJobExecutionsRolloutConfig_exponentialRate,
ioTJobExecutionsRolloutConfig_maximumPerMinute,
-- * IoTJobExponentialRolloutRate
IoTJobExponentialRolloutRate (..),
newIoTJobExponentialRolloutRate,
ioTJobExponentialRolloutRate_baseRatePerMinute,
ioTJobExponentialRolloutRate_incrementFactor,
ioTJobExponentialRolloutRate_rateIncreaseCriteria,
-- * IoTJobRateIncreaseCriteria
IoTJobRateIncreaseCriteria (..),
newIoTJobRateIncreaseCriteria,
ioTJobRateIncreaseCriteria_numberOfNotifiedThings,
ioTJobRateIncreaseCriteria_numberOfSucceededThings,
-- * IoTJobTimeoutConfig
IoTJobTimeoutConfig (..),
newIoTJobTimeoutConfig,
ioTJobTimeoutConfig_inProgressTimeoutInMinutes,
-- * LambdaContainerParams
LambdaContainerParams (..),
newLambdaContainerParams,
lambdaContainerParams_devices,
lambdaContainerParams_memorySizeInKB,
lambdaContainerParams_mountROSysfs,
lambdaContainerParams_volumes,
-- * LambdaDeviceMount
LambdaDeviceMount (..),
newLambdaDeviceMount,
lambdaDeviceMount_addGroupOwner,
lambdaDeviceMount_permission,
lambdaDeviceMount_path,
-- * LambdaEventSource
LambdaEventSource (..),
newLambdaEventSource,
lambdaEventSource_topic,
lambdaEventSource_type,
-- * LambdaExecutionParameters
LambdaExecutionParameters (..),
newLambdaExecutionParameters,
lambdaExecutionParameters_environmentVariables,
lambdaExecutionParameters_eventSources,
lambdaExecutionParameters_execArgs,
lambdaExecutionParameters_inputPayloadEncodingType,
lambdaExecutionParameters_linuxProcessParams,
lambdaExecutionParameters_maxIdleTimeInSeconds,
lambdaExecutionParameters_maxInstancesCount,
lambdaExecutionParameters_maxQueueSize,
lambdaExecutionParameters_pinned,
lambdaExecutionParameters_statusTimeoutInSeconds,
lambdaExecutionParameters_timeoutInSeconds,
-- * LambdaFunctionRecipeSource
LambdaFunctionRecipeSource (..),
newLambdaFunctionRecipeSource,
lambdaFunctionRecipeSource_componentDependencies,
lambdaFunctionRecipeSource_componentLambdaParameters,
lambdaFunctionRecipeSource_componentName,
lambdaFunctionRecipeSource_componentPlatforms,
lambdaFunctionRecipeSource_componentVersion,
lambdaFunctionRecipeSource_lambdaArn,
-- * LambdaLinuxProcessParams
LambdaLinuxProcessParams (..),
newLambdaLinuxProcessParams,
lambdaLinuxProcessParams_containerParams,
lambdaLinuxProcessParams_isolationMode,
-- * LambdaVolumeMount
LambdaVolumeMount (..),
newLambdaVolumeMount,
lambdaVolumeMount_addGroupOwner,
lambdaVolumeMount_permission,
lambdaVolumeMount_sourcePath,
lambdaVolumeMount_destinationPath,
-- * ResolvedComponentVersion
ResolvedComponentVersion (..),
newResolvedComponentVersion,
resolvedComponentVersion_arn,
resolvedComponentVersion_componentName,
resolvedComponentVersion_componentVersion,
resolvedComponentVersion_message,
resolvedComponentVersion_recipe,
resolvedComponentVersion_vendorGuidance,
-- * SystemResourceLimits
SystemResourceLimits (..),
newSystemResourceLimits,
systemResourceLimits_cpus,
systemResourceLimits_memory,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import Amazonka.GreengrassV2.Types.AssociateClientDeviceWithCoreDeviceEntry
import Amazonka.GreengrassV2.Types.AssociateClientDeviceWithCoreDeviceErrorEntry
import Amazonka.GreengrassV2.Types.AssociatedClientDevice
import Amazonka.GreengrassV2.Types.CloudComponentState
import Amazonka.GreengrassV2.Types.CloudComponentStatus
import Amazonka.GreengrassV2.Types.Component
import Amazonka.GreengrassV2.Types.ComponentCandidate
import Amazonka.GreengrassV2.Types.ComponentConfigurationUpdate
import Amazonka.GreengrassV2.Types.ComponentDependencyRequirement
import Amazonka.GreengrassV2.Types.ComponentDependencyType
import Amazonka.GreengrassV2.Types.ComponentDeploymentSpecification
import Amazonka.GreengrassV2.Types.ComponentLatestVersion
import Amazonka.GreengrassV2.Types.ComponentPlatform
import Amazonka.GreengrassV2.Types.ComponentRunWith
import Amazonka.GreengrassV2.Types.ComponentVersionListItem
import Amazonka.GreengrassV2.Types.ComponentVisibilityScope
import Amazonka.GreengrassV2.Types.ConnectivityInfo
import Amazonka.GreengrassV2.Types.CoreDevice
import Amazonka.GreengrassV2.Types.CoreDeviceStatus
import Amazonka.GreengrassV2.Types.Deployment
import Amazonka.GreengrassV2.Types.DeploymentComponentUpdatePolicy
import Amazonka.GreengrassV2.Types.DeploymentComponentUpdatePolicyAction
import Amazonka.GreengrassV2.Types.DeploymentConfigurationValidationPolicy
import Amazonka.GreengrassV2.Types.DeploymentFailureHandlingPolicy
import Amazonka.GreengrassV2.Types.DeploymentHistoryFilter
import Amazonka.GreengrassV2.Types.DeploymentIoTJobConfiguration
import Amazonka.GreengrassV2.Types.DeploymentPolicies
import Amazonka.GreengrassV2.Types.DeploymentStatus
import Amazonka.GreengrassV2.Types.DisassociateClientDeviceFromCoreDeviceEntry
import Amazonka.GreengrassV2.Types.DisassociateClientDeviceFromCoreDeviceErrorEntry
import Amazonka.GreengrassV2.Types.EffectiveDeployment
import Amazonka.GreengrassV2.Types.EffectiveDeploymentExecutionStatus
import Amazonka.GreengrassV2.Types.EffectiveDeploymentStatusDetails
import Amazonka.GreengrassV2.Types.InstalledComponent
import Amazonka.GreengrassV2.Types.InstalledComponentLifecycleState
import Amazonka.GreengrassV2.Types.InstalledComponentTopologyFilter
import Amazonka.GreengrassV2.Types.IoTJobAbortAction
import Amazonka.GreengrassV2.Types.IoTJobAbortConfig
import Amazonka.GreengrassV2.Types.IoTJobAbortCriteria
import Amazonka.GreengrassV2.Types.IoTJobExecutionFailureType
import Amazonka.GreengrassV2.Types.IoTJobExecutionsRolloutConfig
import Amazonka.GreengrassV2.Types.IoTJobExponentialRolloutRate
import Amazonka.GreengrassV2.Types.IoTJobRateIncreaseCriteria
import Amazonka.GreengrassV2.Types.IoTJobTimeoutConfig
import Amazonka.GreengrassV2.Types.LambdaContainerParams
import Amazonka.GreengrassV2.Types.LambdaDeviceMount
import Amazonka.GreengrassV2.Types.LambdaEventSource
import Amazonka.GreengrassV2.Types.LambdaEventSourceType
import Amazonka.GreengrassV2.Types.LambdaExecutionParameters
import Amazonka.GreengrassV2.Types.LambdaFilesystemPermission
import Amazonka.GreengrassV2.Types.LambdaFunctionRecipeSource
import Amazonka.GreengrassV2.Types.LambdaInputPayloadEncodingType
import Amazonka.GreengrassV2.Types.LambdaIsolationMode
import Amazonka.GreengrassV2.Types.LambdaLinuxProcessParams
import Amazonka.GreengrassV2.Types.LambdaVolumeMount
import Amazonka.GreengrassV2.Types.RecipeOutputFormat
import Amazonka.GreengrassV2.Types.ResolvedComponentVersion
import Amazonka.GreengrassV2.Types.SystemResourceLimits
import Amazonka.GreengrassV2.Types.VendorGuidance
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Sign.V4 as Sign
-- | API version @2020-11-30@ of the Amazon IoT Greengrass V2 SDK configuration.
defaultService :: Core.Service
defaultService =
Core.Service
{ Core.abbrev = "GreengrassV2",
Core.signer = Sign.v4,
Core.endpointPrefix = "greengrass",
Core.signingName = "greengrass",
Core.version = "2020-11-30",
Core.s3AddressingStyle = Core.S3AddressingStyleAuto,
Core.endpoint = Core.defaultEndpoint defaultService,
Core.timeout = Prelude.Just 70,
Core.check = Core.statusSuccess,
Core.error = Core.parseJSONError "GreengrassV2",
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 don\'t have permission to perform the action.
_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_AccessDeniedException =
Core._MatchServiceError
defaultService
"AccessDeniedException"
Prelude.. Core.hasStatus 403
-- | Your request has conflicting operations. This can occur if you\'re
-- trying to perform more than one operation on the same resource at the
-- same time.
_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_ConflictException =
Core._MatchServiceError
defaultService
"ConflictException"
Prelude.. Core.hasStatus 409
-- | IoT Greengrass can\'t process your request right now. Try again later.
_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_InternalServerException =
Core._MatchServiceError
defaultService
"InternalServerException"
Prelude.. Core.hasStatus 500
-- | The request is already in progress. This exception occurs when you use a
-- client token for multiple requests while IoT Greengrass is still
-- processing an earlier request that uses the same client token.
_RequestAlreadyInProgressException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_RequestAlreadyInProgressException =
Core._MatchServiceError
defaultService
"RequestAlreadyInProgressException"
Prelude.. Core.hasStatus 400
-- | The requested resource can\'t be found.
_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_ResourceNotFoundException =
Core._MatchServiceError
defaultService
"ResourceNotFoundException"
Prelude.. Core.hasStatus 404
-- | Your request exceeds a service quota. For example, you might have the
-- maximum number of components that you can create.
_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_ServiceQuotaExceededException =
Core._MatchServiceError
defaultService
"ServiceQuotaExceededException"
Prelude.. Core.hasStatus 402
-- | Your request exceeded a request rate quota. For example, you might have
-- exceeded the amount of times that you can retrieve device or deployment
-- status per second.
_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_ThrottlingException =
Core._MatchServiceError
defaultService
"ThrottlingException"
Prelude.. Core.hasStatus 429
-- | The request isn\'t valid. This can occur if your request contains
-- malformed JSON or unsupported characters.
_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_ValidationException =
Core._MatchServiceError
defaultService
"ValidationException"
Prelude.. Core.hasStatus 400