{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.SSM.Types.AssociationDescription
-- 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.SSM.Types.AssociationDescription where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.SSM.Types.AlarmConfiguration
import Amazonka.SSM.Types.AlarmStateInformation
import Amazonka.SSM.Types.AssociationComplianceSeverity
import Amazonka.SSM.Types.AssociationOverview
import Amazonka.SSM.Types.AssociationStatus
import Amazonka.SSM.Types.AssociationSyncCompliance
import Amazonka.SSM.Types.InstanceAssociationOutputLocation
import Amazonka.SSM.Types.Target
import Amazonka.SSM.Types.TargetLocation

-- | Describes the parameters for a document.
--
-- /See:/ 'newAssociationDescription' smart constructor.
data AssociationDescription = AssociationDescription'
  { AssociationDescription -> Maybe AlarmConfiguration
alarmConfiguration :: Prelude.Maybe AlarmConfiguration,
    -- | By default, when you create a new associations, the system runs it
    -- immediately after it is created and then according to the schedule you
    -- specified. Specify this option if you don\'t want an association to run
    -- immediately after you create it. This parameter isn\'t supported for
    -- rate expressions.
    AssociationDescription -> Maybe Bool
applyOnlyAtCronInterval :: Prelude.Maybe Prelude.Bool,
    -- | The association ID.
    AssociationDescription -> Maybe Text
associationId :: Prelude.Maybe Prelude.Text,
    -- | The association name.
    AssociationDescription -> Maybe Text
associationName :: Prelude.Maybe Prelude.Text,
    -- | The association version.
    AssociationDescription -> Maybe Text
associationVersion :: Prelude.Maybe Prelude.Text,
    -- | Choose the parameter that will define how your automation will branch
    -- out. This target is required for associations that use an Automation
    -- runbook and target resources by using rate controls. Automation is a
    -- capability of Amazon Web Services Systems Manager.
    AssociationDescription -> Maybe Text
automationTargetParameterName :: Prelude.Maybe Prelude.Text,
    -- | The names or Amazon Resource Names (ARNs) of the Change Calendar type
    -- documents your associations are gated under. The associations only run
    -- when that change calendar is open. For more information, see
    -- <https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar Amazon Web Services Systems Manager Change Calendar>.
    AssociationDescription -> Maybe [Text]
calendarNames :: Prelude.Maybe [Prelude.Text],
    -- | The severity level that is assigned to the association.
    AssociationDescription -> Maybe AssociationComplianceSeverity
complianceSeverity :: Prelude.Maybe AssociationComplianceSeverity,
    -- | The date when the association was made.
    AssociationDescription -> Maybe POSIX
date :: Prelude.Maybe Data.POSIX,
    -- | The document version.
    AssociationDescription -> Maybe Text
documentVersion :: Prelude.Maybe Prelude.Text,
    -- | The managed node ID.
    AssociationDescription -> Maybe Text
instanceId :: Prelude.Maybe Prelude.Text,
    -- | The date on which the association was last run.
    AssociationDescription -> Maybe POSIX
lastExecutionDate :: Prelude.Maybe Data.POSIX,
    -- | The last date on which the association was successfully run.
    AssociationDescription -> Maybe POSIX
lastSuccessfulExecutionDate :: Prelude.Maybe Data.POSIX,
    -- | The date when the association was last updated.
    AssociationDescription -> Maybe POSIX
lastUpdateAssociationDate :: Prelude.Maybe Data.POSIX,
    -- | The maximum number of targets allowed to run the association at the same
    -- time. You can specify a number, for example 10, or a percentage of the
    -- target set, for example 10%. The default value is 100%, which means all
    -- targets run the association at the same time.
    --
    -- If a new managed node starts and attempts to run an association while
    -- Systems Manager is running @MaxConcurrency@ associations, the
    -- association is allowed to run. During the next association interval, the
    -- new managed node will process its association within the limit specified
    -- for @MaxConcurrency@.
    AssociationDescription -> Maybe Text
maxConcurrency :: Prelude.Maybe Prelude.Text,
    -- | The number of errors that are allowed before the system stops sending
    -- requests to run the association on additional targets. You can specify
    -- either an absolute number of errors, for example 10, or a percentage of
    -- the target set, for example 10%. If you specify 3, for example, the
    -- system stops sending requests when the fourth error is received. If you
    -- specify 0, then the system stops sending requests after the first error
    -- is returned. If you run an association on 50 managed nodes and set
    -- @MaxError@ to 10%, then the system stops sending the request when the
    -- sixth error is received.
    --
    -- Executions that are already running an association when @MaxErrors@ is
    -- reached are allowed to complete, but some of these executions may fail
    -- as well. If you need to ensure that there won\'t be more than max-errors
    -- failed executions, set @MaxConcurrency@ to 1 so that executions proceed
    -- one at a time.
    AssociationDescription -> Maybe Text
maxErrors :: Prelude.Maybe Prelude.Text,
    -- | The name of the SSM document.
    AssociationDescription -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | An S3 bucket where you want to store the output details of the request.
    AssociationDescription -> Maybe InstanceAssociationOutputLocation
outputLocation :: Prelude.Maybe InstanceAssociationOutputLocation,
    -- | Information about the association.
    AssociationDescription -> Maybe AssociationOverview
overview :: Prelude.Maybe AssociationOverview,
    -- | A description of the parameters for a document.
    AssociationDescription -> Maybe (Sensitive (HashMap Text [Text]))
parameters :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text [Prelude.Text])),
    -- | A cron expression that specifies a schedule when the association runs.
    AssociationDescription -> Maybe Text
scheduleExpression :: Prelude.Maybe Prelude.Text,
    -- | Number of days to wait after the scheduled day to run an association.
    AssociationDescription -> Maybe Natural
scheduleOffset :: Prelude.Maybe Prelude.Natural,
    -- | The association status.
    AssociationDescription -> Maybe AssociationStatus
status :: Prelude.Maybe AssociationStatus,
    -- | The mode for generating association compliance. You can specify @AUTO@
    -- or @MANUAL@. In @AUTO@ mode, the system uses the status of the
    -- association execution to determine the compliance status. If the
    -- association execution runs successfully, then the association is
    -- @COMPLIANT@. If the association execution doesn\'t run successfully, the
    -- association is @NON-COMPLIANT@.
    --
    -- In @MANUAL@ mode, you must specify the @AssociationId@ as a parameter
    -- for the PutComplianceItems API operation. In this case, compliance data
    -- isn\'t managed by State Manager, a capability of Amazon Web Services
    -- Systems Manager. It is managed by your direct call to the
    -- PutComplianceItems API operation.
    --
    -- By default, all associations use @AUTO@ mode.
    AssociationDescription -> Maybe AssociationSyncCompliance
syncCompliance :: Prelude.Maybe AssociationSyncCompliance,
    -- | The combination of Amazon Web Services Regions and Amazon Web Services
    -- accounts where you want to run the association.
    AssociationDescription -> Maybe (NonEmpty TargetLocation)
targetLocations :: Prelude.Maybe (Prelude.NonEmpty TargetLocation),
    -- | A key-value mapping of document parameters to target resources. Both
    -- Targets and TargetMaps can\'t be specified together.
    AssociationDescription -> Maybe [HashMap Text [Text]]
targetMaps :: Prelude.Maybe [Prelude.HashMap Prelude.Text [Prelude.Text]],
    -- | The managed nodes targeted by the request.
    AssociationDescription -> Maybe [Target]
targets :: Prelude.Maybe [Target],
    -- | The CloudWatch alarm that was invoked during the association.
    AssociationDescription -> Maybe (NonEmpty AlarmStateInformation)
triggeredAlarms :: Prelude.Maybe (Prelude.NonEmpty AlarmStateInformation)
  }
  deriving (AssociationDescription -> AssociationDescription -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AssociationDescription -> AssociationDescription -> Bool
$c/= :: AssociationDescription -> AssociationDescription -> Bool
== :: AssociationDescription -> AssociationDescription -> Bool
$c== :: AssociationDescription -> AssociationDescription -> Bool
Prelude.Eq, Int -> AssociationDescription -> ShowS
[AssociationDescription] -> ShowS
AssociationDescription -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AssociationDescription] -> ShowS
$cshowList :: [AssociationDescription] -> ShowS
show :: AssociationDescription -> String
$cshow :: AssociationDescription -> String
showsPrec :: Int -> AssociationDescription -> ShowS
$cshowsPrec :: Int -> AssociationDescription -> ShowS
Prelude.Show, forall x. Rep AssociationDescription x -> AssociationDescription
forall x. AssociationDescription -> Rep AssociationDescription x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep AssociationDescription x -> AssociationDescription
$cfrom :: forall x. AssociationDescription -> Rep AssociationDescription x
Prelude.Generic)

-- |
-- Create a value of 'AssociationDescription' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'alarmConfiguration', 'associationDescription_alarmConfiguration' - Undocumented member.
--
-- 'applyOnlyAtCronInterval', 'associationDescription_applyOnlyAtCronInterval' - By default, when you create a new associations, the system runs it
-- immediately after it is created and then according to the schedule you
-- specified. Specify this option if you don\'t want an association to run
-- immediately after you create it. This parameter isn\'t supported for
-- rate expressions.
--
-- 'associationId', 'associationDescription_associationId' - The association ID.
--
-- 'associationName', 'associationDescription_associationName' - The association name.
--
-- 'associationVersion', 'associationDescription_associationVersion' - The association version.
--
-- 'automationTargetParameterName', 'associationDescription_automationTargetParameterName' - Choose the parameter that will define how your automation will branch
-- out. This target is required for associations that use an Automation
-- runbook and target resources by using rate controls. Automation is a
-- capability of Amazon Web Services Systems Manager.
--
-- 'calendarNames', 'associationDescription_calendarNames' - The names or Amazon Resource Names (ARNs) of the Change Calendar type
-- documents your associations are gated under. The associations only run
-- when that change calendar is open. For more information, see
-- <https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar Amazon Web Services Systems Manager Change Calendar>.
--
-- 'complianceSeverity', 'associationDescription_complianceSeverity' - The severity level that is assigned to the association.
--
-- 'date', 'associationDescription_date' - The date when the association was made.
--
-- 'documentVersion', 'associationDescription_documentVersion' - The document version.
--
-- 'instanceId', 'associationDescription_instanceId' - The managed node ID.
--
-- 'lastExecutionDate', 'associationDescription_lastExecutionDate' - The date on which the association was last run.
--
-- 'lastSuccessfulExecutionDate', 'associationDescription_lastSuccessfulExecutionDate' - The last date on which the association was successfully run.
--
-- 'lastUpdateAssociationDate', 'associationDescription_lastUpdateAssociationDate' - The date when the association was last updated.
--
-- 'maxConcurrency', 'associationDescription_maxConcurrency' - The maximum number of targets allowed to run the association at the same
-- time. You can specify a number, for example 10, or a percentage of the
-- target set, for example 10%. The default value is 100%, which means all
-- targets run the association at the same time.
--
-- If a new managed node starts and attempts to run an association while
-- Systems Manager is running @MaxConcurrency@ associations, the
-- association is allowed to run. During the next association interval, the
-- new managed node will process its association within the limit specified
-- for @MaxConcurrency@.
--
-- 'maxErrors', 'associationDescription_maxErrors' - The number of errors that are allowed before the system stops sending
-- requests to run the association on additional targets. You can specify
-- either an absolute number of errors, for example 10, or a percentage of
-- the target set, for example 10%. If you specify 3, for example, the
-- system stops sending requests when the fourth error is received. If you
-- specify 0, then the system stops sending requests after the first error
-- is returned. If you run an association on 50 managed nodes and set
-- @MaxError@ to 10%, then the system stops sending the request when the
-- sixth error is received.
--
-- Executions that are already running an association when @MaxErrors@ is
-- reached are allowed to complete, but some of these executions may fail
-- as well. If you need to ensure that there won\'t be more than max-errors
-- failed executions, set @MaxConcurrency@ to 1 so that executions proceed
-- one at a time.
--
-- 'name', 'associationDescription_name' - The name of the SSM document.
--
-- 'outputLocation', 'associationDescription_outputLocation' - An S3 bucket where you want to store the output details of the request.
--
-- 'overview', 'associationDescription_overview' - Information about the association.
--
-- 'parameters', 'associationDescription_parameters' - A description of the parameters for a document.
--
-- 'scheduleExpression', 'associationDescription_scheduleExpression' - A cron expression that specifies a schedule when the association runs.
--
-- 'scheduleOffset', 'associationDescription_scheduleOffset' - Number of days to wait after the scheduled day to run an association.
--
-- 'status', 'associationDescription_status' - The association status.
--
-- 'syncCompliance', 'associationDescription_syncCompliance' - The mode for generating association compliance. You can specify @AUTO@
-- or @MANUAL@. In @AUTO@ mode, the system uses the status of the
-- association execution to determine the compliance status. If the
-- association execution runs successfully, then the association is
-- @COMPLIANT@. If the association execution doesn\'t run successfully, the
-- association is @NON-COMPLIANT@.
--
-- In @MANUAL@ mode, you must specify the @AssociationId@ as a parameter
-- for the PutComplianceItems API operation. In this case, compliance data
-- isn\'t managed by State Manager, a capability of Amazon Web Services
-- Systems Manager. It is managed by your direct call to the
-- PutComplianceItems API operation.
--
-- By default, all associations use @AUTO@ mode.
--
-- 'targetLocations', 'associationDescription_targetLocations' - The combination of Amazon Web Services Regions and Amazon Web Services
-- accounts where you want to run the association.
--
-- 'targetMaps', 'associationDescription_targetMaps' - A key-value mapping of document parameters to target resources. Both
-- Targets and TargetMaps can\'t be specified together.
--
-- 'targets', 'associationDescription_targets' - The managed nodes targeted by the request.
--
-- 'triggeredAlarms', 'associationDescription_triggeredAlarms' - The CloudWatch alarm that was invoked during the association.
newAssociationDescription ::
  AssociationDescription
newAssociationDescription :: AssociationDescription
newAssociationDescription =
  AssociationDescription'
    { $sel:alarmConfiguration:AssociationDescription' :: Maybe AlarmConfiguration
alarmConfiguration =
        forall a. Maybe a
Prelude.Nothing,
      $sel:applyOnlyAtCronInterval:AssociationDescription' :: Maybe Bool
applyOnlyAtCronInterval = forall a. Maybe a
Prelude.Nothing,
      $sel:associationId:AssociationDescription' :: Maybe Text
associationId = forall a. Maybe a
Prelude.Nothing,
      $sel:associationName:AssociationDescription' :: Maybe Text
associationName = forall a. Maybe a
Prelude.Nothing,
      $sel:associationVersion:AssociationDescription' :: Maybe Text
associationVersion = forall a. Maybe a
Prelude.Nothing,
      $sel:automationTargetParameterName:AssociationDescription' :: Maybe Text
automationTargetParameterName = forall a. Maybe a
Prelude.Nothing,
      $sel:calendarNames:AssociationDescription' :: Maybe [Text]
calendarNames = forall a. Maybe a
Prelude.Nothing,
      $sel:complianceSeverity:AssociationDescription' :: Maybe AssociationComplianceSeverity
complianceSeverity = forall a. Maybe a
Prelude.Nothing,
      $sel:date:AssociationDescription' :: Maybe POSIX
date = forall a. Maybe a
Prelude.Nothing,
      $sel:documentVersion:AssociationDescription' :: Maybe Text
documentVersion = forall a. Maybe a
Prelude.Nothing,
      $sel:instanceId:AssociationDescription' :: Maybe Text
instanceId = forall a. Maybe a
Prelude.Nothing,
      $sel:lastExecutionDate:AssociationDescription' :: Maybe POSIX
lastExecutionDate = forall a. Maybe a
Prelude.Nothing,
      $sel:lastSuccessfulExecutionDate:AssociationDescription' :: Maybe POSIX
lastSuccessfulExecutionDate = forall a. Maybe a
Prelude.Nothing,
      $sel:lastUpdateAssociationDate:AssociationDescription' :: Maybe POSIX
lastUpdateAssociationDate = forall a. Maybe a
Prelude.Nothing,
      $sel:maxConcurrency:AssociationDescription' :: Maybe Text
maxConcurrency = forall a. Maybe a
Prelude.Nothing,
      $sel:maxErrors:AssociationDescription' :: Maybe Text
maxErrors = forall a. Maybe a
Prelude.Nothing,
      $sel:name:AssociationDescription' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:outputLocation:AssociationDescription' :: Maybe InstanceAssociationOutputLocation
outputLocation = forall a. Maybe a
Prelude.Nothing,
      $sel:overview:AssociationDescription' :: Maybe AssociationOverview
overview = forall a. Maybe a
Prelude.Nothing,
      $sel:parameters:AssociationDescription' :: Maybe (Sensitive (HashMap Text [Text]))
parameters = forall a. Maybe a
Prelude.Nothing,
      $sel:scheduleExpression:AssociationDescription' :: Maybe Text
scheduleExpression = forall a. Maybe a
Prelude.Nothing,
      $sel:scheduleOffset:AssociationDescription' :: Maybe Natural
scheduleOffset = forall a. Maybe a
Prelude.Nothing,
      $sel:status:AssociationDescription' :: Maybe AssociationStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:syncCompliance:AssociationDescription' :: Maybe AssociationSyncCompliance
syncCompliance = forall a. Maybe a
Prelude.Nothing,
      $sel:targetLocations:AssociationDescription' :: Maybe (NonEmpty TargetLocation)
targetLocations = forall a. Maybe a
Prelude.Nothing,
      $sel:targetMaps:AssociationDescription' :: Maybe [HashMap Text [Text]]
targetMaps = forall a. Maybe a
Prelude.Nothing,
      $sel:targets:AssociationDescription' :: Maybe [Target]
targets = forall a. Maybe a
Prelude.Nothing,
      $sel:triggeredAlarms:AssociationDescription' :: Maybe (NonEmpty AlarmStateInformation)
triggeredAlarms = forall a. Maybe a
Prelude.Nothing
    }

-- | Undocumented member.
associationDescription_alarmConfiguration :: Lens.Lens' AssociationDescription (Prelude.Maybe AlarmConfiguration)
associationDescription_alarmConfiguration :: Lens' AssociationDescription (Maybe AlarmConfiguration)
associationDescription_alarmConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe AlarmConfiguration
alarmConfiguration :: Maybe AlarmConfiguration
$sel:alarmConfiguration:AssociationDescription' :: AssociationDescription -> Maybe AlarmConfiguration
alarmConfiguration} -> Maybe AlarmConfiguration
alarmConfiguration) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe AlarmConfiguration
a -> AssociationDescription
s {$sel:alarmConfiguration:AssociationDescription' :: Maybe AlarmConfiguration
alarmConfiguration = Maybe AlarmConfiguration
a} :: AssociationDescription)

-- | By default, when you create a new associations, the system runs it
-- immediately after it is created and then according to the schedule you
-- specified. Specify this option if you don\'t want an association to run
-- immediately after you create it. This parameter isn\'t supported for
-- rate expressions.
associationDescription_applyOnlyAtCronInterval :: Lens.Lens' AssociationDescription (Prelude.Maybe Prelude.Bool)
associationDescription_applyOnlyAtCronInterval :: Lens' AssociationDescription (Maybe Bool)
associationDescription_applyOnlyAtCronInterval = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe Bool
applyOnlyAtCronInterval :: Maybe Bool
$sel:applyOnlyAtCronInterval:AssociationDescription' :: AssociationDescription -> Maybe Bool
applyOnlyAtCronInterval} -> Maybe Bool
applyOnlyAtCronInterval) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe Bool
a -> AssociationDescription
s {$sel:applyOnlyAtCronInterval:AssociationDescription' :: Maybe Bool
applyOnlyAtCronInterval = Maybe Bool
a} :: AssociationDescription)

-- | The association ID.
associationDescription_associationId :: Lens.Lens' AssociationDescription (Prelude.Maybe Prelude.Text)
associationDescription_associationId :: Lens' AssociationDescription (Maybe Text)
associationDescription_associationId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe Text
associationId :: Maybe Text
$sel:associationId:AssociationDescription' :: AssociationDescription -> Maybe Text
associationId} -> Maybe Text
associationId) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe Text
a -> AssociationDescription
s {$sel:associationId:AssociationDescription' :: Maybe Text
associationId = Maybe Text
a} :: AssociationDescription)

-- | The association name.
associationDescription_associationName :: Lens.Lens' AssociationDescription (Prelude.Maybe Prelude.Text)
associationDescription_associationName :: Lens' AssociationDescription (Maybe Text)
associationDescription_associationName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe Text
associationName :: Maybe Text
$sel:associationName:AssociationDescription' :: AssociationDescription -> Maybe Text
associationName} -> Maybe Text
associationName) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe Text
a -> AssociationDescription
s {$sel:associationName:AssociationDescription' :: Maybe Text
associationName = Maybe Text
a} :: AssociationDescription)

-- | The association version.
associationDescription_associationVersion :: Lens.Lens' AssociationDescription (Prelude.Maybe Prelude.Text)
associationDescription_associationVersion :: Lens' AssociationDescription (Maybe Text)
associationDescription_associationVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe Text
associationVersion :: Maybe Text
$sel:associationVersion:AssociationDescription' :: AssociationDescription -> Maybe Text
associationVersion} -> Maybe Text
associationVersion) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe Text
a -> AssociationDescription
s {$sel:associationVersion:AssociationDescription' :: Maybe Text
associationVersion = Maybe Text
a} :: AssociationDescription)

-- | Choose the parameter that will define how your automation will branch
-- out. This target is required for associations that use an Automation
-- runbook and target resources by using rate controls. Automation is a
-- capability of Amazon Web Services Systems Manager.
associationDescription_automationTargetParameterName :: Lens.Lens' AssociationDescription (Prelude.Maybe Prelude.Text)
associationDescription_automationTargetParameterName :: Lens' AssociationDescription (Maybe Text)
associationDescription_automationTargetParameterName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe Text
automationTargetParameterName :: Maybe Text
$sel:automationTargetParameterName:AssociationDescription' :: AssociationDescription -> Maybe Text
automationTargetParameterName} -> Maybe Text
automationTargetParameterName) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe Text
a -> AssociationDescription
s {$sel:automationTargetParameterName:AssociationDescription' :: Maybe Text
automationTargetParameterName = Maybe Text
a} :: AssociationDescription)

-- | The names or Amazon Resource Names (ARNs) of the Change Calendar type
-- documents your associations are gated under. The associations only run
-- when that change calendar is open. For more information, see
-- <https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar Amazon Web Services Systems Manager Change Calendar>.
associationDescription_calendarNames :: Lens.Lens' AssociationDescription (Prelude.Maybe [Prelude.Text])
associationDescription_calendarNames :: Lens' AssociationDescription (Maybe [Text])
associationDescription_calendarNames = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe [Text]
calendarNames :: Maybe [Text]
$sel:calendarNames:AssociationDescription' :: AssociationDescription -> Maybe [Text]
calendarNames} -> Maybe [Text]
calendarNames) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe [Text]
a -> AssociationDescription
s {$sel:calendarNames:AssociationDescription' :: Maybe [Text]
calendarNames = Maybe [Text]
a} :: AssociationDescription) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The severity level that is assigned to the association.
associationDescription_complianceSeverity :: Lens.Lens' AssociationDescription (Prelude.Maybe AssociationComplianceSeverity)
associationDescription_complianceSeverity :: Lens' AssociationDescription (Maybe AssociationComplianceSeverity)
associationDescription_complianceSeverity = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe AssociationComplianceSeverity
complianceSeverity :: Maybe AssociationComplianceSeverity
$sel:complianceSeverity:AssociationDescription' :: AssociationDescription -> Maybe AssociationComplianceSeverity
complianceSeverity} -> Maybe AssociationComplianceSeverity
complianceSeverity) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe AssociationComplianceSeverity
a -> AssociationDescription
s {$sel:complianceSeverity:AssociationDescription' :: Maybe AssociationComplianceSeverity
complianceSeverity = Maybe AssociationComplianceSeverity
a} :: AssociationDescription)

-- | The date when the association was made.
associationDescription_date :: Lens.Lens' AssociationDescription (Prelude.Maybe Prelude.UTCTime)
associationDescription_date :: Lens' AssociationDescription (Maybe UTCTime)
associationDescription_date = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe POSIX
date :: Maybe POSIX
$sel:date:AssociationDescription' :: AssociationDescription -> Maybe POSIX
date} -> Maybe POSIX
date) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe POSIX
a -> AssociationDescription
s {$sel:date:AssociationDescription' :: Maybe POSIX
date = Maybe POSIX
a} :: AssociationDescription) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The document version.
associationDescription_documentVersion :: Lens.Lens' AssociationDescription (Prelude.Maybe Prelude.Text)
associationDescription_documentVersion :: Lens' AssociationDescription (Maybe Text)
associationDescription_documentVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe Text
documentVersion :: Maybe Text
$sel:documentVersion:AssociationDescription' :: AssociationDescription -> Maybe Text
documentVersion} -> Maybe Text
documentVersion) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe Text
a -> AssociationDescription
s {$sel:documentVersion:AssociationDescription' :: Maybe Text
documentVersion = Maybe Text
a} :: AssociationDescription)

-- | The managed node ID.
associationDescription_instanceId :: Lens.Lens' AssociationDescription (Prelude.Maybe Prelude.Text)
associationDescription_instanceId :: Lens' AssociationDescription (Maybe Text)
associationDescription_instanceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe Text
instanceId :: Maybe Text
$sel:instanceId:AssociationDescription' :: AssociationDescription -> Maybe Text
instanceId} -> Maybe Text
instanceId) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe Text
a -> AssociationDescription
s {$sel:instanceId:AssociationDescription' :: Maybe Text
instanceId = Maybe Text
a} :: AssociationDescription)

-- | The date on which the association was last run.
associationDescription_lastExecutionDate :: Lens.Lens' AssociationDescription (Prelude.Maybe Prelude.UTCTime)
associationDescription_lastExecutionDate :: Lens' AssociationDescription (Maybe UTCTime)
associationDescription_lastExecutionDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe POSIX
lastExecutionDate :: Maybe POSIX
$sel:lastExecutionDate:AssociationDescription' :: AssociationDescription -> Maybe POSIX
lastExecutionDate} -> Maybe POSIX
lastExecutionDate) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe POSIX
a -> AssociationDescription
s {$sel:lastExecutionDate:AssociationDescription' :: Maybe POSIX
lastExecutionDate = Maybe POSIX
a} :: AssociationDescription) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The last date on which the association was successfully run.
associationDescription_lastSuccessfulExecutionDate :: Lens.Lens' AssociationDescription (Prelude.Maybe Prelude.UTCTime)
associationDescription_lastSuccessfulExecutionDate :: Lens' AssociationDescription (Maybe UTCTime)
associationDescription_lastSuccessfulExecutionDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe POSIX
lastSuccessfulExecutionDate :: Maybe POSIX
$sel:lastSuccessfulExecutionDate:AssociationDescription' :: AssociationDescription -> Maybe POSIX
lastSuccessfulExecutionDate} -> Maybe POSIX
lastSuccessfulExecutionDate) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe POSIX
a -> AssociationDescription
s {$sel:lastSuccessfulExecutionDate:AssociationDescription' :: Maybe POSIX
lastSuccessfulExecutionDate = Maybe POSIX
a} :: AssociationDescription) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The date when the association was last updated.
associationDescription_lastUpdateAssociationDate :: Lens.Lens' AssociationDescription (Prelude.Maybe Prelude.UTCTime)
associationDescription_lastUpdateAssociationDate :: Lens' AssociationDescription (Maybe UTCTime)
associationDescription_lastUpdateAssociationDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe POSIX
lastUpdateAssociationDate :: Maybe POSIX
$sel:lastUpdateAssociationDate:AssociationDescription' :: AssociationDescription -> Maybe POSIX
lastUpdateAssociationDate} -> Maybe POSIX
lastUpdateAssociationDate) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe POSIX
a -> AssociationDescription
s {$sel:lastUpdateAssociationDate:AssociationDescription' :: Maybe POSIX
lastUpdateAssociationDate = Maybe POSIX
a} :: AssociationDescription) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The maximum number of targets allowed to run the association at the same
-- time. You can specify a number, for example 10, or a percentage of the
-- target set, for example 10%. The default value is 100%, which means all
-- targets run the association at the same time.
--
-- If a new managed node starts and attempts to run an association while
-- Systems Manager is running @MaxConcurrency@ associations, the
-- association is allowed to run. During the next association interval, the
-- new managed node will process its association within the limit specified
-- for @MaxConcurrency@.
associationDescription_maxConcurrency :: Lens.Lens' AssociationDescription (Prelude.Maybe Prelude.Text)
associationDescription_maxConcurrency :: Lens' AssociationDescription (Maybe Text)
associationDescription_maxConcurrency = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe Text
maxConcurrency :: Maybe Text
$sel:maxConcurrency:AssociationDescription' :: AssociationDescription -> Maybe Text
maxConcurrency} -> Maybe Text
maxConcurrency) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe Text
a -> AssociationDescription
s {$sel:maxConcurrency:AssociationDescription' :: Maybe Text
maxConcurrency = Maybe Text
a} :: AssociationDescription)

-- | The number of errors that are allowed before the system stops sending
-- requests to run the association on additional targets. You can specify
-- either an absolute number of errors, for example 10, or a percentage of
-- the target set, for example 10%. If you specify 3, for example, the
-- system stops sending requests when the fourth error is received. If you
-- specify 0, then the system stops sending requests after the first error
-- is returned. If you run an association on 50 managed nodes and set
-- @MaxError@ to 10%, then the system stops sending the request when the
-- sixth error is received.
--
-- Executions that are already running an association when @MaxErrors@ is
-- reached are allowed to complete, but some of these executions may fail
-- as well. If you need to ensure that there won\'t be more than max-errors
-- failed executions, set @MaxConcurrency@ to 1 so that executions proceed
-- one at a time.
associationDescription_maxErrors :: Lens.Lens' AssociationDescription (Prelude.Maybe Prelude.Text)
associationDescription_maxErrors :: Lens' AssociationDescription (Maybe Text)
associationDescription_maxErrors = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe Text
maxErrors :: Maybe Text
$sel:maxErrors:AssociationDescription' :: AssociationDescription -> Maybe Text
maxErrors} -> Maybe Text
maxErrors) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe Text
a -> AssociationDescription
s {$sel:maxErrors:AssociationDescription' :: Maybe Text
maxErrors = Maybe Text
a} :: AssociationDescription)

-- | The name of the SSM document.
associationDescription_name :: Lens.Lens' AssociationDescription (Prelude.Maybe Prelude.Text)
associationDescription_name :: Lens' AssociationDescription (Maybe Text)
associationDescription_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe Text
name :: Maybe Text
$sel:name:AssociationDescription' :: AssociationDescription -> Maybe Text
name} -> Maybe Text
name) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe Text
a -> AssociationDescription
s {$sel:name:AssociationDescription' :: Maybe Text
name = Maybe Text
a} :: AssociationDescription)

-- | An S3 bucket where you want to store the output details of the request.
associationDescription_outputLocation :: Lens.Lens' AssociationDescription (Prelude.Maybe InstanceAssociationOutputLocation)
associationDescription_outputLocation :: Lens'
  AssociationDescription (Maybe InstanceAssociationOutputLocation)
associationDescription_outputLocation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe InstanceAssociationOutputLocation
outputLocation :: Maybe InstanceAssociationOutputLocation
$sel:outputLocation:AssociationDescription' :: AssociationDescription -> Maybe InstanceAssociationOutputLocation
outputLocation} -> Maybe InstanceAssociationOutputLocation
outputLocation) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe InstanceAssociationOutputLocation
a -> AssociationDescription
s {$sel:outputLocation:AssociationDescription' :: Maybe InstanceAssociationOutputLocation
outputLocation = Maybe InstanceAssociationOutputLocation
a} :: AssociationDescription)

-- | Information about the association.
associationDescription_overview :: Lens.Lens' AssociationDescription (Prelude.Maybe AssociationOverview)
associationDescription_overview :: Lens' AssociationDescription (Maybe AssociationOverview)
associationDescription_overview = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe AssociationOverview
overview :: Maybe AssociationOverview
$sel:overview:AssociationDescription' :: AssociationDescription -> Maybe AssociationOverview
overview} -> Maybe AssociationOverview
overview) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe AssociationOverview
a -> AssociationDescription
s {$sel:overview:AssociationDescription' :: Maybe AssociationOverview
overview = Maybe AssociationOverview
a} :: AssociationDescription)

-- | A description of the parameters for a document.
associationDescription_parameters :: Lens.Lens' AssociationDescription (Prelude.Maybe (Prelude.HashMap Prelude.Text [Prelude.Text]))
associationDescription_parameters :: Lens' AssociationDescription (Maybe (HashMap Text [Text]))
associationDescription_parameters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe (Sensitive (HashMap Text [Text]))
parameters :: Maybe (Sensitive (HashMap Text [Text]))
$sel:parameters:AssociationDescription' :: AssociationDescription -> Maybe (Sensitive (HashMap Text [Text]))
parameters} -> Maybe (Sensitive (HashMap Text [Text]))
parameters) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe (Sensitive (HashMap Text [Text]))
a -> AssociationDescription
s {$sel:parameters:AssociationDescription' :: Maybe (Sensitive (HashMap Text [Text]))
parameters = Maybe (Sensitive (HashMap Text [Text]))
a} :: AssociationDescription) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping (forall a. Iso' (Sensitive a) a
Data._Sensitive forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced)

-- | A cron expression that specifies a schedule when the association runs.
associationDescription_scheduleExpression :: Lens.Lens' AssociationDescription (Prelude.Maybe Prelude.Text)
associationDescription_scheduleExpression :: Lens' AssociationDescription (Maybe Text)
associationDescription_scheduleExpression = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe Text
scheduleExpression :: Maybe Text
$sel:scheduleExpression:AssociationDescription' :: AssociationDescription -> Maybe Text
scheduleExpression} -> Maybe Text
scheduleExpression) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe Text
a -> AssociationDescription
s {$sel:scheduleExpression:AssociationDescription' :: Maybe Text
scheduleExpression = Maybe Text
a} :: AssociationDescription)

-- | Number of days to wait after the scheduled day to run an association.
associationDescription_scheduleOffset :: Lens.Lens' AssociationDescription (Prelude.Maybe Prelude.Natural)
associationDescription_scheduleOffset :: Lens' AssociationDescription (Maybe Natural)
associationDescription_scheduleOffset = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe Natural
scheduleOffset :: Maybe Natural
$sel:scheduleOffset:AssociationDescription' :: AssociationDescription -> Maybe Natural
scheduleOffset} -> Maybe Natural
scheduleOffset) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe Natural
a -> AssociationDescription
s {$sel:scheduleOffset:AssociationDescription' :: Maybe Natural
scheduleOffset = Maybe Natural
a} :: AssociationDescription)

-- | The association status.
associationDescription_status :: Lens.Lens' AssociationDescription (Prelude.Maybe AssociationStatus)
associationDescription_status :: Lens' AssociationDescription (Maybe AssociationStatus)
associationDescription_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe AssociationStatus
status :: Maybe AssociationStatus
$sel:status:AssociationDescription' :: AssociationDescription -> Maybe AssociationStatus
status} -> Maybe AssociationStatus
status) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe AssociationStatus
a -> AssociationDescription
s {$sel:status:AssociationDescription' :: Maybe AssociationStatus
status = Maybe AssociationStatus
a} :: AssociationDescription)

-- | The mode for generating association compliance. You can specify @AUTO@
-- or @MANUAL@. In @AUTO@ mode, the system uses the status of the
-- association execution to determine the compliance status. If the
-- association execution runs successfully, then the association is
-- @COMPLIANT@. If the association execution doesn\'t run successfully, the
-- association is @NON-COMPLIANT@.
--
-- In @MANUAL@ mode, you must specify the @AssociationId@ as a parameter
-- for the PutComplianceItems API operation. In this case, compliance data
-- isn\'t managed by State Manager, a capability of Amazon Web Services
-- Systems Manager. It is managed by your direct call to the
-- PutComplianceItems API operation.
--
-- By default, all associations use @AUTO@ mode.
associationDescription_syncCompliance :: Lens.Lens' AssociationDescription (Prelude.Maybe AssociationSyncCompliance)
associationDescription_syncCompliance :: Lens' AssociationDescription (Maybe AssociationSyncCompliance)
associationDescription_syncCompliance = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe AssociationSyncCompliance
syncCompliance :: Maybe AssociationSyncCompliance
$sel:syncCompliance:AssociationDescription' :: AssociationDescription -> Maybe AssociationSyncCompliance
syncCompliance} -> Maybe AssociationSyncCompliance
syncCompliance) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe AssociationSyncCompliance
a -> AssociationDescription
s {$sel:syncCompliance:AssociationDescription' :: Maybe AssociationSyncCompliance
syncCompliance = Maybe AssociationSyncCompliance
a} :: AssociationDescription)

-- | The combination of Amazon Web Services Regions and Amazon Web Services
-- accounts where you want to run the association.
associationDescription_targetLocations :: Lens.Lens' AssociationDescription (Prelude.Maybe (Prelude.NonEmpty TargetLocation))
associationDescription_targetLocations :: Lens' AssociationDescription (Maybe (NonEmpty TargetLocation))
associationDescription_targetLocations = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe (NonEmpty TargetLocation)
targetLocations :: Maybe (NonEmpty TargetLocation)
$sel:targetLocations:AssociationDescription' :: AssociationDescription -> Maybe (NonEmpty TargetLocation)
targetLocations} -> Maybe (NonEmpty TargetLocation)
targetLocations) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe (NonEmpty TargetLocation)
a -> AssociationDescription
s {$sel:targetLocations:AssociationDescription' :: Maybe (NonEmpty TargetLocation)
targetLocations = Maybe (NonEmpty TargetLocation)
a} :: AssociationDescription) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | A key-value mapping of document parameters to target resources. Both
-- Targets and TargetMaps can\'t be specified together.
associationDescription_targetMaps :: Lens.Lens' AssociationDescription (Prelude.Maybe [Prelude.HashMap Prelude.Text [Prelude.Text]])
associationDescription_targetMaps :: Lens' AssociationDescription (Maybe [HashMap Text [Text]])
associationDescription_targetMaps = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe [HashMap Text [Text]]
targetMaps :: Maybe [HashMap Text [Text]]
$sel:targetMaps:AssociationDescription' :: AssociationDescription -> Maybe [HashMap Text [Text]]
targetMaps} -> Maybe [HashMap Text [Text]]
targetMaps) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe [HashMap Text [Text]]
a -> AssociationDescription
s {$sel:targetMaps:AssociationDescription' :: Maybe [HashMap Text [Text]]
targetMaps = Maybe [HashMap Text [Text]]
a} :: AssociationDescription) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The managed nodes targeted by the request.
associationDescription_targets :: Lens.Lens' AssociationDescription (Prelude.Maybe [Target])
associationDescription_targets :: Lens' AssociationDescription (Maybe [Target])
associationDescription_targets = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe [Target]
targets :: Maybe [Target]
$sel:targets:AssociationDescription' :: AssociationDescription -> Maybe [Target]
targets} -> Maybe [Target]
targets) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe [Target]
a -> AssociationDescription
s {$sel:targets:AssociationDescription' :: Maybe [Target]
targets = Maybe [Target]
a} :: AssociationDescription) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The CloudWatch alarm that was invoked during the association.
associationDescription_triggeredAlarms :: Lens.Lens' AssociationDescription (Prelude.Maybe (Prelude.NonEmpty AlarmStateInformation))
associationDescription_triggeredAlarms :: Lens'
  AssociationDescription (Maybe (NonEmpty AlarmStateInformation))
associationDescription_triggeredAlarms = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociationDescription' {Maybe (NonEmpty AlarmStateInformation)
triggeredAlarms :: Maybe (NonEmpty AlarmStateInformation)
$sel:triggeredAlarms:AssociationDescription' :: AssociationDescription -> Maybe (NonEmpty AlarmStateInformation)
triggeredAlarms} -> Maybe (NonEmpty AlarmStateInformation)
triggeredAlarms) (\s :: AssociationDescription
s@AssociationDescription' {} Maybe (NonEmpty AlarmStateInformation)
a -> AssociationDescription
s {$sel:triggeredAlarms:AssociationDescription' :: Maybe (NonEmpty AlarmStateInformation)
triggeredAlarms = Maybe (NonEmpty AlarmStateInformation)
a} :: AssociationDescription) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance Data.FromJSON AssociationDescription where
  parseJSON :: Value -> Parser AssociationDescription
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"AssociationDescription"
      ( \Object
x ->
          Maybe AlarmConfiguration
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Maybe AssociationComplianceSeverity
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe POSIX
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe InstanceAssociationOutputLocation
-> Maybe AssociationOverview
-> Maybe (Sensitive (HashMap Text [Text]))
-> Maybe Text
-> Maybe Natural
-> Maybe AssociationStatus
-> Maybe AssociationSyncCompliance
-> Maybe (NonEmpty TargetLocation)
-> Maybe [HashMap Text [Text]]
-> Maybe [Target]
-> Maybe (NonEmpty AlarmStateInformation)
-> AssociationDescription
AssociationDescription'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"AlarmConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ApplyOnlyAtCronInterval")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"AssociationId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"AssociationName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"AssociationVersion")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"AutomationTargetParameterName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CalendarNames" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ComplianceSeverity")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Date")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"DocumentVersion")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"InstanceId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"LastExecutionDate")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"LastSuccessfulExecutionDate")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"LastUpdateAssociationDate")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"MaxConcurrency")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"MaxErrors")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Name")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"OutputLocation")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Overview")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Parameters" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ScheduleExpression")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ScheduleOffset")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Status")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SyncCompliance")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"TargetLocations")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"TargetMaps" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Targets" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"TriggeredAlarms")
      )

instance Prelude.Hashable AssociationDescription where
  hashWithSalt :: Int -> AssociationDescription -> Int
hashWithSalt Int
_salt AssociationDescription' {Maybe Bool
Maybe Natural
Maybe [Text]
Maybe [HashMap Text [Text]]
Maybe [Target]
Maybe (NonEmpty AlarmStateInformation)
Maybe (NonEmpty TargetLocation)
Maybe Text
Maybe (Sensitive (HashMap Text [Text]))
Maybe POSIX
Maybe AlarmConfiguration
Maybe AssociationComplianceSeverity
Maybe AssociationOverview
Maybe AssociationStatus
Maybe AssociationSyncCompliance
Maybe InstanceAssociationOutputLocation
triggeredAlarms :: Maybe (NonEmpty AlarmStateInformation)
targets :: Maybe [Target]
targetMaps :: Maybe [HashMap Text [Text]]
targetLocations :: Maybe (NonEmpty TargetLocation)
syncCompliance :: Maybe AssociationSyncCompliance
status :: Maybe AssociationStatus
scheduleOffset :: Maybe Natural
scheduleExpression :: Maybe Text
parameters :: Maybe (Sensitive (HashMap Text [Text]))
overview :: Maybe AssociationOverview
outputLocation :: Maybe InstanceAssociationOutputLocation
name :: Maybe Text
maxErrors :: Maybe Text
maxConcurrency :: Maybe Text
lastUpdateAssociationDate :: Maybe POSIX
lastSuccessfulExecutionDate :: Maybe POSIX
lastExecutionDate :: Maybe POSIX
instanceId :: Maybe Text
documentVersion :: Maybe Text
date :: Maybe POSIX
complianceSeverity :: Maybe AssociationComplianceSeverity
calendarNames :: Maybe [Text]
automationTargetParameterName :: Maybe Text
associationVersion :: Maybe Text
associationName :: Maybe Text
associationId :: Maybe Text
applyOnlyAtCronInterval :: Maybe Bool
alarmConfiguration :: Maybe AlarmConfiguration
$sel:triggeredAlarms:AssociationDescription' :: AssociationDescription -> Maybe (NonEmpty AlarmStateInformation)
$sel:targets:AssociationDescription' :: AssociationDescription -> Maybe [Target]
$sel:targetMaps:AssociationDescription' :: AssociationDescription -> Maybe [HashMap Text [Text]]
$sel:targetLocations:AssociationDescription' :: AssociationDescription -> Maybe (NonEmpty TargetLocation)
$sel:syncCompliance:AssociationDescription' :: AssociationDescription -> Maybe AssociationSyncCompliance
$sel:status:AssociationDescription' :: AssociationDescription -> Maybe AssociationStatus
$sel:scheduleOffset:AssociationDescription' :: AssociationDescription -> Maybe Natural
$sel:scheduleExpression:AssociationDescription' :: AssociationDescription -> Maybe Text
$sel:parameters:AssociationDescription' :: AssociationDescription -> Maybe (Sensitive (HashMap Text [Text]))
$sel:overview:AssociationDescription' :: AssociationDescription -> Maybe AssociationOverview
$sel:outputLocation:AssociationDescription' :: AssociationDescription -> Maybe InstanceAssociationOutputLocation
$sel:name:AssociationDescription' :: AssociationDescription -> Maybe Text
$sel:maxErrors:AssociationDescription' :: AssociationDescription -> Maybe Text
$sel:maxConcurrency:AssociationDescription' :: AssociationDescription -> Maybe Text
$sel:lastUpdateAssociationDate:AssociationDescription' :: AssociationDescription -> Maybe POSIX
$sel:lastSuccessfulExecutionDate:AssociationDescription' :: AssociationDescription -> Maybe POSIX
$sel:lastExecutionDate:AssociationDescription' :: AssociationDescription -> Maybe POSIX
$sel:instanceId:AssociationDescription' :: AssociationDescription -> Maybe Text
$sel:documentVersion:AssociationDescription' :: AssociationDescription -> Maybe Text
$sel:date:AssociationDescription' :: AssociationDescription -> Maybe POSIX
$sel:complianceSeverity:AssociationDescription' :: AssociationDescription -> Maybe AssociationComplianceSeverity
$sel:calendarNames:AssociationDescription' :: AssociationDescription -> Maybe [Text]
$sel:automationTargetParameterName:AssociationDescription' :: AssociationDescription -> Maybe Text
$sel:associationVersion:AssociationDescription' :: AssociationDescription -> Maybe Text
$sel:associationName:AssociationDescription' :: AssociationDescription -> Maybe Text
$sel:associationId:AssociationDescription' :: AssociationDescription -> Maybe Text
$sel:applyOnlyAtCronInterval:AssociationDescription' :: AssociationDescription -> Maybe Bool
$sel:alarmConfiguration:AssociationDescription' :: AssociationDescription -> Maybe AlarmConfiguration
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AlarmConfiguration
alarmConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
applyOnlyAtCronInterval
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
associationId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
associationName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
associationVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
automationTargetParameterName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
calendarNames
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AssociationComplianceSeverity
complianceSeverity
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
date
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
documentVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
instanceId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
lastExecutionDate
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
lastSuccessfulExecutionDate
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
lastUpdateAssociationDate
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
maxConcurrency
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
maxErrors
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe InstanceAssociationOutputLocation
outputLocation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AssociationOverview
overview
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive (HashMap Text [Text]))
parameters
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
scheduleExpression
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
scheduleOffset
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AssociationStatus
status
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AssociationSyncCompliance
syncCompliance
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty TargetLocation)
targetLocations
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [HashMap Text [Text]]
targetMaps
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Target]
targets
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty AlarmStateInformation)
triggeredAlarms

instance Prelude.NFData AssociationDescription where
  rnf :: AssociationDescription -> ()
rnf AssociationDescription' {Maybe Bool
Maybe Natural
Maybe [Text]
Maybe [HashMap Text [Text]]
Maybe [Target]
Maybe (NonEmpty AlarmStateInformation)
Maybe (NonEmpty TargetLocation)
Maybe Text
Maybe (Sensitive (HashMap Text [Text]))
Maybe POSIX
Maybe AlarmConfiguration
Maybe AssociationComplianceSeverity
Maybe AssociationOverview
Maybe AssociationStatus
Maybe AssociationSyncCompliance
Maybe InstanceAssociationOutputLocation
triggeredAlarms :: Maybe (NonEmpty AlarmStateInformation)
targets :: Maybe [Target]
targetMaps :: Maybe [HashMap Text [Text]]
targetLocations :: Maybe (NonEmpty TargetLocation)
syncCompliance :: Maybe AssociationSyncCompliance
status :: Maybe AssociationStatus
scheduleOffset :: Maybe Natural
scheduleExpression :: Maybe Text
parameters :: Maybe (Sensitive (HashMap Text [Text]))
overview :: Maybe AssociationOverview
outputLocation :: Maybe InstanceAssociationOutputLocation
name :: Maybe Text
maxErrors :: Maybe Text
maxConcurrency :: Maybe Text
lastUpdateAssociationDate :: Maybe POSIX
lastSuccessfulExecutionDate :: Maybe POSIX
lastExecutionDate :: Maybe POSIX
instanceId :: Maybe Text
documentVersion :: Maybe Text
date :: Maybe POSIX
complianceSeverity :: Maybe AssociationComplianceSeverity
calendarNames :: Maybe [Text]
automationTargetParameterName :: Maybe Text
associationVersion :: Maybe Text
associationName :: Maybe Text
associationId :: Maybe Text
applyOnlyAtCronInterval :: Maybe Bool
alarmConfiguration :: Maybe AlarmConfiguration
$sel:triggeredAlarms:AssociationDescription' :: AssociationDescription -> Maybe (NonEmpty AlarmStateInformation)
$sel:targets:AssociationDescription' :: AssociationDescription -> Maybe [Target]
$sel:targetMaps:AssociationDescription' :: AssociationDescription -> Maybe [HashMap Text [Text]]
$sel:targetLocations:AssociationDescription' :: AssociationDescription -> Maybe (NonEmpty TargetLocation)
$sel:syncCompliance:AssociationDescription' :: AssociationDescription -> Maybe AssociationSyncCompliance
$sel:status:AssociationDescription' :: AssociationDescription -> Maybe AssociationStatus
$sel:scheduleOffset:AssociationDescription' :: AssociationDescription -> Maybe Natural
$sel:scheduleExpression:AssociationDescription' :: AssociationDescription -> Maybe Text
$sel:parameters:AssociationDescription' :: AssociationDescription -> Maybe (Sensitive (HashMap Text [Text]))
$sel:overview:AssociationDescription' :: AssociationDescription -> Maybe AssociationOverview
$sel:outputLocation:AssociationDescription' :: AssociationDescription -> Maybe InstanceAssociationOutputLocation
$sel:name:AssociationDescription' :: AssociationDescription -> Maybe Text
$sel:maxErrors:AssociationDescription' :: AssociationDescription -> Maybe Text
$sel:maxConcurrency:AssociationDescription' :: AssociationDescription -> Maybe Text
$sel:lastUpdateAssociationDate:AssociationDescription' :: AssociationDescription -> Maybe POSIX
$sel:lastSuccessfulExecutionDate:AssociationDescription' :: AssociationDescription -> Maybe POSIX
$sel:lastExecutionDate:AssociationDescription' :: AssociationDescription -> Maybe POSIX
$sel:instanceId:AssociationDescription' :: AssociationDescription -> Maybe Text
$sel:documentVersion:AssociationDescription' :: AssociationDescription -> Maybe Text
$sel:date:AssociationDescription' :: AssociationDescription -> Maybe POSIX
$sel:complianceSeverity:AssociationDescription' :: AssociationDescription -> Maybe AssociationComplianceSeverity
$sel:calendarNames:AssociationDescription' :: AssociationDescription -> Maybe [Text]
$sel:automationTargetParameterName:AssociationDescription' :: AssociationDescription -> Maybe Text
$sel:associationVersion:AssociationDescription' :: AssociationDescription -> Maybe Text
$sel:associationName:AssociationDescription' :: AssociationDescription -> Maybe Text
$sel:associationId:AssociationDescription' :: AssociationDescription -> Maybe Text
$sel:applyOnlyAtCronInterval:AssociationDescription' :: AssociationDescription -> Maybe Bool
$sel:alarmConfiguration:AssociationDescription' :: AssociationDescription -> Maybe AlarmConfiguration
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe AlarmConfiguration
alarmConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
applyOnlyAtCronInterval
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
associationId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
associationName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
associationVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
automationTargetParameterName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
calendarNames
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AssociationComplianceSeverity
complianceSeverity
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
date
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
documentVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
instanceId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastExecutionDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastSuccessfulExecutionDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastUpdateAssociationDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
maxConcurrency
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
maxErrors
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe InstanceAssociationOutputLocation
outputLocation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AssociationOverview
overview
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive (HashMap Text [Text]))
parameters
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
scheduleExpression
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
scheduleOffset
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AssociationStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe AssociationSyncCompliance
syncCompliance
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe (NonEmpty TargetLocation)
targetLocations
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe [HashMap Text [Text]]
targetMaps
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe [Target]
targets
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe (NonEmpty AlarmStateInformation)
triggeredAlarms