packages feed

stratosphere-0.56.0: library-gen/Stratosphere/ResourceProperties/ElasticsearchDomainDomainEndpointOptions.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-domainendpointoptions.html

module Stratosphere.ResourceProperties.ElasticsearchDomainDomainEndpointOptions where

import Stratosphere.ResourceImports


-- | Full data type definition for ElasticsearchDomainDomainEndpointOptions.
-- See 'elasticsearchDomainDomainEndpointOptions' for a more convenient
-- constructor.
data ElasticsearchDomainDomainEndpointOptions =
  ElasticsearchDomainDomainEndpointOptions
  { _elasticsearchDomainDomainEndpointOptionsEnforceHTTPS :: Maybe (Val Bool)
  , _elasticsearchDomainDomainEndpointOptionsTLSSecurityPolicy :: Maybe (Val Text)
  } deriving (Show, Eq)

instance ToJSON ElasticsearchDomainDomainEndpointOptions where
  toJSON ElasticsearchDomainDomainEndpointOptions{..} =
    object $
    catMaybes
    [ fmap (("EnforceHTTPS",) . toJSON) _elasticsearchDomainDomainEndpointOptionsEnforceHTTPS
    , fmap (("TLSSecurityPolicy",) . toJSON) _elasticsearchDomainDomainEndpointOptionsTLSSecurityPolicy
    ]

-- | Constructor for 'ElasticsearchDomainDomainEndpointOptions' containing
-- required fields as arguments.
elasticsearchDomainDomainEndpointOptions
  :: ElasticsearchDomainDomainEndpointOptions
elasticsearchDomainDomainEndpointOptions  =
  ElasticsearchDomainDomainEndpointOptions
  { _elasticsearchDomainDomainEndpointOptionsEnforceHTTPS = Nothing
  , _elasticsearchDomainDomainEndpointOptionsTLSSecurityPolicy = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-domainendpointoptions.html#cfn-elasticsearch-domain-domainendpointoptions-enforcehttps
eddeoEnforceHTTPS :: Lens' ElasticsearchDomainDomainEndpointOptions (Maybe (Val Bool))
eddeoEnforceHTTPS = lens _elasticsearchDomainDomainEndpointOptionsEnforceHTTPS (\s a -> s { _elasticsearchDomainDomainEndpointOptionsEnforceHTTPS = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-domainendpointoptions.html#cfn-elasticsearch-domain-domainendpointoptions-tlssecuritypolicy
eddeoTLSSecurityPolicy :: Lens' ElasticsearchDomainDomainEndpointOptions (Maybe (Val Text))
eddeoTLSSecurityPolicy = lens _elasticsearchDomainDomainEndpointOptionsTLSSecurityPolicy (\s a -> s { _elasticsearchDomainDomainEndpointOptionsTLSSecurityPolicy = a })