{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Network.AWS.ElasticSearch.Types.Product -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- module Network.AWS.ElasticSearch.Types.Product where import Network.AWS.ElasticSearch.Types.Sum import Network.AWS.Lens import Network.AWS.Prelude -- | The configured access rules for the domain\'s document and search -- endpoints, and the current status of those rules. -- -- /See:/ 'accessPoliciesStatus' smart constructor. data AccessPoliciesStatus = AccessPoliciesStatus' { _apsOptions :: !Text , _apsStatus :: !OptionStatus } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'AccessPoliciesStatus' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'apsOptions' -- -- * 'apsStatus' accessPoliciesStatus :: Text -- ^ 'apsOptions' -> OptionStatus -- ^ 'apsStatus' -> AccessPoliciesStatus accessPoliciesStatus pOptions_ pStatus_ = AccessPoliciesStatus' { _apsOptions = pOptions_ , _apsStatus = pStatus_ } -- | The access policy configured for the Elasticsearch domain. Access -- policies may be resource-based, IP-based, or IAM-based. See -- for -- more information. apsOptions :: Lens' AccessPoliciesStatus Text apsOptions = lens _apsOptions (\ s a -> s{_apsOptions = a}); -- | The status of the access policy for the Elasticsearch domain. See -- 'OptionStatus' for the status information that\'s included. apsStatus :: Lens' AccessPoliciesStatus OptionStatus apsStatus = lens _apsStatus (\ s a -> s{_apsStatus = a}); instance FromJSON AccessPoliciesStatus where parseJSON = withObject "AccessPoliciesStatus" (\ x -> AccessPoliciesStatus' <$> (x .: "Options") <*> (x .: "Status")) instance Hashable AccessPoliciesStatus instance NFData AccessPoliciesStatus -- | Status of the advanced options for the specified Elasticsearch domain. -- Currently, the following advanced options are available: -- -- - Option to allow references to indices in an HTTP request body. Must -- be 'false' when configuring access to individual sub-resources. By -- default, the value is 'true'. See -- -- for more information. -- - Option to specify the percentage of heap space that is allocated to -- field data. By default, this setting is unbounded. -- -- For more information, see -- . -- -- /See:/ 'advancedOptionsStatus' smart constructor. data AdvancedOptionsStatus = AdvancedOptionsStatus' { _aosOptions :: !(Map Text Text) , _aosStatus :: !OptionStatus } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'AdvancedOptionsStatus' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'aosOptions' -- -- * 'aosStatus' advancedOptionsStatus :: OptionStatus -- ^ 'aosStatus' -> AdvancedOptionsStatus advancedOptionsStatus pStatus_ = AdvancedOptionsStatus' { _aosOptions = mempty , _aosStatus = pStatus_ } -- | Specifies the status of advanced options for the specified Elasticsearch -- domain. aosOptions :: Lens' AdvancedOptionsStatus (HashMap Text Text) aosOptions = lens _aosOptions (\ s a -> s{_aosOptions = a}) . _Map; -- | Specifies the status of 'OptionStatus' for advanced options for the -- specified Elasticsearch domain. aosStatus :: Lens' AdvancedOptionsStatus OptionStatus aosStatus = lens _aosStatus (\ s a -> s{_aosStatus = a}); instance FromJSON AdvancedOptionsStatus where parseJSON = withObject "AdvancedOptionsStatus" (\ x -> AdvancedOptionsStatus' <$> (x .:? "Options" .!= mempty) <*> (x .: "Status")) instance Hashable AdvancedOptionsStatus instance NFData AdvancedOptionsStatus -- | /See:/ 'domainInfo' smart constructor. newtype DomainInfo = DomainInfo' { _diDomainName :: Maybe Text } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'DomainInfo' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'diDomainName' domainInfo :: DomainInfo domainInfo = DomainInfo' { _diDomainName = Nothing } -- | Specifies the 'DomainName'. diDomainName :: Lens' DomainInfo (Maybe Text) diDomainName = lens _diDomainName (\ s a -> s{_diDomainName = a}); instance FromJSON DomainInfo where parseJSON = withObject "DomainInfo" (\ x -> DomainInfo' <$> (x .:? "DomainName")) instance Hashable DomainInfo instance NFData DomainInfo -- | Options to enable, disable, and specify the properties of EBS storage -- volumes. For more information, see -- . -- -- /See:/ 'ebsOptions' smart constructor. data EBSOptions = EBSOptions' { _eoVolumeSize :: !(Maybe Int) , _eoIOPS :: !(Maybe Int) , _eoVolumeType :: !(Maybe VolumeType) , _eoEBSEnabled :: !(Maybe Bool) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'EBSOptions' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'eoVolumeSize' -- -- * 'eoIOPS' -- -- * 'eoVolumeType' -- -- * 'eoEBSEnabled' ebsOptions :: EBSOptions ebsOptions = EBSOptions' { _eoVolumeSize = Nothing , _eoIOPS = Nothing , _eoVolumeType = Nothing , _eoEBSEnabled = Nothing } -- | Integer to specify the size of an EBS volume. eoVolumeSize :: Lens' EBSOptions (Maybe Int) eoVolumeSize = lens _eoVolumeSize (\ s a -> s{_eoVolumeSize = a}); -- | Specifies the IOPD for a Provisioned IOPS EBS volume (SSD). eoIOPS :: Lens' EBSOptions (Maybe Int) eoIOPS = lens _eoIOPS (\ s a -> s{_eoIOPS = a}); -- | Specifies the volume type for EBS-based storage. eoVolumeType :: Lens' EBSOptions (Maybe VolumeType) eoVolumeType = lens _eoVolumeType (\ s a -> s{_eoVolumeType = a}); -- | Specifies whether EBS-based storage is enabled. eoEBSEnabled :: Lens' EBSOptions (Maybe Bool) eoEBSEnabled = lens _eoEBSEnabled (\ s a -> s{_eoEBSEnabled = a}); instance FromJSON EBSOptions where parseJSON = withObject "EBSOptions" (\ x -> EBSOptions' <$> (x .:? "VolumeSize") <*> (x .:? "Iops") <*> (x .:? "VolumeType") <*> (x .:? "EBSEnabled")) instance Hashable EBSOptions instance NFData EBSOptions instance ToJSON EBSOptions where toJSON EBSOptions'{..} = object (catMaybes [("VolumeSize" .=) <$> _eoVolumeSize, ("Iops" .=) <$> _eoIOPS, ("VolumeType" .=) <$> _eoVolumeType, ("EBSEnabled" .=) <$> _eoEBSEnabled]) -- | Status of the EBS options for the specified Elasticsearch domain. -- -- /See:/ 'ebsOptionsStatus' smart constructor. data EBSOptionsStatus = EBSOptionsStatus' { _eosOptions :: !EBSOptions , _eosStatus :: !OptionStatus } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'EBSOptionsStatus' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'eosOptions' -- -- * 'eosStatus' ebsOptionsStatus :: EBSOptions -- ^ 'eosOptions' -> OptionStatus -- ^ 'eosStatus' -> EBSOptionsStatus ebsOptionsStatus pOptions_ pStatus_ = EBSOptionsStatus' { _eosOptions = pOptions_ , _eosStatus = pStatus_ } -- | Specifies the EBS options for the specified Elasticsearch domain. eosOptions :: Lens' EBSOptionsStatus EBSOptions eosOptions = lens _eosOptions (\ s a -> s{_eosOptions = a}); -- | Specifies the status of the EBS options for the specified Elasticsearch -- domain. eosStatus :: Lens' EBSOptionsStatus OptionStatus eosStatus = lens _eosStatus (\ s a -> s{_eosStatus = a}); instance FromJSON EBSOptionsStatus where parseJSON = withObject "EBSOptionsStatus" (\ x -> EBSOptionsStatus' <$> (x .: "Options") <*> (x .: "Status")) instance Hashable EBSOptionsStatus instance NFData EBSOptionsStatus -- | Specifies the configuration for the domain cluster, such as the type and -- number of instances. -- -- /See:/ 'elasticsearchClusterConfig' smart constructor. data ElasticsearchClusterConfig = ElasticsearchClusterConfig' { _eccDedicatedMasterCount :: !(Maybe Int) , _eccDedicatedMasterType :: !(Maybe ESPartitionInstanceType) , _eccDedicatedMasterEnabled :: !(Maybe Bool) , _eccInstanceCount :: !(Maybe Int) , _eccZoneAwarenessEnabled :: !(Maybe Bool) , _eccInstanceType :: !(Maybe ESPartitionInstanceType) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ElasticsearchClusterConfig' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'eccDedicatedMasterCount' -- -- * 'eccDedicatedMasterType' -- -- * 'eccDedicatedMasterEnabled' -- -- * 'eccInstanceCount' -- -- * 'eccZoneAwarenessEnabled' -- -- * 'eccInstanceType' elasticsearchClusterConfig :: ElasticsearchClusterConfig elasticsearchClusterConfig = ElasticsearchClusterConfig' { _eccDedicatedMasterCount = Nothing , _eccDedicatedMasterType = Nothing , _eccDedicatedMasterEnabled = Nothing , _eccInstanceCount = Nothing , _eccZoneAwarenessEnabled = Nothing , _eccInstanceType = Nothing } -- | Total number of dedicated master nodes, active and on standby, for the -- cluster. eccDedicatedMasterCount :: Lens' ElasticsearchClusterConfig (Maybe Int) eccDedicatedMasterCount = lens _eccDedicatedMasterCount (\ s a -> s{_eccDedicatedMasterCount = a}); -- | The instance type for a dedicated master node. eccDedicatedMasterType :: Lens' ElasticsearchClusterConfig (Maybe ESPartitionInstanceType) eccDedicatedMasterType = lens _eccDedicatedMasterType (\ s a -> s{_eccDedicatedMasterType = a}); -- | A boolean value to indicate whether a dedicated master node is enabled. -- See -- -- for more information. eccDedicatedMasterEnabled :: Lens' ElasticsearchClusterConfig (Maybe Bool) eccDedicatedMasterEnabled = lens _eccDedicatedMasterEnabled (\ s a -> s{_eccDedicatedMasterEnabled = a}); -- | The number of instances in the specified domain cluster. eccInstanceCount :: Lens' ElasticsearchClusterConfig (Maybe Int) eccInstanceCount = lens _eccInstanceCount (\ s a -> s{_eccInstanceCount = a}); -- | A boolean value to indicate whether zone awareness is enabled. See -- -- for more information. eccZoneAwarenessEnabled :: Lens' ElasticsearchClusterConfig (Maybe Bool) eccZoneAwarenessEnabled = lens _eccZoneAwarenessEnabled (\ s a -> s{_eccZoneAwarenessEnabled = a}); -- | The instance type for an Elasticsearch cluster. eccInstanceType :: Lens' ElasticsearchClusterConfig (Maybe ESPartitionInstanceType) eccInstanceType = lens _eccInstanceType (\ s a -> s{_eccInstanceType = a}); instance FromJSON ElasticsearchClusterConfig where parseJSON = withObject "ElasticsearchClusterConfig" (\ x -> ElasticsearchClusterConfig' <$> (x .:? "DedicatedMasterCount") <*> (x .:? "DedicatedMasterType") <*> (x .:? "DedicatedMasterEnabled") <*> (x .:? "InstanceCount") <*> (x .:? "ZoneAwarenessEnabled") <*> (x .:? "InstanceType")) instance Hashable ElasticsearchClusterConfig instance NFData ElasticsearchClusterConfig instance ToJSON ElasticsearchClusterConfig where toJSON ElasticsearchClusterConfig'{..} = object (catMaybes [("DedicatedMasterCount" .=) <$> _eccDedicatedMasterCount, ("DedicatedMasterType" .=) <$> _eccDedicatedMasterType, ("DedicatedMasterEnabled" .=) <$> _eccDedicatedMasterEnabled, ("InstanceCount" .=) <$> _eccInstanceCount, ("ZoneAwarenessEnabled" .=) <$> _eccZoneAwarenessEnabled, ("InstanceType" .=) <$> _eccInstanceType]) -- | Specifies the configuration status for the specified Elasticsearch -- domain. -- -- /See:/ 'elasticsearchClusterConfigStatus' smart constructor. data ElasticsearchClusterConfigStatus = ElasticsearchClusterConfigStatus' { _eccsOptions :: !ElasticsearchClusterConfig , _eccsStatus :: !OptionStatus } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ElasticsearchClusterConfigStatus' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'eccsOptions' -- -- * 'eccsStatus' elasticsearchClusterConfigStatus :: ElasticsearchClusterConfig -- ^ 'eccsOptions' -> OptionStatus -- ^ 'eccsStatus' -> ElasticsearchClusterConfigStatus elasticsearchClusterConfigStatus pOptions_ pStatus_ = ElasticsearchClusterConfigStatus' { _eccsOptions = pOptions_ , _eccsStatus = pStatus_ } -- | Specifies the cluster configuration for the specified Elasticsearch -- domain. eccsOptions :: Lens' ElasticsearchClusterConfigStatus ElasticsearchClusterConfig eccsOptions = lens _eccsOptions (\ s a -> s{_eccsOptions = a}); -- | Specifies the status of the configuration for the specified -- Elasticsearch domain. eccsStatus :: Lens' ElasticsearchClusterConfigStatus OptionStatus eccsStatus = lens _eccsStatus (\ s a -> s{_eccsStatus = a}); instance FromJSON ElasticsearchClusterConfigStatus where parseJSON = withObject "ElasticsearchClusterConfigStatus" (\ x -> ElasticsearchClusterConfigStatus' <$> (x .: "Options") <*> (x .: "Status")) instance Hashable ElasticsearchClusterConfigStatus instance NFData ElasticsearchClusterConfigStatus -- | The configuration of an Elasticsearch domain. -- -- /See:/ 'elasticsearchDomainConfig' smart constructor. data ElasticsearchDomainConfig = ElasticsearchDomainConfig' { _edcEBSOptions :: !(Maybe EBSOptionsStatus) , _edcAccessPolicies :: !(Maybe AccessPoliciesStatus) , _edcElasticsearchClusterConfig :: !(Maybe ElasticsearchClusterConfigStatus) , _edcSnapshotOptions :: !(Maybe SnapshotOptionsStatus) , _edcAdvancedOptions :: !(Maybe AdvancedOptionsStatus) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ElasticsearchDomainConfig' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'edcEBSOptions' -- -- * 'edcAccessPolicies' -- -- * 'edcElasticsearchClusterConfig' -- -- * 'edcSnapshotOptions' -- -- * 'edcAdvancedOptions' elasticsearchDomainConfig :: ElasticsearchDomainConfig elasticsearchDomainConfig = ElasticsearchDomainConfig' { _edcEBSOptions = Nothing , _edcAccessPolicies = Nothing , _edcElasticsearchClusterConfig = Nothing , _edcSnapshotOptions = Nothing , _edcAdvancedOptions = Nothing } -- | Specifies the 'EBSOptions' for the Elasticsearch domain. edcEBSOptions :: Lens' ElasticsearchDomainConfig (Maybe EBSOptionsStatus) edcEBSOptions = lens _edcEBSOptions (\ s a -> s{_edcEBSOptions = a}); -- | IAM access policy as a JSON-formatted string. edcAccessPolicies :: Lens' ElasticsearchDomainConfig (Maybe AccessPoliciesStatus) edcAccessPolicies = lens _edcAccessPolicies (\ s a -> s{_edcAccessPolicies = a}); -- | Specifies the 'ElasticsearchClusterConfig' for the Elasticsearch domain. edcElasticsearchClusterConfig :: Lens' ElasticsearchDomainConfig (Maybe ElasticsearchClusterConfigStatus) edcElasticsearchClusterConfig = lens _edcElasticsearchClusterConfig (\ s a -> s{_edcElasticsearchClusterConfig = a}); -- | Specifies the 'SnapshotOptions' for the Elasticsearch domain. edcSnapshotOptions :: Lens' ElasticsearchDomainConfig (Maybe SnapshotOptionsStatus) edcSnapshotOptions = lens _edcSnapshotOptions (\ s a -> s{_edcSnapshotOptions = a}); -- | Specifies the 'AdvancedOptions' for the domain. See -- -- for more information. edcAdvancedOptions :: Lens' ElasticsearchDomainConfig (Maybe AdvancedOptionsStatus) edcAdvancedOptions = lens _edcAdvancedOptions (\ s a -> s{_edcAdvancedOptions = a}); instance FromJSON ElasticsearchDomainConfig where parseJSON = withObject "ElasticsearchDomainConfig" (\ x -> ElasticsearchDomainConfig' <$> (x .:? "EBSOptions") <*> (x .:? "AccessPolicies") <*> (x .:? "ElasticsearchClusterConfig") <*> (x .:? "SnapshotOptions") <*> (x .:? "AdvancedOptions")) instance Hashable ElasticsearchDomainConfig instance NFData ElasticsearchDomainConfig -- | The current status of an Elasticsearch domain. -- -- /See:/ 'elasticsearchDomainStatus' smart constructor. data ElasticsearchDomainStatus = ElasticsearchDomainStatus' { _edsEBSOptions :: !(Maybe EBSOptions) , _edsAccessPolicies :: !(Maybe Text) , _edsCreated :: !(Maybe Bool) , _edsSnapshotOptions :: !(Maybe SnapshotOptions) , _edsDeleted :: !(Maybe Bool) , _edsProcessing :: !(Maybe Bool) , _edsEndpoint :: !(Maybe Text) , _edsAdvancedOptions :: !(Maybe (Map Text Text)) , _edsDomainId :: !Text , _edsDomainName :: !Text , _edsARN :: !Text , _edsElasticsearchClusterConfig :: !ElasticsearchClusterConfig } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ElasticsearchDomainStatus' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'edsEBSOptions' -- -- * 'edsAccessPolicies' -- -- * 'edsCreated' -- -- * 'edsSnapshotOptions' -- -- * 'edsDeleted' -- -- * 'edsProcessing' -- -- * 'edsEndpoint' -- -- * 'edsAdvancedOptions' -- -- * 'edsDomainId' -- -- * 'edsDomainName' -- -- * 'edsARN' -- -- * 'edsElasticsearchClusterConfig' elasticsearchDomainStatus :: Text -- ^ 'edsDomainId' -> Text -- ^ 'edsDomainName' -> Text -- ^ 'edsARN' -> ElasticsearchClusterConfig -- ^ 'edsElasticsearchClusterConfig' -> ElasticsearchDomainStatus elasticsearchDomainStatus pDomainId_ pDomainName_ pARN_ pElasticsearchClusterConfig_ = ElasticsearchDomainStatus' { _edsEBSOptions = Nothing , _edsAccessPolicies = Nothing , _edsCreated = Nothing , _edsSnapshotOptions = Nothing , _edsDeleted = Nothing , _edsProcessing = Nothing , _edsEndpoint = Nothing , _edsAdvancedOptions = Nothing , _edsDomainId = pDomainId_ , _edsDomainName = pDomainName_ , _edsARN = pARN_ , _edsElasticsearchClusterConfig = pElasticsearchClusterConfig_ } -- | The 'EBSOptions' for the specified domain. See -- -- for more information. edsEBSOptions :: Lens' ElasticsearchDomainStatus (Maybe EBSOptions) edsEBSOptions = lens _edsEBSOptions (\ s a -> s{_edsEBSOptions = a}); -- | IAM access policy as a JSON-formatted string. edsAccessPolicies :: Lens' ElasticsearchDomainStatus (Maybe Text) edsAccessPolicies = lens _edsAccessPolicies (\ s a -> s{_edsAccessPolicies = a}); -- | The domain creation status. 'True' if the creation of an Elasticsearch -- domain is complete. 'False' if domain creation is still in progress. edsCreated :: Lens' ElasticsearchDomainStatus (Maybe Bool) edsCreated = lens _edsCreated (\ s a -> s{_edsCreated = a}); -- | Specifies the status of the 'SnapshotOptions' edsSnapshotOptions :: Lens' ElasticsearchDomainStatus (Maybe SnapshotOptions) edsSnapshotOptions = lens _edsSnapshotOptions (\ s a -> s{_edsSnapshotOptions = a}); -- | The domain deletion status. 'True' if a delete request has been received -- for the domain but resource cleanup is still in progress. 'False' if the -- domain has not been deleted. Once domain deletion is complete, the -- status of the domain is no longer returned. edsDeleted :: Lens' ElasticsearchDomainStatus (Maybe Bool) edsDeleted = lens _edsDeleted (\ s a -> s{_edsDeleted = a}); -- | The status of the Elasticsearch domain configuration. 'True' if Amazon -- Elasticsearch Service is processing configuration changes. 'False' if -- the configuration is active. edsProcessing :: Lens' ElasticsearchDomainStatus (Maybe Bool) edsProcessing = lens _edsProcessing (\ s a -> s{_edsProcessing = a}); -- | The Elasticsearch domain endpoint that you use to submit index and -- search requests. edsEndpoint :: Lens' ElasticsearchDomainStatus (Maybe Text) edsEndpoint = lens _edsEndpoint (\ s a -> s{_edsEndpoint = a}); -- | Specifies the status of the 'AdvancedOptions' edsAdvancedOptions :: Lens' ElasticsearchDomainStatus (HashMap Text Text) edsAdvancedOptions = lens _edsAdvancedOptions (\ s a -> s{_edsAdvancedOptions = a}) . _Default . _Map; -- | The unique identifier for the specified Elasticsearch domain. edsDomainId :: Lens' ElasticsearchDomainStatus Text edsDomainId = lens _edsDomainId (\ s a -> s{_edsDomainId = a}); -- | The name of an Elasticsearch domain. Domain names are unique across the -- domains owned by an account within an AWS region. Domain names start -- with a letter or number and can contain the following characters: a-z -- (lowercase), 0-9, and - (hyphen). edsDomainName :: Lens' ElasticsearchDomainStatus Text edsDomainName = lens _edsDomainName (\ s a -> s{_edsDomainName = a}); -- | The Amazon resource name (ARN) of an Elasticsearch domain. See -- -- in /Using AWS Identity and Access Management/ for more information. edsARN :: Lens' ElasticsearchDomainStatus Text edsARN = lens _edsARN (\ s a -> s{_edsARN = a}); -- | The type and number of instances in the domain cluster. edsElasticsearchClusterConfig :: Lens' ElasticsearchDomainStatus ElasticsearchClusterConfig edsElasticsearchClusterConfig = lens _edsElasticsearchClusterConfig (\ s a -> s{_edsElasticsearchClusterConfig = a}); instance FromJSON ElasticsearchDomainStatus where parseJSON = withObject "ElasticsearchDomainStatus" (\ x -> ElasticsearchDomainStatus' <$> (x .:? "EBSOptions") <*> (x .:? "AccessPolicies") <*> (x .:? "Created") <*> (x .:? "SnapshotOptions") <*> (x .:? "Deleted") <*> (x .:? "Processing") <*> (x .:? "Endpoint") <*> (x .:? "AdvancedOptions" .!= mempty) <*> (x .: "DomainId") <*> (x .: "DomainName") <*> (x .: "ARN") <*> (x .: "ElasticsearchClusterConfig")) instance Hashable ElasticsearchDomainStatus instance NFData ElasticsearchDomainStatus -- | Provides the current status of the entity. -- -- /See:/ 'optionStatus' smart constructor. data OptionStatus = OptionStatus' { _osPendingDeletion :: !(Maybe Bool) , _osUpdateVersion :: !(Maybe Nat) , _osCreationDate :: !POSIX , _osUpdateDate :: !POSIX , _osState :: !OptionState } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'OptionStatus' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'osPendingDeletion' -- -- * 'osUpdateVersion' -- -- * 'osCreationDate' -- -- * 'osUpdateDate' -- -- * 'osState' optionStatus :: UTCTime -- ^ 'osCreationDate' -> UTCTime -- ^ 'osUpdateDate' -> OptionState -- ^ 'osState' -> OptionStatus optionStatus pCreationDate_ pUpdateDate_ pState_ = OptionStatus' { _osPendingDeletion = Nothing , _osUpdateVersion = Nothing , _osCreationDate = _Time # pCreationDate_ , _osUpdateDate = _Time # pUpdateDate_ , _osState = pState_ } -- | Indicates whether the Elasticsearch domain is being deleted. osPendingDeletion :: Lens' OptionStatus (Maybe Bool) osPendingDeletion = lens _osPendingDeletion (\ s a -> s{_osPendingDeletion = a}); -- | Specifies the latest version for the entity. osUpdateVersion :: Lens' OptionStatus (Maybe Natural) osUpdateVersion = lens _osUpdateVersion (\ s a -> s{_osUpdateVersion = a}) . mapping _Nat; -- | Timestamp which tells the creation date for the entity. osCreationDate :: Lens' OptionStatus UTCTime osCreationDate = lens _osCreationDate (\ s a -> s{_osCreationDate = a}) . _Time; -- | Timestamp which tells the last updated time for the entity. osUpdateDate :: Lens' OptionStatus UTCTime osUpdateDate = lens _osUpdateDate (\ s a -> s{_osUpdateDate = a}) . _Time; -- | Provides the 'OptionState' for the Elasticsearch domain. osState :: Lens' OptionStatus OptionState osState = lens _osState (\ s a -> s{_osState = a}); instance FromJSON OptionStatus where parseJSON = withObject "OptionStatus" (\ x -> OptionStatus' <$> (x .:? "PendingDeletion") <*> (x .:? "UpdateVersion") <*> (x .: "CreationDate") <*> (x .: "UpdateDate") <*> (x .: "State")) instance Hashable OptionStatus instance NFData OptionStatus -- | Specifies the time, in UTC format, when the service takes a daily -- automated snapshot of the specified Elasticsearch domain. Default value -- is '0' hours. -- -- /See:/ 'snapshotOptions' smart constructor. newtype SnapshotOptions = SnapshotOptions' { _soAutomatedSnapshotStartHour :: Maybe Int } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'SnapshotOptions' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'soAutomatedSnapshotStartHour' snapshotOptions :: SnapshotOptions snapshotOptions = SnapshotOptions' { _soAutomatedSnapshotStartHour = Nothing } -- | Specifies the time, in UTC format, when the service takes a daily -- automated snapshot of the specified Elasticsearch domain. Default value -- is '0' hours. soAutomatedSnapshotStartHour :: Lens' SnapshotOptions (Maybe Int) soAutomatedSnapshotStartHour = lens _soAutomatedSnapshotStartHour (\ s a -> s{_soAutomatedSnapshotStartHour = a}); instance FromJSON SnapshotOptions where parseJSON = withObject "SnapshotOptions" (\ x -> SnapshotOptions' <$> (x .:? "AutomatedSnapshotStartHour")) instance Hashable SnapshotOptions instance NFData SnapshotOptions instance ToJSON SnapshotOptions where toJSON SnapshotOptions'{..} = object (catMaybes [("AutomatedSnapshotStartHour" .=) <$> _soAutomatedSnapshotStartHour]) -- | Status of a daily automated snapshot. -- -- /See:/ 'snapshotOptionsStatus' smart constructor. data SnapshotOptionsStatus = SnapshotOptionsStatus' { _sosOptions :: !SnapshotOptions , _sosStatus :: !OptionStatus } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'SnapshotOptionsStatus' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'sosOptions' -- -- * 'sosStatus' snapshotOptionsStatus :: SnapshotOptions -- ^ 'sosOptions' -> OptionStatus -- ^ 'sosStatus' -> SnapshotOptionsStatus snapshotOptionsStatus pOptions_ pStatus_ = SnapshotOptionsStatus' { _sosOptions = pOptions_ , _sosStatus = pStatus_ } -- | Specifies the daily snapshot options specified for the Elasticsearch -- domain. sosOptions :: Lens' SnapshotOptionsStatus SnapshotOptions sosOptions = lens _sosOptions (\ s a -> s{_sosOptions = a}); -- | Specifies the status of a daily automated snapshot. sosStatus :: Lens' SnapshotOptionsStatus OptionStatus sosStatus = lens _sosStatus (\ s a -> s{_sosStatus = a}); instance FromJSON SnapshotOptionsStatus where parseJSON = withObject "SnapshotOptionsStatus" (\ x -> SnapshotOptionsStatus' <$> (x .: "Options") <*> (x .: "Status")) instance Hashable SnapshotOptionsStatus instance NFData SnapshotOptionsStatus -- | Specifies a key value pair for a resource tag. -- -- /See:/ 'tag' smart constructor. data Tag = Tag' { _tagKey :: !Text , _tagValue :: !Text } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'Tag' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'tagKey' -- -- * 'tagValue' tag :: Text -- ^ 'tagKey' -> Text -- ^ 'tagValue' -> Tag tag pKey_ pValue_ = Tag' { _tagKey = pKey_ , _tagValue = pValue_ } -- | Specifies the 'TagKey', the name of the tag. Tag keys must be unique for -- the Elasticsearch domain to which they are attached. tagKey :: Lens' Tag Text tagKey = lens _tagKey (\ s a -> s{_tagKey = a}); -- | Specifies the 'TagValue', the value assigned to the corresponding tag -- key. Tag values can be null and do not have to be unique in a tag set. -- For example, you can have a key value pair in a tag set of -- 'project : Trinity' and 'cost-center : Trinity' tagValue :: Lens' Tag Text tagValue = lens _tagValue (\ s a -> s{_tagValue = a}); instance FromJSON Tag where parseJSON = withObject "Tag" (\ x -> Tag' <$> (x .: "Key") <*> (x .: "Value")) instance Hashable Tag instance NFData Tag instance ToJSON Tag where toJSON Tag'{..} = object (catMaybes [Just ("Key" .= _tagKey), Just ("Value" .= _tagValue)])