{-# 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.AWSHealth.Types.OrganizationEventFilter
-- 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.AWSHealth.Types.OrganizationEventFilter where

import Amazonka.AWSHealth.Types.DateTimeRange
import Amazonka.AWSHealth.Types.EventStatusCode
import Amazonka.AWSHealth.Types.EventTypeCategory
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

-- | The values to filter results from the
-- <https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeEventsForOrganization.html DescribeEventsForOrganization>
-- operation.
--
-- /See:/ 'newOrganizationEventFilter' smart constructor.
data OrganizationEventFilter = OrganizationEventFilter'
  { -- | A list of 12-digit Amazon Web Services account numbers that contains the
    -- affected entities.
    OrganizationEventFilter -> Maybe (NonEmpty Text)
awsAccountIds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),
    OrganizationEventFilter -> Maybe DateTimeRange
endTime :: Prelude.Maybe DateTimeRange,
    -- | A list of entity ARNs (unique identifiers).
    OrganizationEventFilter -> Maybe (NonEmpty Text)
entityArns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),
    -- | A list of entity identifiers, such as EC2 instance IDs (i-34ab692e) or
    -- EBS volumes (vol-426ab23e).
    OrganizationEventFilter -> Maybe (NonEmpty Text)
entityValues :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),
    -- | A list of event status codes.
    OrganizationEventFilter -> Maybe (NonEmpty EventStatusCode)
eventStatusCodes :: Prelude.Maybe (Prelude.NonEmpty EventStatusCode),
    -- | A list of event type category codes. Possible values are @issue@,
    -- @accountNotification@, or @scheduledChange@. Currently, the
    -- @investigation@ value isn\'t supported at this time.
    OrganizationEventFilter -> Maybe (NonEmpty EventTypeCategory)
eventTypeCategories :: Prelude.Maybe (Prelude.NonEmpty EventTypeCategory),
    -- | A list of unique identifiers for event types. For example,
    -- @\"AWS_EC2_SYSTEM_MAINTENANCE_EVENT\",\"AWS_RDS_MAINTENANCE_SCHEDULED\".@
    OrganizationEventFilter -> Maybe (NonEmpty Text)
eventTypeCodes :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),
    OrganizationEventFilter -> Maybe DateTimeRange
lastUpdatedTime :: Prelude.Maybe DateTimeRange,
    -- | A list of Amazon Web Services Regions.
    OrganizationEventFilter -> Maybe (NonEmpty Text)
regions :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),
    -- | The Amazon Web Services services associated with the event. For example,
    -- @EC2@, @RDS@.
    OrganizationEventFilter -> Maybe (NonEmpty Text)
services :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),
    OrganizationEventFilter -> Maybe DateTimeRange
startTime :: Prelude.Maybe DateTimeRange
  }
  deriving (OrganizationEventFilter -> OrganizationEventFilter -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OrganizationEventFilter -> OrganizationEventFilter -> Bool
$c/= :: OrganizationEventFilter -> OrganizationEventFilter -> Bool
== :: OrganizationEventFilter -> OrganizationEventFilter -> Bool
$c== :: OrganizationEventFilter -> OrganizationEventFilter -> Bool
Prelude.Eq, ReadPrec [OrganizationEventFilter]
ReadPrec OrganizationEventFilter
Int -> ReadS OrganizationEventFilter
ReadS [OrganizationEventFilter]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [OrganizationEventFilter]
$creadListPrec :: ReadPrec [OrganizationEventFilter]
readPrec :: ReadPrec OrganizationEventFilter
$creadPrec :: ReadPrec OrganizationEventFilter
readList :: ReadS [OrganizationEventFilter]
$creadList :: ReadS [OrganizationEventFilter]
readsPrec :: Int -> ReadS OrganizationEventFilter
$creadsPrec :: Int -> ReadS OrganizationEventFilter
Prelude.Read, Int -> OrganizationEventFilter -> ShowS
[OrganizationEventFilter] -> ShowS
OrganizationEventFilter -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [OrganizationEventFilter] -> ShowS
$cshowList :: [OrganizationEventFilter] -> ShowS
show :: OrganizationEventFilter -> String
$cshow :: OrganizationEventFilter -> String
showsPrec :: Int -> OrganizationEventFilter -> ShowS
$cshowsPrec :: Int -> OrganizationEventFilter -> ShowS
Prelude.Show, forall x. Rep OrganizationEventFilter x -> OrganizationEventFilter
forall x. OrganizationEventFilter -> Rep OrganizationEventFilter x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep OrganizationEventFilter x -> OrganizationEventFilter
$cfrom :: forall x. OrganizationEventFilter -> Rep OrganizationEventFilter x
Prelude.Generic)

-- |
-- Create a value of 'OrganizationEventFilter' 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:
--
-- 'awsAccountIds', 'organizationEventFilter_awsAccountIds' - A list of 12-digit Amazon Web Services account numbers that contains the
-- affected entities.
--
-- 'endTime', 'organizationEventFilter_endTime' - Undocumented member.
--
-- 'entityArns', 'organizationEventFilter_entityArns' - A list of entity ARNs (unique identifiers).
--
-- 'entityValues', 'organizationEventFilter_entityValues' - A list of entity identifiers, such as EC2 instance IDs (i-34ab692e) or
-- EBS volumes (vol-426ab23e).
--
-- 'eventStatusCodes', 'organizationEventFilter_eventStatusCodes' - A list of event status codes.
--
-- 'eventTypeCategories', 'organizationEventFilter_eventTypeCategories' - A list of event type category codes. Possible values are @issue@,
-- @accountNotification@, or @scheduledChange@. Currently, the
-- @investigation@ value isn\'t supported at this time.
--
-- 'eventTypeCodes', 'organizationEventFilter_eventTypeCodes' - A list of unique identifiers for event types. For example,
-- @\"AWS_EC2_SYSTEM_MAINTENANCE_EVENT\",\"AWS_RDS_MAINTENANCE_SCHEDULED\".@
--
-- 'lastUpdatedTime', 'organizationEventFilter_lastUpdatedTime' - Undocumented member.
--
-- 'regions', 'organizationEventFilter_regions' - A list of Amazon Web Services Regions.
--
-- 'services', 'organizationEventFilter_services' - The Amazon Web Services services associated with the event. For example,
-- @EC2@, @RDS@.
--
-- 'startTime', 'organizationEventFilter_startTime' - Undocumented member.
newOrganizationEventFilter ::
  OrganizationEventFilter
newOrganizationEventFilter :: OrganizationEventFilter
newOrganizationEventFilter =
  OrganizationEventFilter'
    { $sel:awsAccountIds:OrganizationEventFilter' :: Maybe (NonEmpty Text)
awsAccountIds =
        forall a. Maybe a
Prelude.Nothing,
      $sel:endTime:OrganizationEventFilter' :: Maybe DateTimeRange
endTime = forall a. Maybe a
Prelude.Nothing,
      $sel:entityArns:OrganizationEventFilter' :: Maybe (NonEmpty Text)
entityArns = forall a. Maybe a
Prelude.Nothing,
      $sel:entityValues:OrganizationEventFilter' :: Maybe (NonEmpty Text)
entityValues = forall a. Maybe a
Prelude.Nothing,
      $sel:eventStatusCodes:OrganizationEventFilter' :: Maybe (NonEmpty EventStatusCode)
eventStatusCodes = forall a. Maybe a
Prelude.Nothing,
      $sel:eventTypeCategories:OrganizationEventFilter' :: Maybe (NonEmpty EventTypeCategory)
eventTypeCategories = forall a. Maybe a
Prelude.Nothing,
      $sel:eventTypeCodes:OrganizationEventFilter' :: Maybe (NonEmpty Text)
eventTypeCodes = forall a. Maybe a
Prelude.Nothing,
      $sel:lastUpdatedTime:OrganizationEventFilter' :: Maybe DateTimeRange
lastUpdatedTime = forall a. Maybe a
Prelude.Nothing,
      $sel:regions:OrganizationEventFilter' :: Maybe (NonEmpty Text)
regions = forall a. Maybe a
Prelude.Nothing,
      $sel:services:OrganizationEventFilter' :: Maybe (NonEmpty Text)
services = forall a. Maybe a
Prelude.Nothing,
      $sel:startTime:OrganizationEventFilter' :: Maybe DateTimeRange
startTime = forall a. Maybe a
Prelude.Nothing
    }

-- | A list of 12-digit Amazon Web Services account numbers that contains the
-- affected entities.
organizationEventFilter_awsAccountIds :: Lens.Lens' OrganizationEventFilter (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))
organizationEventFilter_awsAccountIds :: Lens' OrganizationEventFilter (Maybe (NonEmpty Text))
organizationEventFilter_awsAccountIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OrganizationEventFilter' {Maybe (NonEmpty Text)
awsAccountIds :: Maybe (NonEmpty Text)
$sel:awsAccountIds:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty Text)
awsAccountIds} -> Maybe (NonEmpty Text)
awsAccountIds) (\s :: OrganizationEventFilter
s@OrganizationEventFilter' {} Maybe (NonEmpty Text)
a -> OrganizationEventFilter
s {$sel:awsAccountIds:OrganizationEventFilter' :: Maybe (NonEmpty Text)
awsAccountIds = Maybe (NonEmpty Text)
a} :: OrganizationEventFilter) 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

-- | Undocumented member.
organizationEventFilter_endTime :: Lens.Lens' OrganizationEventFilter (Prelude.Maybe DateTimeRange)
organizationEventFilter_endTime :: Lens' OrganizationEventFilter (Maybe DateTimeRange)
organizationEventFilter_endTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OrganizationEventFilter' {Maybe DateTimeRange
endTime :: Maybe DateTimeRange
$sel:endTime:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe DateTimeRange
endTime} -> Maybe DateTimeRange
endTime) (\s :: OrganizationEventFilter
s@OrganizationEventFilter' {} Maybe DateTimeRange
a -> OrganizationEventFilter
s {$sel:endTime:OrganizationEventFilter' :: Maybe DateTimeRange
endTime = Maybe DateTimeRange
a} :: OrganizationEventFilter)

-- | A list of entity ARNs (unique identifiers).
organizationEventFilter_entityArns :: Lens.Lens' OrganizationEventFilter (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))
organizationEventFilter_entityArns :: Lens' OrganizationEventFilter (Maybe (NonEmpty Text))
organizationEventFilter_entityArns = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OrganizationEventFilter' {Maybe (NonEmpty Text)
entityArns :: Maybe (NonEmpty Text)
$sel:entityArns:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty Text)
entityArns} -> Maybe (NonEmpty Text)
entityArns) (\s :: OrganizationEventFilter
s@OrganizationEventFilter' {} Maybe (NonEmpty Text)
a -> OrganizationEventFilter
s {$sel:entityArns:OrganizationEventFilter' :: Maybe (NonEmpty Text)
entityArns = Maybe (NonEmpty Text)
a} :: OrganizationEventFilter) 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 list of entity identifiers, such as EC2 instance IDs (i-34ab692e) or
-- EBS volumes (vol-426ab23e).
organizationEventFilter_entityValues :: Lens.Lens' OrganizationEventFilter (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))
organizationEventFilter_entityValues :: Lens' OrganizationEventFilter (Maybe (NonEmpty Text))
organizationEventFilter_entityValues = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OrganizationEventFilter' {Maybe (NonEmpty Text)
entityValues :: Maybe (NonEmpty Text)
$sel:entityValues:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty Text)
entityValues} -> Maybe (NonEmpty Text)
entityValues) (\s :: OrganizationEventFilter
s@OrganizationEventFilter' {} Maybe (NonEmpty Text)
a -> OrganizationEventFilter
s {$sel:entityValues:OrganizationEventFilter' :: Maybe (NonEmpty Text)
entityValues = Maybe (NonEmpty Text)
a} :: OrganizationEventFilter) 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 list of event status codes.
organizationEventFilter_eventStatusCodes :: Lens.Lens' OrganizationEventFilter (Prelude.Maybe (Prelude.NonEmpty EventStatusCode))
organizationEventFilter_eventStatusCodes :: Lens' OrganizationEventFilter (Maybe (NonEmpty EventStatusCode))
organizationEventFilter_eventStatusCodes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OrganizationEventFilter' {Maybe (NonEmpty EventStatusCode)
eventStatusCodes :: Maybe (NonEmpty EventStatusCode)
$sel:eventStatusCodes:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty EventStatusCode)
eventStatusCodes} -> Maybe (NonEmpty EventStatusCode)
eventStatusCodes) (\s :: OrganizationEventFilter
s@OrganizationEventFilter' {} Maybe (NonEmpty EventStatusCode)
a -> OrganizationEventFilter
s {$sel:eventStatusCodes:OrganizationEventFilter' :: Maybe (NonEmpty EventStatusCode)
eventStatusCodes = Maybe (NonEmpty EventStatusCode)
a} :: OrganizationEventFilter) 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 list of event type category codes. Possible values are @issue@,
-- @accountNotification@, or @scheduledChange@. Currently, the
-- @investigation@ value isn\'t supported at this time.
organizationEventFilter_eventTypeCategories :: Lens.Lens' OrganizationEventFilter (Prelude.Maybe (Prelude.NonEmpty EventTypeCategory))
organizationEventFilter_eventTypeCategories :: Lens' OrganizationEventFilter (Maybe (NonEmpty EventTypeCategory))
organizationEventFilter_eventTypeCategories = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OrganizationEventFilter' {Maybe (NonEmpty EventTypeCategory)
eventTypeCategories :: Maybe (NonEmpty EventTypeCategory)
$sel:eventTypeCategories:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty EventTypeCategory)
eventTypeCategories} -> Maybe (NonEmpty EventTypeCategory)
eventTypeCategories) (\s :: OrganizationEventFilter
s@OrganizationEventFilter' {} Maybe (NonEmpty EventTypeCategory)
a -> OrganizationEventFilter
s {$sel:eventTypeCategories:OrganizationEventFilter' :: Maybe (NonEmpty EventTypeCategory)
eventTypeCategories = Maybe (NonEmpty EventTypeCategory)
a} :: OrganizationEventFilter) 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 list of unique identifiers for event types. For example,
-- @\"AWS_EC2_SYSTEM_MAINTENANCE_EVENT\",\"AWS_RDS_MAINTENANCE_SCHEDULED\".@
organizationEventFilter_eventTypeCodes :: Lens.Lens' OrganizationEventFilter (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))
organizationEventFilter_eventTypeCodes :: Lens' OrganizationEventFilter (Maybe (NonEmpty Text))
organizationEventFilter_eventTypeCodes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OrganizationEventFilter' {Maybe (NonEmpty Text)
eventTypeCodes :: Maybe (NonEmpty Text)
$sel:eventTypeCodes:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty Text)
eventTypeCodes} -> Maybe (NonEmpty Text)
eventTypeCodes) (\s :: OrganizationEventFilter
s@OrganizationEventFilter' {} Maybe (NonEmpty Text)
a -> OrganizationEventFilter
s {$sel:eventTypeCodes:OrganizationEventFilter' :: Maybe (NonEmpty Text)
eventTypeCodes = Maybe (NonEmpty Text)
a} :: OrganizationEventFilter) 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

-- | Undocumented member.
organizationEventFilter_lastUpdatedTime :: Lens.Lens' OrganizationEventFilter (Prelude.Maybe DateTimeRange)
organizationEventFilter_lastUpdatedTime :: Lens' OrganizationEventFilter (Maybe DateTimeRange)
organizationEventFilter_lastUpdatedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OrganizationEventFilter' {Maybe DateTimeRange
lastUpdatedTime :: Maybe DateTimeRange
$sel:lastUpdatedTime:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe DateTimeRange
lastUpdatedTime} -> Maybe DateTimeRange
lastUpdatedTime) (\s :: OrganizationEventFilter
s@OrganizationEventFilter' {} Maybe DateTimeRange
a -> OrganizationEventFilter
s {$sel:lastUpdatedTime:OrganizationEventFilter' :: Maybe DateTimeRange
lastUpdatedTime = Maybe DateTimeRange
a} :: OrganizationEventFilter)

-- | A list of Amazon Web Services Regions.
organizationEventFilter_regions :: Lens.Lens' OrganizationEventFilter (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))
organizationEventFilter_regions :: Lens' OrganizationEventFilter (Maybe (NonEmpty Text))
organizationEventFilter_regions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OrganizationEventFilter' {Maybe (NonEmpty Text)
regions :: Maybe (NonEmpty Text)
$sel:regions:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty Text)
regions} -> Maybe (NonEmpty Text)
regions) (\s :: OrganizationEventFilter
s@OrganizationEventFilter' {} Maybe (NonEmpty Text)
a -> OrganizationEventFilter
s {$sel:regions:OrganizationEventFilter' :: Maybe (NonEmpty Text)
regions = Maybe (NonEmpty Text)
a} :: OrganizationEventFilter) 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 Amazon Web Services services associated with the event. For example,
-- @EC2@, @RDS@.
organizationEventFilter_services :: Lens.Lens' OrganizationEventFilter (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))
organizationEventFilter_services :: Lens' OrganizationEventFilter (Maybe (NonEmpty Text))
organizationEventFilter_services = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OrganizationEventFilter' {Maybe (NonEmpty Text)
services :: Maybe (NonEmpty Text)
$sel:services:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty Text)
services} -> Maybe (NonEmpty Text)
services) (\s :: OrganizationEventFilter
s@OrganizationEventFilter' {} Maybe (NonEmpty Text)
a -> OrganizationEventFilter
s {$sel:services:OrganizationEventFilter' :: Maybe (NonEmpty Text)
services = Maybe (NonEmpty Text)
a} :: OrganizationEventFilter) 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

-- | Undocumented member.
organizationEventFilter_startTime :: Lens.Lens' OrganizationEventFilter (Prelude.Maybe DateTimeRange)
organizationEventFilter_startTime :: Lens' OrganizationEventFilter (Maybe DateTimeRange)
organizationEventFilter_startTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OrganizationEventFilter' {Maybe DateTimeRange
startTime :: Maybe DateTimeRange
$sel:startTime:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe DateTimeRange
startTime} -> Maybe DateTimeRange
startTime) (\s :: OrganizationEventFilter
s@OrganizationEventFilter' {} Maybe DateTimeRange
a -> OrganizationEventFilter
s {$sel:startTime:OrganizationEventFilter' :: Maybe DateTimeRange
startTime = Maybe DateTimeRange
a} :: OrganizationEventFilter)

instance Prelude.Hashable OrganizationEventFilter where
  hashWithSalt :: Int -> OrganizationEventFilter -> Int
hashWithSalt Int
_salt OrganizationEventFilter' {Maybe (NonEmpty Text)
Maybe (NonEmpty EventStatusCode)
Maybe (NonEmpty EventTypeCategory)
Maybe DateTimeRange
startTime :: Maybe DateTimeRange
services :: Maybe (NonEmpty Text)
regions :: Maybe (NonEmpty Text)
lastUpdatedTime :: Maybe DateTimeRange
eventTypeCodes :: Maybe (NonEmpty Text)
eventTypeCategories :: Maybe (NonEmpty EventTypeCategory)
eventStatusCodes :: Maybe (NonEmpty EventStatusCode)
entityValues :: Maybe (NonEmpty Text)
entityArns :: Maybe (NonEmpty Text)
endTime :: Maybe DateTimeRange
awsAccountIds :: Maybe (NonEmpty Text)
$sel:startTime:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe DateTimeRange
$sel:services:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty Text)
$sel:regions:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty Text)
$sel:lastUpdatedTime:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe DateTimeRange
$sel:eventTypeCodes:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty Text)
$sel:eventTypeCategories:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty EventTypeCategory)
$sel:eventStatusCodes:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty EventStatusCode)
$sel:entityValues:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty Text)
$sel:entityArns:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty Text)
$sel:endTime:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe DateTimeRange
$sel:awsAccountIds:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty Text)
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty Text)
awsAccountIds
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DateTimeRange
endTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty Text)
entityArns
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty Text)
entityValues
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty EventStatusCode)
eventStatusCodes
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty EventTypeCategory)
eventTypeCategories
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty Text)
eventTypeCodes
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DateTimeRange
lastUpdatedTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty Text)
regions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty Text)
services
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DateTimeRange
startTime

instance Prelude.NFData OrganizationEventFilter where
  rnf :: OrganizationEventFilter -> ()
rnf OrganizationEventFilter' {Maybe (NonEmpty Text)
Maybe (NonEmpty EventStatusCode)
Maybe (NonEmpty EventTypeCategory)
Maybe DateTimeRange
startTime :: Maybe DateTimeRange
services :: Maybe (NonEmpty Text)
regions :: Maybe (NonEmpty Text)
lastUpdatedTime :: Maybe DateTimeRange
eventTypeCodes :: Maybe (NonEmpty Text)
eventTypeCategories :: Maybe (NonEmpty EventTypeCategory)
eventStatusCodes :: Maybe (NonEmpty EventStatusCode)
entityValues :: Maybe (NonEmpty Text)
entityArns :: Maybe (NonEmpty Text)
endTime :: Maybe DateTimeRange
awsAccountIds :: Maybe (NonEmpty Text)
$sel:startTime:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe DateTimeRange
$sel:services:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty Text)
$sel:regions:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty Text)
$sel:lastUpdatedTime:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe DateTimeRange
$sel:eventTypeCodes:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty Text)
$sel:eventTypeCategories:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty EventTypeCategory)
$sel:eventStatusCodes:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty EventStatusCode)
$sel:entityValues:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty Text)
$sel:entityArns:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty Text)
$sel:endTime:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe DateTimeRange
$sel:awsAccountIds:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty Text)
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty Text)
awsAccountIds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DateTimeRange
endTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty Text)
entityArns
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty Text)
entityValues
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty EventStatusCode)
eventStatusCodes
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty EventTypeCategory)
eventTypeCategories
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty Text)
eventTypeCodes
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DateTimeRange
lastUpdatedTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty Text)
regions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty Text)
services
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DateTimeRange
startTime

instance Data.ToJSON OrganizationEventFilter where
  toJSON :: OrganizationEventFilter -> Value
toJSON OrganizationEventFilter' {Maybe (NonEmpty Text)
Maybe (NonEmpty EventStatusCode)
Maybe (NonEmpty EventTypeCategory)
Maybe DateTimeRange
startTime :: Maybe DateTimeRange
services :: Maybe (NonEmpty Text)
regions :: Maybe (NonEmpty Text)
lastUpdatedTime :: Maybe DateTimeRange
eventTypeCodes :: Maybe (NonEmpty Text)
eventTypeCategories :: Maybe (NonEmpty EventTypeCategory)
eventStatusCodes :: Maybe (NonEmpty EventStatusCode)
entityValues :: Maybe (NonEmpty Text)
entityArns :: Maybe (NonEmpty Text)
endTime :: Maybe DateTimeRange
awsAccountIds :: Maybe (NonEmpty Text)
$sel:startTime:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe DateTimeRange
$sel:services:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty Text)
$sel:regions:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty Text)
$sel:lastUpdatedTime:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe DateTimeRange
$sel:eventTypeCodes:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty Text)
$sel:eventTypeCategories:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty EventTypeCategory)
$sel:eventStatusCodes:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty EventStatusCode)
$sel:entityValues:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty Text)
$sel:entityArns:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty Text)
$sel:endTime:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe DateTimeRange
$sel:awsAccountIds:OrganizationEventFilter' :: OrganizationEventFilter -> Maybe (NonEmpty Text)
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"awsAccountIds" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (NonEmpty Text)
awsAccountIds,
            (Key
"endTime" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DateTimeRange
endTime,
            (Key
"entityArns" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (NonEmpty Text)
entityArns,
            (Key
"entityValues" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (NonEmpty Text)
entityValues,
            (Key
"eventStatusCodes" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (NonEmpty EventStatusCode)
eventStatusCodes,
            (Key
"eventTypeCategories" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (NonEmpty EventTypeCategory)
eventTypeCategories,
            (Key
"eventTypeCodes" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (NonEmpty Text)
eventTypeCodes,
            (Key
"lastUpdatedTime" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DateTimeRange
lastUpdatedTime,
            (Key
"regions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (NonEmpty Text)
regions,
            (Key
"services" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (NonEmpty Text)
services,
            (Key
"startTime" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DateTimeRange
startTime
          ]
      )