packages feed

stratosphere-cloudfront-1.0.0: gen/Stratosphere/CloudFront/PublicKey/PublicKeyConfigProperty.hs

module Stratosphere.CloudFront.PublicKey.PublicKeyConfigProperty (
        PublicKeyConfigProperty(..), mkPublicKeyConfigProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data PublicKeyConfigProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-publickey-publickeyconfig.html>
    PublicKeyConfigProperty {haddock_workaround_ :: (),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-publickey-publickeyconfig.html#cfn-cloudfront-publickey-publickeyconfig-callerreference>
                             callerReference :: (Value Prelude.Text),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-publickey-publickeyconfig.html#cfn-cloudfront-publickey-publickeyconfig-comment>
                             comment :: (Prelude.Maybe (Value Prelude.Text)),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-publickey-publickeyconfig.html#cfn-cloudfront-publickey-publickeyconfig-encodedkey>
                             encodedKey :: (Value Prelude.Text),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-publickey-publickeyconfig.html#cfn-cloudfront-publickey-publickeyconfig-name>
                             name :: (Value Prelude.Text)}
  deriving stock (Prelude.Eq, Prelude.Show)
mkPublicKeyConfigProperty ::
  Value Prelude.Text
  -> Value Prelude.Text
     -> Value Prelude.Text -> PublicKeyConfigProperty
mkPublicKeyConfigProperty callerReference encodedKey name
  = PublicKeyConfigProperty
      {haddock_workaround_ = (), callerReference = callerReference,
       encodedKey = encodedKey, name = name, comment = Prelude.Nothing}
instance ToResourceProperties PublicKeyConfigProperty where
  toResourceProperties PublicKeyConfigProperty {..}
    = ResourceProperties
        {awsType = "AWS::CloudFront::PublicKey.PublicKeyConfig",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["CallerReference" JSON..= callerReference,
                            "EncodedKey" JSON..= encodedKey, "Name" JSON..= name]
                           (Prelude.catMaybes [(JSON..=) "Comment" Prelude.<$> comment]))}
instance JSON.ToJSON PublicKeyConfigProperty where
  toJSON PublicKeyConfigProperty {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["CallerReference" JSON..= callerReference,
               "EncodedKey" JSON..= encodedKey, "Name" JSON..= name]
              (Prelude.catMaybes [(JSON..=) "Comment" Prelude.<$> comment])))
instance Property "CallerReference" PublicKeyConfigProperty where
  type PropertyType "CallerReference" PublicKeyConfigProperty = Value Prelude.Text
  set newValue PublicKeyConfigProperty {..}
    = PublicKeyConfigProperty {callerReference = newValue, ..}
instance Property "Comment" PublicKeyConfigProperty where
  type PropertyType "Comment" PublicKeyConfigProperty = Value Prelude.Text
  set newValue PublicKeyConfigProperty {..}
    = PublicKeyConfigProperty {comment = Prelude.pure newValue, ..}
instance Property "EncodedKey" PublicKeyConfigProperty where
  type PropertyType "EncodedKey" PublicKeyConfigProperty = Value Prelude.Text
  set newValue PublicKeyConfigProperty {..}
    = PublicKeyConfigProperty {encodedKey = newValue, ..}
instance Property "Name" PublicKeyConfigProperty where
  type PropertyType "Name" PublicKeyConfigProperty = Value Prelude.Text
  set newValue PublicKeyConfigProperty {..}
    = PublicKeyConfigProperty {name = newValue, ..}