packages feed

amazonka-cloudfront 0.3.6 → 1.0.0

raw patch · 32 files changed

+7725/−5882 lines, 32 filesdep +amazonka-cloudfrontdep +amazonka-testdep +bytestringdep ~amazonka-coredep ~basePVP ok

version bump matches the API change (PVP)

Dependencies added: amazonka-cloudfront, amazonka-test, bytestring, lens, tasty, tasty-hunit, text, time, unordered-containers

Dependency ranges changed: amazonka-core, base

API changes (from Hackage documentation)

- Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: ccfoairCloudFrontOriginAccessIdentity :: Lens' CreateCloudFrontOriginAccessIdentityResponse (Maybe CloudFrontOriginAccessIdentity)
- Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: ccfoairETag :: Lens' CreateCloudFrontOriginAccessIdentityResponse (Maybe Text)
- Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: ccfoairLocation :: Lens' CreateCloudFrontOriginAccessIdentityResponse (Maybe Text)
- Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: instance ToXML CreateCloudFrontOriginAccessIdentity
- Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: instance ToXMLRoot CreateCloudFrontOriginAccessIdentity
- Network.AWS.CloudFront.CreateDistribution: cdrDistribution :: Lens' CreateDistributionResponse (Maybe Distribution)
- Network.AWS.CloudFront.CreateDistribution: cdrETag :: Lens' CreateDistributionResponse (Maybe Text)
- Network.AWS.CloudFront.CreateDistribution: cdrLocation :: Lens' CreateDistributionResponse (Maybe Text)
- Network.AWS.CloudFront.CreateDistribution: instance ToXML CreateDistribution
- Network.AWS.CloudFront.CreateDistribution: instance ToXMLRoot CreateDistribution
- Network.AWS.CloudFront.CreateInvalidation: cirInvalidation :: Lens' CreateInvalidationResponse (Maybe Invalidation)
- Network.AWS.CloudFront.CreateInvalidation: cirLocation :: Lens' CreateInvalidationResponse (Maybe Text)
- Network.AWS.CloudFront.CreateInvalidation: instance ToXML CreateInvalidation
- Network.AWS.CloudFront.CreateInvalidation: instance ToXMLRoot CreateInvalidation
- Network.AWS.CloudFront.CreateStreamingDistribution: csdrETag :: Lens' CreateStreamingDistributionResponse (Maybe Text)
- Network.AWS.CloudFront.CreateStreamingDistribution: csdrLocation :: Lens' CreateStreamingDistributionResponse (Maybe Text)
- Network.AWS.CloudFront.CreateStreamingDistribution: csdrStreamingDistribution :: Lens' CreateStreamingDistributionResponse (Maybe StreamingDistribution)
- Network.AWS.CloudFront.CreateStreamingDistribution: instance ToXML CreateStreamingDistribution
- Network.AWS.CloudFront.CreateStreamingDistribution: instance ToXMLRoot CreateStreamingDistribution
- Network.AWS.CloudFront.DeleteCloudFrontOriginAccessIdentity: instance Ord DeleteCloudFrontOriginAccessIdentity
- Network.AWS.CloudFront.DeleteCloudFrontOriginAccessIdentity: instance Ord DeleteCloudFrontOriginAccessIdentityResponse
- Network.AWS.CloudFront.DeleteCloudFrontOriginAccessIdentity: instance ToXML DeleteCloudFrontOriginAccessIdentity
- Network.AWS.CloudFront.DeleteCloudFrontOriginAccessIdentity: instance ToXMLRoot DeleteCloudFrontOriginAccessIdentity
- Network.AWS.CloudFront.DeleteDistribution: instance Ord DeleteDistribution
- Network.AWS.CloudFront.DeleteDistribution: instance Ord DeleteDistributionResponse
- Network.AWS.CloudFront.DeleteDistribution: instance ToXML DeleteDistribution
- Network.AWS.CloudFront.DeleteDistribution: instance ToXMLRoot DeleteDistribution
- Network.AWS.CloudFront.DeleteStreamingDistribution: instance Ord DeleteStreamingDistribution
- Network.AWS.CloudFront.DeleteStreamingDistribution: instance Ord DeleteStreamingDistributionResponse
- Network.AWS.CloudFront.DeleteStreamingDistribution: instance ToXML DeleteStreamingDistribution
- Network.AWS.CloudFront.DeleteStreamingDistribution: instance ToXMLRoot DeleteStreamingDistribution
- Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: gcfoairCloudFrontOriginAccessIdentity :: Lens' GetCloudFrontOriginAccessIdentityResponse (Maybe CloudFrontOriginAccessIdentity)
- Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: gcfoairETag :: Lens' GetCloudFrontOriginAccessIdentityResponse (Maybe Text)
- Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: instance IsString GetCloudFrontOriginAccessIdentity
- Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: instance Monoid GetCloudFrontOriginAccessIdentity
- Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: instance Ord GetCloudFrontOriginAccessIdentity
- Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: instance ToXML GetCloudFrontOriginAccessIdentity
- Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: instance ToXMLRoot GetCloudFrontOriginAccessIdentity
- Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: gcfoaicrCloudFrontOriginAccessIdentityConfig :: Lens' GetCloudFrontOriginAccessIdentityConfigResponse (Maybe CloudFrontOriginAccessIdentityConfig)
- Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: gcfoaicrETag :: Lens' GetCloudFrontOriginAccessIdentityConfigResponse (Maybe Text)
- Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: instance IsString GetCloudFrontOriginAccessIdentityConfig
- Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: instance Monoid GetCloudFrontOriginAccessIdentityConfig
- Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: instance Ord GetCloudFrontOriginAccessIdentityConfig
- Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: instance ToXML GetCloudFrontOriginAccessIdentityConfig
- Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: instance ToXMLRoot GetCloudFrontOriginAccessIdentityConfig
- Network.AWS.CloudFront.GetDistribution: gdrDistribution :: Lens' GetDistributionResponse (Maybe Distribution)
- Network.AWS.CloudFront.GetDistribution: gdrETag :: Lens' GetDistributionResponse (Maybe Text)
- Network.AWS.CloudFront.GetDistribution: instance IsString GetDistribution
- Network.AWS.CloudFront.GetDistribution: instance Monoid GetDistribution
- Network.AWS.CloudFront.GetDistribution: instance Ord GetDistribution
- Network.AWS.CloudFront.GetDistribution: instance ToXML GetDistribution
- Network.AWS.CloudFront.GetDistribution: instance ToXMLRoot GetDistribution
- Network.AWS.CloudFront.GetDistributionConfig: gdcrDistributionConfig :: Lens' GetDistributionConfigResponse (Maybe DistributionConfig)
- Network.AWS.CloudFront.GetDistributionConfig: gdcrETag :: Lens' GetDistributionConfigResponse (Maybe Text)
- Network.AWS.CloudFront.GetDistributionConfig: instance IsString GetDistributionConfig
- Network.AWS.CloudFront.GetDistributionConfig: instance Monoid GetDistributionConfig
- Network.AWS.CloudFront.GetDistributionConfig: instance Ord GetDistributionConfig
- Network.AWS.CloudFront.GetDistributionConfig: instance ToXML GetDistributionConfig
- Network.AWS.CloudFront.GetDistributionConfig: instance ToXMLRoot GetDistributionConfig
- Network.AWS.CloudFront.GetInvalidation: girInvalidation :: Lens' GetInvalidationResponse (Maybe Invalidation)
- Network.AWS.CloudFront.GetInvalidation: instance FromXML GetInvalidationResponse
- Network.AWS.CloudFront.GetInvalidation: instance Ord GetInvalidation
- Network.AWS.CloudFront.GetInvalidation: instance ToXML GetInvalidation
- Network.AWS.CloudFront.GetInvalidation: instance ToXMLRoot GetInvalidation
- Network.AWS.CloudFront.GetStreamingDistribution: gsdrETag :: Lens' GetStreamingDistributionResponse (Maybe Text)
- Network.AWS.CloudFront.GetStreamingDistribution: gsdrStreamingDistribution :: Lens' GetStreamingDistributionResponse (Maybe StreamingDistribution)
- Network.AWS.CloudFront.GetStreamingDistribution: instance IsString GetStreamingDistribution
- Network.AWS.CloudFront.GetStreamingDistribution: instance Monoid GetStreamingDistribution
- Network.AWS.CloudFront.GetStreamingDistribution: instance Ord GetStreamingDistribution
- Network.AWS.CloudFront.GetStreamingDistribution: instance ToXML GetStreamingDistribution
- Network.AWS.CloudFront.GetStreamingDistribution: instance ToXMLRoot GetStreamingDistribution
- Network.AWS.CloudFront.GetStreamingDistributionConfig: gsdcrETag :: Lens' GetStreamingDistributionConfigResponse (Maybe Text)
- Network.AWS.CloudFront.GetStreamingDistributionConfig: gsdcrStreamingDistributionConfig :: Lens' GetStreamingDistributionConfigResponse (Maybe StreamingDistributionConfig)
- Network.AWS.CloudFront.GetStreamingDistributionConfig: instance IsString GetStreamingDistributionConfig
- Network.AWS.CloudFront.GetStreamingDistributionConfig: instance Monoid GetStreamingDistributionConfig
- Network.AWS.CloudFront.GetStreamingDistributionConfig: instance Ord GetStreamingDistributionConfig
- Network.AWS.CloudFront.GetStreamingDistributionConfig: instance ToXML GetStreamingDistributionConfig
- Network.AWS.CloudFront.GetStreamingDistributionConfig: instance ToXMLRoot GetStreamingDistributionConfig
- Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities: instance AWSPager ListCloudFrontOriginAccessIdentities
- Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities: instance FromXML ListCloudFrontOriginAccessIdentitiesResponse
- Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities: instance Ord ListCloudFrontOriginAccessIdentities
- Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities: instance ToXML ListCloudFrontOriginAccessIdentities
- Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities: instance ToXMLRoot ListCloudFrontOriginAccessIdentities
- Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities: lcfoairCloudFrontOriginAccessIdentityList :: Lens' ListCloudFrontOriginAccessIdentitiesResponse CloudFrontOriginAccessIdentityList
- Network.AWS.CloudFront.ListDistributions: instance AWSPager ListDistributions
- Network.AWS.CloudFront.ListDistributions: instance FromXML ListDistributionsResponse
- Network.AWS.CloudFront.ListDistributions: instance Ord ListDistributions
- Network.AWS.CloudFront.ListDistributions: instance ToXML ListDistributions
- Network.AWS.CloudFront.ListDistributions: instance ToXMLRoot ListDistributions
- Network.AWS.CloudFront.ListDistributions: ldrDistributionList :: Lens' ListDistributionsResponse DistributionList
- Network.AWS.CloudFront.ListInvalidations: instance AWSPager ListInvalidations
- Network.AWS.CloudFront.ListInvalidations: instance FromXML ListInvalidationsResponse
- Network.AWS.CloudFront.ListInvalidations: instance Ord ListInvalidations
- Network.AWS.CloudFront.ListInvalidations: instance ToXML ListInvalidations
- Network.AWS.CloudFront.ListInvalidations: instance ToXMLRoot ListInvalidations
- Network.AWS.CloudFront.ListInvalidations: lirInvalidationList :: Lens' ListInvalidationsResponse InvalidationList
- Network.AWS.CloudFront.ListStreamingDistributions: instance AWSPager ListStreamingDistributions
- Network.AWS.CloudFront.ListStreamingDistributions: instance FromXML ListStreamingDistributionsResponse
- Network.AWS.CloudFront.ListStreamingDistributions: instance Ord ListStreamingDistributions
- Network.AWS.CloudFront.ListStreamingDistributions: instance ToXML ListStreamingDistributions
- Network.AWS.CloudFront.ListStreamingDistributions: instance ToXMLRoot ListStreamingDistributions
- Network.AWS.CloudFront.ListStreamingDistributions: lsdrStreamingDistributionList :: Lens' ListStreamingDistributionsResponse StreamingDistributionList
- Network.AWS.CloudFront.Types: All :: ItemSelection
- Network.AWS.CloudFront.Types: Delete' :: Method
- Network.AWS.CloudFront.Types: GRTBlacklist :: GeoRestrictionType
- Network.AWS.CloudFront.Types: GRTNone :: GeoRestrictionType
- Network.AWS.CloudFront.Types: GRTWhitelist :: GeoRestrictionType
- Network.AWS.CloudFront.Types: Head' :: Method
- Network.AWS.CloudFront.Types: HttpOnly :: OriginProtocolPolicy
- Network.AWS.CloudFront.Types: HttpsOnly :: ViewerProtocolPolicy
- Network.AWS.CloudFront.Types: RedirectToHttps :: ViewerProtocolPolicy
- Network.AWS.CloudFront.Types: SSLv3 :: MinimumProtocolVersion
- Network.AWS.CloudFront.Types: SniOnly :: SSLSupportMethod
- Network.AWS.CloudFront.Types: TLSv1 :: MinimumProtocolVersion
- Network.AWS.CloudFront.Types: Vip :: SSLSupportMethod
- Network.AWS.CloudFront.Types: cerErrorCachingMinTTL :: Lens' CustomErrorResponse (Maybe Integer)
- Network.AWS.CloudFront.Types: cerErrorCode :: Lens' CustomErrorResponse Int
- Network.AWS.CloudFront.Types: cerResponseCode :: Lens' CustomErrorResponse (Maybe Text)
- Network.AWS.CloudFront.Types: cerResponsePagePath :: Lens' CustomErrorResponse (Maybe Text)
- Network.AWS.CloudFront.Types: data RESTError :: *
- Network.AWS.CloudFront.Types: instance Constructor C1_0GeoRestrictionType
- Network.AWS.CloudFront.Types: instance Constructor C1_0ItemSelection
- Network.AWS.CloudFront.Types: instance Constructor C1_0Method
- Network.AWS.CloudFront.Types: instance Constructor C1_0MinimumProtocolVersion
- Network.AWS.CloudFront.Types: instance Constructor C1_0OriginProtocolPolicy
- Network.AWS.CloudFront.Types: instance Constructor C1_0PriceClass
- Network.AWS.CloudFront.Types: instance Constructor C1_0SSLSupportMethod
- Network.AWS.CloudFront.Types: instance Constructor C1_0ViewerProtocolPolicy
- Network.AWS.CloudFront.Types: instance Constructor C1_1GeoRestrictionType
- Network.AWS.CloudFront.Types: instance Constructor C1_1ItemSelection
- Network.AWS.CloudFront.Types: instance Constructor C1_1Method
- Network.AWS.CloudFront.Types: instance Constructor C1_1MinimumProtocolVersion
- Network.AWS.CloudFront.Types: instance Constructor C1_1OriginProtocolPolicy
- Network.AWS.CloudFront.Types: instance Constructor C1_1PriceClass
- Network.AWS.CloudFront.Types: instance Constructor C1_1SSLSupportMethod
- Network.AWS.CloudFront.Types: instance Constructor C1_1ViewerProtocolPolicy
- Network.AWS.CloudFront.Types: instance Constructor C1_2GeoRestrictionType
- Network.AWS.CloudFront.Types: instance Constructor C1_2ItemSelection
- Network.AWS.CloudFront.Types: instance Constructor C1_2Method
- Network.AWS.CloudFront.Types: instance Constructor C1_2PriceClass
- Network.AWS.CloudFront.Types: instance Constructor C1_2ViewerProtocolPolicy
- Network.AWS.CloudFront.Types: instance Constructor C1_3Method
- Network.AWS.CloudFront.Types: instance Constructor C1_4Method
- Network.AWS.CloudFront.Types: instance Constructor C1_5Method
- Network.AWS.CloudFront.Types: instance Constructor C1_6Method
- Network.AWS.CloudFront.Types: instance Datatype D1GeoRestrictionType
- Network.AWS.CloudFront.Types: instance Datatype D1ItemSelection
- Network.AWS.CloudFront.Types: instance Datatype D1Method
- Network.AWS.CloudFront.Types: instance Datatype D1MinimumProtocolVersion
- Network.AWS.CloudFront.Types: instance Datatype D1OriginProtocolPolicy
- Network.AWS.CloudFront.Types: instance Datatype D1PriceClass
- Network.AWS.CloudFront.Types: instance Datatype D1SSLSupportMethod
- Network.AWS.CloudFront.Types: instance Datatype D1ViewerProtocolPolicy
- Network.AWS.CloudFront.Types: instance Enum GeoRestrictionType
- Network.AWS.CloudFront.Types: instance Enum ItemSelection
- Network.AWS.CloudFront.Types: instance Enum Method
- Network.AWS.CloudFront.Types: instance Enum MinimumProtocolVersion
- Network.AWS.CloudFront.Types: instance Enum OriginProtocolPolicy
- Network.AWS.CloudFront.Types: instance Enum PriceClass
- Network.AWS.CloudFront.Types: instance Enum SSLSupportMethod
- Network.AWS.CloudFront.Types: instance Enum ViewerProtocolPolicy
- Network.AWS.CloudFront.Types: instance Eq ActiveTrustedSigners
- Network.AWS.CloudFront.Types: instance Eq Aliases
- Network.AWS.CloudFront.Types: instance Eq AllowedMethods
- Network.AWS.CloudFront.Types: instance Eq CacheBehavior
- Network.AWS.CloudFront.Types: instance Eq CacheBehaviors
- Network.AWS.CloudFront.Types: instance Eq CachedMethods
- Network.AWS.CloudFront.Types: instance Eq CloudFrontOriginAccessIdentity
- Network.AWS.CloudFront.Types: instance Eq CloudFrontOriginAccessIdentityConfig
- Network.AWS.CloudFront.Types: instance Eq CloudFrontOriginAccessIdentityList
- Network.AWS.CloudFront.Types: instance Eq CloudFrontOriginAccessIdentitySummary
- Network.AWS.CloudFront.Types: instance Eq CookieNames
- Network.AWS.CloudFront.Types: instance Eq CookiePreference
- Network.AWS.CloudFront.Types: instance Eq CustomErrorResponse
- Network.AWS.CloudFront.Types: instance Eq CustomErrorResponses
- Network.AWS.CloudFront.Types: instance Eq CustomOriginConfig
- Network.AWS.CloudFront.Types: instance Eq DefaultCacheBehavior
- Network.AWS.CloudFront.Types: instance Eq Distribution
- Network.AWS.CloudFront.Types: instance Eq DistributionConfig
- Network.AWS.CloudFront.Types: instance Eq DistributionList
- Network.AWS.CloudFront.Types: instance Eq DistributionSummary
- Network.AWS.CloudFront.Types: instance Eq ForwardedValues
- Network.AWS.CloudFront.Types: instance Eq GeoRestriction
- Network.AWS.CloudFront.Types: instance Eq GeoRestrictionType
- Network.AWS.CloudFront.Types: instance Eq Headers
- Network.AWS.CloudFront.Types: instance Eq Invalidation
- Network.AWS.CloudFront.Types: instance Eq InvalidationBatch
- Network.AWS.CloudFront.Types: instance Eq InvalidationList
- Network.AWS.CloudFront.Types: instance Eq InvalidationSummary
- Network.AWS.CloudFront.Types: instance Eq ItemSelection
- Network.AWS.CloudFront.Types: instance Eq KeyPairIds
- Network.AWS.CloudFront.Types: instance Eq LoggingConfig
- Network.AWS.CloudFront.Types: instance Eq Method
- Network.AWS.CloudFront.Types: instance Eq MinimumProtocolVersion
- Network.AWS.CloudFront.Types: instance Eq Origin
- Network.AWS.CloudFront.Types: instance Eq OriginProtocolPolicy
- Network.AWS.CloudFront.Types: instance Eq Origins
- Network.AWS.CloudFront.Types: instance Eq Paths
- Network.AWS.CloudFront.Types: instance Eq PriceClass
- Network.AWS.CloudFront.Types: instance Eq Restrictions
- Network.AWS.CloudFront.Types: instance Eq S3Origin
- Network.AWS.CloudFront.Types: instance Eq S3OriginConfig
- Network.AWS.CloudFront.Types: instance Eq SSLSupportMethod
- Network.AWS.CloudFront.Types: instance Eq Signer
- Network.AWS.CloudFront.Types: instance Eq StreamingDistribution
- Network.AWS.CloudFront.Types: instance Eq StreamingDistributionConfig
- Network.AWS.CloudFront.Types: instance Eq StreamingDistributionList
- Network.AWS.CloudFront.Types: instance Eq StreamingDistributionSummary
- Network.AWS.CloudFront.Types: instance Eq StreamingLoggingConfig
- Network.AWS.CloudFront.Types: instance Eq TrustedSigners
- Network.AWS.CloudFront.Types: instance Eq ViewerCertificate
- Network.AWS.CloudFront.Types: instance Eq ViewerProtocolPolicy
- Network.AWS.CloudFront.Types: instance FromText GeoRestrictionType
- Network.AWS.CloudFront.Types: instance FromText ItemSelection
- Network.AWS.CloudFront.Types: instance FromText Method
- Network.AWS.CloudFront.Types: instance FromText MinimumProtocolVersion
- Network.AWS.CloudFront.Types: instance FromText OriginProtocolPolicy
- Network.AWS.CloudFront.Types: instance FromText PriceClass
- Network.AWS.CloudFront.Types: instance FromText SSLSupportMethod
- Network.AWS.CloudFront.Types: instance FromText ViewerProtocolPolicy
- Network.AWS.CloudFront.Types: instance FromXML ActiveTrustedSigners
- Network.AWS.CloudFront.Types: instance FromXML Aliases
- Network.AWS.CloudFront.Types: instance FromXML AllowedMethods
- Network.AWS.CloudFront.Types: instance FromXML CacheBehavior
- Network.AWS.CloudFront.Types: instance FromXML CacheBehaviors
- Network.AWS.CloudFront.Types: instance FromXML CachedMethods
- Network.AWS.CloudFront.Types: instance FromXML CloudFrontOriginAccessIdentity
- Network.AWS.CloudFront.Types: instance FromXML CloudFrontOriginAccessIdentityConfig
- Network.AWS.CloudFront.Types: instance FromXML CloudFrontOriginAccessIdentityList
- Network.AWS.CloudFront.Types: instance FromXML CloudFrontOriginAccessIdentitySummary
- Network.AWS.CloudFront.Types: instance FromXML CookieNames
- Network.AWS.CloudFront.Types: instance FromXML CookiePreference
- Network.AWS.CloudFront.Types: instance FromXML CustomErrorResponse
- Network.AWS.CloudFront.Types: instance FromXML CustomErrorResponses
- Network.AWS.CloudFront.Types: instance FromXML CustomOriginConfig
- Network.AWS.CloudFront.Types: instance FromXML DefaultCacheBehavior
- Network.AWS.CloudFront.Types: instance FromXML Distribution
- Network.AWS.CloudFront.Types: instance FromXML DistributionConfig
- Network.AWS.CloudFront.Types: instance FromXML DistributionList
- Network.AWS.CloudFront.Types: instance FromXML DistributionSummary
- Network.AWS.CloudFront.Types: instance FromXML ForwardedValues
- Network.AWS.CloudFront.Types: instance FromXML GeoRestriction
- Network.AWS.CloudFront.Types: instance FromXML GeoRestrictionType
- Network.AWS.CloudFront.Types: instance FromXML Headers
- Network.AWS.CloudFront.Types: instance FromXML Invalidation
- Network.AWS.CloudFront.Types: instance FromXML InvalidationBatch
- Network.AWS.CloudFront.Types: instance FromXML InvalidationList
- Network.AWS.CloudFront.Types: instance FromXML InvalidationSummary
- Network.AWS.CloudFront.Types: instance FromXML ItemSelection
- Network.AWS.CloudFront.Types: instance FromXML KeyPairIds
- Network.AWS.CloudFront.Types: instance FromXML LoggingConfig
- Network.AWS.CloudFront.Types: instance FromXML Method
- Network.AWS.CloudFront.Types: instance FromXML MinimumProtocolVersion
- Network.AWS.CloudFront.Types: instance FromXML Origin
- Network.AWS.CloudFront.Types: instance FromXML OriginProtocolPolicy
- Network.AWS.CloudFront.Types: instance FromXML Origins
- Network.AWS.CloudFront.Types: instance FromXML Paths
- Network.AWS.CloudFront.Types: instance FromXML PriceClass
- Network.AWS.CloudFront.Types: instance FromXML Restrictions
- Network.AWS.CloudFront.Types: instance FromXML S3Origin
- Network.AWS.CloudFront.Types: instance FromXML S3OriginConfig
- Network.AWS.CloudFront.Types: instance FromXML SSLSupportMethod
- Network.AWS.CloudFront.Types: instance FromXML Signer
- Network.AWS.CloudFront.Types: instance FromXML StreamingDistribution
- Network.AWS.CloudFront.Types: instance FromXML StreamingDistributionConfig
- Network.AWS.CloudFront.Types: instance FromXML StreamingDistributionList
- Network.AWS.CloudFront.Types: instance FromXML StreamingDistributionSummary
- Network.AWS.CloudFront.Types: instance FromXML StreamingLoggingConfig
- Network.AWS.CloudFront.Types: instance FromXML TrustedSigners
- Network.AWS.CloudFront.Types: instance FromXML ViewerCertificate
- Network.AWS.CloudFront.Types: instance FromXML ViewerProtocolPolicy
- Network.AWS.CloudFront.Types: instance Generic GeoRestrictionType
- Network.AWS.CloudFront.Types: instance Generic ItemSelection
- Network.AWS.CloudFront.Types: instance Generic Method
- Network.AWS.CloudFront.Types: instance Generic MinimumProtocolVersion
- Network.AWS.CloudFront.Types: instance Generic OriginProtocolPolicy
- Network.AWS.CloudFront.Types: instance Generic PriceClass
- Network.AWS.CloudFront.Types: instance Generic SSLSupportMethod
- Network.AWS.CloudFront.Types: instance Generic ViewerProtocolPolicy
- Network.AWS.CloudFront.Types: instance Hashable GeoRestrictionType
- Network.AWS.CloudFront.Types: instance Hashable ItemSelection
- Network.AWS.CloudFront.Types: instance Hashable Method
- Network.AWS.CloudFront.Types: instance Hashable MinimumProtocolVersion
- Network.AWS.CloudFront.Types: instance Hashable OriginProtocolPolicy
- Network.AWS.CloudFront.Types: instance Hashable PriceClass
- Network.AWS.CloudFront.Types: instance Hashable SSLSupportMethod
- Network.AWS.CloudFront.Types: instance Hashable ViewerProtocolPolicy
- Network.AWS.CloudFront.Types: instance IsString S3OriginConfig
- Network.AWS.CloudFront.Types: instance Monoid S3OriginConfig
- Network.AWS.CloudFront.Types: instance Ord Aliases
- Network.AWS.CloudFront.Types: instance Ord CloudFrontOriginAccessIdentityConfig
- Network.AWS.CloudFront.Types: instance Ord CloudFrontOriginAccessIdentitySummary
- Network.AWS.CloudFront.Types: instance Ord CookieNames
- Network.AWS.CloudFront.Types: instance Ord CustomErrorResponse
- Network.AWS.CloudFront.Types: instance Ord GeoRestrictionType
- Network.AWS.CloudFront.Types: instance Ord Headers
- Network.AWS.CloudFront.Types: instance Ord InvalidationSummary
- Network.AWS.CloudFront.Types: instance Ord ItemSelection
- Network.AWS.CloudFront.Types: instance Ord KeyPairIds
- Network.AWS.CloudFront.Types: instance Ord LoggingConfig
- Network.AWS.CloudFront.Types: instance Ord Method
- Network.AWS.CloudFront.Types: instance Ord MinimumProtocolVersion
- Network.AWS.CloudFront.Types: instance Ord OriginProtocolPolicy
- Network.AWS.CloudFront.Types: instance Ord Paths
- Network.AWS.CloudFront.Types: instance Ord PriceClass
- Network.AWS.CloudFront.Types: instance Ord S3Origin
- Network.AWS.CloudFront.Types: instance Ord S3OriginConfig
- Network.AWS.CloudFront.Types: instance Ord SSLSupportMethod
- Network.AWS.CloudFront.Types: instance Ord StreamingLoggingConfig
- Network.AWS.CloudFront.Types: instance Ord TrustedSigners
- Network.AWS.CloudFront.Types: instance Ord ViewerProtocolPolicy
- Network.AWS.CloudFront.Types: instance Read ActiveTrustedSigners
- Network.AWS.CloudFront.Types: instance Read Aliases
- Network.AWS.CloudFront.Types: instance Read AllowedMethods
- Network.AWS.CloudFront.Types: instance Read CacheBehavior
- Network.AWS.CloudFront.Types: instance Read CacheBehaviors
- Network.AWS.CloudFront.Types: instance Read CachedMethods
- Network.AWS.CloudFront.Types: instance Read CloudFrontOriginAccessIdentity
- Network.AWS.CloudFront.Types: instance Read CloudFrontOriginAccessIdentityConfig
- Network.AWS.CloudFront.Types: instance Read CloudFrontOriginAccessIdentityList
- Network.AWS.CloudFront.Types: instance Read CloudFrontOriginAccessIdentitySummary
- Network.AWS.CloudFront.Types: instance Read CookieNames
- Network.AWS.CloudFront.Types: instance Read CookiePreference
- Network.AWS.CloudFront.Types: instance Read CustomErrorResponse
- Network.AWS.CloudFront.Types: instance Read CustomErrorResponses
- Network.AWS.CloudFront.Types: instance Read CustomOriginConfig
- Network.AWS.CloudFront.Types: instance Read DefaultCacheBehavior
- Network.AWS.CloudFront.Types: instance Read Distribution
- Network.AWS.CloudFront.Types: instance Read DistributionConfig
- Network.AWS.CloudFront.Types: instance Read DistributionList
- Network.AWS.CloudFront.Types: instance Read DistributionSummary
- Network.AWS.CloudFront.Types: instance Read ForwardedValues
- Network.AWS.CloudFront.Types: instance Read GeoRestriction
- Network.AWS.CloudFront.Types: instance Read GeoRestrictionType
- Network.AWS.CloudFront.Types: instance Read Headers
- Network.AWS.CloudFront.Types: instance Read Invalidation
- Network.AWS.CloudFront.Types: instance Read InvalidationBatch
- Network.AWS.CloudFront.Types: instance Read InvalidationList
- Network.AWS.CloudFront.Types: instance Read InvalidationSummary
- Network.AWS.CloudFront.Types: instance Read ItemSelection
- Network.AWS.CloudFront.Types: instance Read KeyPairIds
- Network.AWS.CloudFront.Types: instance Read LoggingConfig
- Network.AWS.CloudFront.Types: instance Read Method
- Network.AWS.CloudFront.Types: instance Read MinimumProtocolVersion
- Network.AWS.CloudFront.Types: instance Read Origin
- Network.AWS.CloudFront.Types: instance Read OriginProtocolPolicy
- Network.AWS.CloudFront.Types: instance Read Origins
- Network.AWS.CloudFront.Types: instance Read Paths
- Network.AWS.CloudFront.Types: instance Read PriceClass
- Network.AWS.CloudFront.Types: instance Read Restrictions
- Network.AWS.CloudFront.Types: instance Read S3Origin
- Network.AWS.CloudFront.Types: instance Read S3OriginConfig
- Network.AWS.CloudFront.Types: instance Read SSLSupportMethod
- Network.AWS.CloudFront.Types: instance Read Signer
- Network.AWS.CloudFront.Types: instance Read StreamingDistribution
- Network.AWS.CloudFront.Types: instance Read StreamingDistributionConfig
- Network.AWS.CloudFront.Types: instance Read StreamingDistributionList
- Network.AWS.CloudFront.Types: instance Read StreamingDistributionSummary
- Network.AWS.CloudFront.Types: instance Read StreamingLoggingConfig
- Network.AWS.CloudFront.Types: instance Read TrustedSigners
- Network.AWS.CloudFront.Types: instance Read ViewerCertificate
- Network.AWS.CloudFront.Types: instance Read ViewerProtocolPolicy
- Network.AWS.CloudFront.Types: instance Show ActiveTrustedSigners
- Network.AWS.CloudFront.Types: instance Show Aliases
- Network.AWS.CloudFront.Types: instance Show AllowedMethods
- Network.AWS.CloudFront.Types: instance Show CacheBehavior
- Network.AWS.CloudFront.Types: instance Show CacheBehaviors
- Network.AWS.CloudFront.Types: instance Show CachedMethods
- Network.AWS.CloudFront.Types: instance Show CloudFrontOriginAccessIdentity
- Network.AWS.CloudFront.Types: instance Show CloudFrontOriginAccessIdentityConfig
- Network.AWS.CloudFront.Types: instance Show CloudFrontOriginAccessIdentityList
- Network.AWS.CloudFront.Types: instance Show CloudFrontOriginAccessIdentitySummary
- Network.AWS.CloudFront.Types: instance Show CookieNames
- Network.AWS.CloudFront.Types: instance Show CookiePreference
- Network.AWS.CloudFront.Types: instance Show CustomErrorResponse
- Network.AWS.CloudFront.Types: instance Show CustomErrorResponses
- Network.AWS.CloudFront.Types: instance Show CustomOriginConfig
- Network.AWS.CloudFront.Types: instance Show DefaultCacheBehavior
- Network.AWS.CloudFront.Types: instance Show Distribution
- Network.AWS.CloudFront.Types: instance Show DistributionConfig
- Network.AWS.CloudFront.Types: instance Show DistributionList
- Network.AWS.CloudFront.Types: instance Show DistributionSummary
- Network.AWS.CloudFront.Types: instance Show ForwardedValues
- Network.AWS.CloudFront.Types: instance Show GeoRestriction
- Network.AWS.CloudFront.Types: instance Show GeoRestrictionType
- Network.AWS.CloudFront.Types: instance Show Headers
- Network.AWS.CloudFront.Types: instance Show Invalidation
- Network.AWS.CloudFront.Types: instance Show InvalidationBatch
- Network.AWS.CloudFront.Types: instance Show InvalidationList
- Network.AWS.CloudFront.Types: instance Show InvalidationSummary
- Network.AWS.CloudFront.Types: instance Show ItemSelection
- Network.AWS.CloudFront.Types: instance Show KeyPairIds
- Network.AWS.CloudFront.Types: instance Show LoggingConfig
- Network.AWS.CloudFront.Types: instance Show Method
- Network.AWS.CloudFront.Types: instance Show MinimumProtocolVersion
- Network.AWS.CloudFront.Types: instance Show Origin
- Network.AWS.CloudFront.Types: instance Show OriginProtocolPolicy
- Network.AWS.CloudFront.Types: instance Show Origins
- Network.AWS.CloudFront.Types: instance Show Paths
- Network.AWS.CloudFront.Types: instance Show PriceClass
- Network.AWS.CloudFront.Types: instance Show Restrictions
- Network.AWS.CloudFront.Types: instance Show S3Origin
- Network.AWS.CloudFront.Types: instance Show S3OriginConfig
- Network.AWS.CloudFront.Types: instance Show SSLSupportMethod
- Network.AWS.CloudFront.Types: instance Show Signer
- Network.AWS.CloudFront.Types: instance Show StreamingDistribution
- Network.AWS.CloudFront.Types: instance Show StreamingDistributionConfig
- Network.AWS.CloudFront.Types: instance Show StreamingDistributionList
- Network.AWS.CloudFront.Types: instance Show StreamingDistributionSummary
- Network.AWS.CloudFront.Types: instance Show StreamingLoggingConfig
- Network.AWS.CloudFront.Types: instance Show TrustedSigners
- Network.AWS.CloudFront.Types: instance Show ViewerCertificate
- Network.AWS.CloudFront.Types: instance Show ViewerProtocolPolicy
- Network.AWS.CloudFront.Types: instance ToByteString GeoRestrictionType
- Network.AWS.CloudFront.Types: instance ToByteString ItemSelection
- Network.AWS.CloudFront.Types: instance ToByteString Method
- Network.AWS.CloudFront.Types: instance ToByteString MinimumProtocolVersion
- Network.AWS.CloudFront.Types: instance ToByteString OriginProtocolPolicy
- Network.AWS.CloudFront.Types: instance ToByteString PriceClass
- Network.AWS.CloudFront.Types: instance ToByteString SSLSupportMethod
- Network.AWS.CloudFront.Types: instance ToByteString ViewerProtocolPolicy
- Network.AWS.CloudFront.Types: instance ToHeader GeoRestrictionType
- Network.AWS.CloudFront.Types: instance ToHeader ItemSelection
- Network.AWS.CloudFront.Types: instance ToHeader Method
- Network.AWS.CloudFront.Types: instance ToHeader MinimumProtocolVersion
- Network.AWS.CloudFront.Types: instance ToHeader OriginProtocolPolicy
- Network.AWS.CloudFront.Types: instance ToHeader PriceClass
- Network.AWS.CloudFront.Types: instance ToHeader SSLSupportMethod
- Network.AWS.CloudFront.Types: instance ToHeader ViewerProtocolPolicy
- Network.AWS.CloudFront.Types: instance ToQuery GeoRestrictionType
- Network.AWS.CloudFront.Types: instance ToQuery ItemSelection
- Network.AWS.CloudFront.Types: instance ToQuery Method
- Network.AWS.CloudFront.Types: instance ToQuery MinimumProtocolVersion
- Network.AWS.CloudFront.Types: instance ToQuery OriginProtocolPolicy
- Network.AWS.CloudFront.Types: instance ToQuery PriceClass
- Network.AWS.CloudFront.Types: instance ToQuery SSLSupportMethod
- Network.AWS.CloudFront.Types: instance ToQuery ViewerProtocolPolicy
- Network.AWS.CloudFront.Types: instance ToText GeoRestrictionType
- Network.AWS.CloudFront.Types: instance ToText ItemSelection
- Network.AWS.CloudFront.Types: instance ToText Method
- Network.AWS.CloudFront.Types: instance ToText MinimumProtocolVersion
- Network.AWS.CloudFront.Types: instance ToText OriginProtocolPolicy
- Network.AWS.CloudFront.Types: instance ToText PriceClass
- Network.AWS.CloudFront.Types: instance ToText SSLSupportMethod
- Network.AWS.CloudFront.Types: instance ToText ViewerProtocolPolicy
- Network.AWS.CloudFront.Types: instance ToXML ActiveTrustedSigners
- Network.AWS.CloudFront.Types: instance ToXML Aliases
- Network.AWS.CloudFront.Types: instance ToXML AllowedMethods
- Network.AWS.CloudFront.Types: instance ToXML CacheBehavior
- Network.AWS.CloudFront.Types: instance ToXML CacheBehaviors
- Network.AWS.CloudFront.Types: instance ToXML CachedMethods
- Network.AWS.CloudFront.Types: instance ToXML CloudFrontOriginAccessIdentity
- Network.AWS.CloudFront.Types: instance ToXML CloudFrontOriginAccessIdentityConfig
- Network.AWS.CloudFront.Types: instance ToXML CloudFrontOriginAccessIdentityList
- Network.AWS.CloudFront.Types: instance ToXML CloudFrontOriginAccessIdentitySummary
- Network.AWS.CloudFront.Types: instance ToXML CookieNames
- Network.AWS.CloudFront.Types: instance ToXML CookiePreference
- Network.AWS.CloudFront.Types: instance ToXML CustomErrorResponse
- Network.AWS.CloudFront.Types: instance ToXML CustomErrorResponses
- Network.AWS.CloudFront.Types: instance ToXML CustomOriginConfig
- Network.AWS.CloudFront.Types: instance ToXML DefaultCacheBehavior
- Network.AWS.CloudFront.Types: instance ToXML Distribution
- Network.AWS.CloudFront.Types: instance ToXML DistributionConfig
- Network.AWS.CloudFront.Types: instance ToXML DistributionList
- Network.AWS.CloudFront.Types: instance ToXML DistributionSummary
- Network.AWS.CloudFront.Types: instance ToXML ForwardedValues
- Network.AWS.CloudFront.Types: instance ToXML GeoRestriction
- Network.AWS.CloudFront.Types: instance ToXML GeoRestrictionType
- Network.AWS.CloudFront.Types: instance ToXML Headers
- Network.AWS.CloudFront.Types: instance ToXML Invalidation
- Network.AWS.CloudFront.Types: instance ToXML InvalidationBatch
- Network.AWS.CloudFront.Types: instance ToXML InvalidationList
- Network.AWS.CloudFront.Types: instance ToXML InvalidationSummary
- Network.AWS.CloudFront.Types: instance ToXML ItemSelection
- Network.AWS.CloudFront.Types: instance ToXML KeyPairIds
- Network.AWS.CloudFront.Types: instance ToXML LoggingConfig
- Network.AWS.CloudFront.Types: instance ToXML Method
- Network.AWS.CloudFront.Types: instance ToXML MinimumProtocolVersion
- Network.AWS.CloudFront.Types: instance ToXML Origin
- Network.AWS.CloudFront.Types: instance ToXML OriginProtocolPolicy
- Network.AWS.CloudFront.Types: instance ToXML Origins
- Network.AWS.CloudFront.Types: instance ToXML Paths
- Network.AWS.CloudFront.Types: instance ToXML PriceClass
- Network.AWS.CloudFront.Types: instance ToXML Restrictions
- Network.AWS.CloudFront.Types: instance ToXML S3Origin
- Network.AWS.CloudFront.Types: instance ToXML S3OriginConfig
- Network.AWS.CloudFront.Types: instance ToXML SSLSupportMethod
- Network.AWS.CloudFront.Types: instance ToXML Signer
- Network.AWS.CloudFront.Types: instance ToXML StreamingDistribution
- Network.AWS.CloudFront.Types: instance ToXML StreamingDistributionConfig
- Network.AWS.CloudFront.Types: instance ToXML StreamingDistributionList
- Network.AWS.CloudFront.Types: instance ToXML StreamingDistributionSummary
- Network.AWS.CloudFront.Types: instance ToXML StreamingLoggingConfig
- Network.AWS.CloudFront.Types: instance ToXML TrustedSigners
- Network.AWS.CloudFront.Types: instance ToXML ViewerCertificate
- Network.AWS.CloudFront.Types: instance ToXML ViewerProtocolPolicy
- Network.AWS.CloudFront.Types: instance ToXMLRoot CloudFrontOriginAccessIdentity
- Network.AWS.CloudFront.Types: instance ToXMLRoot CloudFrontOriginAccessIdentityConfig
- Network.AWS.CloudFront.Types: instance ToXMLRoot Distribution
- Network.AWS.CloudFront.Types: instance ToXMLRoot DistributionConfig
- Network.AWS.CloudFront.Types: instance ToXMLRoot Invalidation
- Network.AWS.CloudFront.Types: instance ToXMLRoot StreamingDistribution
- Network.AWS.CloudFront.Types: instance ToXMLRoot StreamingDistributionConfig
- Network.AWS.CloudFront.Types: ns :: Text
- Network.AWS.CloudFront.Types: sAwsAccountNumber :: Lens' Signer (Maybe Text)
- Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: instance ToXML UpdateCloudFrontOriginAccessIdentity
- Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: instance ToXMLRoot UpdateCloudFrontOriginAccessIdentity
- Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: ucfoairCloudFrontOriginAccessIdentity :: Lens' UpdateCloudFrontOriginAccessIdentityResponse (Maybe CloudFrontOriginAccessIdentity)
- Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: ucfoairETag :: Lens' UpdateCloudFrontOriginAccessIdentityResponse (Maybe Text)
- Network.AWS.CloudFront.UpdateDistribution: instance ToXML UpdateDistribution
- Network.AWS.CloudFront.UpdateDistribution: instance ToXMLRoot UpdateDistribution
- Network.AWS.CloudFront.UpdateDistribution: udrDistribution :: Lens' UpdateDistributionResponse (Maybe Distribution)
- Network.AWS.CloudFront.UpdateDistribution: udrETag :: Lens' UpdateDistributionResponse (Maybe Text)
- Network.AWS.CloudFront.UpdateStreamingDistribution: instance ToXML UpdateStreamingDistribution
- Network.AWS.CloudFront.UpdateStreamingDistribution: instance ToXMLRoot UpdateStreamingDistribution
- Network.AWS.CloudFront.UpdateStreamingDistribution: usdrETag :: Lens' UpdateStreamingDistributionResponse (Maybe Text)
- Network.AWS.CloudFront.UpdateStreamingDistribution: usdrStreamingDistribution :: Lens' UpdateStreamingDistributionResponse (Maybe StreamingDistribution)
+ Network.AWS.CloudFront: AllowAll :: ViewerProtocolPolicy
+ Network.AWS.CloudFront: Blacklist :: GeoRestrictionType
+ Network.AWS.CloudFront: Delete :: Method
+ Network.AWS.CloudFront: Get :: Method
+ Network.AWS.CloudFront: HTTPOnly :: OriginProtocolPolicy
+ Network.AWS.CloudFront: HTTPSOnly :: ViewerProtocolPolicy
+ Network.AWS.CloudFront: Head :: Method
+ Network.AWS.CloudFront: ISAll :: ItemSelection
+ Network.AWS.CloudFront: ISNone :: ItemSelection
+ Network.AWS.CloudFront: ISWhitelist :: ItemSelection
+ Network.AWS.CloudFront: MatchViewer :: OriginProtocolPolicy
+ Network.AWS.CloudFront: None :: GeoRestrictionType
+ Network.AWS.CloudFront: Options :: Method
+ Network.AWS.CloudFront: Patch :: Method
+ Network.AWS.CloudFront: Post :: Method
+ Network.AWS.CloudFront: PriceClass100 :: PriceClass
+ Network.AWS.CloudFront: PriceClass200 :: PriceClass
+ Network.AWS.CloudFront: PriceClassAll :: PriceClass
+ Network.AWS.CloudFront: Put :: Method
+ Network.AWS.CloudFront: RedirectToHTTPS :: ViewerProtocolPolicy
+ Network.AWS.CloudFront: SNIOnly :: SSLSupportMethod
+ Network.AWS.CloudFront: SSLV3 :: MinimumProtocolVersion
+ Network.AWS.CloudFront: TLSV1 :: MinimumProtocolVersion
+ Network.AWS.CloudFront: VIP :: SSLSupportMethod
+ Network.AWS.CloudFront: Whitelist :: GeoRestrictionType
+ Network.AWS.CloudFront: _AccessDenied :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _BatchTooLarge :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _CNAMEAlreadyExists :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _CloudFrontOriginAccessIdentityAlreadyExists :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _CloudFrontOriginAccessIdentityInUse :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _DistributionAlreadyExists :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _DistributionNotDisabled :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _IllegalUpdate :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _InconsistentQuantities :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _InvalidArgument :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _InvalidDefaultRootObject :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _InvalidErrorCode :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _InvalidForwardCookies :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _InvalidGeoRestrictionParameter :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _InvalidHeadersForS3Origin :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _InvalidIfMatchVersion :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _InvalidLocationCode :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _InvalidMinimumProtocolVersion :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _InvalidOrigin :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _InvalidOriginAccessIdentity :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _InvalidProtocolSettings :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _InvalidRelativePath :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _InvalidRequiredProtocol :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _InvalidResponseCode :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _InvalidTTLOrder :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _InvalidViewerCertificate :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _MissingBody :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _NoSuchCloudFrontOriginAccessIdentity :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _NoSuchDistribution :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _NoSuchInvalidation :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _NoSuchOrigin :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _NoSuchStreamingDistribution :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _PreconditionFailed :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _StreamingDistributionAlreadyExists :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _StreamingDistributionNotDisabled :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _TooManyCacheBehaviors :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _TooManyCertificates :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _TooManyCloudFrontOriginAccessIdentities :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _TooManyCookieNamesInWhiteList :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _TooManyDistributionCNAMEs :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _TooManyDistributions :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _TooManyHeadersInForwardedValues :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _TooManyInvalidationsInProgress :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _TooManyOrigins :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _TooManyStreamingDistributionCNAMEs :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _TooManyStreamingDistributions :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _TooManyTrustedSigners :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: _TrustedSignerDoesNotExist :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront: aItems :: Lens' Aliases [Text]
+ Network.AWS.CloudFront: aQuantity :: Lens' Aliases Int
+ Network.AWS.CloudFront: activeTrustedSigners :: Bool -> Int -> ActiveTrustedSigners
+ Network.AWS.CloudFront: aliases :: Int -> Aliases
+ Network.AWS.CloudFront: allowedMethods :: Int -> AllowedMethods
+ Network.AWS.CloudFront: amCachedMethods :: Lens' AllowedMethods (Maybe CachedMethods)
+ Network.AWS.CloudFront: amItems :: Lens' AllowedMethods [Method]
+ Network.AWS.CloudFront: amQuantity :: Lens' AllowedMethods Int
+ Network.AWS.CloudFront: atsEnabled :: Lens' ActiveTrustedSigners Bool
+ Network.AWS.CloudFront: atsItems :: Lens' ActiveTrustedSigners [Signer]
+ Network.AWS.CloudFront: atsQuantity :: Lens' ActiveTrustedSigners Int
+ Network.AWS.CloudFront: cacheBehavior :: Text -> Text -> ForwardedValues -> TrustedSigners -> ViewerProtocolPolicy -> Integer -> CacheBehavior
+ Network.AWS.CloudFront: cacheBehaviors :: Int -> CacheBehaviors
+ Network.AWS.CloudFront: cachedMethods :: Int -> CachedMethods
+ Network.AWS.CloudFront: cbAllowedMethods :: Lens' CacheBehavior (Maybe AllowedMethods)
+ Network.AWS.CloudFront: cbDefaultTTL :: Lens' CacheBehavior (Maybe Integer)
+ Network.AWS.CloudFront: cbForwardedValues :: Lens' CacheBehavior ForwardedValues
+ Network.AWS.CloudFront: cbItems :: Lens' CacheBehaviors [CacheBehavior]
+ Network.AWS.CloudFront: cbMaxTTL :: Lens' CacheBehavior (Maybe Integer)
+ Network.AWS.CloudFront: cbMinTTL :: Lens' CacheBehavior Integer
+ Network.AWS.CloudFront: cbPathPattern :: Lens' CacheBehavior Text
+ Network.AWS.CloudFront: cbQuantity :: Lens' CacheBehaviors Int
+ Network.AWS.CloudFront: cbSmoothStreaming :: Lens' CacheBehavior (Maybe Bool)
+ Network.AWS.CloudFront: cbTargetOriginId :: Lens' CacheBehavior Text
+ Network.AWS.CloudFront: cbTrustedSigners :: Lens' CacheBehavior TrustedSigners
+ Network.AWS.CloudFront: cbViewerProtocolPolicy :: Lens' CacheBehavior ViewerProtocolPolicy
+ Network.AWS.CloudFront: ceErrorCachingMinTTL :: Lens' CustomErrorResponse (Maybe Integer)
+ Network.AWS.CloudFront: ceErrorCode :: Lens' CustomErrorResponse Int
+ Network.AWS.CloudFront: ceResponseCode :: Lens' CustomErrorResponse (Maybe Text)
+ Network.AWS.CloudFront: ceResponsePagePath :: Lens' CustomErrorResponse (Maybe Text)
+ Network.AWS.CloudFront: cerItems :: Lens' CustomErrorResponses [CustomErrorResponse]
+ Network.AWS.CloudFront: cerQuantity :: Lens' CustomErrorResponses Int
+ Network.AWS.CloudFront: cfoaiCloudFrontOriginAccessIdentityConfig :: Lens' CloudFrontOriginAccessIdentity (Maybe CloudFrontOriginAccessIdentityConfig)
+ Network.AWS.CloudFront: cfoaiId :: Lens' CloudFrontOriginAccessIdentity Text
+ Network.AWS.CloudFront: cfoaiS3CanonicalUserId :: Lens' CloudFrontOriginAccessIdentity Text
+ Network.AWS.CloudFront: cfoaicCallerReference :: Lens' CloudFrontOriginAccessIdentityConfig Text
+ Network.AWS.CloudFront: cfoaicComment :: Lens' CloudFrontOriginAccessIdentityConfig Text
+ Network.AWS.CloudFront: cfoailIsTruncated :: Lens' CloudFrontOriginAccessIdentityList Bool
+ Network.AWS.CloudFront: cfoailItems :: Lens' CloudFrontOriginAccessIdentityList [CloudFrontOriginAccessIdentitySummary]
+ Network.AWS.CloudFront: cfoailMarker :: Lens' CloudFrontOriginAccessIdentityList Text
+ Network.AWS.CloudFront: cfoailMaxItems :: Lens' CloudFrontOriginAccessIdentityList Int
+ Network.AWS.CloudFront: cfoailNextMarker :: Lens' CloudFrontOriginAccessIdentityList (Maybe Text)
+ Network.AWS.CloudFront: cfoailQuantity :: Lens' CloudFrontOriginAccessIdentityList Int
+ Network.AWS.CloudFront: cfoaisComment :: Lens' CloudFrontOriginAccessIdentitySummary Text
+ Network.AWS.CloudFront: cfoaisId :: Lens' CloudFrontOriginAccessIdentitySummary Text
+ Network.AWS.CloudFront: cfoaisS3CanonicalUserId :: Lens' CloudFrontOriginAccessIdentitySummary Text
+ Network.AWS.CloudFront: cloudFrontOriginAccessIdentity :: Text -> Text -> CloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront: cloudFrontOriginAccessIdentityConfig :: Text -> Text -> CloudFrontOriginAccessIdentityConfig
+ Network.AWS.CloudFront: cloudFrontOriginAccessIdentityList :: Text -> Int -> Bool -> Int -> CloudFrontOriginAccessIdentityList
+ Network.AWS.CloudFront: cloudFrontOriginAccessIdentitySummary :: Text -> Text -> Text -> CloudFrontOriginAccessIdentitySummary
+ Network.AWS.CloudFront: cmItems :: Lens' CachedMethods [Method]
+ Network.AWS.CloudFront: cmQuantity :: Lens' CachedMethods Int
+ Network.AWS.CloudFront: cnItems :: Lens' CookieNames [Text]
+ Network.AWS.CloudFront: cnQuantity :: Lens' CookieNames Int
+ Network.AWS.CloudFront: cocHTTPPort :: Lens' CustomOriginConfig Int
+ Network.AWS.CloudFront: cocHTTPSPort :: Lens' CustomOriginConfig Int
+ Network.AWS.CloudFront: cocOriginProtocolPolicy :: Lens' CustomOriginConfig OriginProtocolPolicy
+ Network.AWS.CloudFront: cookieNames :: Int -> CookieNames
+ Network.AWS.CloudFront: cookiePreference :: ItemSelection -> CookiePreference
+ Network.AWS.CloudFront: cpForward :: Lens' CookiePreference ItemSelection
+ Network.AWS.CloudFront: cpWhitelistedNames :: Lens' CookiePreference (Maybe CookieNames)
+ Network.AWS.CloudFront: customErrorResponse :: Int -> CustomErrorResponse
+ Network.AWS.CloudFront: customErrorResponses :: Int -> CustomErrorResponses
+ Network.AWS.CloudFront: customOriginConfig :: Int -> Int -> OriginProtocolPolicy -> CustomOriginConfig
+ Network.AWS.CloudFront: dActiveTrustedSigners :: Lens' Distribution ActiveTrustedSigners
+ Network.AWS.CloudFront: dDistributionConfig :: Lens' Distribution DistributionConfig
+ Network.AWS.CloudFront: dDomainName :: Lens' Distribution Text
+ Network.AWS.CloudFront: dId :: Lens' Distribution Text
+ Network.AWS.CloudFront: dInProgressInvalidationBatches :: Lens' Distribution Int
+ Network.AWS.CloudFront: dLastModifiedTime :: Lens' Distribution UTCTime
+ Network.AWS.CloudFront: dStatus :: Lens' Distribution Text
+ Network.AWS.CloudFront: data ActiveTrustedSigners
+ Network.AWS.CloudFront: data Aliases
+ Network.AWS.CloudFront: data AllowedMethods
+ Network.AWS.CloudFront: data CacheBehavior
+ Network.AWS.CloudFront: data CacheBehaviors
+ Network.AWS.CloudFront: data CachedMethods
+ Network.AWS.CloudFront: data CloudFront
+ Network.AWS.CloudFront: data CloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront: data CloudFrontOriginAccessIdentityConfig
+ Network.AWS.CloudFront: data CloudFrontOriginAccessIdentityList
+ Network.AWS.CloudFront: data CloudFrontOriginAccessIdentitySummary
+ Network.AWS.CloudFront: data CookieNames
+ Network.AWS.CloudFront: data CookiePreference
+ Network.AWS.CloudFront: data CustomErrorResponse
+ Network.AWS.CloudFront: data CustomErrorResponses
+ Network.AWS.CloudFront: data CustomOriginConfig
+ Network.AWS.CloudFront: data DefaultCacheBehavior
+ Network.AWS.CloudFront: data Distribution
+ Network.AWS.CloudFront: data DistributionConfig
+ Network.AWS.CloudFront: data DistributionList
+ Network.AWS.CloudFront: data DistributionSummary
+ Network.AWS.CloudFront: data ForwardedValues
+ Network.AWS.CloudFront: data GeoRestriction
+ Network.AWS.CloudFront: data GeoRestrictionType
+ Network.AWS.CloudFront: data Headers
+ Network.AWS.CloudFront: data Invalidation
+ Network.AWS.CloudFront: data InvalidationBatch
+ Network.AWS.CloudFront: data InvalidationList
+ Network.AWS.CloudFront: data InvalidationSummary
+ Network.AWS.CloudFront: data ItemSelection
+ Network.AWS.CloudFront: data KeyPairIds
+ Network.AWS.CloudFront: data LoggingConfig
+ Network.AWS.CloudFront: data Method
+ Network.AWS.CloudFront: data MinimumProtocolVersion
+ Network.AWS.CloudFront: data Origin
+ Network.AWS.CloudFront: data OriginProtocolPolicy
+ Network.AWS.CloudFront: data Origins
+ Network.AWS.CloudFront: data Paths
+ Network.AWS.CloudFront: data PriceClass
+ Network.AWS.CloudFront: data Restrictions
+ Network.AWS.CloudFront: data S3Origin
+ Network.AWS.CloudFront: data S3OriginConfig
+ Network.AWS.CloudFront: data SSLSupportMethod
+ Network.AWS.CloudFront: data Signer
+ Network.AWS.CloudFront: data StreamingDistribution
+ Network.AWS.CloudFront: data StreamingDistributionConfig
+ Network.AWS.CloudFront: data StreamingDistributionList
+ Network.AWS.CloudFront: data StreamingDistributionSummary
+ Network.AWS.CloudFront: data StreamingLoggingConfig
+ Network.AWS.CloudFront: data TrustedSigners
+ Network.AWS.CloudFront: data ViewerCertificate
+ Network.AWS.CloudFront: data ViewerProtocolPolicy
+ Network.AWS.CloudFront: dcAliases :: Lens' DistributionConfig (Maybe Aliases)
+ Network.AWS.CloudFront: dcCacheBehaviors :: Lens' DistributionConfig (Maybe CacheBehaviors)
+ Network.AWS.CloudFront: dcCallerReference :: Lens' DistributionConfig Text
+ Network.AWS.CloudFront: dcComment :: Lens' DistributionConfig Text
+ Network.AWS.CloudFront: dcCustomErrorResponses :: Lens' DistributionConfig (Maybe CustomErrorResponses)
+ Network.AWS.CloudFront: dcDefaultCacheBehavior :: Lens' DistributionConfig DefaultCacheBehavior
+ Network.AWS.CloudFront: dcDefaultRootObject :: Lens' DistributionConfig (Maybe Text)
+ Network.AWS.CloudFront: dcEnabled :: Lens' DistributionConfig Bool
+ Network.AWS.CloudFront: dcLogging :: Lens' DistributionConfig (Maybe LoggingConfig)
+ Network.AWS.CloudFront: dcOrigins :: Lens' DistributionConfig Origins
+ Network.AWS.CloudFront: dcPriceClass :: Lens' DistributionConfig (Maybe PriceClass)
+ Network.AWS.CloudFront: dcRestrictions :: Lens' DistributionConfig (Maybe Restrictions)
+ Network.AWS.CloudFront: dcViewerCertificate :: Lens' DistributionConfig (Maybe ViewerCertificate)
+ Network.AWS.CloudFront: dcbAllowedMethods :: Lens' DefaultCacheBehavior (Maybe AllowedMethods)
+ Network.AWS.CloudFront: dcbDefaultTTL :: Lens' DefaultCacheBehavior (Maybe Integer)
+ Network.AWS.CloudFront: dcbForwardedValues :: Lens' DefaultCacheBehavior ForwardedValues
+ Network.AWS.CloudFront: dcbMaxTTL :: Lens' DefaultCacheBehavior (Maybe Integer)
+ Network.AWS.CloudFront: dcbMinTTL :: Lens' DefaultCacheBehavior Integer
+ Network.AWS.CloudFront: dcbSmoothStreaming :: Lens' DefaultCacheBehavior (Maybe Bool)
+ Network.AWS.CloudFront: dcbTargetOriginId :: Lens' DefaultCacheBehavior Text
+ Network.AWS.CloudFront: dcbTrustedSigners :: Lens' DefaultCacheBehavior TrustedSigners
+ Network.AWS.CloudFront: dcbViewerProtocolPolicy :: Lens' DefaultCacheBehavior ViewerProtocolPolicy
+ Network.AWS.CloudFront: defaultCacheBehavior :: Text -> ForwardedValues -> TrustedSigners -> ViewerProtocolPolicy -> Integer -> DefaultCacheBehavior
+ Network.AWS.CloudFront: distribution :: Text -> Text -> UTCTime -> Int -> Text -> ActiveTrustedSigners -> DistributionConfig -> Distribution
+ Network.AWS.CloudFront: distributionConfig :: Text -> Origins -> DefaultCacheBehavior -> Text -> Bool -> DistributionConfig
+ Network.AWS.CloudFront: distributionList :: Text -> Int -> Bool -> Int -> DistributionList
+ Network.AWS.CloudFront: distributionSummary :: Text -> Text -> UTCTime -> Text -> Aliases -> Origins -> DefaultCacheBehavior -> CacheBehaviors -> CustomErrorResponses -> Text -> PriceClass -> Bool -> ViewerCertificate -> Restrictions -> DistributionSummary
+ Network.AWS.CloudFront: dlIsTruncated :: Lens' DistributionList Bool
+ Network.AWS.CloudFront: dlItems :: Lens' DistributionList [DistributionSummary]
+ Network.AWS.CloudFront: dlMarker :: Lens' DistributionList Text
+ Network.AWS.CloudFront: dlMaxItems :: Lens' DistributionList Int
+ Network.AWS.CloudFront: dlNextMarker :: Lens' DistributionList (Maybe Text)
+ Network.AWS.CloudFront: dlQuantity :: Lens' DistributionList Int
+ Network.AWS.CloudFront: dsAliases :: Lens' DistributionSummary Aliases
+ Network.AWS.CloudFront: dsCacheBehaviors :: Lens' DistributionSummary CacheBehaviors
+ Network.AWS.CloudFront: dsComment :: Lens' DistributionSummary Text
+ Network.AWS.CloudFront: dsCustomErrorResponses :: Lens' DistributionSummary CustomErrorResponses
+ Network.AWS.CloudFront: dsDefaultCacheBehavior :: Lens' DistributionSummary DefaultCacheBehavior
+ Network.AWS.CloudFront: dsDomainName :: Lens' DistributionSummary Text
+ Network.AWS.CloudFront: dsEnabled :: Lens' DistributionSummary Bool
+ Network.AWS.CloudFront: dsId :: Lens' DistributionSummary Text
+ Network.AWS.CloudFront: dsLastModifiedTime :: Lens' DistributionSummary UTCTime
+ Network.AWS.CloudFront: dsOrigins :: Lens' DistributionSummary Origins
+ Network.AWS.CloudFront: dsPriceClass :: Lens' DistributionSummary PriceClass
+ Network.AWS.CloudFront: dsRestrictions :: Lens' DistributionSummary Restrictions
+ Network.AWS.CloudFront: dsStatus :: Lens' DistributionSummary Text
+ Network.AWS.CloudFront: dsViewerCertificate :: Lens' DistributionSummary ViewerCertificate
+ Network.AWS.CloudFront: forwardedValues :: Bool -> CookiePreference -> ForwardedValues
+ Network.AWS.CloudFront: fvCookies :: Lens' ForwardedValues CookiePreference
+ Network.AWS.CloudFront: fvHeaders :: Lens' ForwardedValues (Maybe Headers)
+ Network.AWS.CloudFront: fvQueryString :: Lens' ForwardedValues Bool
+ Network.AWS.CloudFront: geoRestriction :: GeoRestrictionType -> Int -> GeoRestriction
+ Network.AWS.CloudFront: grItems :: Lens' GeoRestriction [Text]
+ Network.AWS.CloudFront: grQuantity :: Lens' GeoRestriction Int
+ Network.AWS.CloudFront: grRestrictionType :: Lens' GeoRestriction GeoRestrictionType
+ Network.AWS.CloudFront: hItems :: Lens' Headers [Text]
+ Network.AWS.CloudFront: hQuantity :: Lens' Headers Int
+ Network.AWS.CloudFront: headers :: Int -> Headers
+ Network.AWS.CloudFront: iCreateTime :: Lens' Invalidation UTCTime
+ Network.AWS.CloudFront: iId :: Lens' Invalidation Text
+ Network.AWS.CloudFront: iInvalidationBatch :: Lens' Invalidation InvalidationBatch
+ Network.AWS.CloudFront: iStatus :: Lens' Invalidation Text
+ Network.AWS.CloudFront: ibCallerReference :: Lens' InvalidationBatch Text
+ Network.AWS.CloudFront: ibPaths :: Lens' InvalidationBatch Paths
+ Network.AWS.CloudFront: ilIsTruncated :: Lens' InvalidationList Bool
+ Network.AWS.CloudFront: ilItems :: Lens' InvalidationList [InvalidationSummary]
+ Network.AWS.CloudFront: ilMarker :: Lens' InvalidationList Text
+ Network.AWS.CloudFront: ilMaxItems :: Lens' InvalidationList Int
+ Network.AWS.CloudFront: ilNextMarker :: Lens' InvalidationList (Maybe Text)
+ Network.AWS.CloudFront: ilQuantity :: Lens' InvalidationList Int
+ Network.AWS.CloudFront: invalidation :: Text -> Text -> UTCTime -> InvalidationBatch -> Invalidation
+ Network.AWS.CloudFront: invalidationBatch :: Paths -> Text -> InvalidationBatch
+ Network.AWS.CloudFront: invalidationList :: Text -> Int -> Bool -> Int -> InvalidationList
+ Network.AWS.CloudFront: invalidationSummary :: Text -> UTCTime -> Text -> InvalidationSummary
+ Network.AWS.CloudFront: isCreateTime :: Lens' InvalidationSummary UTCTime
+ Network.AWS.CloudFront: isId :: Lens' InvalidationSummary Text
+ Network.AWS.CloudFront: isStatus :: Lens' InvalidationSummary Text
+ Network.AWS.CloudFront: keyPairIds :: Int -> KeyPairIds
+ Network.AWS.CloudFront: kpiItems :: Lens' KeyPairIds [Text]
+ Network.AWS.CloudFront: kpiQuantity :: Lens' KeyPairIds Int
+ Network.AWS.CloudFront: lcBucket :: Lens' LoggingConfig Text
+ Network.AWS.CloudFront: lcEnabled :: Lens' LoggingConfig Bool
+ Network.AWS.CloudFront: lcIncludeCookies :: Lens' LoggingConfig Bool
+ Network.AWS.CloudFront: lcPrefix :: Lens' LoggingConfig Text
+ Network.AWS.CloudFront: loggingConfig :: Bool -> Bool -> Text -> Text -> LoggingConfig
+ Network.AWS.CloudFront: oCustomOriginConfig :: Lens' Origin (Maybe CustomOriginConfig)
+ Network.AWS.CloudFront: oDomainName :: Lens' Origin Text
+ Network.AWS.CloudFront: oId :: Lens' Origin Text
+ Network.AWS.CloudFront: oItems :: Lens' Origins (Maybe (NonEmpty Origin))
+ Network.AWS.CloudFront: oOriginPath :: Lens' Origin (Maybe Text)
+ Network.AWS.CloudFront: oQuantity :: Lens' Origins Int
+ Network.AWS.CloudFront: oS3OriginConfig :: Lens' Origin (Maybe S3OriginConfig)
+ Network.AWS.CloudFront: origin :: Text -> Text -> Origin
+ Network.AWS.CloudFront: origins :: Int -> Origins
+ Network.AWS.CloudFront: pItems :: Lens' Paths [Text]
+ Network.AWS.CloudFront: pQuantity :: Lens' Paths Int
+ Network.AWS.CloudFront: paths :: Int -> Paths
+ Network.AWS.CloudFront: rGeoRestriction :: Lens' Restrictions GeoRestriction
+ Network.AWS.CloudFront: restrictions :: GeoRestriction -> Restrictions
+ Network.AWS.CloudFront: s3Origin :: Text -> Text -> S3Origin
+ Network.AWS.CloudFront: s3OriginConfig :: Text -> S3OriginConfig
+ Network.AWS.CloudFront: sAWSAccountNumber :: Lens' Signer (Maybe Text)
+ Network.AWS.CloudFront: sKeyPairIds :: Lens' Signer (Maybe KeyPairIds)
+ Network.AWS.CloudFront: sdActiveTrustedSigners :: Lens' StreamingDistribution ActiveTrustedSigners
+ Network.AWS.CloudFront: sdDomainName :: Lens' StreamingDistribution Text
+ Network.AWS.CloudFront: sdId :: Lens' StreamingDistribution Text
+ Network.AWS.CloudFront: sdLastModifiedTime :: Lens' StreamingDistribution (Maybe UTCTime)
+ Network.AWS.CloudFront: sdStatus :: Lens' StreamingDistribution Text
+ Network.AWS.CloudFront: sdStreamingDistributionConfig :: Lens' StreamingDistribution StreamingDistributionConfig
+ Network.AWS.CloudFront: sdcAliases :: Lens' StreamingDistributionConfig (Maybe Aliases)
+ Network.AWS.CloudFront: sdcCallerReference :: Lens' StreamingDistributionConfig Text
+ Network.AWS.CloudFront: sdcComment :: Lens' StreamingDistributionConfig Text
+ Network.AWS.CloudFront: sdcEnabled :: Lens' StreamingDistributionConfig Bool
+ Network.AWS.CloudFront: sdcLogging :: Lens' StreamingDistributionConfig (Maybe StreamingLoggingConfig)
+ Network.AWS.CloudFront: sdcPriceClass :: Lens' StreamingDistributionConfig (Maybe PriceClass)
+ Network.AWS.CloudFront: sdcS3Origin :: Lens' StreamingDistributionConfig S3Origin
+ Network.AWS.CloudFront: sdcTrustedSigners :: Lens' StreamingDistributionConfig TrustedSigners
+ Network.AWS.CloudFront: sdlIsTruncated :: Lens' StreamingDistributionList Bool
+ Network.AWS.CloudFront: sdlItems :: Lens' StreamingDistributionList [StreamingDistributionSummary]
+ Network.AWS.CloudFront: sdlMarker :: Lens' StreamingDistributionList Text
+ Network.AWS.CloudFront: sdlMaxItems :: Lens' StreamingDistributionList Int
+ Network.AWS.CloudFront: sdlNextMarker :: Lens' StreamingDistributionList (Maybe Text)
+ Network.AWS.CloudFront: sdlQuantity :: Lens' StreamingDistributionList Int
+ Network.AWS.CloudFront: sdsAliases :: Lens' StreamingDistributionSummary Aliases
+ Network.AWS.CloudFront: sdsComment :: Lens' StreamingDistributionSummary Text
+ Network.AWS.CloudFront: sdsDomainName :: Lens' StreamingDistributionSummary Text
+ Network.AWS.CloudFront: sdsEnabled :: Lens' StreamingDistributionSummary Bool
+ Network.AWS.CloudFront: sdsId :: Lens' StreamingDistributionSummary Text
+ Network.AWS.CloudFront: sdsLastModifiedTime :: Lens' StreamingDistributionSummary UTCTime
+ Network.AWS.CloudFront: sdsPriceClass :: Lens' StreamingDistributionSummary PriceClass
+ Network.AWS.CloudFront: sdsS3Origin :: Lens' StreamingDistributionSummary S3Origin
+ Network.AWS.CloudFront: sdsStatus :: Lens' StreamingDistributionSummary Text
+ Network.AWS.CloudFront: sdsTrustedSigners :: Lens' StreamingDistributionSummary TrustedSigners
+ Network.AWS.CloudFront: signer :: Signer
+ Network.AWS.CloudFront: slcBucket :: Lens' StreamingLoggingConfig Text
+ Network.AWS.CloudFront: slcEnabled :: Lens' StreamingLoggingConfig Bool
+ Network.AWS.CloudFront: slcPrefix :: Lens' StreamingLoggingConfig Text
+ Network.AWS.CloudFront: soDomainName :: Lens' S3Origin Text
+ Network.AWS.CloudFront: soOriginAccessIdentity :: Lens' S3Origin Text
+ Network.AWS.CloudFront: socOriginAccessIdentity :: Lens' S3OriginConfig Text
+ Network.AWS.CloudFront: streamingDistribution :: Text -> Text -> Text -> ActiveTrustedSigners -> StreamingDistributionConfig -> StreamingDistribution
+ Network.AWS.CloudFront: streamingDistributionConfig :: Text -> S3Origin -> Text -> TrustedSigners -> Bool -> StreamingDistributionConfig
+ Network.AWS.CloudFront: streamingDistributionList :: Text -> Int -> Bool -> Int -> StreamingDistributionList
+ Network.AWS.CloudFront: streamingDistributionSummary :: Text -> Text -> UTCTime -> Text -> S3Origin -> Aliases -> TrustedSigners -> Text -> PriceClass -> Bool -> StreamingDistributionSummary
+ Network.AWS.CloudFront: streamingLoggingConfig :: Bool -> Text -> Text -> StreamingLoggingConfig
+ Network.AWS.CloudFront: trustedSigners :: Bool -> Int -> TrustedSigners
+ Network.AWS.CloudFront: tsEnabled :: Lens' TrustedSigners Bool
+ Network.AWS.CloudFront: tsItems :: Lens' TrustedSigners [Text]
+ Network.AWS.CloudFront: tsQuantity :: Lens' TrustedSigners Int
+ Network.AWS.CloudFront: vcCloudFrontDefaultCertificate :: Lens' ViewerCertificate (Maybe Bool)
+ Network.AWS.CloudFront: vcIAMCertificateId :: Lens' ViewerCertificate (Maybe Text)
+ Network.AWS.CloudFront: vcMinimumProtocolVersion :: Lens' ViewerCertificate (Maybe MinimumProtocolVersion)
+ Network.AWS.CloudFront: vcSSLSupportMethod :: Lens' ViewerCertificate (Maybe SSLSupportMethod)
+ Network.AWS.CloudFront: viewerCertificate :: ViewerCertificate
+ Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: ccfoairsCloudFrontOriginAccessIdentity :: Lens' CreateCloudFrontOriginAccessIdentityResponse (Maybe CloudFrontOriginAccessIdentity)
+ Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: ccfoairsETag :: Lens' CreateCloudFrontOriginAccessIdentityResponse (Maybe Text)
+ Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: ccfoairsLocation :: Lens' CreateCloudFrontOriginAccessIdentityResponse (Maybe Text)
+ Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: ccfoairsStatus :: Lens' CreateCloudFrontOriginAccessIdentityResponse Int
+ Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: instance Constructor C1_0CreateCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: instance Constructor C1_0CreateCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: instance Data CreateCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: instance Data CreateCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: instance Datatype D1CreateCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: instance Datatype D1CreateCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: instance Generic CreateCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: instance Generic CreateCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: instance Selector S1_0_0CreateCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: instance Selector S1_0_0CreateCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: instance Selector S1_0_1CreateCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: instance Selector S1_0_2CreateCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: instance Selector S1_0_3CreateCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: instance ToElement CreateCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: instance Typeable CreateCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: instance Typeable CreateCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.CreateDistribution: cdrsDistribution :: Lens' CreateDistributionResponse (Maybe Distribution)
+ Network.AWS.CloudFront.CreateDistribution: cdrsETag :: Lens' CreateDistributionResponse (Maybe Text)
+ Network.AWS.CloudFront.CreateDistribution: cdrsLocation :: Lens' CreateDistributionResponse (Maybe Text)
+ Network.AWS.CloudFront.CreateDistribution: cdrsStatus :: Lens' CreateDistributionResponse Int
+ Network.AWS.CloudFront.CreateDistribution: instance Constructor C1_0CreateDistribution
+ Network.AWS.CloudFront.CreateDistribution: instance Constructor C1_0CreateDistributionResponse
+ Network.AWS.CloudFront.CreateDistribution: instance Data CreateDistribution
+ Network.AWS.CloudFront.CreateDistribution: instance Data CreateDistributionResponse
+ Network.AWS.CloudFront.CreateDistribution: instance Datatype D1CreateDistribution
+ Network.AWS.CloudFront.CreateDistribution: instance Datatype D1CreateDistributionResponse
+ Network.AWS.CloudFront.CreateDistribution: instance Generic CreateDistribution
+ Network.AWS.CloudFront.CreateDistribution: instance Generic CreateDistributionResponse
+ Network.AWS.CloudFront.CreateDistribution: instance Selector S1_0_0CreateDistribution
+ Network.AWS.CloudFront.CreateDistribution: instance Selector S1_0_0CreateDistributionResponse
+ Network.AWS.CloudFront.CreateDistribution: instance Selector S1_0_1CreateDistributionResponse
+ Network.AWS.CloudFront.CreateDistribution: instance Selector S1_0_2CreateDistributionResponse
+ Network.AWS.CloudFront.CreateDistribution: instance Selector S1_0_3CreateDistributionResponse
+ Network.AWS.CloudFront.CreateDistribution: instance ToElement CreateDistribution
+ Network.AWS.CloudFront.CreateDistribution: instance Typeable CreateDistribution
+ Network.AWS.CloudFront.CreateDistribution: instance Typeable CreateDistributionResponse
+ Network.AWS.CloudFront.CreateInvalidation: cirsInvalidation :: Lens' CreateInvalidationResponse (Maybe Invalidation)
+ Network.AWS.CloudFront.CreateInvalidation: cirsLocation :: Lens' CreateInvalidationResponse (Maybe Text)
+ Network.AWS.CloudFront.CreateInvalidation: cirsStatus :: Lens' CreateInvalidationResponse Int
+ Network.AWS.CloudFront.CreateInvalidation: instance Constructor C1_0CreateInvalidation
+ Network.AWS.CloudFront.CreateInvalidation: instance Constructor C1_0CreateInvalidationResponse
+ Network.AWS.CloudFront.CreateInvalidation: instance Data CreateInvalidation
+ Network.AWS.CloudFront.CreateInvalidation: instance Data CreateInvalidationResponse
+ Network.AWS.CloudFront.CreateInvalidation: instance Datatype D1CreateInvalidation
+ Network.AWS.CloudFront.CreateInvalidation: instance Datatype D1CreateInvalidationResponse
+ Network.AWS.CloudFront.CreateInvalidation: instance Generic CreateInvalidation
+ Network.AWS.CloudFront.CreateInvalidation: instance Generic CreateInvalidationResponse
+ Network.AWS.CloudFront.CreateInvalidation: instance Selector S1_0_0CreateInvalidation
+ Network.AWS.CloudFront.CreateInvalidation: instance Selector S1_0_0CreateInvalidationResponse
+ Network.AWS.CloudFront.CreateInvalidation: instance Selector S1_0_1CreateInvalidation
+ Network.AWS.CloudFront.CreateInvalidation: instance Selector S1_0_1CreateInvalidationResponse
+ Network.AWS.CloudFront.CreateInvalidation: instance Selector S1_0_2CreateInvalidationResponse
+ Network.AWS.CloudFront.CreateInvalidation: instance ToElement CreateInvalidation
+ Network.AWS.CloudFront.CreateInvalidation: instance Typeable CreateInvalidation
+ Network.AWS.CloudFront.CreateInvalidation: instance Typeable CreateInvalidationResponse
+ Network.AWS.CloudFront.CreateStreamingDistribution: csdrsETag :: Lens' CreateStreamingDistributionResponse (Maybe Text)
+ Network.AWS.CloudFront.CreateStreamingDistribution: csdrsLocation :: Lens' CreateStreamingDistributionResponse (Maybe Text)
+ Network.AWS.CloudFront.CreateStreamingDistribution: csdrsStatus :: Lens' CreateStreamingDistributionResponse Int
+ Network.AWS.CloudFront.CreateStreamingDistribution: csdrsStreamingDistribution :: Lens' CreateStreamingDistributionResponse (Maybe StreamingDistribution)
+ Network.AWS.CloudFront.CreateStreamingDistribution: instance Constructor C1_0CreateStreamingDistribution
+ Network.AWS.CloudFront.CreateStreamingDistribution: instance Constructor C1_0CreateStreamingDistributionResponse
+ Network.AWS.CloudFront.CreateStreamingDistribution: instance Data CreateStreamingDistribution
+ Network.AWS.CloudFront.CreateStreamingDistribution: instance Data CreateStreamingDistributionResponse
+ Network.AWS.CloudFront.CreateStreamingDistribution: instance Datatype D1CreateStreamingDistribution
+ Network.AWS.CloudFront.CreateStreamingDistribution: instance Datatype D1CreateStreamingDistributionResponse
+ Network.AWS.CloudFront.CreateStreamingDistribution: instance Generic CreateStreamingDistribution
+ Network.AWS.CloudFront.CreateStreamingDistribution: instance Generic CreateStreamingDistributionResponse
+ Network.AWS.CloudFront.CreateStreamingDistribution: instance Selector S1_0_0CreateStreamingDistribution
+ Network.AWS.CloudFront.CreateStreamingDistribution: instance Selector S1_0_0CreateStreamingDistributionResponse
+ Network.AWS.CloudFront.CreateStreamingDistribution: instance Selector S1_0_1CreateStreamingDistributionResponse
+ Network.AWS.CloudFront.CreateStreamingDistribution: instance Selector S1_0_2CreateStreamingDistributionResponse
+ Network.AWS.CloudFront.CreateStreamingDistribution: instance Selector S1_0_3CreateStreamingDistributionResponse
+ Network.AWS.CloudFront.CreateStreamingDistribution: instance ToElement CreateStreamingDistribution
+ Network.AWS.CloudFront.CreateStreamingDistribution: instance Typeable CreateStreamingDistribution
+ Network.AWS.CloudFront.CreateStreamingDistribution: instance Typeable CreateStreamingDistributionResponse
+ Network.AWS.CloudFront.DeleteCloudFrontOriginAccessIdentity: instance Constructor C1_0DeleteCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.DeleteCloudFrontOriginAccessIdentity: instance Data DeleteCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.DeleteCloudFrontOriginAccessIdentity: instance Data DeleteCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.DeleteCloudFrontOriginAccessIdentity: instance Datatype D1DeleteCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.DeleteCloudFrontOriginAccessIdentity: instance Generic DeleteCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.DeleteCloudFrontOriginAccessIdentity: instance Selector S1_0_0DeleteCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.DeleteCloudFrontOriginAccessIdentity: instance Selector S1_0_1DeleteCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.DeleteCloudFrontOriginAccessIdentity: instance Typeable DeleteCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.DeleteCloudFrontOriginAccessIdentity: instance Typeable DeleteCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.DeleteDistribution: instance Constructor C1_0DeleteDistribution
+ Network.AWS.CloudFront.DeleteDistribution: instance Data DeleteDistribution
+ Network.AWS.CloudFront.DeleteDistribution: instance Data DeleteDistributionResponse
+ Network.AWS.CloudFront.DeleteDistribution: instance Datatype D1DeleteDistribution
+ Network.AWS.CloudFront.DeleteDistribution: instance Generic DeleteDistribution
+ Network.AWS.CloudFront.DeleteDistribution: instance Selector S1_0_0DeleteDistribution
+ Network.AWS.CloudFront.DeleteDistribution: instance Selector S1_0_1DeleteDistribution
+ Network.AWS.CloudFront.DeleteDistribution: instance Typeable DeleteDistribution
+ Network.AWS.CloudFront.DeleteDistribution: instance Typeable DeleteDistributionResponse
+ Network.AWS.CloudFront.DeleteStreamingDistribution: instance Constructor C1_0DeleteStreamingDistribution
+ Network.AWS.CloudFront.DeleteStreamingDistribution: instance Data DeleteStreamingDistribution
+ Network.AWS.CloudFront.DeleteStreamingDistribution: instance Data DeleteStreamingDistributionResponse
+ Network.AWS.CloudFront.DeleteStreamingDistribution: instance Datatype D1DeleteStreamingDistribution
+ Network.AWS.CloudFront.DeleteStreamingDistribution: instance Generic DeleteStreamingDistribution
+ Network.AWS.CloudFront.DeleteStreamingDistribution: instance Selector S1_0_0DeleteStreamingDistribution
+ Network.AWS.CloudFront.DeleteStreamingDistribution: instance Selector S1_0_1DeleteStreamingDistribution
+ Network.AWS.CloudFront.DeleteStreamingDistribution: instance Typeable DeleteStreamingDistribution
+ Network.AWS.CloudFront.DeleteStreamingDistribution: instance Typeable DeleteStreamingDistributionResponse
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: gcfoairsCloudFrontOriginAccessIdentity :: Lens' GetCloudFrontOriginAccessIdentityResponse (Maybe CloudFrontOriginAccessIdentity)
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: gcfoairsETag :: Lens' GetCloudFrontOriginAccessIdentityResponse (Maybe Text)
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: gcfoairsStatus :: Lens' GetCloudFrontOriginAccessIdentityResponse Int
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: instance Constructor C1_0GetCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: instance Constructor C1_0GetCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: instance Data GetCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: instance Data GetCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: instance Datatype D1GetCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: instance Datatype D1GetCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: instance Generic GetCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: instance Generic GetCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: instance Selector S1_0_0GetCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: instance Selector S1_0_0GetCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: instance Selector S1_0_1GetCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: instance Selector S1_0_2GetCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: instance Typeable GetCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: instance Typeable GetCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: gcfoaicrsCloudFrontOriginAccessIdentityConfig :: Lens' GetCloudFrontOriginAccessIdentityConfigResponse (Maybe CloudFrontOriginAccessIdentityConfig)
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: gcfoaicrsETag :: Lens' GetCloudFrontOriginAccessIdentityConfigResponse (Maybe Text)
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: gcfoaicrsStatus :: Lens' GetCloudFrontOriginAccessIdentityConfigResponse Int
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: instance Constructor C1_0GetCloudFrontOriginAccessIdentityConfig
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: instance Constructor C1_0GetCloudFrontOriginAccessIdentityConfigResponse
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: instance Data GetCloudFrontOriginAccessIdentityConfig
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: instance Data GetCloudFrontOriginAccessIdentityConfigResponse
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: instance Datatype D1GetCloudFrontOriginAccessIdentityConfig
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: instance Datatype D1GetCloudFrontOriginAccessIdentityConfigResponse
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: instance Generic GetCloudFrontOriginAccessIdentityConfig
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: instance Generic GetCloudFrontOriginAccessIdentityConfigResponse
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: instance Selector S1_0_0GetCloudFrontOriginAccessIdentityConfig
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: instance Selector S1_0_0GetCloudFrontOriginAccessIdentityConfigResponse
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: instance Selector S1_0_1GetCloudFrontOriginAccessIdentityConfigResponse
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: instance Selector S1_0_2GetCloudFrontOriginAccessIdentityConfigResponse
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: instance Typeable GetCloudFrontOriginAccessIdentityConfig
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: instance Typeable GetCloudFrontOriginAccessIdentityConfigResponse
+ Network.AWS.CloudFront.GetDistribution: gdrsDistribution :: Lens' GetDistributionResponse (Maybe Distribution)
+ Network.AWS.CloudFront.GetDistribution: gdrsETag :: Lens' GetDistributionResponse (Maybe Text)
+ Network.AWS.CloudFront.GetDistribution: gdrsStatus :: Lens' GetDistributionResponse Int
+ Network.AWS.CloudFront.GetDistribution: instance Constructor C1_0GetDistribution
+ Network.AWS.CloudFront.GetDistribution: instance Constructor C1_0GetDistributionResponse
+ Network.AWS.CloudFront.GetDistribution: instance Data GetDistribution
+ Network.AWS.CloudFront.GetDistribution: instance Data GetDistributionResponse
+ Network.AWS.CloudFront.GetDistribution: instance Datatype D1GetDistribution
+ Network.AWS.CloudFront.GetDistribution: instance Datatype D1GetDistributionResponse
+ Network.AWS.CloudFront.GetDistribution: instance Generic GetDistribution
+ Network.AWS.CloudFront.GetDistribution: instance Generic GetDistributionResponse
+ Network.AWS.CloudFront.GetDistribution: instance Selector S1_0_0GetDistribution
+ Network.AWS.CloudFront.GetDistribution: instance Selector S1_0_0GetDistributionResponse
+ Network.AWS.CloudFront.GetDistribution: instance Selector S1_0_1GetDistributionResponse
+ Network.AWS.CloudFront.GetDistribution: instance Selector S1_0_2GetDistributionResponse
+ Network.AWS.CloudFront.GetDistribution: instance Typeable GetDistribution
+ Network.AWS.CloudFront.GetDistribution: instance Typeable GetDistributionResponse
+ Network.AWS.CloudFront.GetDistributionConfig: gdcrsDistributionConfig :: Lens' GetDistributionConfigResponse (Maybe DistributionConfig)
+ Network.AWS.CloudFront.GetDistributionConfig: gdcrsETag :: Lens' GetDistributionConfigResponse (Maybe Text)
+ Network.AWS.CloudFront.GetDistributionConfig: gdcrsStatus :: Lens' GetDistributionConfigResponse Int
+ Network.AWS.CloudFront.GetDistributionConfig: instance Constructor C1_0GetDistributionConfig
+ Network.AWS.CloudFront.GetDistributionConfig: instance Constructor C1_0GetDistributionConfigResponse
+ Network.AWS.CloudFront.GetDistributionConfig: instance Data GetDistributionConfig
+ Network.AWS.CloudFront.GetDistributionConfig: instance Data GetDistributionConfigResponse
+ Network.AWS.CloudFront.GetDistributionConfig: instance Datatype D1GetDistributionConfig
+ Network.AWS.CloudFront.GetDistributionConfig: instance Datatype D1GetDistributionConfigResponse
+ Network.AWS.CloudFront.GetDistributionConfig: instance Generic GetDistributionConfig
+ Network.AWS.CloudFront.GetDistributionConfig: instance Generic GetDistributionConfigResponse
+ Network.AWS.CloudFront.GetDistributionConfig: instance Selector S1_0_0GetDistributionConfig
+ Network.AWS.CloudFront.GetDistributionConfig: instance Selector S1_0_0GetDistributionConfigResponse
+ Network.AWS.CloudFront.GetDistributionConfig: instance Selector S1_0_1GetDistributionConfigResponse
+ Network.AWS.CloudFront.GetDistributionConfig: instance Selector S1_0_2GetDistributionConfigResponse
+ Network.AWS.CloudFront.GetDistributionConfig: instance Typeable GetDistributionConfig
+ Network.AWS.CloudFront.GetDistributionConfig: instance Typeable GetDistributionConfigResponse
+ Network.AWS.CloudFront.GetInvalidation: girsInvalidation :: Lens' GetInvalidationResponse (Maybe Invalidation)
+ Network.AWS.CloudFront.GetInvalidation: girsStatus :: Lens' GetInvalidationResponse Int
+ Network.AWS.CloudFront.GetInvalidation: instance Constructor C1_0GetInvalidation
+ Network.AWS.CloudFront.GetInvalidation: instance Constructor C1_0GetInvalidationResponse
+ Network.AWS.CloudFront.GetInvalidation: instance Data GetInvalidation
+ Network.AWS.CloudFront.GetInvalidation: instance Data GetInvalidationResponse
+ Network.AWS.CloudFront.GetInvalidation: instance Datatype D1GetInvalidation
+ Network.AWS.CloudFront.GetInvalidation: instance Datatype D1GetInvalidationResponse
+ Network.AWS.CloudFront.GetInvalidation: instance Generic GetInvalidation
+ Network.AWS.CloudFront.GetInvalidation: instance Generic GetInvalidationResponse
+ Network.AWS.CloudFront.GetInvalidation: instance Selector S1_0_0GetInvalidation
+ Network.AWS.CloudFront.GetInvalidation: instance Selector S1_0_0GetInvalidationResponse
+ Network.AWS.CloudFront.GetInvalidation: instance Selector S1_0_1GetInvalidation
+ Network.AWS.CloudFront.GetInvalidation: instance Selector S1_0_1GetInvalidationResponse
+ Network.AWS.CloudFront.GetInvalidation: instance Typeable GetInvalidation
+ Network.AWS.CloudFront.GetInvalidation: instance Typeable GetInvalidationResponse
+ Network.AWS.CloudFront.GetStreamingDistribution: gsdrsETag :: Lens' GetStreamingDistributionResponse (Maybe Text)
+ Network.AWS.CloudFront.GetStreamingDistribution: gsdrsStatus :: Lens' GetStreamingDistributionResponse Int
+ Network.AWS.CloudFront.GetStreamingDistribution: gsdrsStreamingDistribution :: Lens' GetStreamingDistributionResponse (Maybe StreamingDistribution)
+ Network.AWS.CloudFront.GetStreamingDistribution: instance Constructor C1_0GetStreamingDistribution
+ Network.AWS.CloudFront.GetStreamingDistribution: instance Constructor C1_0GetStreamingDistributionResponse
+ Network.AWS.CloudFront.GetStreamingDistribution: instance Data GetStreamingDistribution
+ Network.AWS.CloudFront.GetStreamingDistribution: instance Data GetStreamingDistributionResponse
+ Network.AWS.CloudFront.GetStreamingDistribution: instance Datatype D1GetStreamingDistribution
+ Network.AWS.CloudFront.GetStreamingDistribution: instance Datatype D1GetStreamingDistributionResponse
+ Network.AWS.CloudFront.GetStreamingDistribution: instance Generic GetStreamingDistribution
+ Network.AWS.CloudFront.GetStreamingDistribution: instance Generic GetStreamingDistributionResponse
+ Network.AWS.CloudFront.GetStreamingDistribution: instance Selector S1_0_0GetStreamingDistribution
+ Network.AWS.CloudFront.GetStreamingDistribution: instance Selector S1_0_0GetStreamingDistributionResponse
+ Network.AWS.CloudFront.GetStreamingDistribution: instance Selector S1_0_1GetStreamingDistributionResponse
+ Network.AWS.CloudFront.GetStreamingDistribution: instance Selector S1_0_2GetStreamingDistributionResponse
+ Network.AWS.CloudFront.GetStreamingDistribution: instance Typeable GetStreamingDistribution
+ Network.AWS.CloudFront.GetStreamingDistribution: instance Typeable GetStreamingDistributionResponse
+ Network.AWS.CloudFront.GetStreamingDistributionConfig: gsdcrsETag :: Lens' GetStreamingDistributionConfigResponse (Maybe Text)
+ Network.AWS.CloudFront.GetStreamingDistributionConfig: gsdcrsStatus :: Lens' GetStreamingDistributionConfigResponse Int
+ Network.AWS.CloudFront.GetStreamingDistributionConfig: gsdcrsStreamingDistributionConfig :: Lens' GetStreamingDistributionConfigResponse (Maybe StreamingDistributionConfig)
+ Network.AWS.CloudFront.GetStreamingDistributionConfig: instance Constructor C1_0GetStreamingDistributionConfig
+ Network.AWS.CloudFront.GetStreamingDistributionConfig: instance Constructor C1_0GetStreamingDistributionConfigResponse
+ Network.AWS.CloudFront.GetStreamingDistributionConfig: instance Data GetStreamingDistributionConfig
+ Network.AWS.CloudFront.GetStreamingDistributionConfig: instance Data GetStreamingDistributionConfigResponse
+ Network.AWS.CloudFront.GetStreamingDistributionConfig: instance Datatype D1GetStreamingDistributionConfig
+ Network.AWS.CloudFront.GetStreamingDistributionConfig: instance Datatype D1GetStreamingDistributionConfigResponse
+ Network.AWS.CloudFront.GetStreamingDistributionConfig: instance Generic GetStreamingDistributionConfig
+ Network.AWS.CloudFront.GetStreamingDistributionConfig: instance Generic GetStreamingDistributionConfigResponse
+ Network.AWS.CloudFront.GetStreamingDistributionConfig: instance Selector S1_0_0GetStreamingDistributionConfig
+ Network.AWS.CloudFront.GetStreamingDistributionConfig: instance Selector S1_0_0GetStreamingDistributionConfigResponse
+ Network.AWS.CloudFront.GetStreamingDistributionConfig: instance Selector S1_0_1GetStreamingDistributionConfigResponse
+ Network.AWS.CloudFront.GetStreamingDistributionConfig: instance Selector S1_0_2GetStreamingDistributionConfigResponse
+ Network.AWS.CloudFront.GetStreamingDistributionConfig: instance Typeable GetStreamingDistributionConfig
+ Network.AWS.CloudFront.GetStreamingDistributionConfig: instance Typeable GetStreamingDistributionConfigResponse
+ Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities: instance Constructor C1_0ListCloudFrontOriginAccessIdentities
+ Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities: instance Constructor C1_0ListCloudFrontOriginAccessIdentitiesResponse
+ Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities: instance Data ListCloudFrontOriginAccessIdentities
+ Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities: instance Data ListCloudFrontOriginAccessIdentitiesResponse
+ Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities: instance Datatype D1ListCloudFrontOriginAccessIdentities
+ Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities: instance Datatype D1ListCloudFrontOriginAccessIdentitiesResponse
+ Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities: instance Generic ListCloudFrontOriginAccessIdentities
+ Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities: instance Generic ListCloudFrontOriginAccessIdentitiesResponse
+ Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities: instance Selector S1_0_0ListCloudFrontOriginAccessIdentities
+ Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities: instance Selector S1_0_0ListCloudFrontOriginAccessIdentitiesResponse
+ Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities: instance Selector S1_0_1ListCloudFrontOriginAccessIdentities
+ Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities: instance Selector S1_0_1ListCloudFrontOriginAccessIdentitiesResponse
+ Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities: instance Typeable ListCloudFrontOriginAccessIdentities
+ Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities: instance Typeable ListCloudFrontOriginAccessIdentitiesResponse
+ Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities: lcfoairsCloudFrontOriginAccessIdentityList :: Lens' ListCloudFrontOriginAccessIdentitiesResponse CloudFrontOriginAccessIdentityList
+ Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities: lcfoairsStatus :: Lens' ListCloudFrontOriginAccessIdentitiesResponse Int
+ Network.AWS.CloudFront.ListDistributions: instance Constructor C1_0ListDistributions
+ Network.AWS.CloudFront.ListDistributions: instance Constructor C1_0ListDistributionsResponse
+ Network.AWS.CloudFront.ListDistributions: instance Data ListDistributions
+ Network.AWS.CloudFront.ListDistributions: instance Data ListDistributionsResponse
+ Network.AWS.CloudFront.ListDistributions: instance Datatype D1ListDistributions
+ Network.AWS.CloudFront.ListDistributions: instance Datatype D1ListDistributionsResponse
+ Network.AWS.CloudFront.ListDistributions: instance Generic ListDistributions
+ Network.AWS.CloudFront.ListDistributions: instance Generic ListDistributionsResponse
+ Network.AWS.CloudFront.ListDistributions: instance Selector S1_0_0ListDistributions
+ Network.AWS.CloudFront.ListDistributions: instance Selector S1_0_0ListDistributionsResponse
+ Network.AWS.CloudFront.ListDistributions: instance Selector S1_0_1ListDistributions
+ Network.AWS.CloudFront.ListDistributions: instance Selector S1_0_1ListDistributionsResponse
+ Network.AWS.CloudFront.ListDistributions: instance Typeable ListDistributions
+ Network.AWS.CloudFront.ListDistributions: instance Typeable ListDistributionsResponse
+ Network.AWS.CloudFront.ListDistributions: ldrsDistributionList :: Lens' ListDistributionsResponse DistributionList
+ Network.AWS.CloudFront.ListDistributions: ldrsStatus :: Lens' ListDistributionsResponse Int
+ Network.AWS.CloudFront.ListInvalidations: instance Constructor C1_0ListInvalidations
+ Network.AWS.CloudFront.ListInvalidations: instance Constructor C1_0ListInvalidationsResponse
+ Network.AWS.CloudFront.ListInvalidations: instance Data ListInvalidations
+ Network.AWS.CloudFront.ListInvalidations: instance Data ListInvalidationsResponse
+ Network.AWS.CloudFront.ListInvalidations: instance Datatype D1ListInvalidations
+ Network.AWS.CloudFront.ListInvalidations: instance Datatype D1ListInvalidationsResponse
+ Network.AWS.CloudFront.ListInvalidations: instance Generic ListInvalidations
+ Network.AWS.CloudFront.ListInvalidations: instance Generic ListInvalidationsResponse
+ Network.AWS.CloudFront.ListInvalidations: instance Selector S1_0_0ListInvalidations
+ Network.AWS.CloudFront.ListInvalidations: instance Selector S1_0_0ListInvalidationsResponse
+ Network.AWS.CloudFront.ListInvalidations: instance Selector S1_0_1ListInvalidations
+ Network.AWS.CloudFront.ListInvalidations: instance Selector S1_0_1ListInvalidationsResponse
+ Network.AWS.CloudFront.ListInvalidations: instance Selector S1_0_2ListInvalidations
+ Network.AWS.CloudFront.ListInvalidations: instance Typeable ListInvalidations
+ Network.AWS.CloudFront.ListInvalidations: instance Typeable ListInvalidationsResponse
+ Network.AWS.CloudFront.ListInvalidations: lirsInvalidationList :: Lens' ListInvalidationsResponse InvalidationList
+ Network.AWS.CloudFront.ListInvalidations: lirsStatus :: Lens' ListInvalidationsResponse Int
+ Network.AWS.CloudFront.ListStreamingDistributions: instance Constructor C1_0ListStreamingDistributions
+ Network.AWS.CloudFront.ListStreamingDistributions: instance Constructor C1_0ListStreamingDistributionsResponse
+ Network.AWS.CloudFront.ListStreamingDistributions: instance Data ListStreamingDistributions
+ Network.AWS.CloudFront.ListStreamingDistributions: instance Data ListStreamingDistributionsResponse
+ Network.AWS.CloudFront.ListStreamingDistributions: instance Datatype D1ListStreamingDistributions
+ Network.AWS.CloudFront.ListStreamingDistributions: instance Datatype D1ListStreamingDistributionsResponse
+ Network.AWS.CloudFront.ListStreamingDistributions: instance Generic ListStreamingDistributions
+ Network.AWS.CloudFront.ListStreamingDistributions: instance Generic ListStreamingDistributionsResponse
+ Network.AWS.CloudFront.ListStreamingDistributions: instance Selector S1_0_0ListStreamingDistributions
+ Network.AWS.CloudFront.ListStreamingDistributions: instance Selector S1_0_0ListStreamingDistributionsResponse
+ Network.AWS.CloudFront.ListStreamingDistributions: instance Selector S1_0_1ListStreamingDistributions
+ Network.AWS.CloudFront.ListStreamingDistributions: instance Selector S1_0_1ListStreamingDistributionsResponse
+ Network.AWS.CloudFront.ListStreamingDistributions: instance Typeable ListStreamingDistributions
+ Network.AWS.CloudFront.ListStreamingDistributions: instance Typeable ListStreamingDistributionsResponse
+ Network.AWS.CloudFront.ListStreamingDistributions: lsdrsStatus :: Lens' ListStreamingDistributionsResponse Int
+ Network.AWS.CloudFront.ListStreamingDistributions: lsdrsStreamingDistributionList :: Lens' ListStreamingDistributionsResponse StreamingDistributionList
+ Network.AWS.CloudFront.Types: Blacklist :: GeoRestrictionType
+ Network.AWS.CloudFront.Types: Delete :: Method
+ Network.AWS.CloudFront.Types: HTTPOnly :: OriginProtocolPolicy
+ Network.AWS.CloudFront.Types: HTTPSOnly :: ViewerProtocolPolicy
+ Network.AWS.CloudFront.Types: Head :: Method
+ Network.AWS.CloudFront.Types: ISAll :: ItemSelection
+ Network.AWS.CloudFront.Types: ISNone :: ItemSelection
+ Network.AWS.CloudFront.Types: ISWhitelist :: ItemSelection
+ Network.AWS.CloudFront.Types: RedirectToHTTPS :: ViewerProtocolPolicy
+ Network.AWS.CloudFront.Types: SNIOnly :: SSLSupportMethod
+ Network.AWS.CloudFront.Types: SSLV3 :: MinimumProtocolVersion
+ Network.AWS.CloudFront.Types: TLSV1 :: MinimumProtocolVersion
+ Network.AWS.CloudFront.Types: VIP :: SSLSupportMethod
+ Network.AWS.CloudFront.Types: _AccessDenied :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _BatchTooLarge :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _CNAMEAlreadyExists :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _CloudFrontOriginAccessIdentityAlreadyExists :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _CloudFrontOriginAccessIdentityInUse :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _DistributionAlreadyExists :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _DistributionNotDisabled :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _IllegalUpdate :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _InconsistentQuantities :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _InvalidArgument :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _InvalidDefaultRootObject :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _InvalidErrorCode :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _InvalidForwardCookies :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _InvalidGeoRestrictionParameter :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _InvalidHeadersForS3Origin :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _InvalidIfMatchVersion :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _InvalidLocationCode :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _InvalidMinimumProtocolVersion :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _InvalidOrigin :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _InvalidOriginAccessIdentity :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _InvalidProtocolSettings :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _InvalidRelativePath :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _InvalidRequiredProtocol :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _InvalidResponseCode :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _InvalidTTLOrder :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _InvalidViewerCertificate :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _MissingBody :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _NoSuchCloudFrontOriginAccessIdentity :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _NoSuchDistribution :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _NoSuchInvalidation :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _NoSuchOrigin :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _NoSuchStreamingDistribution :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _PreconditionFailed :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _StreamingDistributionAlreadyExists :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _StreamingDistributionNotDisabled :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _TooManyCacheBehaviors :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _TooManyCertificates :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _TooManyCloudFrontOriginAccessIdentities :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _TooManyCookieNamesInWhiteList :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _TooManyDistributionCNAMEs :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _TooManyDistributions :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _TooManyHeadersInForwardedValues :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _TooManyInvalidationsInProgress :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _TooManyOrigins :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _TooManyStreamingDistributionCNAMEs :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _TooManyStreamingDistributions :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _TooManyTrustedSigners :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: _TrustedSignerDoesNotExist :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudFront.Types: cbDefaultTTL :: Lens' CacheBehavior (Maybe Integer)
+ Network.AWS.CloudFront.Types: cbMaxTTL :: Lens' CacheBehavior (Maybe Integer)
+ Network.AWS.CloudFront.Types: ceErrorCachingMinTTL :: Lens' CustomErrorResponse (Maybe Integer)
+ Network.AWS.CloudFront.Types: ceErrorCode :: Lens' CustomErrorResponse Int
+ Network.AWS.CloudFront.Types: ceResponseCode :: Lens' CustomErrorResponse (Maybe Text)
+ Network.AWS.CloudFront.Types: ceResponsePagePath :: Lens' CustomErrorResponse (Maybe Text)
+ Network.AWS.CloudFront.Types: dcbDefaultTTL :: Lens' DefaultCacheBehavior (Maybe Integer)
+ Network.AWS.CloudFront.Types: dcbMaxTTL :: Lens' DefaultCacheBehavior (Maybe Integer)
+ Network.AWS.CloudFront.Types: sAWSAccountNumber :: Lens' Signer (Maybe Text)
+ Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: instance Constructor C1_0UpdateCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: instance Constructor C1_0UpdateCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: instance Data UpdateCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: instance Data UpdateCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: instance Datatype D1UpdateCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: instance Datatype D1UpdateCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: instance Generic UpdateCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: instance Generic UpdateCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: instance Selector S1_0_0UpdateCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: instance Selector S1_0_0UpdateCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: instance Selector S1_0_1UpdateCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: instance Selector S1_0_1UpdateCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: instance Selector S1_0_2UpdateCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: instance Selector S1_0_2UpdateCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: instance ToElement UpdateCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: instance Typeable UpdateCloudFrontOriginAccessIdentity
+ Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: instance Typeable UpdateCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: ucfoairsCloudFrontOriginAccessIdentity :: Lens' UpdateCloudFrontOriginAccessIdentityResponse (Maybe CloudFrontOriginAccessIdentity)
+ Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: ucfoairsETag :: Lens' UpdateCloudFrontOriginAccessIdentityResponse (Maybe Text)
+ Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: ucfoairsStatus :: Lens' UpdateCloudFrontOriginAccessIdentityResponse Int
+ Network.AWS.CloudFront.UpdateDistribution: instance Constructor C1_0UpdateDistribution
+ Network.AWS.CloudFront.UpdateDistribution: instance Constructor C1_0UpdateDistributionResponse
+ Network.AWS.CloudFront.UpdateDistribution: instance Data UpdateDistribution
+ Network.AWS.CloudFront.UpdateDistribution: instance Data UpdateDistributionResponse
+ Network.AWS.CloudFront.UpdateDistribution: instance Datatype D1UpdateDistribution
+ Network.AWS.CloudFront.UpdateDistribution: instance Datatype D1UpdateDistributionResponse
+ Network.AWS.CloudFront.UpdateDistribution: instance Generic UpdateDistribution
+ Network.AWS.CloudFront.UpdateDistribution: instance Generic UpdateDistributionResponse
+ Network.AWS.CloudFront.UpdateDistribution: instance Selector S1_0_0UpdateDistribution
+ Network.AWS.CloudFront.UpdateDistribution: instance Selector S1_0_0UpdateDistributionResponse
+ Network.AWS.CloudFront.UpdateDistribution: instance Selector S1_0_1UpdateDistribution
+ Network.AWS.CloudFront.UpdateDistribution: instance Selector S1_0_1UpdateDistributionResponse
+ Network.AWS.CloudFront.UpdateDistribution: instance Selector S1_0_2UpdateDistribution
+ Network.AWS.CloudFront.UpdateDistribution: instance Selector S1_0_2UpdateDistributionResponse
+ Network.AWS.CloudFront.UpdateDistribution: instance ToElement UpdateDistribution
+ Network.AWS.CloudFront.UpdateDistribution: instance Typeable UpdateDistribution
+ Network.AWS.CloudFront.UpdateDistribution: instance Typeable UpdateDistributionResponse
+ Network.AWS.CloudFront.UpdateDistribution: udrsDistribution :: Lens' UpdateDistributionResponse (Maybe Distribution)
+ Network.AWS.CloudFront.UpdateDistribution: udrsETag :: Lens' UpdateDistributionResponse (Maybe Text)
+ Network.AWS.CloudFront.UpdateDistribution: udrsStatus :: Lens' UpdateDistributionResponse Int
+ Network.AWS.CloudFront.UpdateStreamingDistribution: instance Constructor C1_0UpdateStreamingDistribution
+ Network.AWS.CloudFront.UpdateStreamingDistribution: instance Constructor C1_0UpdateStreamingDistributionResponse
+ Network.AWS.CloudFront.UpdateStreamingDistribution: instance Data UpdateStreamingDistribution
+ Network.AWS.CloudFront.UpdateStreamingDistribution: instance Data UpdateStreamingDistributionResponse
+ Network.AWS.CloudFront.UpdateStreamingDistribution: instance Datatype D1UpdateStreamingDistribution
+ Network.AWS.CloudFront.UpdateStreamingDistribution: instance Datatype D1UpdateStreamingDistributionResponse
+ Network.AWS.CloudFront.UpdateStreamingDistribution: instance Generic UpdateStreamingDistribution
+ Network.AWS.CloudFront.UpdateStreamingDistribution: instance Generic UpdateStreamingDistributionResponse
+ Network.AWS.CloudFront.UpdateStreamingDistribution: instance Selector S1_0_0UpdateStreamingDistribution
+ Network.AWS.CloudFront.UpdateStreamingDistribution: instance Selector S1_0_0UpdateStreamingDistributionResponse
+ Network.AWS.CloudFront.UpdateStreamingDistribution: instance Selector S1_0_1UpdateStreamingDistribution
+ Network.AWS.CloudFront.UpdateStreamingDistribution: instance Selector S1_0_1UpdateStreamingDistributionResponse
+ Network.AWS.CloudFront.UpdateStreamingDistribution: instance Selector S1_0_2UpdateStreamingDistribution
+ Network.AWS.CloudFront.UpdateStreamingDistribution: instance Selector S1_0_2UpdateStreamingDistributionResponse
+ Network.AWS.CloudFront.UpdateStreamingDistribution: instance ToElement UpdateStreamingDistribution
+ Network.AWS.CloudFront.UpdateStreamingDistribution: instance Typeable UpdateStreamingDistribution
+ Network.AWS.CloudFront.UpdateStreamingDistribution: instance Typeable UpdateStreamingDistributionResponse
+ Network.AWS.CloudFront.UpdateStreamingDistribution: usdrsETag :: Lens' UpdateStreamingDistributionResponse (Maybe Text)
+ Network.AWS.CloudFront.UpdateStreamingDistribution: usdrsStatus :: Lens' UpdateStreamingDistributionResponse Int
+ Network.AWS.CloudFront.UpdateStreamingDistribution: usdrsStreamingDistribution :: Lens' UpdateStreamingDistributionResponse (Maybe StreamingDistribution)
- Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: createCloudFrontOriginAccessIdentityResponse :: CreateCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity: createCloudFrontOriginAccessIdentityResponse :: Int -> CreateCloudFrontOriginAccessIdentityResponse
- Network.AWS.CloudFront.CreateDistribution: createDistributionResponse :: CreateDistributionResponse
+ Network.AWS.CloudFront.CreateDistribution: createDistributionResponse :: Int -> CreateDistributionResponse
- Network.AWS.CloudFront.CreateInvalidation: createInvalidationResponse :: CreateInvalidationResponse
+ Network.AWS.CloudFront.CreateInvalidation: createInvalidationResponse :: Int -> CreateInvalidationResponse
- Network.AWS.CloudFront.CreateStreamingDistribution: createStreamingDistributionResponse :: CreateStreamingDistributionResponse
+ Network.AWS.CloudFront.CreateStreamingDistribution: createStreamingDistributionResponse :: Int -> CreateStreamingDistributionResponse
- Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: getCloudFrontOriginAccessIdentityResponse :: GetCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity: getCloudFrontOriginAccessIdentityResponse :: Int -> GetCloudFrontOriginAccessIdentityResponse
- Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: getCloudFrontOriginAccessIdentityConfigResponse :: GetCloudFrontOriginAccessIdentityConfigResponse
+ Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig: getCloudFrontOriginAccessIdentityConfigResponse :: Int -> GetCloudFrontOriginAccessIdentityConfigResponse
- Network.AWS.CloudFront.GetDistribution: getDistributionResponse :: GetDistributionResponse
+ Network.AWS.CloudFront.GetDistribution: getDistributionResponse :: Int -> GetDistributionResponse
- Network.AWS.CloudFront.GetDistributionConfig: getDistributionConfigResponse :: GetDistributionConfigResponse
+ Network.AWS.CloudFront.GetDistributionConfig: getDistributionConfigResponse :: Int -> GetDistributionConfigResponse
- Network.AWS.CloudFront.GetInvalidation: getInvalidationResponse :: GetInvalidationResponse
+ Network.AWS.CloudFront.GetInvalidation: getInvalidationResponse :: Int -> GetInvalidationResponse
- Network.AWS.CloudFront.GetStreamingDistribution: getStreamingDistributionResponse :: GetStreamingDistributionResponse
+ Network.AWS.CloudFront.GetStreamingDistribution: getStreamingDistributionResponse :: Int -> GetStreamingDistributionResponse
- Network.AWS.CloudFront.GetStreamingDistributionConfig: getStreamingDistributionConfigResponse :: GetStreamingDistributionConfigResponse
+ Network.AWS.CloudFront.GetStreamingDistributionConfig: getStreamingDistributionConfigResponse :: Int -> GetStreamingDistributionConfigResponse
- Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities: listCloudFrontOriginAccessIdentitiesResponse :: CloudFrontOriginAccessIdentityList -> ListCloudFrontOriginAccessIdentitiesResponse
+ Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities: listCloudFrontOriginAccessIdentitiesResponse :: Int -> CloudFrontOriginAccessIdentityList -> ListCloudFrontOriginAccessIdentitiesResponse
- Network.AWS.CloudFront.ListDistributions: listDistributionsResponse :: DistributionList -> ListDistributionsResponse
+ Network.AWS.CloudFront.ListDistributions: listDistributionsResponse :: Int -> DistributionList -> ListDistributionsResponse
- Network.AWS.CloudFront.ListInvalidations: listInvalidationsResponse :: InvalidationList -> ListInvalidationsResponse
+ Network.AWS.CloudFront.ListInvalidations: listInvalidationsResponse :: Int -> InvalidationList -> ListInvalidationsResponse
- Network.AWS.CloudFront.ListStreamingDistributions: listStreamingDistributionsResponse :: StreamingDistributionList -> ListStreamingDistributionsResponse
+ Network.AWS.CloudFront.ListStreamingDistributions: listStreamingDistributionsResponse :: Int -> StreamingDistributionList -> ListStreamingDistributionsResponse
- Network.AWS.CloudFront.Types: None :: ItemSelection
+ Network.AWS.CloudFront.Types: None :: GeoRestrictionType
- Network.AWS.CloudFront.Types: Whitelist :: ItemSelection
+ Network.AWS.CloudFront.Types: Whitelist :: GeoRestrictionType
- Network.AWS.CloudFront.Types: oItems :: Lens' Origins (NonEmpty Origin)
+ Network.AWS.CloudFront.Types: oItems :: Lens' Origins (Maybe (NonEmpty Origin))
- Network.AWS.CloudFront.Types: origins :: Int -> NonEmpty Origin -> Origins
+ Network.AWS.CloudFront.Types: origins :: Int -> Origins
- Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: updateCloudFrontOriginAccessIdentityResponse :: UpdateCloudFrontOriginAccessIdentityResponse
+ Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity: updateCloudFrontOriginAccessIdentityResponse :: Int -> UpdateCloudFrontOriginAccessIdentityResponse
- Network.AWS.CloudFront.UpdateDistribution: updateDistributionResponse :: UpdateDistributionResponse
+ Network.AWS.CloudFront.UpdateDistribution: updateDistributionResponse :: Int -> UpdateDistributionResponse
- Network.AWS.CloudFront.UpdateStreamingDistribution: updateStreamingDistributionResponse :: UpdateStreamingDistributionResponse
+ Network.AWS.CloudFront.UpdateStreamingDistribution: updateStreamingDistributionResponse :: Int -> UpdateStreamingDistributionResponse

Files

README.md view
@@ -1,28 +1,41 @@ # Amazon CloudFront SDK -> _Warning:_ This is an experimental preview release which is still under heavy development and not intended for public consumption, _caveat emptor_!-+* [Version](#version) * [Description](#description) * [Contribute](#contribute) * [Licence](#licence) ++## Version++`1.0.0`++ ## Description -Amazon CloudFront is a web service that speeds up distribution of your static-and dynamic web content, for example, .html, .css, .php, image, and media-files, to end users. CloudFront delivers your content through a worldwide-network of edge locations. When an end user requests content that you're-serving with CloudFront, the user is routed to the edge location that-provides the lowest latency, so content is delivered with the best possible-performance. If the content is already in that edge location, CloudFront-delivers it immediately. If the content is not currently in that edge-location, CloudFront retrieves it from an Amazon S3 bucket or an HTTP server-(for example, a web server) that you have identified as the source for the-definitive version of your content.+Amazon CloudFront is a web service that speeds up distribution of your+static and dynamic web content, for example, .html, .css, .php, image,+and media files, to end users. CloudFront delivers your content through+a worldwide network of edge locations. When an end user requests content+that you\'re serving with CloudFront, the user is routed to the edge+location that provides the lowest latency, so content is delivered with+the best possible performance. If the content is already in that edge+location, CloudFront delivers it immediately. If the content is not+currently in that edge location, CloudFront retrieves it from an Amazon+S3 bucket or an HTTP server (for example, a web server) that you have+identified as the source for the definitive version of your content.  Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-cloudfront) and the [AWS API Reference](http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/Welcome.html). +The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/amazonka),+which provides mechanisms for specifying AuthN/AuthZ information and sending requests.++Use of lenses is required for constructing and manipulating types.+This is due to the amount of nesting of AWS types and transparency regarding+de/serialisation into more palatable Haskell values.+The provided lenses should be compatible with any of the major lens libraries+[lens](http://hackage.haskell.org/package/lens) or [lens-family-core](http://hackage.haskell.org/package/lens-family-core).  ## Contribute 
amazonka-cloudfront.cabal view
@@ -1,35 +1,43 @@ name:                  amazonka-cloudfront-version:               0.3.6+version:               1.0.0 synopsis:              Amazon CloudFront SDK. homepage:              https://github.com/brendanhay/amazonka license:               OtherLicense license-file:          LICENSE author:                Brendan Hay maintainer:            Brendan Hay <brendan.g.hay@gmail.com>-copyright:             Copyright (c) 2013-2014 Brendan Hay+copyright:             Copyright (c) 2013-2015 Brendan Hay category:              Network, AWS, Cloud, Distributed Computing build-type:            Simple extra-source-files:    README.md cabal-version:         >= 1.10  description:-    Amazon CloudFront is a web service that speeds up distribution of your static-    and dynamic web content, for example, .html, .css, .php, image, and media-    files, to end users. CloudFront delivers your content through a worldwide-    network of edge locations. When an end user requests content that you're-    serving with CloudFront, the user is routed to the edge location that-    provides the lowest latency, so content is delivered with the best possible-    performance. If the content is already in that edge location, CloudFront-    delivers it immediately. If the content is not currently in that edge-    location, CloudFront retrieves it from an Amazon S3 bucket or an HTTP server-    (for example, a web server) that you have identified as the source for the-    definitive version of your content.-+    Amazon CloudFront is a web service that speeds up distribution of your+    static and dynamic web content, for example, .html, .css, .php, image,+    and media files, to end users. CloudFront delivers your content through+    a worldwide network of edge locations. When an end user requests content+    that you\'re serving with CloudFront, the user is routed to the edge+    location that provides the lowest latency, so content is delivered with+    the best possible performance. If the content is already in that edge+    location, CloudFront delivers it immediately. If the content is not+    currently in that edge location, CloudFront retrieves it from an Amazon+    S3 bucket or an HTTP server (for example, a web server) that you have+    identified as the source for the definitive version of your content.     .-    /See:/ <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/Welcome.html AWS API Reference>+    The types from this library are intended to be used with+    <http://hackage.haskell.org/package/amazonka amazonka>, which provides+    mechanisms for specifying AuthN/AuthZ information and sending requests.     .-    /Warning:/ This is an experimental preview release which is still under-    heavy development and not intended for public consumption, caveat emptor!+    Use of lenses is required for constructing and manipulating types.+    This is due to the amount of nesting of AWS types and transparency regarding+    de/serialisation into more palatable Haskell values.+    The provided lenses should be compatible with any of the major lens libraries+    such as <http://hackage.haskell.org/package/lens lens> or+    <http://hackage.haskell.org/package/lens-family-core lens-family-core>.+    .+    See "Network.AWS.CloudFront" and the <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/Welcome.html AWS API Reference>+    to get started.  source-repository head     type:     git@@ -65,9 +73,40 @@         , Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity         , Network.AWS.CloudFront.UpdateDistribution         , Network.AWS.CloudFront.UpdateStreamingDistribution+        , Network.AWS.CloudFront.Waiters      other-modules:+          Network.AWS.CloudFront.Types.Product+        , Network.AWS.CloudFront.Types.Sum      build-depends:-          amazonka-core == 0.3.6.*+          amazonka-core == 1.0.0.*         , base          >= 4.7     && < 5++test-suite amazonka-cloudfront-test+    type:              exitcode-stdio-1.0+    default-language:  Haskell2010+    hs-source-dirs:    test+    main-is:           Main.hs++    ghc-options:       -Wall -threaded++    -- This is not comprehensive if modules have manually been added.+    -- It exists to ensure cabal 'somewhat' detects test module changes.+    other-modules:+          Test.AWS.CloudFront+        , Test.AWS.Gen.CloudFront+        , Test.AWS.CloudFront.Internal++    build-depends:+          amazonka-core == 1.0.0+        , amazonka-test == 1.0.0+        , amazonka-cloudfront == 1.0.0+        , base+        , bytestring+        , lens+        , tasty+        , tasty-hunit+        , text+        , time+        , unordered-containers
gen/Network/AWS/CloudFront.hs view
@@ -1,70 +1,681 @@+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudFront--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Amazon CloudFront is a web service that speeds up distribution of your static--- and dynamic web content, for example, .html, .css, .php, image, and media--- files, to end users. CloudFront delivers your content through a worldwide--- network of edge locations. When an end user requests content that you're--- serving with CloudFront, the user is routed to the edge location that--- provides the lowest latency, so content is delivered with the best possible--- performance. If the content is already in that edge location, CloudFront--- delivers it immediately. If the content is not currently in that edge--- location, CloudFront retrieves it from an Amazon S3 bucket or an HTTP server--- (for example, a web server) that you have identified as the source for the--- definitive version of your content.+-- Amazon CloudFront is a web service that speeds up distribution of your+-- static and dynamic web content, for example, .html, .css, .php, image,+-- and media files, to end users. CloudFront delivers your content through+-- a worldwide network of edge locations. When an end user requests content+-- that you\'re serving with CloudFront, the user is routed to the edge+-- location that provides the lowest latency, so content is delivered with+-- the best possible performance. If the content is already in that edge+-- location, CloudFront delivers it immediately. If the content is not+-- currently in that edge location, CloudFront retrieves it from an Amazon+-- S3 bucket or an HTTP server (for example, a web server) that you have+-- identified as the source for the definitive version of your content.+--+-- /See:/ <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/Welcome.html AWS API Reference> module Network.AWS.CloudFront-    ( module Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity-    , module Network.AWS.CloudFront.CreateDistribution-    , module Network.AWS.CloudFront.CreateInvalidation-    , module Network.AWS.CloudFront.CreateStreamingDistribution-    , module Network.AWS.CloudFront.DeleteCloudFrontOriginAccessIdentity-    , module Network.AWS.CloudFront.DeleteDistribution+    (+    -- * Service+      CloudFront++    -- * Errors+    -- $errors++    -- ** InvalidErrorCode+    , _InvalidErrorCode++    -- ** TooManyCacheBehaviors+    , _TooManyCacheBehaviors++    -- ** DistributionNotDisabled+    , _DistributionNotDisabled++    -- ** InvalidOriginAccessIdentity+    , _InvalidOriginAccessIdentity++    -- ** TooManyCloudFrontOriginAccessIdentities+    , _TooManyCloudFrontOriginAccessIdentities++    -- ** TooManyStreamingDistributions+    , _TooManyStreamingDistributions++    -- ** InvalidArgument+    , _InvalidArgument++    -- ** NoSuchCloudFrontOriginAccessIdentity+    , _NoSuchCloudFrontOriginAccessIdentity++    -- ** NoSuchStreamingDistribution+    , _NoSuchStreamingDistribution++    -- ** CloudFrontOriginAccessIdentityInUse+    , _CloudFrontOriginAccessIdentityInUse++    -- ** InconsistentQuantities+    , _InconsistentQuantities++    -- ** TooManyInvalidationsInProgress+    , _TooManyInvalidationsInProgress++    -- ** TooManyDistributionCNAMEs+    , _TooManyDistributionCNAMEs++    -- ** InvalidForwardCookies+    , _InvalidForwardCookies++    -- ** TooManyCookieNamesInWhiteList+    , _TooManyCookieNamesInWhiteList++    -- ** BatchTooLarge+    , _BatchTooLarge++    -- ** InvalidOrigin+    , _InvalidOrigin++    -- ** TooManyTrustedSigners+    , _TooManyTrustedSigners++    -- ** NoSuchOrigin+    , _NoSuchOrigin++    -- ** NoSuchInvalidation+    , _NoSuchInvalidation++    -- ** StreamingDistributionNotDisabled+    , _StreamingDistributionNotDisabled++    -- ** InvalidTTLOrder+    , _InvalidTTLOrder++    -- ** TooManyStreamingDistributionCNAMEs+    , _TooManyStreamingDistributionCNAMEs++    -- ** TooManyDistributions+    , _TooManyDistributions++    -- ** InvalidRequiredProtocol+    , _InvalidRequiredProtocol++    -- ** TooManyHeadersInForwardedValues+    , _TooManyHeadersInForwardedValues++    -- ** TooManyCertificates+    , _TooManyCertificates++    -- ** MissingBody+    , _MissingBody++    -- ** DistributionAlreadyExists+    , _DistributionAlreadyExists++    -- ** IllegalUpdate+    , _IllegalUpdate++    -- ** InvalidResponseCode+    , _InvalidResponseCode++    -- ** InvalidIfMatchVersion+    , _InvalidIfMatchVersion++    -- ** PreconditionFailed+    , _PreconditionFailed++    -- ** InvalidProtocolSettings+    , _InvalidProtocolSettings++    -- ** TrustedSignerDoesNotExist+    , _TrustedSignerDoesNotExist++    -- ** InvalidHeadersForS3Origin+    , _InvalidHeadersForS3Origin++    -- ** CNAMEAlreadyExists+    , _CNAMEAlreadyExists++    -- ** StreamingDistributionAlreadyExists+    , _StreamingDistributionAlreadyExists++    -- ** TooManyOrigins+    , _TooManyOrigins++    -- ** CloudFrontOriginAccessIdentityAlreadyExists+    , _CloudFrontOriginAccessIdentityAlreadyExists++    -- ** InvalidRelativePath+    , _InvalidRelativePath++    -- ** InvalidMinimumProtocolVersion+    , _InvalidMinimumProtocolVersion++    -- ** AccessDenied+    , _AccessDenied++    -- ** NoSuchDistribution+    , _NoSuchDistribution++    -- ** InvalidViewerCertificate+    , _InvalidViewerCertificate++    -- ** InvalidDefaultRootObject+    , _InvalidDefaultRootObject++    -- ** InvalidLocationCode+    , _InvalidLocationCode++    -- ** InvalidGeoRestrictionParameter+    , _InvalidGeoRestrictionParameter++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** DeleteStreamingDistribution     , module Network.AWS.CloudFront.DeleteStreamingDistribution-    , module Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity-    , module Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig-    , module Network.AWS.CloudFront.GetDistribution++    -- ** UpdateStreamingDistribution+    , module Network.AWS.CloudFront.UpdateStreamingDistribution++    -- ** CreateDistribution+    , module Network.AWS.CloudFront.CreateDistribution++    -- ** GetDistributionConfig     , module Network.AWS.CloudFront.GetDistributionConfig-    , module Network.AWS.CloudFront.GetInvalidation-    , module Network.AWS.CloudFront.GetStreamingDistribution++    -- ** GetDistribution+    , module Network.AWS.CloudFront.GetDistribution++    -- ** DeleteCloudFrontOriginAccessIdentity+    , module Network.AWS.CloudFront.DeleteCloudFrontOriginAccessIdentity++    -- ** UpdateCloudFrontOriginAccessIdentity+    , module Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity++    -- ** ListStreamingDistributions+    , module Network.AWS.CloudFront.ListStreamingDistributions++    -- ** GetStreamingDistributionConfig     , module Network.AWS.CloudFront.GetStreamingDistributionConfig++    -- ** GetCloudFrontOriginAccessIdentityConfig+    , module Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig++    -- ** CreateStreamingDistribution+    , module Network.AWS.CloudFront.CreateStreamingDistribution++    -- ** CreateCloudFrontOriginAccessIdentity+    , module Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity++    -- ** ListCloudFrontOriginAccessIdentities     , module Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities-    , module Network.AWS.CloudFront.ListDistributions++    -- ** GetInvalidation+    , module Network.AWS.CloudFront.GetInvalidation++    -- ** ListInvalidations     , module Network.AWS.CloudFront.ListInvalidations-    , module Network.AWS.CloudFront.ListStreamingDistributions-    , module Network.AWS.CloudFront.Types-    , module Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity++    -- ** GetStreamingDistribution+    , module Network.AWS.CloudFront.GetStreamingDistribution++    -- ** GetCloudFrontOriginAccessIdentity+    , module Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity++    -- ** CreateInvalidation+    , module Network.AWS.CloudFront.CreateInvalidation++    -- ** UpdateDistribution     , module Network.AWS.CloudFront.UpdateDistribution-    , module Network.AWS.CloudFront.UpdateStreamingDistribution++    -- ** DeleteDistribution+    , module Network.AWS.CloudFront.DeleteDistribution++    -- ** ListDistributions+    , module Network.AWS.CloudFront.ListDistributions++    -- * Types++    -- ** GeoRestrictionType+    , GeoRestrictionType (..)++    -- ** ItemSelection+    , ItemSelection (..)++    -- ** Method+    , Method (..)++    -- ** MinimumProtocolVersion+    , MinimumProtocolVersion (..)++    -- ** OriginProtocolPolicy+    , OriginProtocolPolicy (..)++    -- ** PriceClass+    , PriceClass (..)++    -- ** SSLSupportMethod+    , SSLSupportMethod (..)++    -- ** ViewerProtocolPolicy+    , ViewerProtocolPolicy (..)++    -- ** ActiveTrustedSigners+    , ActiveTrustedSigners+    , activeTrustedSigners+    , atsItems+    , atsEnabled+    , atsQuantity++    -- ** Aliases+    , Aliases+    , aliases+    , aItems+    , aQuantity++    -- ** AllowedMethods+    , AllowedMethods+    , allowedMethods+    , amCachedMethods+    , amQuantity+    , amItems++    -- ** CacheBehavior+    , CacheBehavior+    , cacheBehavior+    , cbAllowedMethods+    , cbMaxTTL+    , cbSmoothStreaming+    , cbDefaultTTL+    , cbPathPattern+    , cbTargetOriginId+    , cbForwardedValues+    , cbTrustedSigners+    , cbViewerProtocolPolicy+    , cbMinTTL++    -- ** CacheBehaviors+    , CacheBehaviors+    , cacheBehaviors+    , cbItems+    , cbQuantity++    -- ** CachedMethods+    , CachedMethods+    , cachedMethods+    , cmQuantity+    , cmItems++    -- ** CloudFrontOriginAccessIdentity+    , CloudFrontOriginAccessIdentity+    , cloudFrontOriginAccessIdentity+    , cfoaiCloudFrontOriginAccessIdentityConfig+    , cfoaiId+    , cfoaiS3CanonicalUserId++    -- ** CloudFrontOriginAccessIdentityConfig+    , CloudFrontOriginAccessIdentityConfig+    , cloudFrontOriginAccessIdentityConfig+    , cfoaicCallerReference+    , cfoaicComment++    -- ** CloudFrontOriginAccessIdentityList+    , CloudFrontOriginAccessIdentityList+    , cloudFrontOriginAccessIdentityList+    , cfoailItems+    , cfoailNextMarker+    , cfoailMarker+    , cfoailMaxItems+    , cfoailIsTruncated+    , cfoailQuantity++    -- ** CloudFrontOriginAccessIdentitySummary+    , CloudFrontOriginAccessIdentitySummary+    , cloudFrontOriginAccessIdentitySummary+    , cfoaisId+    , cfoaisS3CanonicalUserId+    , cfoaisComment++    -- ** CookieNames+    , CookieNames+    , cookieNames+    , cnItems+    , cnQuantity++    -- ** CookiePreference+    , CookiePreference+    , cookiePreference+    , cpWhitelistedNames+    , cpForward++    -- ** CustomErrorResponse+    , CustomErrorResponse+    , customErrorResponse+    , ceResponsePagePath+    , ceResponseCode+    , ceErrorCachingMinTTL+    , ceErrorCode++    -- ** CustomErrorResponses+    , CustomErrorResponses+    , customErrorResponses+    , cerItems+    , cerQuantity++    -- ** CustomOriginConfig+    , CustomOriginConfig+    , customOriginConfig+    , cocHTTPPort+    , cocHTTPSPort+    , cocOriginProtocolPolicy++    -- ** DefaultCacheBehavior+    , DefaultCacheBehavior+    , defaultCacheBehavior+    , dcbAllowedMethods+    , dcbMaxTTL+    , dcbSmoothStreaming+    , dcbDefaultTTL+    , dcbTargetOriginId+    , dcbForwardedValues+    , dcbTrustedSigners+    , dcbViewerProtocolPolicy+    , dcbMinTTL++    -- ** Distribution+    , Distribution+    , distribution+    , dId+    , dStatus+    , dLastModifiedTime+    , dInProgressInvalidationBatches+    , dDomainName+    , dActiveTrustedSigners+    , dDistributionConfig++    -- ** DistributionConfig+    , DistributionConfig+    , distributionConfig+    , dcDefaultRootObject+    , dcAliases+    , dcCustomErrorResponses+    , dcPriceClass+    , dcViewerCertificate+    , dcRestrictions+    , dcCacheBehaviors+    , dcLogging+    , dcCallerReference+    , dcOrigins+    , dcDefaultCacheBehavior+    , dcComment+    , dcEnabled++    -- ** DistributionList+    , DistributionList+    , distributionList+    , dlItems+    , dlNextMarker+    , dlMarker+    , dlMaxItems+    , dlIsTruncated+    , dlQuantity++    -- ** DistributionSummary+    , DistributionSummary+    , distributionSummary+    , dsId+    , dsStatus+    , dsLastModifiedTime+    , dsDomainName+    , dsAliases+    , dsOrigins+    , dsDefaultCacheBehavior+    , dsCacheBehaviors+    , dsCustomErrorResponses+    , dsComment+    , dsPriceClass+    , dsEnabled+    , dsViewerCertificate+    , dsRestrictions++    -- ** ForwardedValues+    , ForwardedValues+    , forwardedValues+    , fvHeaders+    , fvQueryString+    , fvCookies++    -- ** GeoRestriction+    , GeoRestriction+    , geoRestriction+    , grItems+    , grRestrictionType+    , grQuantity++    -- ** Headers+    , Headers+    , headers+    , hItems+    , hQuantity++    -- ** Invalidation+    , Invalidation+    , invalidation+    , iId+    , iStatus+    , iCreateTime+    , iInvalidationBatch++    -- ** InvalidationBatch+    , InvalidationBatch+    , invalidationBatch+    , ibPaths+    , ibCallerReference++    -- ** InvalidationList+    , InvalidationList+    , invalidationList+    , ilItems+    , ilNextMarker+    , ilMarker+    , ilMaxItems+    , ilIsTruncated+    , ilQuantity++    -- ** InvalidationSummary+    , InvalidationSummary+    , invalidationSummary+    , isId+    , isCreateTime+    , isStatus++    -- ** KeyPairIds+    , KeyPairIds+    , keyPairIds+    , kpiItems+    , kpiQuantity++    -- ** LoggingConfig+    , LoggingConfig+    , loggingConfig+    , lcEnabled+    , lcIncludeCookies+    , lcBucket+    , lcPrefix++    -- ** Origin+    , Origin+    , origin+    , oCustomOriginConfig+    , oS3OriginConfig+    , oOriginPath+    , oId+    , oDomainName++    -- ** Origins+    , Origins+    , origins+    , oItems+    , oQuantity++    -- ** Paths+    , Paths+    , paths+    , pItems+    , pQuantity++    -- ** Restrictions+    , Restrictions+    , restrictions+    , rGeoRestriction++    -- ** S3Origin+    , S3Origin+    , s3Origin+    , soDomainName+    , soOriginAccessIdentity++    -- ** S3OriginConfig+    , S3OriginConfig+    , s3OriginConfig+    , socOriginAccessIdentity++    -- ** Signer+    , Signer+    , signer+    , sAWSAccountNumber+    , sKeyPairIds++    -- ** StreamingDistribution+    , StreamingDistribution+    , streamingDistribution+    , sdLastModifiedTime+    , sdId+    , sdStatus+    , sdDomainName+    , sdActiveTrustedSigners+    , sdStreamingDistributionConfig++    -- ** StreamingDistributionConfig+    , StreamingDistributionConfig+    , streamingDistributionConfig+    , sdcAliases+    , sdcPriceClass+    , sdcLogging+    , sdcCallerReference+    , sdcS3Origin+    , sdcComment+    , sdcTrustedSigners+    , sdcEnabled++    -- ** StreamingDistributionList+    , StreamingDistributionList+    , streamingDistributionList+    , sdlItems+    , sdlNextMarker+    , sdlMarker+    , sdlMaxItems+    , sdlIsTruncated+    , sdlQuantity++    -- ** StreamingDistributionSummary+    , StreamingDistributionSummary+    , streamingDistributionSummary+    , sdsId+    , sdsStatus+    , sdsLastModifiedTime+    , sdsDomainName+    , sdsS3Origin+    , sdsAliases+    , sdsTrustedSigners+    , sdsComment+    , sdsPriceClass+    , sdsEnabled++    -- ** StreamingLoggingConfig+    , StreamingLoggingConfig+    , streamingLoggingConfig+    , slcEnabled+    , slcBucket+    , slcPrefix++    -- ** TrustedSigners+    , TrustedSigners+    , trustedSigners+    , tsItems+    , tsEnabled+    , tsQuantity++    -- ** ViewerCertificate+    , ViewerCertificate+    , viewerCertificate+    , vcSSLSupportMethod+    , vcMinimumProtocolVersion+    , vcIAMCertificateId+    , vcCloudFrontDefaultCertificate     ) where -import Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity-import Network.AWS.CloudFront.CreateDistribution-import Network.AWS.CloudFront.CreateInvalidation-import Network.AWS.CloudFront.CreateStreamingDistribution-import Network.AWS.CloudFront.DeleteCloudFrontOriginAccessIdentity-import Network.AWS.CloudFront.DeleteDistribution-import Network.AWS.CloudFront.DeleteStreamingDistribution-import Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity-import Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig-import Network.AWS.CloudFront.GetDistribution-import Network.AWS.CloudFront.GetDistributionConfig-import Network.AWS.CloudFront.GetInvalidation-import Network.AWS.CloudFront.GetStreamingDistribution-import Network.AWS.CloudFront.GetStreamingDistributionConfig-import Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities-import Network.AWS.CloudFront.ListDistributions-import Network.AWS.CloudFront.ListInvalidations-import Network.AWS.CloudFront.ListStreamingDistributions-import Network.AWS.CloudFront.Types-import Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity-import Network.AWS.CloudFront.UpdateDistribution-import Network.AWS.CloudFront.UpdateStreamingDistribution+import           Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity+import           Network.AWS.CloudFront.CreateDistribution+import           Network.AWS.CloudFront.CreateInvalidation+import           Network.AWS.CloudFront.CreateStreamingDistribution+import           Network.AWS.CloudFront.DeleteCloudFrontOriginAccessIdentity+import           Network.AWS.CloudFront.DeleteDistribution+import           Network.AWS.CloudFront.DeleteStreamingDistribution+import           Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity+import           Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig+import           Network.AWS.CloudFront.GetDistribution+import           Network.AWS.CloudFront.GetDistributionConfig+import           Network.AWS.CloudFront.GetInvalidation+import           Network.AWS.CloudFront.GetStreamingDistribution+import           Network.AWS.CloudFront.GetStreamingDistributionConfig+import           Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities+import           Network.AWS.CloudFront.ListDistributions+import           Network.AWS.CloudFront.ListInvalidations+import           Network.AWS.CloudFront.ListStreamingDistributions+import           Network.AWS.CloudFront.Types+import           Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity+import           Network.AWS.CloudFront.UpdateDistribution+import           Network.AWS.CloudFront.UpdateStreamingDistribution+import           Network.AWS.CloudFront.Waiters++{- $errors+Error matchers are designed for use with the functions provided by+<http://hackage.haskell.org/package/lens/docs/Control-Exception-Lens.html Control.Exception.Lens>.+This allows catching (and rethrowing) service specific errors returned+by 'CloudFront'.+-}++{- $operations+Some AWS operations return results that are incomplete and require subsequent+requests in order to obtain the entire result set. The process of sending+subsequent requests to continue where a previous request left off is called+pagination. For example, the 'ListObjects' operation of Amazon S3 returns up to+1000 objects at a time, and you must send subsequent requests with the+appropriate Marker in order to retrieve the next page of results.++Operations that have an 'AWSPager' instance can transparently perform subsequent+requests, correctly setting Markers and other request facets to iterate through+the entire result set of a truncated API operation. Operations which support+this have an additional note in the documentation.++Many operations have the ability to filter results on the server side. See the+individual operation parameters for details.+-}++{- $waiters+Waiters poll by repeatedly sending a request until some remote success condition+configured by the 'Wait' specification is fulfilled. The 'Wait' specification+determines how many attempts should be made, in addition to delay and retry strategies.+-}
gen/Network/AWS/CloudFront/CreateCloudFrontOriginAccessIdentity.hs view
@@ -1,136 +1,157 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Create a new origin access identity.+-- Create a new origin access identity. ----- <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/CreateCloudFrontOriginAccessIdentity.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/CreateCloudFrontOriginAccessIdentity.html AWS API Reference> for CreateCloudFrontOriginAccessIdentity. module Network.AWS.CloudFront.CreateCloudFrontOriginAccessIdentity     (-    -- * Request-      CreateCloudFrontOriginAccessIdentity-    -- ** Request constructor-    , createCloudFrontOriginAccessIdentity-    -- ** Request lenses+    -- * Creating a Request+      createCloudFrontOriginAccessIdentity+    , CreateCloudFrontOriginAccessIdentity+    -- * Request Lenses     , ccfoaiCloudFrontOriginAccessIdentityConfig -    -- * Response-    , CreateCloudFrontOriginAccessIdentityResponse-    -- ** Response constructor+    -- * Destructuring the Response     , createCloudFrontOriginAccessIdentityResponse-    -- ** Response lenses-    , ccfoairCloudFrontOriginAccessIdentity-    , ccfoairETag-    , ccfoairLocation+    , CreateCloudFrontOriginAccessIdentityResponse+    -- * Response Lenses+    , ccfoairsETag+    , ccfoairsLocation+    , ccfoairsCloudFrontOriginAccessIdentity+    , ccfoairsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.RestXML-import Network.AWS.CloudFront.Types-import qualified GHC.Exts+import           Network.AWS.CloudFront.Types+import           Network.AWS.CloudFront.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response -newtype CreateCloudFrontOriginAccessIdentity = CreateCloudFrontOriginAccessIdentity+-- | The request to create a new origin access identity.+--+-- /See:/ 'createCloudFrontOriginAccessIdentity' smart constructor.+newtype CreateCloudFrontOriginAccessIdentity = CreateCloudFrontOriginAccessIdentity'     { _ccfoaiCloudFrontOriginAccessIdentityConfig :: CloudFrontOriginAccessIdentityConfig-    } deriving (Eq, Read, Show)+    } deriving (Eq,Read,Show,Data,Typeable,Generic) --- | 'CreateCloudFrontOriginAccessIdentity' constructor.------ The fields accessible through corresponding lenses are:+-- | Creates a value of 'CreateCloudFrontOriginAccessIdentity' with the minimum fields required to make a request. ----- * 'ccfoaiCloudFrontOriginAccessIdentityConfig' @::@ 'CloudFrontOriginAccessIdentityConfig'+-- Use one of the following lenses to modify other fields as desired: ---createCloudFrontOriginAccessIdentity :: CloudFrontOriginAccessIdentityConfig -- ^ 'ccfoaiCloudFrontOriginAccessIdentityConfig'-                                     -> CreateCloudFrontOriginAccessIdentity-createCloudFrontOriginAccessIdentity p1 = CreateCloudFrontOriginAccessIdentity-    { _ccfoaiCloudFrontOriginAccessIdentityConfig = p1+-- * 'ccfoaiCloudFrontOriginAccessIdentityConfig'+createCloudFrontOriginAccessIdentity+    :: CloudFrontOriginAccessIdentityConfig -- ^ 'ccfoaiCloudFrontOriginAccessIdentityConfig'+    -> CreateCloudFrontOriginAccessIdentity+createCloudFrontOriginAccessIdentity pCloudFrontOriginAccessIdentityConfig_ =+    CreateCloudFrontOriginAccessIdentity'+    { _ccfoaiCloudFrontOriginAccessIdentityConfig = pCloudFrontOriginAccessIdentityConfig_     } --- | The origin access identity's configuration information.+-- | The origin access identity\'s configuration information. ccfoaiCloudFrontOriginAccessIdentityConfig :: Lens' CreateCloudFrontOriginAccessIdentity CloudFrontOriginAccessIdentityConfig-ccfoaiCloudFrontOriginAccessIdentityConfig =-    lens _ccfoaiCloudFrontOriginAccessIdentityConfig-        (\s a -> s { _ccfoaiCloudFrontOriginAccessIdentityConfig = a })+ccfoaiCloudFrontOriginAccessIdentityConfig = lens _ccfoaiCloudFrontOriginAccessIdentityConfig (\ s a -> s{_ccfoaiCloudFrontOriginAccessIdentityConfig = a}); -data CreateCloudFrontOriginAccessIdentityResponse = CreateCloudFrontOriginAccessIdentityResponse-    { _ccfoairCloudFrontOriginAccessIdentity :: Maybe CloudFrontOriginAccessIdentity-    , _ccfoairETag                           :: Maybe Text-    , _ccfoairLocation                       :: Maybe Text-    } deriving (Eq, Read, Show)+instance AWSRequest+         CreateCloudFrontOriginAccessIdentity where+        type Sv CreateCloudFrontOriginAccessIdentity =+             CloudFront+        type Rs CreateCloudFrontOriginAccessIdentity =+             CreateCloudFrontOriginAccessIdentityResponse+        request = postXML+        response+          = receiveXML+              (\ s h x ->+                 CreateCloudFrontOriginAccessIdentityResponse' <$>+                   (h .#? "ETag") <*> (h .#? "Location") <*>+                     (parseXML x)+                     <*> (pure (fromEnum s))) --- | 'CreateCloudFrontOriginAccessIdentityResponse' constructor.+instance ToElement+         CreateCloudFrontOriginAccessIdentity where+        toElement+          = mkElement+              "{http://cloudfront.amazonaws.com/doc/2015-04-17/}CloudFrontOriginAccessIdentityConfig"+              .+              _ccfoaiCloudFrontOriginAccessIdentityConfig++instance ToHeaders+         CreateCloudFrontOriginAccessIdentity where+        toHeaders = const mempty++instance ToPath CreateCloudFrontOriginAccessIdentity+         where+        toPath+          = const+              "/2015-04-17/origin-access-identity/cloudfront"++instance ToQuery CreateCloudFrontOriginAccessIdentity+         where+        toQuery = const mempty++-- | The returned result of the corresponding request. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'createCloudFrontOriginAccessIdentityResponse' smart constructor.+data CreateCloudFrontOriginAccessIdentityResponse = CreateCloudFrontOriginAccessIdentityResponse'+    { _ccfoairsETag                           :: !(Maybe Text)+    , _ccfoairsLocation                       :: !(Maybe Text)+    , _ccfoairsCloudFrontOriginAccessIdentity :: !(Maybe CloudFrontOriginAccessIdentity)+    , _ccfoairsStatus                         :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateCloudFrontOriginAccessIdentityResponse' with the minimum fields required to make a request. ----- * 'ccfoairCloudFrontOriginAccessIdentity' @::@ 'Maybe' 'CloudFrontOriginAccessIdentity'+-- Use one of the following lenses to modify other fields as desired: ----- * 'ccfoairETag' @::@ 'Maybe' 'Text'+-- * 'ccfoairsETag' ----- * 'ccfoairLocation' @::@ 'Maybe' 'Text'+-- * 'ccfoairsLocation' ---createCloudFrontOriginAccessIdentityResponse :: CreateCloudFrontOriginAccessIdentityResponse-createCloudFrontOriginAccessIdentityResponse = CreateCloudFrontOriginAccessIdentityResponse-    { _ccfoairCloudFrontOriginAccessIdentity = Nothing-    , _ccfoairLocation                       = Nothing-    , _ccfoairETag                           = Nothing+-- * 'ccfoairsCloudFrontOriginAccessIdentity'+--+-- * 'ccfoairsStatus'+createCloudFrontOriginAccessIdentityResponse+    :: Int -- ^ 'ccfoairsStatus'+    -> CreateCloudFrontOriginAccessIdentityResponse+createCloudFrontOriginAccessIdentityResponse pStatus_ =+    CreateCloudFrontOriginAccessIdentityResponse'+    { _ccfoairsETag = Nothing+    , _ccfoairsLocation = Nothing+    , _ccfoairsCloudFrontOriginAccessIdentity = Nothing+    , _ccfoairsStatus = pStatus_     } --- | The origin access identity's information.-ccfoairCloudFrontOriginAccessIdentity :: Lens' CreateCloudFrontOriginAccessIdentityResponse (Maybe CloudFrontOriginAccessIdentity)-ccfoairCloudFrontOriginAccessIdentity =-    lens _ccfoairCloudFrontOriginAccessIdentity-        (\s a -> s { _ccfoairCloudFrontOriginAccessIdentity = a })- -- | The current version of the origin access identity created.-ccfoairETag :: Lens' CreateCloudFrontOriginAccessIdentityResponse (Maybe Text)-ccfoairETag = lens _ccfoairETag (\s a -> s { _ccfoairETag = a })---- | The fully qualified URI of the new origin access identity just created. For--- example:--- https://cloudfront.amazonaws.com/2010-11-01/origin-access-identity/cloudfront/E74FTE3AJFJ256A.-ccfoairLocation :: Lens' CreateCloudFrontOriginAccessIdentityResponse (Maybe Text)-ccfoairLocation = lens _ccfoairLocation (\s a -> s { _ccfoairLocation = a })--instance ToPath CreateCloudFrontOriginAccessIdentity where-    toPath = const "/2014-11-06/origin-access-identity/cloudfront"--instance ToQuery CreateCloudFrontOriginAccessIdentity where-    toQuery = const mempty--instance ToHeaders CreateCloudFrontOriginAccessIdentity--instance ToXMLRoot CreateCloudFrontOriginAccessIdentity where-    toXMLRoot CreateCloudFrontOriginAccessIdentity{..} = namespaced ns "CreateCloudFrontOriginAccessIdentity"-        [ "CloudFrontOriginAccessIdentityConfig" =@ _ccfoaiCloudFrontOriginAccessIdentityConfig-        ]+ccfoairsETag :: Lens' CreateCloudFrontOriginAccessIdentityResponse (Maybe Text)+ccfoairsETag = lens _ccfoairsETag (\ s a -> s{_ccfoairsETag = a}); -instance ToXML CreateCloudFrontOriginAccessIdentity+-- | The fully qualified URI of the new origin access identity just created.+-- For example:+-- https:\/\/cloudfront.amazonaws.com\/2010-11-01\/origin-access-identity\/cloudfront\/E74FTE3AJFJ256A.+ccfoairsLocation :: Lens' CreateCloudFrontOriginAccessIdentityResponse (Maybe Text)+ccfoairsLocation = lens _ccfoairsLocation (\ s a -> s{_ccfoairsLocation = a}); -instance AWSRequest CreateCloudFrontOriginAccessIdentity where-    type Sv CreateCloudFrontOriginAccessIdentity = CloudFront-    type Rs CreateCloudFrontOriginAccessIdentity = CreateCloudFrontOriginAccessIdentityResponse+-- | The origin access identity\'s information.+ccfoairsCloudFrontOriginAccessIdentity :: Lens' CreateCloudFrontOriginAccessIdentityResponse (Maybe CloudFrontOriginAccessIdentity)+ccfoairsCloudFrontOriginAccessIdentity = lens _ccfoairsCloudFrontOriginAccessIdentity (\ s a -> s{_ccfoairsCloudFrontOriginAccessIdentity = a}); -    request  = post-    response = xmlHeaderResponse $ \h x -> CreateCloudFrontOriginAccessIdentityResponse-        <$> x .@? "CloudFrontOriginAccessIdentity"-        <*> h ~:? "ETag"-        <*> h ~:? "Location"+-- | The response status code.+ccfoairsStatus :: Lens' CreateCloudFrontOriginAccessIdentityResponse Int+ccfoairsStatus = lens _ccfoairsStatus (\ s a -> s{_ccfoairsStatus = a});
gen/Network/AWS/CloudFront/CreateDistribution.hs view
@@ -1,133 +1,149 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudFront.CreateDistribution--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Create a new distribution.+-- Create a new distribution. ----- <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/CreateDistribution.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/CreateDistribution.html AWS API Reference> for CreateDistribution. module Network.AWS.CloudFront.CreateDistribution     (-    -- * Request-      CreateDistribution-    -- ** Request constructor-    , createDistribution-    -- ** Request lenses+    -- * Creating a Request+      createDistribution+    , CreateDistribution+    -- * Request Lenses     , cdDistributionConfig -    -- * Response-    , CreateDistributionResponse-    -- ** Response constructor+    -- * Destructuring the Response     , createDistributionResponse-    -- ** Response lenses-    , cdrDistribution-    , cdrETag-    , cdrLocation+    , CreateDistributionResponse+    -- * Response Lenses+    , cdrsETag+    , cdrsDistribution+    , cdrsLocation+    , cdrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.RestXML-import Network.AWS.CloudFront.Types-import qualified GHC.Exts+import           Network.AWS.CloudFront.Types+import           Network.AWS.CloudFront.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response -newtype CreateDistribution = CreateDistribution+-- | The request to create a new distribution.+--+-- /See:/ 'createDistribution' smart constructor.+newtype CreateDistribution = CreateDistribution'     { _cdDistributionConfig :: DistributionConfig-    } deriving (Eq, Read, Show)+    } deriving (Eq,Read,Show,Data,Typeable,Generic) --- | 'CreateDistribution' constructor.------ The fields accessible through corresponding lenses are:+-- | Creates a value of 'CreateDistribution' with the minimum fields required to make a request. ----- * 'cdDistributionConfig' @::@ 'DistributionConfig'+-- Use one of the following lenses to modify other fields as desired: ---createDistribution :: DistributionConfig -- ^ 'cdDistributionConfig'-                   -> CreateDistribution-createDistribution p1 = CreateDistribution-    { _cdDistributionConfig = p1+-- * 'cdDistributionConfig'+createDistribution+    :: DistributionConfig -- ^ 'cdDistributionConfig'+    -> CreateDistribution+createDistribution pDistributionConfig_ =+    CreateDistribution'+    { _cdDistributionConfig = pDistributionConfig_     } --- | The distribution's configuration information.+-- | The distribution\'s configuration information. cdDistributionConfig :: Lens' CreateDistribution DistributionConfig-cdDistributionConfig =-    lens _cdDistributionConfig (\s a -> s { _cdDistributionConfig = a })+cdDistributionConfig = lens _cdDistributionConfig (\ s a -> s{_cdDistributionConfig = a}); -data CreateDistributionResponse = CreateDistributionResponse-    { _cdrDistribution :: Maybe Distribution-    , _cdrETag         :: Maybe Text-    , _cdrLocation     :: Maybe Text-    } deriving (Eq, Read, Show)+instance AWSRequest CreateDistribution where+        type Sv CreateDistribution = CloudFront+        type Rs CreateDistribution =+             CreateDistributionResponse+        request = postXML+        response+          = receiveXML+              (\ s h x ->+                 CreateDistributionResponse' <$>+                   (h .#? "ETag") <*> (parseXML x) <*>+                     (h .#? "Location")+                     <*> (pure (fromEnum s))) --- | 'CreateDistributionResponse' constructor.+instance ToElement CreateDistribution where+        toElement+          = mkElement+              "{http://cloudfront.amazonaws.com/doc/2015-04-17/}DistributionConfig"+              .+              _cdDistributionConfig++instance ToHeaders CreateDistribution where+        toHeaders = const mempty++instance ToPath CreateDistribution where+        toPath = const "/2015-04-17/distribution"++instance ToQuery CreateDistribution where+        toQuery = const mempty++-- | The returned result of the corresponding request. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'createDistributionResponse' smart constructor.+data CreateDistributionResponse = CreateDistributionResponse'+    { _cdrsETag         :: !(Maybe Text)+    , _cdrsDistribution :: !(Maybe Distribution)+    , _cdrsLocation     :: !(Maybe Text)+    , _cdrsStatus       :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateDistributionResponse' with the minimum fields required to make a request. ----- * 'cdrDistribution' @::@ 'Maybe' 'Distribution'+-- Use one of the following lenses to modify other fields as desired: ----- * 'cdrETag' @::@ 'Maybe' 'Text'+-- * 'cdrsETag' ----- * 'cdrLocation' @::@ 'Maybe' 'Text'+-- * 'cdrsDistribution' ---createDistributionResponse :: CreateDistributionResponse-createDistributionResponse = CreateDistributionResponse-    { _cdrDistribution = Nothing-    , _cdrLocation     = Nothing-    , _cdrETag         = Nothing+-- * 'cdrsLocation'+--+-- * 'cdrsStatus'+createDistributionResponse+    :: Int -- ^ 'cdrsStatus'+    -> CreateDistributionResponse+createDistributionResponse pStatus_ =+    CreateDistributionResponse'+    { _cdrsETag = Nothing+    , _cdrsDistribution = Nothing+    , _cdrsLocation = Nothing+    , _cdrsStatus = pStatus_     } --- | The distribution's information.-cdrDistribution :: Lens' CreateDistributionResponse (Maybe Distribution)-cdrDistribution = lens _cdrDistribution (\s a -> s { _cdrDistribution = a })- -- | The current version of the distribution created.-cdrETag :: Lens' CreateDistributionResponse (Maybe Text)-cdrETag = lens _cdrETag (\s a -> s { _cdrETag = a })---- | The fully qualified URI of the new distribution resource just created. For--- example:--- https://cloudfront.amazonaws.com/2010-11-01/distribution/EDFDVBD632BHDS5.-cdrLocation :: Lens' CreateDistributionResponse (Maybe Text)-cdrLocation = lens _cdrLocation (\s a -> s { _cdrLocation = a })--instance ToPath CreateDistribution where-    toPath = const "/2014-11-06/distribution"--instance ToQuery CreateDistribution where-    toQuery = const mempty--instance ToHeaders CreateDistribution--instance ToXMLRoot CreateDistribution where-    toXMLRoot CreateDistribution{..} = namespaced ns "CreateDistribution"-        [ "DistributionConfig" =@ _cdDistributionConfig-        ]+cdrsETag :: Lens' CreateDistributionResponse (Maybe Text)+cdrsETag = lens _cdrsETag (\ s a -> s{_cdrsETag = a}); -instance ToXML CreateDistribution+-- | The distribution\'s information.+cdrsDistribution :: Lens' CreateDistributionResponse (Maybe Distribution)+cdrsDistribution = lens _cdrsDistribution (\ s a -> s{_cdrsDistribution = a}); -instance AWSRequest CreateDistribution where-    type Sv CreateDistribution = CloudFront-    type Rs CreateDistribution = CreateDistributionResponse+-- | The fully qualified URI of the new distribution resource just created.+-- For example:+-- https:\/\/cloudfront.amazonaws.com\/2010-11-01\/distribution\/EDFDVBD632BHDS5.+cdrsLocation :: Lens' CreateDistributionResponse (Maybe Text)+cdrsLocation = lens _cdrsLocation (\ s a -> s{_cdrsLocation = a}); -    request  = post-    response = xmlHeaderResponse $ \h x -> CreateDistributionResponse-        <$> x .@? "Distribution"-        <*> h ~:? "ETag"-        <*> h ~:? "Location"+-- | The response status code.+cdrsStatus :: Lens' CreateDistributionResponse Int+cdrsStatus = lens _cdrsStatus (\ s a -> s{_cdrsStatus = a});
gen/Network/AWS/CloudFront/CreateInvalidation.hs view
@@ -1,136 +1,151 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudFront.CreateInvalidation--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Create a new invalidation.+-- Create a new invalidation. ----- <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/CreateInvalidation.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/CreateInvalidation.html AWS API Reference> for CreateInvalidation. module Network.AWS.CloudFront.CreateInvalidation     (-    -- * Request-      CreateInvalidation-    -- ** Request constructor-    , createInvalidation-    -- ** Request lenses+    -- * Creating a Request+      createInvalidation+    , CreateInvalidation+    -- * Request Lenses     , ciDistributionId     , ciInvalidationBatch -    -- * Response-    , CreateInvalidationResponse-    -- ** Response constructor+    -- * Destructuring the Response     , createInvalidationResponse-    -- ** Response lenses-    , cirInvalidation-    , cirLocation+    , CreateInvalidationResponse+    -- * Response Lenses+    , cirsInvalidation+    , cirsLocation+    , cirsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.RestXML-import Network.AWS.CloudFront.Types-import qualified GHC.Exts--data CreateInvalidation = CreateInvalidation-    { _ciDistributionId    :: Text-    , _ciInvalidationBatch :: InvalidationBatch-    } deriving (Eq, Read, Show)+import           Network.AWS.CloudFront.Types+import           Network.AWS.CloudFront.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'CreateInvalidation' constructor.+-- | The request to create an invalidation. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'createInvalidation' smart constructor.+data CreateInvalidation = CreateInvalidation'+    { _ciDistributionId    :: !Text+    , _ciInvalidationBatch :: !InvalidationBatch+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateInvalidation' with the minimum fields required to make a request. ----- * 'ciDistributionId' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'ciInvalidationBatch' @::@ 'InvalidationBatch'+-- * 'ciDistributionId' ---createInvalidation :: Text -- ^ 'ciDistributionId'-                   -> InvalidationBatch -- ^ 'ciInvalidationBatch'-                   -> CreateInvalidation-createInvalidation p1 p2 = CreateInvalidation-    { _ciDistributionId    = p1-    , _ciInvalidationBatch = p2+-- * 'ciInvalidationBatch'+createInvalidation+    :: Text -- ^ 'ciDistributionId'+    -> InvalidationBatch -- ^ 'ciInvalidationBatch'+    -> CreateInvalidation+createInvalidation pDistributionId_ pInvalidationBatch_ =+    CreateInvalidation'+    { _ciDistributionId = pDistributionId_+    , _ciInvalidationBatch = pInvalidationBatch_     } --- | The distribution's id.+-- | The distribution\'s id. ciDistributionId :: Lens' CreateInvalidation Text-ciDistributionId = lens _ciDistributionId (\s a -> s { _ciDistributionId = a })+ciDistributionId = lens _ciDistributionId (\ s a -> s{_ciDistributionId = a});  -- | The batch information for the invalidation. ciInvalidationBatch :: Lens' CreateInvalidation InvalidationBatch-ciInvalidationBatch =-    lens _ciInvalidationBatch (\s a -> s { _ciInvalidationBatch = a })--data CreateInvalidationResponse = CreateInvalidationResponse-    { _cirInvalidation :: Maybe Invalidation-    , _cirLocation     :: Maybe Text-    } deriving (Eq, Read, Show)+ciInvalidationBatch = lens _ciInvalidationBatch (\ s a -> s{_ciInvalidationBatch = a}); --- | 'CreateInvalidationResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'cirInvalidation' @::@ 'Maybe' 'Invalidation'------ * 'cirLocation' @::@ 'Maybe' 'Text'----createInvalidationResponse :: CreateInvalidationResponse-createInvalidationResponse = CreateInvalidationResponse-    { _cirLocation     = Nothing-    , _cirInvalidation = Nothing-    }+instance AWSRequest CreateInvalidation where+        type Sv CreateInvalidation = CloudFront+        type Rs CreateInvalidation =+             CreateInvalidationResponse+        request = postXML+        response+          = receiveXML+              (\ s h x ->+                 CreateInvalidationResponse' <$>+                   (parseXML x) <*> (h .#? "Location") <*>+                     (pure (fromEnum s))) --- | The invalidation's information.-cirInvalidation :: Lens' CreateInvalidationResponse (Maybe Invalidation)-cirInvalidation = lens _cirInvalidation (\s a -> s { _cirInvalidation = a })+instance ToElement CreateInvalidation where+        toElement+          = mkElement+              "{http://cloudfront.amazonaws.com/doc/2015-04-17/}InvalidationBatch"+              .+              _ciInvalidationBatch --- | The fully qualified URI of the distribution and invalidation batch request,--- including the Invalidation ID.-cirLocation :: Lens' CreateInvalidationResponse (Maybe Text)-cirLocation = lens _cirLocation (\s a -> s { _cirLocation = a })+instance ToHeaders CreateInvalidation where+        toHeaders = const mempty  instance ToPath CreateInvalidation where-    toPath CreateInvalidation{..} = mconcat-        [ "/2014-11-06/distribution/"-        , toText _ciDistributionId-        , "/invalidation"-        ]+        toPath CreateInvalidation'{..}+          = mconcat+              ["/2015-04-17/distribution/", toBS _ciDistributionId,+               "/invalidation"]  instance ToQuery CreateInvalidation where-    toQuery = const mempty+        toQuery = const mempty -instance ToHeaders CreateInvalidation+-- | The returned result of the corresponding request.+--+-- /See:/ 'createInvalidationResponse' smart constructor.+data CreateInvalidationResponse = CreateInvalidationResponse'+    { _cirsInvalidation :: !(Maybe Invalidation)+    , _cirsLocation     :: !(Maybe Text)+    , _cirsStatus       :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance ToXMLRoot CreateInvalidation where-    toXMLRoot CreateInvalidation{..} = namespaced ns "CreateInvalidation"-        [ "InvalidationBatch" =@ _ciInvalidationBatch-        ]+-- | Creates a value of 'CreateInvalidationResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cirsInvalidation'+--+-- * 'cirsLocation'+--+-- * 'cirsStatus'+createInvalidationResponse+    :: Int -- ^ 'cirsStatus'+    -> CreateInvalidationResponse+createInvalidationResponse pStatus_ =+    CreateInvalidationResponse'+    { _cirsInvalidation = Nothing+    , _cirsLocation = Nothing+    , _cirsStatus = pStatus_+    } -instance ToXML CreateInvalidation+-- | The invalidation\'s information.+cirsInvalidation :: Lens' CreateInvalidationResponse (Maybe Invalidation)+cirsInvalidation = lens _cirsInvalidation (\ s a -> s{_cirsInvalidation = a}); -instance AWSRequest CreateInvalidation where-    type Sv CreateInvalidation = CloudFront-    type Rs CreateInvalidation = CreateInvalidationResponse+-- | The fully qualified URI of the distribution and invalidation batch+-- request, including the Invalidation ID.+cirsLocation :: Lens' CreateInvalidationResponse (Maybe Text)+cirsLocation = lens _cirsLocation (\ s a -> s{_cirsLocation = a}); -    request  = post-    response = xmlHeaderResponse $ \h x -> CreateInvalidationResponse-        <$> x .@? "Invalidation"-        <*> h ~:? "Location"+-- | The response status code.+cirsStatus :: Lens' CreateInvalidationResponse Int+cirsStatus = lens _cirsStatus (\ s a -> s{_cirsStatus = a});
gen/Network/AWS/CloudFront/CreateStreamingDistribution.hs view
@@ -1,136 +1,149 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudFront.CreateStreamingDistribution--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Create a new streaming distribution.+-- Create a new streaming distribution. ----- <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/CreateStreamingDistribution.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/CreateStreamingDistribution.html AWS API Reference> for CreateStreamingDistribution. module Network.AWS.CloudFront.CreateStreamingDistribution     (-    -- * Request-      CreateStreamingDistribution-    -- ** Request constructor-    , createStreamingDistribution-    -- ** Request lenses+    -- * Creating a Request+      createStreamingDistribution+    , CreateStreamingDistribution+    -- * Request Lenses     , csdStreamingDistributionConfig -    -- * Response-    , CreateStreamingDistributionResponse-    -- ** Response constructor+    -- * Destructuring the Response     , createStreamingDistributionResponse-    -- ** Response lenses-    , csdrETag-    , csdrLocation-    , csdrStreamingDistribution+    , CreateStreamingDistributionResponse+    -- * Response Lenses+    , csdrsETag+    , csdrsLocation+    , csdrsStreamingDistribution+    , csdrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.RestXML-import Network.AWS.CloudFront.Types-import qualified GHC.Exts+import           Network.AWS.CloudFront.Types+import           Network.AWS.CloudFront.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response -newtype CreateStreamingDistribution = CreateStreamingDistribution+-- | The request to create a new streaming distribution.+--+-- /See:/ 'createStreamingDistribution' smart constructor.+newtype CreateStreamingDistribution = CreateStreamingDistribution'     { _csdStreamingDistributionConfig :: StreamingDistributionConfig-    } deriving (Eq, Read, Show)+    } deriving (Eq,Read,Show,Data,Typeable,Generic) --- | 'CreateStreamingDistribution' constructor.------ The fields accessible through corresponding lenses are:+-- | Creates a value of 'CreateStreamingDistribution' with the minimum fields required to make a request. ----- * 'csdStreamingDistributionConfig' @::@ 'StreamingDistributionConfig'+-- Use one of the following lenses to modify other fields as desired: ---createStreamingDistribution :: StreamingDistributionConfig -- ^ 'csdStreamingDistributionConfig'-                            -> CreateStreamingDistribution-createStreamingDistribution p1 = CreateStreamingDistribution-    { _csdStreamingDistributionConfig = p1+-- * 'csdStreamingDistributionConfig'+createStreamingDistribution+    :: StreamingDistributionConfig -- ^ 'csdStreamingDistributionConfig'+    -> CreateStreamingDistribution+createStreamingDistribution pStreamingDistributionConfig_ =+    CreateStreamingDistribution'+    { _csdStreamingDistributionConfig = pStreamingDistributionConfig_     } --- | The streaming distribution's configuration information.+-- | The streaming distribution\'s configuration information. csdStreamingDistributionConfig :: Lens' CreateStreamingDistribution StreamingDistributionConfig-csdStreamingDistributionConfig =-    lens _csdStreamingDistributionConfig-        (\s a -> s { _csdStreamingDistributionConfig = a })+csdStreamingDistributionConfig = lens _csdStreamingDistributionConfig (\ s a -> s{_csdStreamingDistributionConfig = a}); -data CreateStreamingDistributionResponse = CreateStreamingDistributionResponse-    { _csdrETag                  :: Maybe Text-    , _csdrLocation              :: Maybe Text-    , _csdrStreamingDistribution :: Maybe StreamingDistribution-    } deriving (Eq, Read, Show)+instance AWSRequest CreateStreamingDistribution where+        type Sv CreateStreamingDistribution = CloudFront+        type Rs CreateStreamingDistribution =+             CreateStreamingDistributionResponse+        request = postXML+        response+          = receiveXML+              (\ s h x ->+                 CreateStreamingDistributionResponse' <$>+                   (h .#? "ETag") <*> (h .#? "Location") <*>+                     (parseXML x)+                     <*> (pure (fromEnum s))) --- | 'CreateStreamingDistributionResponse' constructor.+instance ToElement CreateStreamingDistribution where+        toElement+          = mkElement+              "{http://cloudfront.amazonaws.com/doc/2015-04-17/}StreamingDistributionConfig"+              .+              _csdStreamingDistributionConfig++instance ToHeaders CreateStreamingDistribution where+        toHeaders = const mempty++instance ToPath CreateStreamingDistribution where+        toPath = const "/2015-04-17/streaming-distribution"++instance ToQuery CreateStreamingDistribution where+        toQuery = const mempty++-- | The returned result of the corresponding request. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'createStreamingDistributionResponse' smart constructor.+data CreateStreamingDistributionResponse = CreateStreamingDistributionResponse'+    { _csdrsETag                  :: !(Maybe Text)+    , _csdrsLocation              :: !(Maybe Text)+    , _csdrsStreamingDistribution :: !(Maybe StreamingDistribution)+    , _csdrsStatus                :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateStreamingDistributionResponse' with the minimum fields required to make a request. ----- * 'csdrETag' @::@ 'Maybe' 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'csdrLocation' @::@ 'Maybe' 'Text'+-- * 'csdrsETag' ----- * 'csdrStreamingDistribution' @::@ 'Maybe' 'StreamingDistribution'+-- * 'csdrsLocation' ---createStreamingDistributionResponse :: CreateStreamingDistributionResponse-createStreamingDistributionResponse = CreateStreamingDistributionResponse-    { _csdrStreamingDistribution = Nothing-    , _csdrLocation              = Nothing-    , _csdrETag                  = Nothing+-- * 'csdrsStreamingDistribution'+--+-- * 'csdrsStatus'+createStreamingDistributionResponse+    :: Int -- ^ 'csdrsStatus'+    -> CreateStreamingDistributionResponse+createStreamingDistributionResponse pStatus_ =+    CreateStreamingDistributionResponse'+    { _csdrsETag = Nothing+    , _csdrsLocation = Nothing+    , _csdrsStreamingDistribution = Nothing+    , _csdrsStatus = pStatus_     }  -- | The current version of the streaming distribution created.-csdrETag :: Lens' CreateStreamingDistributionResponse (Maybe Text)-csdrETag = lens _csdrETag (\s a -> s { _csdrETag = a })+csdrsETag :: Lens' CreateStreamingDistributionResponse (Maybe Text)+csdrsETag = lens _csdrsETag (\ s a -> s{_csdrsETag = a});  -- | The fully qualified URI of the new streaming distribution resource just -- created. For example:--- https://cloudfront.amazonaws.com/2010-11-01/streaming-distribution/EGTXBD79H29TRA8.-csdrLocation :: Lens' CreateStreamingDistributionResponse (Maybe Text)-csdrLocation = lens _csdrLocation (\s a -> s { _csdrLocation = a })---- | The streaming distribution's information.-csdrStreamingDistribution :: Lens' CreateStreamingDistributionResponse (Maybe StreamingDistribution)-csdrStreamingDistribution =-    lens _csdrStreamingDistribution-        (\s a -> s { _csdrStreamingDistribution = a })--instance ToPath CreateStreamingDistribution where-    toPath = const "/2014-11-06/streaming-distribution"--instance ToQuery CreateStreamingDistribution where-    toQuery = const mempty--instance ToHeaders CreateStreamingDistribution--instance ToXMLRoot CreateStreamingDistribution where-    toXMLRoot CreateStreamingDistribution{..} = namespaced ns "CreateStreamingDistribution"-        [ "StreamingDistributionConfig" =@ _csdStreamingDistributionConfig-        ]--instance ToXML CreateStreamingDistribution+-- https:\/\/cloudfront.amazonaws.com\/2010-11-01\/streaming-distribution\/EGTXBD79H29TRA8.+csdrsLocation :: Lens' CreateStreamingDistributionResponse (Maybe Text)+csdrsLocation = lens _csdrsLocation (\ s a -> s{_csdrsLocation = a}); -instance AWSRequest CreateStreamingDistribution where-    type Sv CreateStreamingDistribution = CloudFront-    type Rs CreateStreamingDistribution = CreateStreamingDistributionResponse+-- | The streaming distribution\'s information.+csdrsStreamingDistribution :: Lens' CreateStreamingDistributionResponse (Maybe StreamingDistribution)+csdrsStreamingDistribution = lens _csdrsStreamingDistribution (\ s a -> s{_csdrsStreamingDistribution = a}); -    request  = post-    response = xmlHeaderResponse $ \h x -> CreateStreamingDistributionResponse-        <$> h ~:? "ETag"-        <*> h ~:? "Location"-        <*> x .@? "StreamingDistribution"+-- | The response status code.+csdrsStatus :: Lens' CreateStreamingDistributionResponse Int+csdrsStatus = lens _csdrsStatus (\ s a -> s{_csdrsStatus = a});
gen/Network/AWS/CloudFront/DeleteCloudFrontOriginAccessIdentity.hs view
@@ -1,109 +1,114 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudFront.DeleteCloudFrontOriginAccessIdentity--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Delete an origin access identity.+-- Delete an origin access identity. ----- <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/DeleteCloudFrontOriginAccessIdentity.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/DeleteCloudFrontOriginAccessIdentity.html AWS API Reference> for DeleteCloudFrontOriginAccessIdentity. module Network.AWS.CloudFront.DeleteCloudFrontOriginAccessIdentity     (-    -- * Request-      DeleteCloudFrontOriginAccessIdentity-    -- ** Request constructor-    , deleteCloudFrontOriginAccessIdentity-    -- ** Request lenses-    , dcfoaiId+    -- * Creating a Request+      deleteCloudFrontOriginAccessIdentity+    , DeleteCloudFrontOriginAccessIdentity+    -- * Request Lenses     , dcfoaiIfMatch+    , dcfoaiId -    -- * Response-    , DeleteCloudFrontOriginAccessIdentityResponse-    -- ** Response constructor+    -- * Destructuring the Response     , deleteCloudFrontOriginAccessIdentityResponse+    , DeleteCloudFrontOriginAccessIdentityResponse     ) where -import Network.AWS.Prelude-import Network.AWS.Request.RestXML-import Network.AWS.CloudFront.Types-import qualified GHC.Exts--data DeleteCloudFrontOriginAccessIdentity = DeleteCloudFrontOriginAccessIdentity-    { _dcfoaiId      :: Text-    , _dcfoaiIfMatch :: Maybe Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.CloudFront.Types+import           Network.AWS.CloudFront.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'DeleteCloudFrontOriginAccessIdentity' constructor.+-- | The request to delete a origin access identity. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'deleteCloudFrontOriginAccessIdentity' smart constructor.+data DeleteCloudFrontOriginAccessIdentity = DeleteCloudFrontOriginAccessIdentity'+    { _dcfoaiIfMatch :: !(Maybe Text)+    , _dcfoaiId      :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteCloudFrontOriginAccessIdentity' with the minimum fields required to make a request. ----- * 'dcfoaiId' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'dcfoaiIfMatch' @::@ 'Maybe' 'Text'+-- * 'dcfoaiIfMatch' ---deleteCloudFrontOriginAccessIdentity :: Text -- ^ 'dcfoaiId'-                                     -> DeleteCloudFrontOriginAccessIdentity-deleteCloudFrontOriginAccessIdentity p1 = DeleteCloudFrontOriginAccessIdentity-    { _dcfoaiId      = p1-    , _dcfoaiIfMatch = Nothing+-- * 'dcfoaiId'+deleteCloudFrontOriginAccessIdentity+    :: Text -- ^ 'dcfoaiId'+    -> DeleteCloudFrontOriginAccessIdentity+deleteCloudFrontOriginAccessIdentity pId_ =+    DeleteCloudFrontOriginAccessIdentity'+    { _dcfoaiIfMatch = Nothing+    , _dcfoaiId = pId_     } --- | The origin access identity's id.-dcfoaiId :: Lens' DeleteCloudFrontOriginAccessIdentity Text-dcfoaiId = lens _dcfoaiId (\s a -> s { _dcfoaiId = a })---- | The value of the ETag header you received from a previous GET or PUT request.--- For example: E2QWRUHAPOMQZL.+-- | The value of the ETag header you received from a previous GET or PUT+-- request. For example: E2QWRUHAPOMQZL. dcfoaiIfMatch :: Lens' DeleteCloudFrontOriginAccessIdentity (Maybe Text)-dcfoaiIfMatch = lens _dcfoaiIfMatch (\s a -> s { _dcfoaiIfMatch = a })--data DeleteCloudFrontOriginAccessIdentityResponse = DeleteCloudFrontOriginAccessIdentityResponse-    deriving (Eq, Ord, Read, Show, Generic)---- | 'DeleteCloudFrontOriginAccessIdentityResponse' constructor.-deleteCloudFrontOriginAccessIdentityResponse :: DeleteCloudFrontOriginAccessIdentityResponse-deleteCloudFrontOriginAccessIdentityResponse = DeleteCloudFrontOriginAccessIdentityResponse+dcfoaiIfMatch = lens _dcfoaiIfMatch (\ s a -> s{_dcfoaiIfMatch = a}); -instance ToPath DeleteCloudFrontOriginAccessIdentity where-    toPath DeleteCloudFrontOriginAccessIdentity{..} = mconcat-        [ "/2014-11-06/origin-access-identity/cloudfront/"-        , toText _dcfoaiId-        ]+-- | The origin access identity\'s id.+dcfoaiId :: Lens' DeleteCloudFrontOriginAccessIdentity Text+dcfoaiId = lens _dcfoaiId (\ s a -> s{_dcfoaiId = a}); -instance ToQuery DeleteCloudFrontOriginAccessIdentity where-    toQuery = const mempty+instance AWSRequest+         DeleteCloudFrontOriginAccessIdentity where+        type Sv DeleteCloudFrontOriginAccessIdentity =+             CloudFront+        type Rs DeleteCloudFrontOriginAccessIdentity =+             DeleteCloudFrontOriginAccessIdentityResponse+        request = delete+        response+          = receiveNull+              DeleteCloudFrontOriginAccessIdentityResponse' -instance ToHeaders DeleteCloudFrontOriginAccessIdentity where-    toHeaders DeleteCloudFrontOriginAccessIdentity{..} = mconcat-        [ "If-Match" =: _dcfoaiIfMatch-        ]+instance ToHeaders+         DeleteCloudFrontOriginAccessIdentity where+        toHeaders DeleteCloudFrontOriginAccessIdentity'{..}+          = mconcat ["If-Match" =# _dcfoaiIfMatch] -instance ToXMLRoot DeleteCloudFrontOriginAccessIdentity where-    toXMLRoot = const (namespaced ns "DeleteCloudFrontOriginAccessIdentity" [])+instance ToPath DeleteCloudFrontOriginAccessIdentity+         where+        toPath DeleteCloudFrontOriginAccessIdentity'{..}+          = mconcat+              ["/2015-04-17/origin-access-identity/cloudfront/",+               toBS _dcfoaiId] -instance ToXML DeleteCloudFrontOriginAccessIdentity+instance ToQuery DeleteCloudFrontOriginAccessIdentity+         where+        toQuery = const mempty -instance AWSRequest DeleteCloudFrontOriginAccessIdentity where-    type Sv DeleteCloudFrontOriginAccessIdentity = CloudFront-    type Rs DeleteCloudFrontOriginAccessIdentity = DeleteCloudFrontOriginAccessIdentityResponse+-- | /See:/ 'deleteCloudFrontOriginAccessIdentityResponse' smart constructor.+data DeleteCloudFrontOriginAccessIdentityResponse =+    DeleteCloudFrontOriginAccessIdentityResponse'+    deriving (Eq,Read,Show,Data,Typeable,Generic) -    request  = delete-    response = nullResponse DeleteCloudFrontOriginAccessIdentityResponse+-- | Creates a value of 'DeleteCloudFrontOriginAccessIdentityResponse' with the minimum fields required to make a request.+--+deleteCloudFrontOriginAccessIdentityResponse+    :: DeleteCloudFrontOriginAccessIdentityResponse+deleteCloudFrontOriginAccessIdentityResponse =+    DeleteCloudFrontOriginAccessIdentityResponse'
gen/Network/AWS/CloudFront/DeleteDistribution.hs view
@@ -1,109 +1,104 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudFront.DeleteDistribution--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Delete a distribution.+-- Delete a distribution. ----- <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/DeleteDistribution.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/DeleteDistribution.html AWS API Reference> for DeleteDistribution. module Network.AWS.CloudFront.DeleteDistribution     (-    -- * Request-      DeleteDistribution-    -- ** Request constructor-    , deleteDistribution-    -- ** Request lenses-    , ddId+    -- * Creating a Request+      deleteDistribution+    , DeleteDistribution+    -- * Request Lenses     , ddIfMatch+    , ddId -    -- * Response-    , DeleteDistributionResponse-    -- ** Response constructor+    -- * Destructuring the Response     , deleteDistributionResponse+    , DeleteDistributionResponse     ) where -import Network.AWS.Prelude-import Network.AWS.Request.RestXML-import Network.AWS.CloudFront.Types-import qualified GHC.Exts--data DeleteDistribution = DeleteDistribution-    { _ddId      :: Text-    , _ddIfMatch :: Maybe Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.CloudFront.Types+import           Network.AWS.CloudFront.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'DeleteDistribution' constructor.+-- | The request to delete a distribution. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'deleteDistribution' smart constructor.+data DeleteDistribution = DeleteDistribution'+    { _ddIfMatch :: !(Maybe Text)+    , _ddId      :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteDistribution' with the minimum fields required to make a request. ----- * 'ddId' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'ddIfMatch' @::@ 'Maybe' 'Text'+-- * 'ddIfMatch' ---deleteDistribution :: Text -- ^ 'ddId'-                   -> DeleteDistribution-deleteDistribution p1 = DeleteDistribution-    { _ddId      = p1-    , _ddIfMatch = Nothing+-- * 'ddId'+deleteDistribution+    :: Text -- ^ 'ddId'+    -> DeleteDistribution+deleteDistribution pId_ =+    DeleteDistribution'+    { _ddIfMatch = Nothing+    , _ddId = pId_     } +-- | The value of the ETag header you received when you disabled the+-- distribution. For example: E2QWRUHAPOMQZL.+ddIfMatch :: Lens' DeleteDistribution (Maybe Text)+ddIfMatch = lens _ddIfMatch (\ s a -> s{_ddIfMatch = a});+ -- | The distribution id. ddId :: Lens' DeleteDistribution Text-ddId = lens _ddId (\s a -> s { _ddId = a })---- | The value of the ETag header you received when you disabled the distribution.--- For example: E2QWRUHAPOMQZL.-ddIfMatch :: Lens' DeleteDistribution (Maybe Text)-ddIfMatch = lens _ddIfMatch (\s a -> s { _ddIfMatch = a })+ddId = lens _ddId (\ s a -> s{_ddId = a}); -data DeleteDistributionResponse = DeleteDistributionResponse-    deriving (Eq, Ord, Read, Show, Generic)+instance AWSRequest DeleteDistribution where+        type Sv DeleteDistribution = CloudFront+        type Rs DeleteDistribution =+             DeleteDistributionResponse+        request = delete+        response = receiveNull DeleteDistributionResponse' --- | 'DeleteDistributionResponse' constructor.-deleteDistributionResponse :: DeleteDistributionResponse-deleteDistributionResponse = DeleteDistributionResponse+instance ToHeaders DeleteDistribution where+        toHeaders DeleteDistribution'{..}+          = mconcat ["If-Match" =# _ddIfMatch]  instance ToPath DeleteDistribution where-    toPath DeleteDistribution{..} = mconcat-        [ "/2014-11-06/distribution/"-        , toText _ddId-        ]+        toPath DeleteDistribution'{..}+          = mconcat ["/2015-04-17/distribution/", toBS _ddId]  instance ToQuery DeleteDistribution where-    toQuery = const mempty--instance ToHeaders DeleteDistribution where-    toHeaders DeleteDistribution{..} = mconcat-        [ "If-Match" =: _ddIfMatch-        ]--instance ToXMLRoot DeleteDistribution where-    toXMLRoot = const (namespaced ns "DeleteDistribution" [])--instance ToXML DeleteDistribution+        toQuery = const mempty -instance AWSRequest DeleteDistribution where-    type Sv DeleteDistribution = CloudFront-    type Rs DeleteDistribution = DeleteDistributionResponse+-- | /See:/ 'deleteDistributionResponse' smart constructor.+data DeleteDistributionResponse =+    DeleteDistributionResponse'+    deriving (Eq,Read,Show,Data,Typeable,Generic) -    request  = delete-    response = nullResponse DeleteDistributionResponse+-- | Creates a value of 'DeleteDistributionResponse' with the minimum fields required to make a request.+--+deleteDistributionResponse+    :: DeleteDistributionResponse+deleteDistributionResponse = DeleteDistributionResponse'
gen/Network/AWS/CloudFront/DeleteStreamingDistribution.hs view
@@ -1,109 +1,106 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudFront.DeleteStreamingDistribution--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Delete a streaming distribution.+-- Delete a streaming distribution. ----- <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/DeleteStreamingDistribution.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/DeleteStreamingDistribution.html AWS API Reference> for DeleteStreamingDistribution. module Network.AWS.CloudFront.DeleteStreamingDistribution     (-    -- * Request-      DeleteStreamingDistribution-    -- ** Request constructor-    , deleteStreamingDistribution-    -- ** Request lenses-    , dsdId+    -- * Creating a Request+      deleteStreamingDistribution+    , DeleteStreamingDistribution+    -- * Request Lenses     , dsdIfMatch+    , dsdId -    -- * Response-    , DeleteStreamingDistributionResponse-    -- ** Response constructor+    -- * Destructuring the Response     , deleteStreamingDistributionResponse+    , DeleteStreamingDistributionResponse     ) where -import Network.AWS.Prelude-import Network.AWS.Request.RestXML-import Network.AWS.CloudFront.Types-import qualified GHC.Exts--data DeleteStreamingDistribution = DeleteStreamingDistribution-    { _dsdId      :: Text-    , _dsdIfMatch :: Maybe Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.CloudFront.Types+import           Network.AWS.CloudFront.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'DeleteStreamingDistribution' constructor.+-- | The request to delete a streaming distribution. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'deleteStreamingDistribution' smart constructor.+data DeleteStreamingDistribution = DeleteStreamingDistribution'+    { _dsdIfMatch :: !(Maybe Text)+    , _dsdId      :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteStreamingDistribution' with the minimum fields required to make a request. ----- * 'dsdId' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'dsdIfMatch' @::@ 'Maybe' 'Text'+-- * 'dsdIfMatch' ---deleteStreamingDistribution :: Text -- ^ 'dsdId'-                            -> DeleteStreamingDistribution-deleteStreamingDistribution p1 = DeleteStreamingDistribution-    { _dsdId      = p1-    , _dsdIfMatch = Nothing+-- * 'dsdId'+deleteStreamingDistribution+    :: Text -- ^ 'dsdId'+    -> DeleteStreamingDistribution+deleteStreamingDistribution pId_ =+    DeleteStreamingDistribution'+    { _dsdIfMatch = Nothing+    , _dsdId = pId_     } +-- | The value of the ETag header you received when you disabled the+-- streaming distribution. For example: E2QWRUHAPOMQZL.+dsdIfMatch :: Lens' DeleteStreamingDistribution (Maybe Text)+dsdIfMatch = lens _dsdIfMatch (\ s a -> s{_dsdIfMatch = a});+ -- | The distribution id. dsdId :: Lens' DeleteStreamingDistribution Text-dsdId = lens _dsdId (\s a -> s { _dsdId = a })---- | The value of the ETag header you received when you disabled the streaming--- distribution. For example: E2QWRUHAPOMQZL.-dsdIfMatch :: Lens' DeleteStreamingDistribution (Maybe Text)-dsdIfMatch = lens _dsdIfMatch (\s a -> s { _dsdIfMatch = a })+dsdId = lens _dsdId (\ s a -> s{_dsdId = a}); -data DeleteStreamingDistributionResponse = DeleteStreamingDistributionResponse-    deriving (Eq, Ord, Read, Show, Generic)+instance AWSRequest DeleteStreamingDistribution where+        type Sv DeleteStreamingDistribution = CloudFront+        type Rs DeleteStreamingDistribution =+             DeleteStreamingDistributionResponse+        request = delete+        response+          = receiveNull DeleteStreamingDistributionResponse' --- | 'DeleteStreamingDistributionResponse' constructor.-deleteStreamingDistributionResponse :: DeleteStreamingDistributionResponse-deleteStreamingDistributionResponse = DeleteStreamingDistributionResponse+instance ToHeaders DeleteStreamingDistribution where+        toHeaders DeleteStreamingDistribution'{..}+          = mconcat ["If-Match" =# _dsdIfMatch]  instance ToPath DeleteStreamingDistribution where-    toPath DeleteStreamingDistribution{..} = mconcat-        [ "/2014-11-06/streaming-distribution/"-        , toText _dsdId-        ]+        toPath DeleteStreamingDistribution'{..}+          = mconcat+              ["/2015-04-17/streaming-distribution/", toBS _dsdId]  instance ToQuery DeleteStreamingDistribution where-    toQuery = const mempty--instance ToHeaders DeleteStreamingDistribution where-    toHeaders DeleteStreamingDistribution{..} = mconcat-        [ "If-Match" =: _dsdIfMatch-        ]--instance ToXMLRoot DeleteStreamingDistribution where-    toXMLRoot = const (namespaced ns "DeleteStreamingDistribution" [])--instance ToXML DeleteStreamingDistribution+        toQuery = const mempty -instance AWSRequest DeleteStreamingDistribution where-    type Sv DeleteStreamingDistribution = CloudFront-    type Rs DeleteStreamingDistribution = DeleteStreamingDistributionResponse+-- | /See:/ 'deleteStreamingDistributionResponse' smart constructor.+data DeleteStreamingDistributionResponse =+    DeleteStreamingDistributionResponse'+    deriving (Eq,Read,Show,Data,Typeable,Generic) -    request  = delete-    response = nullResponse DeleteStreamingDistributionResponse+-- | Creates a value of 'DeleteStreamingDistributionResponse' with the minimum fields required to make a request.+--+deleteStreamingDistributionResponse+    :: DeleteStreamingDistributionResponse+deleteStreamingDistributionResponse = DeleteStreamingDistributionResponse'
gen/Network/AWS/CloudFront/GetCloudFrontOriginAccessIdentity.hs view
@@ -1,124 +1,139 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Get the information about an origin access identity.+-- Get the information about an origin access identity. ----- <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/GetCloudFrontOriginAccessIdentity.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/GetCloudFrontOriginAccessIdentity.html AWS API Reference> for GetCloudFrontOriginAccessIdentity. module Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentity     (-    -- * Request-      GetCloudFrontOriginAccessIdentity-    -- ** Request constructor-    , getCloudFrontOriginAccessIdentity-    -- ** Request lenses+    -- * Creating a Request+      getCloudFrontOriginAccessIdentity+    , GetCloudFrontOriginAccessIdentity+    -- * Request Lenses     , gcfoaiId -    -- * Response-    , GetCloudFrontOriginAccessIdentityResponse-    -- ** Response constructor+    -- * Destructuring the Response     , getCloudFrontOriginAccessIdentityResponse-    -- ** Response lenses-    , gcfoairCloudFrontOriginAccessIdentity-    , gcfoairETag+    , GetCloudFrontOriginAccessIdentityResponse+    -- * Response Lenses+    , gcfoairsETag+    , gcfoairsCloudFrontOriginAccessIdentity+    , gcfoairsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.RestXML-import Network.AWS.CloudFront.Types-import qualified GHC.Exts+import           Network.AWS.CloudFront.Types+import           Network.AWS.CloudFront.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response -newtype GetCloudFrontOriginAccessIdentity = GetCloudFrontOriginAccessIdentity+-- | The request to get an origin access identity\'s information.+--+-- /See:/ 'getCloudFrontOriginAccessIdentity' smart constructor.+newtype GetCloudFrontOriginAccessIdentity = GetCloudFrontOriginAccessIdentity'     { _gcfoaiId :: Text-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)+    } deriving (Eq,Read,Show,Data,Typeable,Generic) --- | 'GetCloudFrontOriginAccessIdentity' constructor.------ The fields accessible through corresponding lenses are:+-- | Creates a value of 'GetCloudFrontOriginAccessIdentity' with the minimum fields required to make a request. ----- * 'gcfoaiId' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ---getCloudFrontOriginAccessIdentity :: Text -- ^ 'gcfoaiId'-                                  -> GetCloudFrontOriginAccessIdentity-getCloudFrontOriginAccessIdentity p1 = GetCloudFrontOriginAccessIdentity-    { _gcfoaiId = p1+-- * 'gcfoaiId'+getCloudFrontOriginAccessIdentity+    :: Text -- ^ 'gcfoaiId'+    -> GetCloudFrontOriginAccessIdentity+getCloudFrontOriginAccessIdentity pId_ =+    GetCloudFrontOriginAccessIdentity'+    { _gcfoaiId = pId_     } --- | The identity's id.+-- | The identity\'s id. gcfoaiId :: Lens' GetCloudFrontOriginAccessIdentity Text-gcfoaiId = lens _gcfoaiId (\s a -> s { _gcfoaiId = a })+gcfoaiId = lens _gcfoaiId (\ s a -> s{_gcfoaiId = a}); -data GetCloudFrontOriginAccessIdentityResponse = GetCloudFrontOriginAccessIdentityResponse-    { _gcfoairCloudFrontOriginAccessIdentity :: Maybe CloudFrontOriginAccessIdentity-    , _gcfoairETag                           :: Maybe Text-    } deriving (Eq, Read, Show)+instance AWSRequest GetCloudFrontOriginAccessIdentity+         where+        type Sv GetCloudFrontOriginAccessIdentity =+             CloudFront+        type Rs GetCloudFrontOriginAccessIdentity =+             GetCloudFrontOriginAccessIdentityResponse+        request = get+        response+          = receiveXML+              (\ s h x ->+                 GetCloudFrontOriginAccessIdentityResponse' <$>+                   (h .#? "ETag") <*> (parseXML x) <*>+                     (pure (fromEnum s))) --- | 'GetCloudFrontOriginAccessIdentityResponse' constructor.+instance ToHeaders GetCloudFrontOriginAccessIdentity+         where+        toHeaders = const mempty++instance ToPath GetCloudFrontOriginAccessIdentity+         where+        toPath GetCloudFrontOriginAccessIdentity'{..}+          = mconcat+              ["/2015-04-17/origin-access-identity/cloudfront/",+               toBS _gcfoaiId]++instance ToQuery GetCloudFrontOriginAccessIdentity+         where+        toQuery = const mempty++-- | The returned result of the corresponding request. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'getCloudFrontOriginAccessIdentityResponse' smart constructor.+data GetCloudFrontOriginAccessIdentityResponse = GetCloudFrontOriginAccessIdentityResponse'+    { _gcfoairsETag                           :: !(Maybe Text)+    , _gcfoairsCloudFrontOriginAccessIdentity :: !(Maybe CloudFrontOriginAccessIdentity)+    , _gcfoairsStatus                         :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetCloudFrontOriginAccessIdentityResponse' with the minimum fields required to make a request. ----- * 'gcfoairCloudFrontOriginAccessIdentity' @::@ 'Maybe' 'CloudFrontOriginAccessIdentity'+-- Use one of the following lenses to modify other fields as desired: ----- * 'gcfoairETag' @::@ 'Maybe' 'Text'+-- * 'gcfoairsETag' ---getCloudFrontOriginAccessIdentityResponse :: GetCloudFrontOriginAccessIdentityResponse-getCloudFrontOriginAccessIdentityResponse = GetCloudFrontOriginAccessIdentityResponse-    { _gcfoairCloudFrontOriginAccessIdentity = Nothing-    , _gcfoairETag                           = Nothing+-- * 'gcfoairsCloudFrontOriginAccessIdentity'+--+-- * 'gcfoairsStatus'+getCloudFrontOriginAccessIdentityResponse+    :: Int -- ^ 'gcfoairsStatus'+    -> GetCloudFrontOriginAccessIdentityResponse+getCloudFrontOriginAccessIdentityResponse pStatus_ =+    GetCloudFrontOriginAccessIdentityResponse'+    { _gcfoairsETag = Nothing+    , _gcfoairsCloudFrontOriginAccessIdentity = Nothing+    , _gcfoairsStatus = pStatus_     } --- | The origin access identity's information.-gcfoairCloudFrontOriginAccessIdentity :: Lens' GetCloudFrontOriginAccessIdentityResponse (Maybe CloudFrontOriginAccessIdentity)-gcfoairCloudFrontOriginAccessIdentity =-    lens _gcfoairCloudFrontOriginAccessIdentity-        (\s a -> s { _gcfoairCloudFrontOriginAccessIdentity = a })---- | The current version of the origin access identity's information. For example:--- E2QWRUHAPOMQZL.-gcfoairETag :: Lens' GetCloudFrontOriginAccessIdentityResponse (Maybe Text)-gcfoairETag = lens _gcfoairETag (\s a -> s { _gcfoairETag = a })--instance ToPath GetCloudFrontOriginAccessIdentity where-    toPath GetCloudFrontOriginAccessIdentity{..} = mconcat-        [ "/2014-11-06/origin-access-identity/cloudfront/"-        , toText _gcfoaiId-        ]--instance ToQuery GetCloudFrontOriginAccessIdentity where-    toQuery = const mempty--instance ToHeaders GetCloudFrontOriginAccessIdentity--instance ToXMLRoot GetCloudFrontOriginAccessIdentity where-    toXMLRoot = const (namespaced ns "GetCloudFrontOriginAccessIdentity" [])--instance ToXML GetCloudFrontOriginAccessIdentity+-- | The current version of the origin access identity\'s information. For+-- example: E2QWRUHAPOMQZL.+gcfoairsETag :: Lens' GetCloudFrontOriginAccessIdentityResponse (Maybe Text)+gcfoairsETag = lens _gcfoairsETag (\ s a -> s{_gcfoairsETag = a}); -instance AWSRequest GetCloudFrontOriginAccessIdentity where-    type Sv GetCloudFrontOriginAccessIdentity = CloudFront-    type Rs GetCloudFrontOriginAccessIdentity = GetCloudFrontOriginAccessIdentityResponse+-- | The origin access identity\'s information.+gcfoairsCloudFrontOriginAccessIdentity :: Lens' GetCloudFrontOriginAccessIdentityResponse (Maybe CloudFrontOriginAccessIdentity)+gcfoairsCloudFrontOriginAccessIdentity = lens _gcfoairsCloudFrontOriginAccessIdentity (\ s a -> s{_gcfoairsCloudFrontOriginAccessIdentity = a}); -    request  = get-    response = xmlHeaderResponse $ \h x -> GetCloudFrontOriginAccessIdentityResponse-        <$> x .@? "CloudFrontOriginAccessIdentity"-        <*> h ~:? "ETag"+-- | The response status code.+gcfoairsStatus :: Lens' GetCloudFrontOriginAccessIdentityResponse Int+gcfoairsStatus = lens _gcfoairsStatus (\ s a -> s{_gcfoairsStatus = a});
gen/Network/AWS/CloudFront/GetCloudFrontOriginAccessIdentityConfig.hs view
@@ -1,124 +1,138 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Get the configuration information about an origin access identity.+-- Get the configuration information about an origin access identity. ----- <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/GetCloudFrontOriginAccessIdentityConfig.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/GetCloudFrontOriginAccessIdentityConfig.html AWS API Reference> for GetCloudFrontOriginAccessIdentityConfig. module Network.AWS.CloudFront.GetCloudFrontOriginAccessIdentityConfig     (-    -- * Request-      GetCloudFrontOriginAccessIdentityConfig-    -- ** Request constructor-    , getCloudFrontOriginAccessIdentityConfig-    -- ** Request lenses+    -- * Creating a Request+      getCloudFrontOriginAccessIdentityConfig+    , GetCloudFrontOriginAccessIdentityConfig+    -- * Request Lenses     , gcfoaicId -    -- * Response-    , GetCloudFrontOriginAccessIdentityConfigResponse-    -- ** Response constructor+    -- * Destructuring the Response     , getCloudFrontOriginAccessIdentityConfigResponse-    -- ** Response lenses-    , gcfoaicrCloudFrontOriginAccessIdentityConfig-    , gcfoaicrETag+    , GetCloudFrontOriginAccessIdentityConfigResponse+    -- * Response Lenses+    , gcfoaicrsCloudFrontOriginAccessIdentityConfig+    , gcfoaicrsETag+    , gcfoaicrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.RestXML-import Network.AWS.CloudFront.Types-import qualified GHC.Exts+import           Network.AWS.CloudFront.Types+import           Network.AWS.CloudFront.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response -newtype GetCloudFrontOriginAccessIdentityConfig = GetCloudFrontOriginAccessIdentityConfig+-- | The request to get an origin access identity\'s configuration.+--+-- /See:/ 'getCloudFrontOriginAccessIdentityConfig' smart constructor.+newtype GetCloudFrontOriginAccessIdentityConfig = GetCloudFrontOriginAccessIdentityConfig'     { _gcfoaicId :: Text-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)+    } deriving (Eq,Read,Show,Data,Typeable,Generic) --- | 'GetCloudFrontOriginAccessIdentityConfig' constructor.------ The fields accessible through corresponding lenses are:+-- | Creates a value of 'GetCloudFrontOriginAccessIdentityConfig' with the minimum fields required to make a request. ----- * 'gcfoaicId' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ---getCloudFrontOriginAccessIdentityConfig :: Text -- ^ 'gcfoaicId'-                                        -> GetCloudFrontOriginAccessIdentityConfig-getCloudFrontOriginAccessIdentityConfig p1 = GetCloudFrontOriginAccessIdentityConfig-    { _gcfoaicId = p1+-- * 'gcfoaicId'+getCloudFrontOriginAccessIdentityConfig+    :: Text -- ^ 'gcfoaicId'+    -> GetCloudFrontOriginAccessIdentityConfig+getCloudFrontOriginAccessIdentityConfig pId_ =+    GetCloudFrontOriginAccessIdentityConfig'+    { _gcfoaicId = pId_     } --- | The identity's id.+-- | The identity\'s id. gcfoaicId :: Lens' GetCloudFrontOriginAccessIdentityConfig Text-gcfoaicId = lens _gcfoaicId (\s a -> s { _gcfoaicId = a })+gcfoaicId = lens _gcfoaicId (\ s a -> s{_gcfoaicId = a}); -data GetCloudFrontOriginAccessIdentityConfigResponse = GetCloudFrontOriginAccessIdentityConfigResponse-    { _gcfoaicrCloudFrontOriginAccessIdentityConfig :: Maybe CloudFrontOriginAccessIdentityConfig-    , _gcfoaicrETag                                 :: Maybe Text-    } deriving (Eq, Read, Show)+instance AWSRequest+         GetCloudFrontOriginAccessIdentityConfig where+        type Sv GetCloudFrontOriginAccessIdentityConfig =+             CloudFront+        type Rs GetCloudFrontOriginAccessIdentityConfig =+             GetCloudFrontOriginAccessIdentityConfigResponse+        request = get+        response+          = receiveXML+              (\ s h x ->+                 GetCloudFrontOriginAccessIdentityConfigResponse' <$>+                   (parseXML x) <*> (h .#? "ETag") <*>+                     (pure (fromEnum s))) --- | 'GetCloudFrontOriginAccessIdentityConfigResponse' constructor.+instance ToHeaders+         GetCloudFrontOriginAccessIdentityConfig where+        toHeaders = const mempty++instance ToPath+         GetCloudFrontOriginAccessIdentityConfig where+        toPath GetCloudFrontOriginAccessIdentityConfig'{..}+          = mconcat+              ["/2015-04-17/origin-access-identity/cloudfront/",+               toBS _gcfoaicId, "/config"]++instance ToQuery+         GetCloudFrontOriginAccessIdentityConfig where+        toQuery = const mempty++-- | The returned result of the corresponding request. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'getCloudFrontOriginAccessIdentityConfigResponse' smart constructor.+data GetCloudFrontOriginAccessIdentityConfigResponse = GetCloudFrontOriginAccessIdentityConfigResponse'+    { _gcfoaicrsCloudFrontOriginAccessIdentityConfig :: !(Maybe CloudFrontOriginAccessIdentityConfig)+    , _gcfoaicrsETag                                 :: !(Maybe Text)+    , _gcfoaicrsStatus                               :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetCloudFrontOriginAccessIdentityConfigResponse' with the minimum fields required to make a request. ----- * 'gcfoaicrCloudFrontOriginAccessIdentityConfig' @::@ 'Maybe' 'CloudFrontOriginAccessIdentityConfig'+-- Use one of the following lenses to modify other fields as desired: ----- * 'gcfoaicrETag' @::@ 'Maybe' 'Text'+-- * 'gcfoaicrsCloudFrontOriginAccessIdentityConfig' ---getCloudFrontOriginAccessIdentityConfigResponse :: GetCloudFrontOriginAccessIdentityConfigResponse-getCloudFrontOriginAccessIdentityConfigResponse = GetCloudFrontOriginAccessIdentityConfigResponse-    { _gcfoaicrCloudFrontOriginAccessIdentityConfig = Nothing-    , _gcfoaicrETag                                 = Nothing+-- * 'gcfoaicrsETag'+--+-- * 'gcfoaicrsStatus'+getCloudFrontOriginAccessIdentityConfigResponse+    :: Int -- ^ 'gcfoaicrsStatus'+    -> GetCloudFrontOriginAccessIdentityConfigResponse+getCloudFrontOriginAccessIdentityConfigResponse pStatus_ =+    GetCloudFrontOriginAccessIdentityConfigResponse'+    { _gcfoaicrsCloudFrontOriginAccessIdentityConfig = Nothing+    , _gcfoaicrsETag = Nothing+    , _gcfoaicrsStatus = pStatus_     } --- | The origin access identity's configuration information.-gcfoaicrCloudFrontOriginAccessIdentityConfig :: Lens' GetCloudFrontOriginAccessIdentityConfigResponse (Maybe CloudFrontOriginAccessIdentityConfig)-gcfoaicrCloudFrontOriginAccessIdentityConfig =-    lens _gcfoaicrCloudFrontOriginAccessIdentityConfig-        (\s a -> s { _gcfoaicrCloudFrontOriginAccessIdentityConfig = a })+-- | The origin access identity\'s configuration information.+gcfoaicrsCloudFrontOriginAccessIdentityConfig :: Lens' GetCloudFrontOriginAccessIdentityConfigResponse (Maybe CloudFrontOriginAccessIdentityConfig)+gcfoaicrsCloudFrontOriginAccessIdentityConfig = lens _gcfoaicrsCloudFrontOriginAccessIdentityConfig (\ s a -> s{_gcfoaicrsCloudFrontOriginAccessIdentityConfig = a});  -- | The current version of the configuration. For example: E2QWRUHAPOMQZL.-gcfoaicrETag :: Lens' GetCloudFrontOriginAccessIdentityConfigResponse (Maybe Text)-gcfoaicrETag = lens _gcfoaicrETag (\s a -> s { _gcfoaicrETag = a })--instance ToPath GetCloudFrontOriginAccessIdentityConfig where-    toPath GetCloudFrontOriginAccessIdentityConfig{..} = mconcat-        [ "/2014-11-06/origin-access-identity/cloudfront/"-        , toText _gcfoaicId-        , "/config"-        ]--instance ToQuery GetCloudFrontOriginAccessIdentityConfig where-    toQuery = const mempty--instance ToHeaders GetCloudFrontOriginAccessIdentityConfig--instance ToXMLRoot GetCloudFrontOriginAccessIdentityConfig where-    toXMLRoot = const (namespaced ns "GetCloudFrontOriginAccessIdentityConfig" [])--instance ToXML GetCloudFrontOriginAccessIdentityConfig--instance AWSRequest GetCloudFrontOriginAccessIdentityConfig where-    type Sv GetCloudFrontOriginAccessIdentityConfig = CloudFront-    type Rs GetCloudFrontOriginAccessIdentityConfig = GetCloudFrontOriginAccessIdentityConfigResponse+gcfoaicrsETag :: Lens' GetCloudFrontOriginAccessIdentityConfigResponse (Maybe Text)+gcfoaicrsETag = lens _gcfoaicrsETag (\ s a -> s{_gcfoaicrsETag = a}); -    request  = get-    response = xmlHeaderResponse $ \h x -> GetCloudFrontOriginAccessIdentityConfigResponse-        <$> x .@? "CloudFrontOriginAccessIdentityConfig"-        <*> h ~:? "ETag"+-- | The response status code.+gcfoaicrsStatus :: Lens' GetCloudFrontOriginAccessIdentityConfigResponse Int+gcfoaicrsStatus = lens _gcfoaicrsStatus (\ s a -> s{_gcfoaicrsStatus = a});
gen/Network/AWS/CloudFront/GetDistribution.hs view
@@ -1,122 +1,131 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudFront.GetDistribution--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Get the information about a distribution.+-- Get the information about a distribution. ----- <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/GetDistribution.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/GetDistribution.html AWS API Reference> for GetDistribution. module Network.AWS.CloudFront.GetDistribution     (-    -- * Request-      GetDistribution-    -- ** Request constructor-    , getDistribution-    -- ** Request lenses+    -- * Creating a Request+      getDistribution+    , GetDistribution+    -- * Request Lenses     , gdId -    -- * Response-    , GetDistributionResponse-    -- ** Response constructor+    -- * Destructuring the Response     , getDistributionResponse-    -- ** Response lenses-    , gdrDistribution-    , gdrETag+    , GetDistributionResponse+    -- * Response Lenses+    , gdrsETag+    , gdrsDistribution+    , gdrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.RestXML-import Network.AWS.CloudFront.Types-import qualified GHC.Exts+import           Network.AWS.CloudFront.Types+import           Network.AWS.CloudFront.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response -newtype GetDistribution = GetDistribution+-- | The request to get a distribution\'s information.+--+-- /See:/ 'getDistribution' smart constructor.+newtype GetDistribution = GetDistribution'     { _gdId :: Text-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)+    } deriving (Eq,Read,Show,Data,Typeable,Generic) --- | 'GetDistribution' constructor.------ The fields accessible through corresponding lenses are:+-- | Creates a value of 'GetDistribution' with the minimum fields required to make a request. ----- * 'gdId' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ---getDistribution :: Text -- ^ 'gdId'-                -> GetDistribution-getDistribution p1 = GetDistribution-    { _gdId = p1+-- * 'gdId'+getDistribution+    :: Text -- ^ 'gdId'+    -> GetDistribution+getDistribution pId_ =+    GetDistribution'+    { _gdId = pId_     } --- | The distribution's id.+-- | The distribution\'s id. gdId :: Lens' GetDistribution Text-gdId = lens _gdId (\s a -> s { _gdId = a })--data GetDistributionResponse = GetDistributionResponse-    { _gdrDistribution :: Maybe Distribution-    , _gdrETag         :: Maybe Text-    } deriving (Eq, Read, Show)---- | 'GetDistributionResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'gdrDistribution' @::@ 'Maybe' 'Distribution'------ * 'gdrETag' @::@ 'Maybe' 'Text'----getDistributionResponse :: GetDistributionResponse-getDistributionResponse = GetDistributionResponse-    { _gdrDistribution = Nothing-    , _gdrETag         = Nothing-    }+gdId = lens _gdId (\ s a -> s{_gdId = a}); --- | The distribution's information.-gdrDistribution :: Lens' GetDistributionResponse (Maybe Distribution)-gdrDistribution = lens _gdrDistribution (\s a -> s { _gdrDistribution = a })+instance AWSRequest GetDistribution where+        type Sv GetDistribution = CloudFront+        type Rs GetDistribution = GetDistributionResponse+        request = get+        response+          = receiveXML+              (\ s h x ->+                 GetDistributionResponse' <$>+                   (h .#? "ETag") <*> (parseXML x) <*>+                     (pure (fromEnum s))) --- | The current version of the distribution's information. For example:--- E2QWRUHAPOMQZL.-gdrETag :: Lens' GetDistributionResponse (Maybe Text)-gdrETag = lens _gdrETag (\s a -> s { _gdrETag = a })+instance ToHeaders GetDistribution where+        toHeaders = const mempty  instance ToPath GetDistribution where-    toPath GetDistribution{..} = mconcat-        [ "/2014-11-06/distribution/"-        , toText _gdId-        ]+        toPath GetDistribution'{..}+          = mconcat ["/2015-04-17/distribution/", toBS _gdId]  instance ToQuery GetDistribution where-    toQuery = const mempty+        toQuery = const mempty -instance ToHeaders GetDistribution+-- | The returned result of the corresponding request.+--+-- /See:/ 'getDistributionResponse' smart constructor.+data GetDistributionResponse = GetDistributionResponse'+    { _gdrsETag         :: !(Maybe Text)+    , _gdrsDistribution :: !(Maybe Distribution)+    , _gdrsStatus       :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance ToXMLRoot GetDistribution where-    toXMLRoot = const (namespaced ns "GetDistribution" [])+-- | Creates a value of 'GetDistributionResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gdrsETag'+--+-- * 'gdrsDistribution'+--+-- * 'gdrsStatus'+getDistributionResponse+    :: Int -- ^ 'gdrsStatus'+    -> GetDistributionResponse+getDistributionResponse pStatus_ =+    GetDistributionResponse'+    { _gdrsETag = Nothing+    , _gdrsDistribution = Nothing+    , _gdrsStatus = pStatus_+    } -instance ToXML GetDistribution+-- | The current version of the distribution\'s information. For example:+-- E2QWRUHAPOMQZL.+gdrsETag :: Lens' GetDistributionResponse (Maybe Text)+gdrsETag = lens _gdrsETag (\ s a -> s{_gdrsETag = a}); -instance AWSRequest GetDistribution where-    type Sv GetDistribution = CloudFront-    type Rs GetDistribution = GetDistributionResponse+-- | The distribution\'s information.+gdrsDistribution :: Lens' GetDistributionResponse (Maybe Distribution)+gdrsDistribution = lens _gdrsDistribution (\ s a -> s{_gdrsDistribution = a}); -    request  = get-    response = xmlHeaderResponse $ \h x -> GetDistributionResponse-        <$> x .@? "Distribution"-        <*> h ~:? "ETag"+-- | The response status code.+gdrsStatus :: Lens' GetDistributionResponse Int+gdrsStatus = lens _gdrsStatus (\ s a -> s{_gdrsStatus = a});
gen/Network/AWS/CloudFront/GetDistributionConfig.hs view
@@ -1,123 +1,132 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudFront.GetDistributionConfig--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Get the configuration information about a distribution.+-- Get the configuration information about a distribution. ----- <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/GetDistributionConfig.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/GetDistributionConfig.html AWS API Reference> for GetDistributionConfig. module Network.AWS.CloudFront.GetDistributionConfig     (-    -- * Request-      GetDistributionConfig-    -- ** Request constructor-    , getDistributionConfig-    -- ** Request lenses+    -- * Creating a Request+      getDistributionConfig+    , GetDistributionConfig+    -- * Request Lenses     , gdcId -    -- * Response-    , GetDistributionConfigResponse-    -- ** Response constructor+    -- * Destructuring the Response     , getDistributionConfigResponse-    -- ** Response lenses-    , gdcrDistributionConfig-    , gdcrETag+    , GetDistributionConfigResponse+    -- * Response Lenses+    , gdcrsETag+    , gdcrsDistributionConfig+    , gdcrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.RestXML-import Network.AWS.CloudFront.Types-import qualified GHC.Exts+import           Network.AWS.CloudFront.Types+import           Network.AWS.CloudFront.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response -newtype GetDistributionConfig = GetDistributionConfig+-- | The request to get a distribution configuration.+--+-- /See:/ 'getDistributionConfig' smart constructor.+newtype GetDistributionConfig = GetDistributionConfig'     { _gdcId :: Text-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)+    } deriving (Eq,Read,Show,Data,Typeable,Generic) --- | 'GetDistributionConfig' constructor.------ The fields accessible through corresponding lenses are:+-- | Creates a value of 'GetDistributionConfig' with the minimum fields required to make a request. ----- * 'gdcId' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ---getDistributionConfig :: Text -- ^ 'gdcId'-                      -> GetDistributionConfig-getDistributionConfig p1 = GetDistributionConfig-    { _gdcId = p1+-- * 'gdcId'+getDistributionConfig+    :: Text -- ^ 'gdcId'+    -> GetDistributionConfig+getDistributionConfig pId_ =+    GetDistributionConfig'+    { _gdcId = pId_     } --- | The distribution's id.+-- | The distribution\'s id. gdcId :: Lens' GetDistributionConfig Text-gdcId = lens _gdcId (\s a -> s { _gdcId = a })--data GetDistributionConfigResponse = GetDistributionConfigResponse-    { _gdcrDistributionConfig :: Maybe DistributionConfig-    , _gdcrETag               :: Maybe Text-    } deriving (Eq, Read, Show)---- | 'GetDistributionConfigResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'gdcrDistributionConfig' @::@ 'Maybe' 'DistributionConfig'------ * 'gdcrETag' @::@ 'Maybe' 'Text'----getDistributionConfigResponse :: GetDistributionConfigResponse-getDistributionConfigResponse = GetDistributionConfigResponse-    { _gdcrDistributionConfig = Nothing-    , _gdcrETag               = Nothing-    }+gdcId = lens _gdcId (\ s a -> s{_gdcId = a}); --- | The distribution's configuration information.-gdcrDistributionConfig :: Lens' GetDistributionConfigResponse (Maybe DistributionConfig)-gdcrDistributionConfig =-    lens _gdcrDistributionConfig (\s a -> s { _gdcrDistributionConfig = a })+instance AWSRequest GetDistributionConfig where+        type Sv GetDistributionConfig = CloudFront+        type Rs GetDistributionConfig =+             GetDistributionConfigResponse+        request = get+        response+          = receiveXML+              (\ s h x ->+                 GetDistributionConfigResponse' <$>+                   (h .#? "ETag") <*> (parseXML x) <*>+                     (pure (fromEnum s))) --- | The current version of the configuration. For example: E2QWRUHAPOMQZL.-gdcrETag :: Lens' GetDistributionConfigResponse (Maybe Text)-gdcrETag = lens _gdcrETag (\s a -> s { _gdcrETag = a })+instance ToHeaders GetDistributionConfig where+        toHeaders = const mempty  instance ToPath GetDistributionConfig where-    toPath GetDistributionConfig{..} = mconcat-        [ "/2014-11-06/distribution/"-        , toText _gdcId-        , "/config"-        ]+        toPath GetDistributionConfig'{..}+          = mconcat+              ["/2015-04-17/distribution/", toBS _gdcId, "/config"]  instance ToQuery GetDistributionConfig where-    toQuery = const mempty+        toQuery = const mempty -instance ToHeaders GetDistributionConfig+-- | The returned result of the corresponding request.+--+-- /See:/ 'getDistributionConfigResponse' smart constructor.+data GetDistributionConfigResponse = GetDistributionConfigResponse'+    { _gdcrsETag               :: !(Maybe Text)+    , _gdcrsDistributionConfig :: !(Maybe DistributionConfig)+    , _gdcrsStatus             :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance ToXMLRoot GetDistributionConfig where-    toXMLRoot = const (namespaced ns "GetDistributionConfig" [])+-- | Creates a value of 'GetDistributionConfigResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gdcrsETag'+--+-- * 'gdcrsDistributionConfig'+--+-- * 'gdcrsStatus'+getDistributionConfigResponse+    :: Int -- ^ 'gdcrsStatus'+    -> GetDistributionConfigResponse+getDistributionConfigResponse pStatus_ =+    GetDistributionConfigResponse'+    { _gdcrsETag = Nothing+    , _gdcrsDistributionConfig = Nothing+    , _gdcrsStatus = pStatus_+    } -instance ToXML GetDistributionConfig+-- | The current version of the configuration. For example: E2QWRUHAPOMQZL.+gdcrsETag :: Lens' GetDistributionConfigResponse (Maybe Text)+gdcrsETag = lens _gdcrsETag (\ s a -> s{_gdcrsETag = a}); -instance AWSRequest GetDistributionConfig where-    type Sv GetDistributionConfig = CloudFront-    type Rs GetDistributionConfig = GetDistributionConfigResponse+-- | The distribution\'s configuration information.+gdcrsDistributionConfig :: Lens' GetDistributionConfigResponse (Maybe DistributionConfig)+gdcrsDistributionConfig = lens _gdcrsDistributionConfig (\ s a -> s{_gdcrsDistributionConfig = a}); -    request  = get-    response = xmlHeaderResponse $ \h x -> GetDistributionConfigResponse-        <$> x .@? "DistributionConfig"-        <*> h ~:? "ETag"+-- | The response status code.+gdcrsStatus :: Lens' GetDistributionConfigResponse Int+gdcrsStatus = lens _gdcrsStatus (\ s a -> s{_gdcrsStatus = a});
gen/Network/AWS/CloudFront/GetInvalidation.hs view
@@ -1,126 +1,132 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudFront.GetInvalidation--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Get the information about an invalidation.+-- Get the information about an invalidation. ----- <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/GetInvalidation.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/GetInvalidation.html AWS API Reference> for GetInvalidation. module Network.AWS.CloudFront.GetInvalidation     (-    -- * Request-      GetInvalidation-    -- ** Request constructor-    , getInvalidation-    -- ** Request lenses+    -- * Creating a Request+      getInvalidation+    , GetInvalidation+    -- * Request Lenses     , giDistributionId     , giId -    -- * Response-    , GetInvalidationResponse-    -- ** Response constructor+    -- * Destructuring the Response     , getInvalidationResponse-    -- ** Response lenses-    , girInvalidation+    , GetInvalidationResponse+    -- * Response Lenses+    , girsInvalidation+    , girsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.RestXML-import Network.AWS.CloudFront.Types-import qualified GHC.Exts--data GetInvalidation = GetInvalidation-    { _giDistributionId :: Text-    , _giId             :: Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.CloudFront.Types+import           Network.AWS.CloudFront.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'GetInvalidation' constructor.+-- | The request to get an invalidation\'s information. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'getInvalidation' smart constructor.+data GetInvalidation = GetInvalidation'+    { _giDistributionId :: !Text+    , _giId             :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetInvalidation' with the minimum fields required to make a request. ----- * 'giDistributionId' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'giId' @::@ 'Text'+-- * 'giDistributionId' ---getInvalidation :: Text -- ^ 'giDistributionId'-                -> Text -- ^ 'giId'-                -> GetInvalidation-getInvalidation p1 p2 = GetInvalidation-    { _giDistributionId = p1-    , _giId             = p2+-- * 'giId'+getInvalidation+    :: Text -- ^ 'giDistributionId'+    -> Text -- ^ 'giId'+    -> GetInvalidation+getInvalidation pDistributionId_ pId_ =+    GetInvalidation'+    { _giDistributionId = pDistributionId_+    , _giId = pId_     } --- | The distribution's id.+-- | The distribution\'s id. giDistributionId :: Lens' GetInvalidation Text-giDistributionId = lens _giDistributionId (\s a -> s { _giDistributionId = a })+giDistributionId = lens _giDistributionId (\ s a -> s{_giDistributionId = a}); --- | The invalidation's id.+-- | The invalidation\'s id. giId :: Lens' GetInvalidation Text-giId = lens _giId (\s a -> s { _giId = a })--newtype GetInvalidationResponse = GetInvalidationResponse-    { _girInvalidation :: Maybe Invalidation-    } deriving (Eq, Read, Show)+giId = lens _giId (\ s a -> s{_giId = a}); --- | 'GetInvalidationResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'girInvalidation' @::@ 'Maybe' 'Invalidation'----getInvalidationResponse :: GetInvalidationResponse-getInvalidationResponse = GetInvalidationResponse-    { _girInvalidation = Nothing-    }+instance AWSRequest GetInvalidation where+        type Sv GetInvalidation = CloudFront+        type Rs GetInvalidation = GetInvalidationResponse+        request = get+        response+          = receiveXML+              (\ s h x ->+                 GetInvalidationResponse' <$>+                   (parseXML x) <*> (pure (fromEnum s))) --- | The invalidation's information.-girInvalidation :: Lens' GetInvalidationResponse (Maybe Invalidation)-girInvalidation = lens _girInvalidation (\s a -> s { _girInvalidation = a })+instance ToHeaders GetInvalidation where+        toHeaders = const mempty  instance ToPath GetInvalidation where-    toPath GetInvalidation{..} = mconcat-        [ "/2014-11-06/distribution/"-        , toText _giDistributionId-        , "/invalidation/"-        , toText _giId-        ]+        toPath GetInvalidation'{..}+          = mconcat+              ["/2015-04-17/distribution/", toBS _giDistributionId,+               "/invalidation/", toBS _giId]  instance ToQuery GetInvalidation where-    toQuery = const mempty--instance ToHeaders GetInvalidation--instance ToXMLRoot GetInvalidation where-    toXMLRoot = const (namespaced ns "GetInvalidation" [])+        toQuery = const mempty -instance ToXML GetInvalidation+-- | The returned result of the corresponding request.+--+-- /See:/ 'getInvalidationResponse' smart constructor.+data GetInvalidationResponse = GetInvalidationResponse'+    { _girsInvalidation :: !(Maybe Invalidation)+    , _girsStatus       :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest GetInvalidation where-    type Sv GetInvalidation = CloudFront-    type Rs GetInvalidation = GetInvalidationResponse+-- | Creates a value of 'GetInvalidationResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'girsInvalidation'+--+-- * 'girsStatus'+getInvalidationResponse+    :: Int -- ^ 'girsStatus'+    -> GetInvalidationResponse+getInvalidationResponse pStatus_ =+    GetInvalidationResponse'+    { _girsInvalidation = Nothing+    , _girsStatus = pStatus_+    } -    request  = get-    response = xmlResponse+-- | The invalidation\'s information.+girsInvalidation :: Lens' GetInvalidationResponse (Maybe Invalidation)+girsInvalidation = lens _girsInvalidation (\ s a -> s{_girsInvalidation = a}); -instance FromXML GetInvalidationResponse where-    parseXML x = GetInvalidationResponse-        <$> x .@? "Invalidation"+-- | The response status code.+girsStatus :: Lens' GetInvalidationResponse Int+girsStatus = lens _girsStatus (\ s a -> s{_girsStatus = a});
gen/Network/AWS/CloudFront/GetStreamingDistribution.hs view
@@ -1,124 +1,133 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudFront.GetStreamingDistribution--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Get the information about a streaming distribution.+-- Get the information about a streaming distribution. ----- <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/GetStreamingDistribution.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/GetStreamingDistribution.html AWS API Reference> for GetStreamingDistribution. module Network.AWS.CloudFront.GetStreamingDistribution     (-    -- * Request-      GetStreamingDistribution-    -- ** Request constructor-    , getStreamingDistribution-    -- ** Request lenses+    -- * Creating a Request+      getStreamingDistribution+    , GetStreamingDistribution+    -- * Request Lenses     , gsdId -    -- * Response-    , GetStreamingDistributionResponse-    -- ** Response constructor+    -- * Destructuring the Response     , getStreamingDistributionResponse-    -- ** Response lenses-    , gsdrETag-    , gsdrStreamingDistribution+    , GetStreamingDistributionResponse+    -- * Response Lenses+    , gsdrsETag+    , gsdrsStreamingDistribution+    , gsdrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.RestXML-import Network.AWS.CloudFront.Types-import qualified GHC.Exts+import           Network.AWS.CloudFront.Types+import           Network.AWS.CloudFront.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response -newtype GetStreamingDistribution = GetStreamingDistribution+-- | The request to get a streaming distribution\'s information.+--+-- /See:/ 'getStreamingDistribution' smart constructor.+newtype GetStreamingDistribution = GetStreamingDistribution'     { _gsdId :: Text-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)+    } deriving (Eq,Read,Show,Data,Typeable,Generic) --- | 'GetStreamingDistribution' constructor.------ The fields accessible through corresponding lenses are:+-- | Creates a value of 'GetStreamingDistribution' with the minimum fields required to make a request. ----- * 'gsdId' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ---getStreamingDistribution :: Text -- ^ 'gsdId'-                         -> GetStreamingDistribution-getStreamingDistribution p1 = GetStreamingDistribution-    { _gsdId = p1+-- * 'gsdId'+getStreamingDistribution+    :: Text -- ^ 'gsdId'+    -> GetStreamingDistribution+getStreamingDistribution pId_ =+    GetStreamingDistribution'+    { _gsdId = pId_     } --- | The streaming distribution's id.+-- | The streaming distribution\'s id. gsdId :: Lens' GetStreamingDistribution Text-gsdId = lens _gsdId (\s a -> s { _gsdId = a })--data GetStreamingDistributionResponse = GetStreamingDistributionResponse-    { _gsdrETag                  :: Maybe Text-    , _gsdrStreamingDistribution :: Maybe StreamingDistribution-    } deriving (Eq, Read, Show)---- | 'GetStreamingDistributionResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'gsdrETag' @::@ 'Maybe' 'Text'------ * 'gsdrStreamingDistribution' @::@ 'Maybe' 'StreamingDistribution'----getStreamingDistributionResponse :: GetStreamingDistributionResponse-getStreamingDistributionResponse = GetStreamingDistributionResponse-    { _gsdrStreamingDistribution = Nothing-    , _gsdrETag                  = Nothing-    }+gsdId = lens _gsdId (\ s a -> s{_gsdId = a}); --- | The current version of the streaming distribution's information. For example:--- E2QWRUHAPOMQZL.-gsdrETag :: Lens' GetStreamingDistributionResponse (Maybe Text)-gsdrETag = lens _gsdrETag (\s a -> s { _gsdrETag = a })+instance AWSRequest GetStreamingDistribution where+        type Sv GetStreamingDistribution = CloudFront+        type Rs GetStreamingDistribution =+             GetStreamingDistributionResponse+        request = get+        response+          = receiveXML+              (\ s h x ->+                 GetStreamingDistributionResponse' <$>+                   (h .#? "ETag") <*> (parseXML x) <*>+                     (pure (fromEnum s))) --- | The streaming distribution's information.-gsdrStreamingDistribution :: Lens' GetStreamingDistributionResponse (Maybe StreamingDistribution)-gsdrStreamingDistribution =-    lens _gsdrStreamingDistribution-        (\s a -> s { _gsdrStreamingDistribution = a })+instance ToHeaders GetStreamingDistribution where+        toHeaders = const mempty  instance ToPath GetStreamingDistribution where-    toPath GetStreamingDistribution{..} = mconcat-        [ "/2014-11-06/streaming-distribution/"-        , toText _gsdId-        ]+        toPath GetStreamingDistribution'{..}+          = mconcat+              ["/2015-04-17/streaming-distribution/", toBS _gsdId]  instance ToQuery GetStreamingDistribution where-    toQuery = const mempty+        toQuery = const mempty -instance ToHeaders GetStreamingDistribution+-- | The returned result of the corresponding request.+--+-- /See:/ 'getStreamingDistributionResponse' smart constructor.+data GetStreamingDistributionResponse = GetStreamingDistributionResponse'+    { _gsdrsETag                  :: !(Maybe Text)+    , _gsdrsStreamingDistribution :: !(Maybe StreamingDistribution)+    , _gsdrsStatus                :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance ToXMLRoot GetStreamingDistribution where-    toXMLRoot = const (namespaced ns "GetStreamingDistribution" [])+-- | Creates a value of 'GetStreamingDistributionResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gsdrsETag'+--+-- * 'gsdrsStreamingDistribution'+--+-- * 'gsdrsStatus'+getStreamingDistributionResponse+    :: Int -- ^ 'gsdrsStatus'+    -> GetStreamingDistributionResponse+getStreamingDistributionResponse pStatus_ =+    GetStreamingDistributionResponse'+    { _gsdrsETag = Nothing+    , _gsdrsStreamingDistribution = Nothing+    , _gsdrsStatus = pStatus_+    } -instance ToXML GetStreamingDistribution+-- | The current version of the streaming distribution\'s information. For+-- example: E2QWRUHAPOMQZL.+gsdrsETag :: Lens' GetStreamingDistributionResponse (Maybe Text)+gsdrsETag = lens _gsdrsETag (\ s a -> s{_gsdrsETag = a}); -instance AWSRequest GetStreamingDistribution where-    type Sv GetStreamingDistribution = CloudFront-    type Rs GetStreamingDistribution = GetStreamingDistributionResponse+-- | The streaming distribution\'s information.+gsdrsStreamingDistribution :: Lens' GetStreamingDistributionResponse (Maybe StreamingDistribution)+gsdrsStreamingDistribution = lens _gsdrsStreamingDistribution (\ s a -> s{_gsdrsStreamingDistribution = a}); -    request  = get-    response = xmlHeaderResponse $ \h x -> GetStreamingDistributionResponse-        <$> h ~:? "ETag"-        <*> x .@? "StreamingDistribution"+-- | The response status code.+gsdrsStatus :: Lens' GetStreamingDistributionResponse Int+gsdrsStatus = lens _gsdrsStatus (\ s a -> s{_gsdrsStatus = a});
gen/Network/AWS/CloudFront/GetStreamingDistributionConfig.hs view
@@ -1,124 +1,135 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudFront.GetStreamingDistributionConfig--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Get the configuration information about a streaming distribution.+-- Get the configuration information about a streaming distribution. ----- <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/GetStreamingDistributionConfig.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/GetStreamingDistributionConfig.html AWS API Reference> for GetStreamingDistributionConfig. module Network.AWS.CloudFront.GetStreamingDistributionConfig     (-    -- * Request-      GetStreamingDistributionConfig-    -- ** Request constructor-    , getStreamingDistributionConfig-    -- ** Request lenses+    -- * Creating a Request+      getStreamingDistributionConfig+    , GetStreamingDistributionConfig+    -- * Request Lenses     , gsdcId -    -- * Response-    , GetStreamingDistributionConfigResponse-    -- ** Response constructor+    -- * Destructuring the Response     , getStreamingDistributionConfigResponse-    -- ** Response lenses-    , gsdcrETag-    , gsdcrStreamingDistributionConfig+    , GetStreamingDistributionConfigResponse+    -- * Response Lenses+    , gsdcrsStreamingDistributionConfig+    , gsdcrsETag+    , gsdcrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.RestXML-import Network.AWS.CloudFront.Types-import qualified GHC.Exts+import           Network.AWS.CloudFront.Types+import           Network.AWS.CloudFront.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response -newtype GetStreamingDistributionConfig = GetStreamingDistributionConfig+-- | To request to get a streaming distribution configuration.+--+-- /See:/ 'getStreamingDistributionConfig' smart constructor.+newtype GetStreamingDistributionConfig = GetStreamingDistributionConfig'     { _gsdcId :: Text-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)+    } deriving (Eq,Read,Show,Data,Typeable,Generic) --- | 'GetStreamingDistributionConfig' constructor.------ The fields accessible through corresponding lenses are:+-- | Creates a value of 'GetStreamingDistributionConfig' with the minimum fields required to make a request. ----- * 'gsdcId' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ---getStreamingDistributionConfig :: Text -- ^ 'gsdcId'-                               -> GetStreamingDistributionConfig-getStreamingDistributionConfig p1 = GetStreamingDistributionConfig-    { _gsdcId = p1+-- * 'gsdcId'+getStreamingDistributionConfig+    :: Text -- ^ 'gsdcId'+    -> GetStreamingDistributionConfig+getStreamingDistributionConfig pId_ =+    GetStreamingDistributionConfig'+    { _gsdcId = pId_     } --- | The streaming distribution's id.+-- | The streaming distribution\'s id. gsdcId :: Lens' GetStreamingDistributionConfig Text-gsdcId = lens _gsdcId (\s a -> s { _gsdcId = a })--data GetStreamingDistributionConfigResponse = GetStreamingDistributionConfigResponse-    { _gsdcrETag                        :: Maybe Text-    , _gsdcrStreamingDistributionConfig :: Maybe StreamingDistributionConfig-    } deriving (Eq, Read, Show)---- | 'GetStreamingDistributionConfigResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'gsdcrETag' @::@ 'Maybe' 'Text'------ * 'gsdcrStreamingDistributionConfig' @::@ 'Maybe' 'StreamingDistributionConfig'----getStreamingDistributionConfigResponse :: GetStreamingDistributionConfigResponse-getStreamingDistributionConfigResponse = GetStreamingDistributionConfigResponse-    { _gsdcrStreamingDistributionConfig = Nothing-    , _gsdcrETag                        = Nothing-    }+gsdcId = lens _gsdcId (\ s a -> s{_gsdcId = a}); --- | The current version of the configuration. For example: E2QWRUHAPOMQZL.-gsdcrETag :: Lens' GetStreamingDistributionConfigResponse (Maybe Text)-gsdcrETag = lens _gsdcrETag (\s a -> s { _gsdcrETag = a })+instance AWSRequest GetStreamingDistributionConfig+         where+        type Sv GetStreamingDistributionConfig = CloudFront+        type Rs GetStreamingDistributionConfig =+             GetStreamingDistributionConfigResponse+        request = get+        response+          = receiveXML+              (\ s h x ->+                 GetStreamingDistributionConfigResponse' <$>+                   (parseXML x) <*> (h .#? "ETag") <*>+                     (pure (fromEnum s))) --- | The streaming distribution's configuration information.-gsdcrStreamingDistributionConfig :: Lens' GetStreamingDistributionConfigResponse (Maybe StreamingDistributionConfig)-gsdcrStreamingDistributionConfig =-    lens _gsdcrStreamingDistributionConfig-        (\s a -> s { _gsdcrStreamingDistributionConfig = a })+instance ToHeaders GetStreamingDistributionConfig+         where+        toHeaders = const mempty  instance ToPath GetStreamingDistributionConfig where-    toPath GetStreamingDistributionConfig{..} = mconcat-        [ "/2014-11-06/streaming-distribution/"-        , toText _gsdcId-        , "/config"-        ]+        toPath GetStreamingDistributionConfig'{..}+          = mconcat+              ["/2015-04-17/streaming-distribution/", toBS _gsdcId,+               "/config"]  instance ToQuery GetStreamingDistributionConfig where-    toQuery = const mempty+        toQuery = const mempty -instance ToHeaders GetStreamingDistributionConfig+-- | The returned result of the corresponding request.+--+-- /See:/ 'getStreamingDistributionConfigResponse' smart constructor.+data GetStreamingDistributionConfigResponse = GetStreamingDistributionConfigResponse'+    { _gsdcrsStreamingDistributionConfig :: !(Maybe StreamingDistributionConfig)+    , _gsdcrsETag                        :: !(Maybe Text)+    , _gsdcrsStatus                      :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance ToXMLRoot GetStreamingDistributionConfig where-    toXMLRoot = const (namespaced ns "GetStreamingDistributionConfig" [])+-- | Creates a value of 'GetStreamingDistributionConfigResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gsdcrsStreamingDistributionConfig'+--+-- * 'gsdcrsETag'+--+-- * 'gsdcrsStatus'+getStreamingDistributionConfigResponse+    :: Int -- ^ 'gsdcrsStatus'+    -> GetStreamingDistributionConfigResponse+getStreamingDistributionConfigResponse pStatus_ =+    GetStreamingDistributionConfigResponse'+    { _gsdcrsStreamingDistributionConfig = Nothing+    , _gsdcrsETag = Nothing+    , _gsdcrsStatus = pStatus_+    } -instance ToXML GetStreamingDistributionConfig+-- | The streaming distribution\'s configuration information.+gsdcrsStreamingDistributionConfig :: Lens' GetStreamingDistributionConfigResponse (Maybe StreamingDistributionConfig)+gsdcrsStreamingDistributionConfig = lens _gsdcrsStreamingDistributionConfig (\ s a -> s{_gsdcrsStreamingDistributionConfig = a}); -instance AWSRequest GetStreamingDistributionConfig where-    type Sv GetStreamingDistributionConfig = CloudFront-    type Rs GetStreamingDistributionConfig = GetStreamingDistributionConfigResponse+-- | The current version of the configuration. For example: E2QWRUHAPOMQZL.+gsdcrsETag :: Lens' GetStreamingDistributionConfigResponse (Maybe Text)+gsdcrsETag = lens _gsdcrsETag (\ s a -> s{_gsdcrsETag = a}); -    request  = get-    response = xmlHeaderResponse $ \h x -> GetStreamingDistributionConfigResponse-        <$> h ~:? "ETag"-        <*> x .@? "StreamingDistributionConfig"+-- | The response status code.+gsdcrsStatus :: Lens' GetStreamingDistributionConfigResponse Int+gsdcrsStatus = lens _gsdcrsStatus (\ s a -> s{_gsdcrsStatus = a});
gen/Network/AWS/CloudFront/ListCloudFrontOriginAccessIdentities.hs view
@@ -1,135 +1,144 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | List origin access identities.+-- List origin access identities. ----- <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/ListCloudFrontOriginAccessIdentities.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/ListCloudFrontOriginAccessIdentities.html AWS API Reference> for ListCloudFrontOriginAccessIdentities. module Network.AWS.CloudFront.ListCloudFrontOriginAccessIdentities     (-    -- * Request-      ListCloudFrontOriginAccessIdentities-    -- ** Request constructor-    , listCloudFrontOriginAccessIdentities-    -- ** Request lenses-    , lcfoaiMarker+    -- * Creating a Request+      listCloudFrontOriginAccessIdentities+    , ListCloudFrontOriginAccessIdentities+    -- * Request Lenses     , lcfoaiMaxItems+    , lcfoaiMarker -    -- * Response-    , ListCloudFrontOriginAccessIdentitiesResponse-    -- ** Response constructor+    -- * Destructuring the Response     , listCloudFrontOriginAccessIdentitiesResponse-    -- ** Response lenses-    , lcfoairCloudFrontOriginAccessIdentityList+    , ListCloudFrontOriginAccessIdentitiesResponse+    -- * Response Lenses+    , lcfoairsStatus+    , lcfoairsCloudFrontOriginAccessIdentityList     ) where -import Network.AWS.Prelude-import Network.AWS.Request.RestXML-import Network.AWS.CloudFront.Types-import qualified GHC.Exts--data ListCloudFrontOriginAccessIdentities = ListCloudFrontOriginAccessIdentities-    { _lcfoaiMarker   :: Maybe Text-    , _lcfoaiMaxItems :: Maybe Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.CloudFront.Types+import           Network.AWS.CloudFront.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'ListCloudFrontOriginAccessIdentities' constructor.------ The fields accessible through corresponding lenses are:------ * 'lcfoaiMarker' @::@ 'Maybe' 'Text'------ * 'lcfoaiMaxItems' @::@ 'Maybe' 'Text'+-- | The request to list origin access identities. ---listCloudFrontOriginAccessIdentities :: ListCloudFrontOriginAccessIdentities-listCloudFrontOriginAccessIdentities = ListCloudFrontOriginAccessIdentities-    { _lcfoaiMarker   = Nothing-    , _lcfoaiMaxItems = Nothing-    }---- | Use this when paginating results to indicate where to begin in your list of--- origin access identities. The results include identities in the list that--- occur after the marker. To get the next page of results, set the Marker to--- the value of the NextMarker from the current page's response (which is also--- the ID of the last identity on that page).-lcfoaiMarker :: Lens' ListCloudFrontOriginAccessIdentities (Maybe Text)-lcfoaiMarker = lens _lcfoaiMarker (\s a -> s { _lcfoaiMarker = a })---- | The maximum number of origin access identities you want in the response body.-lcfoaiMaxItems :: Lens' ListCloudFrontOriginAccessIdentities (Maybe Text)-lcfoaiMaxItems = lens _lcfoaiMaxItems (\s a -> s { _lcfoaiMaxItems = a })--newtype ListCloudFrontOriginAccessIdentitiesResponse = ListCloudFrontOriginAccessIdentitiesResponse-    { _lcfoairCloudFrontOriginAccessIdentityList :: CloudFrontOriginAccessIdentityList-    } deriving (Eq, Read, Show)+-- /See:/ 'listCloudFrontOriginAccessIdentities' smart constructor.+data ListCloudFrontOriginAccessIdentities = ListCloudFrontOriginAccessIdentities'+    { _lcfoaiMaxItems :: !(Maybe Text)+    , _lcfoaiMarker   :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic) --- | 'ListCloudFrontOriginAccessIdentitiesResponse' constructor.+-- | Creates a value of 'ListCloudFrontOriginAccessIdentities' with the minimum fields required to make a request. ----- The fields accessible through corresponding lenses are:+-- Use one of the following lenses to modify other fields as desired: ----- * 'lcfoairCloudFrontOriginAccessIdentityList' @::@ 'CloudFrontOriginAccessIdentityList'+-- * 'lcfoaiMaxItems' ---listCloudFrontOriginAccessIdentitiesResponse :: CloudFrontOriginAccessIdentityList -- ^ 'lcfoairCloudFrontOriginAccessIdentityList'-                                             -> ListCloudFrontOriginAccessIdentitiesResponse-listCloudFrontOriginAccessIdentitiesResponse p1 = ListCloudFrontOriginAccessIdentitiesResponse-    { _lcfoairCloudFrontOriginAccessIdentityList = p1+-- * 'lcfoaiMarker'+listCloudFrontOriginAccessIdentities+    :: ListCloudFrontOriginAccessIdentities+listCloudFrontOriginAccessIdentities =+    ListCloudFrontOriginAccessIdentities'+    { _lcfoaiMaxItems = Nothing+    , _lcfoaiMarker = Nothing     } --- | The CloudFrontOriginAccessIdentityList type.-lcfoairCloudFrontOriginAccessIdentityList :: Lens' ListCloudFrontOriginAccessIdentitiesResponse CloudFrontOriginAccessIdentityList-lcfoairCloudFrontOriginAccessIdentityList =-    lens _lcfoairCloudFrontOriginAccessIdentityList-        (\s a -> s { _lcfoairCloudFrontOriginAccessIdentityList = a })+-- | The maximum number of origin access identities you want in the response+-- body.+lcfoaiMaxItems :: Lens' ListCloudFrontOriginAccessIdentities (Maybe Text)+lcfoaiMaxItems = lens _lcfoaiMaxItems (\ s a -> s{_lcfoaiMaxItems = a}); -instance ToPath ListCloudFrontOriginAccessIdentities where-    toPath = const "/2014-11-06/origin-access-identity/cloudfront"+-- | Use this when paginating results to indicate where to begin in your list+-- of origin access identities. The results include identities in the list+-- that occur after the marker. To get the next page of results, set the+-- Marker to the value of the NextMarker from the current page\'s response+-- (which is also the ID of the last identity on that page).+lcfoaiMarker :: Lens' ListCloudFrontOriginAccessIdentities (Maybe Text)+lcfoaiMarker = lens _lcfoaiMarker (\ s a -> s{_lcfoaiMarker = a}); -instance ToQuery ListCloudFrontOriginAccessIdentities where-    toQuery ListCloudFrontOriginAccessIdentities{..} = mconcat-        [ "Marker"   =? _lcfoaiMarker-        , "MaxItems" =? _lcfoaiMaxItems-        ]+instance AWSRequest+         ListCloudFrontOriginAccessIdentities where+        type Sv ListCloudFrontOriginAccessIdentities =+             CloudFront+        type Rs ListCloudFrontOriginAccessIdentities =+             ListCloudFrontOriginAccessIdentitiesResponse+        request = get+        response+          = receiveXML+              (\ s h x ->+                 ListCloudFrontOriginAccessIdentitiesResponse' <$>+                   (pure (fromEnum s)) <*> (parseXML x)) -instance ToHeaders ListCloudFrontOriginAccessIdentities+instance ToHeaders+         ListCloudFrontOriginAccessIdentities where+        toHeaders = const mempty -instance ToXMLRoot ListCloudFrontOriginAccessIdentities where-    toXMLRoot = const (namespaced ns "ListCloudFrontOriginAccessIdentities" [])+instance ToPath ListCloudFrontOriginAccessIdentities+         where+        toPath+          = const+              "/2015-04-17/origin-access-identity/cloudfront" -instance ToXML ListCloudFrontOriginAccessIdentities+instance ToQuery ListCloudFrontOriginAccessIdentities+         where+        toQuery ListCloudFrontOriginAccessIdentities'{..}+          = mconcat+              ["MaxItems" =: _lcfoaiMaxItems,+               "Marker" =: _lcfoaiMarker] -instance AWSRequest ListCloudFrontOriginAccessIdentities where-    type Sv ListCloudFrontOriginAccessIdentities = CloudFront-    type Rs ListCloudFrontOriginAccessIdentities = ListCloudFrontOriginAccessIdentitiesResponse+-- | The returned result of the corresponding request.+--+-- /See:/ 'listCloudFrontOriginAccessIdentitiesResponse' smart constructor.+data ListCloudFrontOriginAccessIdentitiesResponse = ListCloudFrontOriginAccessIdentitiesResponse'+    { _lcfoairsStatus                             :: !Int+    , _lcfoairsCloudFrontOriginAccessIdentityList :: !CloudFrontOriginAccessIdentityList+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -    request  = get-    response = xmlResponse+-- | Creates a value of 'ListCloudFrontOriginAccessIdentitiesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lcfoairsStatus'+--+-- * 'lcfoairsCloudFrontOriginAccessIdentityList'+listCloudFrontOriginAccessIdentitiesResponse+    :: Int -- ^ 'lcfoairsStatus'+    -> CloudFrontOriginAccessIdentityList -- ^ 'lcfoairsCloudFrontOriginAccessIdentityList'+    -> ListCloudFrontOriginAccessIdentitiesResponse+listCloudFrontOriginAccessIdentitiesResponse pStatus_ pCloudFrontOriginAccessIdentityList_ =+    ListCloudFrontOriginAccessIdentitiesResponse'+    { _lcfoairsStatus = pStatus_+    , _lcfoairsCloudFrontOriginAccessIdentityList = pCloudFrontOriginAccessIdentityList_+    } -instance FromXML ListCloudFrontOriginAccessIdentitiesResponse where-    parseXML x = ListCloudFrontOriginAccessIdentitiesResponse-        <$> x .@  "CloudFrontOriginAccessIdentityList"+-- | The response status code.+lcfoairsStatus :: Lens' ListCloudFrontOriginAccessIdentitiesResponse Int+lcfoairsStatus = lens _lcfoairsStatus (\ s a -> s{_lcfoairsStatus = a}); -instance AWSPager ListCloudFrontOriginAccessIdentities where-    page rq rs-        | stop (rs ^. lcfoairCloudFrontOriginAccessIdentityList . cfoailIsTruncated) = Nothing-        | otherwise = Just $ rq-            & lcfoaiMarker .~ rs ^. lcfoairCloudFrontOriginAccessIdentityList . cfoailNextMarker+-- | The CloudFrontOriginAccessIdentityList type.+lcfoairsCloudFrontOriginAccessIdentityList :: Lens' ListCloudFrontOriginAccessIdentitiesResponse CloudFrontOriginAccessIdentityList+lcfoairsCloudFrontOriginAccessIdentityList = lens _lcfoairsCloudFrontOriginAccessIdentityList (\ s a -> s{_lcfoairsCloudFrontOriginAccessIdentityList = a});
gen/Network/AWS/CloudFront/ListDistributions.hs view
@@ -1,134 +1,134 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudFront.ListDistributions--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | List distributions.+-- List distributions. ----- <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/ListDistributions.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/ListDistributions.html AWS API Reference> for ListDistributions. module Network.AWS.CloudFront.ListDistributions     (-    -- * Request-      ListDistributions-    -- ** Request constructor-    , listDistributions-    -- ** Request lenses-    , ldMarker+    -- * Creating a Request+      listDistributions+    , ListDistributions+    -- * Request Lenses     , ldMaxItems+    , ldMarker -    -- * Response-    , ListDistributionsResponse-    -- ** Response constructor+    -- * Destructuring the Response     , listDistributionsResponse-    -- ** Response lenses-    , ldrDistributionList+    , ListDistributionsResponse+    -- * Response Lenses+    , ldrsStatus+    , ldrsDistributionList     ) where -import Network.AWS.Prelude-import Network.AWS.Request.RestXML-import Network.AWS.CloudFront.Types-import qualified GHC.Exts--data ListDistributions = ListDistributions-    { _ldMarker   :: Maybe Text-    , _ldMaxItems :: Maybe Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.CloudFront.Types+import           Network.AWS.CloudFront.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'ListDistributions' constructor.+-- | The request to list your distributions. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'listDistributions' smart constructor.+data ListDistributions = ListDistributions'+    { _ldMaxItems :: !(Maybe Text)+    , _ldMarker   :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListDistributions' with the minimum fields required to make a request. ----- * 'ldMarker' @::@ 'Maybe' 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'ldMaxItems' @::@ 'Maybe' 'Text'+-- * 'ldMaxItems' ---listDistributions :: ListDistributions-listDistributions = ListDistributions-    { _ldMarker   = Nothing-    , _ldMaxItems = Nothing+-- * 'ldMarker'+listDistributions+    :: ListDistributions+listDistributions =+    ListDistributions'+    { _ldMaxItems = Nothing+    , _ldMarker = Nothing     } --- | Use this when paginating results to indicate where to begin in your list of--- distributions. The results include distributions in the list that occur after--- the marker. To get the next page of results, set the Marker to the value of--- the NextMarker from the current page's response (which is also the ID of the--- last distribution on that page).-ldMarker :: Lens' ListDistributions (Maybe Text)-ldMarker = lens _ldMarker (\s a -> s { _ldMarker = a })- -- | The maximum number of distributions you want in the response body. ldMaxItems :: Lens' ListDistributions (Maybe Text)-ldMaxItems = lens _ldMaxItems (\s a -> s { _ldMaxItems = a })+ldMaxItems = lens _ldMaxItems (\ s a -> s{_ldMaxItems = a}); -newtype ListDistributionsResponse = ListDistributionsResponse-    { _ldrDistributionList :: DistributionList-    } deriving (Eq, Read, Show)+-- | Use this when paginating results to indicate where to begin in your list+-- of distributions. The results include distributions in the list that+-- occur after the marker. To get the next page of results, set the Marker+-- to the value of the NextMarker from the current page\'s response (which+-- is also the ID of the last distribution on that page).+ldMarker :: Lens' ListDistributions (Maybe Text)+ldMarker = lens _ldMarker (\ s a -> s{_ldMarker = a}); --- | 'ListDistributionsResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'ldrDistributionList' @::@ 'DistributionList'----listDistributionsResponse :: DistributionList -- ^ 'ldrDistributionList'-                          -> ListDistributionsResponse-listDistributionsResponse p1 = ListDistributionsResponse-    { _ldrDistributionList = p1-    }+instance AWSRequest ListDistributions where+        type Sv ListDistributions = CloudFront+        type Rs ListDistributions = ListDistributionsResponse+        request = get+        response+          = receiveXML+              (\ s h x ->+                 ListDistributionsResponse' <$>+                   (pure (fromEnum s)) <*> (parseXML x)) --- | The DistributionList type.-ldrDistributionList :: Lens' ListDistributionsResponse DistributionList-ldrDistributionList =-    lens _ldrDistributionList (\s a -> s { _ldrDistributionList = a })+instance ToHeaders ListDistributions where+        toHeaders = const mempty  instance ToPath ListDistributions where-    toPath = const "/2014-11-06/distribution"+        toPath = const "/2015-04-17/distribution"  instance ToQuery ListDistributions where-    toQuery ListDistributions{..} = mconcat-        [ "Marker"   =? _ldMarker-        , "MaxItems" =? _ldMaxItems-        ]--instance ToHeaders ListDistributions--instance ToXMLRoot ListDistributions where-    toXMLRoot = const (namespaced ns "ListDistributions" [])--instance ToXML ListDistributions+        toQuery ListDistributions'{..}+          = mconcat+              ["MaxItems" =: _ldMaxItems, "Marker" =: _ldMarker] -instance AWSRequest ListDistributions where-    type Sv ListDistributions = CloudFront-    type Rs ListDistributions = ListDistributionsResponse+-- | The returned result of the corresponding request.+--+-- /See:/ 'listDistributionsResponse' smart constructor.+data ListDistributionsResponse = ListDistributionsResponse'+    { _ldrsStatus           :: !Int+    , _ldrsDistributionList :: !DistributionList+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -    request  = get-    response = xmlResponse+-- | Creates a value of 'ListDistributionsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ldrsStatus'+--+-- * 'ldrsDistributionList'+listDistributionsResponse+    :: Int -- ^ 'ldrsStatus'+    -> DistributionList -- ^ 'ldrsDistributionList'+    -> ListDistributionsResponse+listDistributionsResponse pStatus_ pDistributionList_ =+    ListDistributionsResponse'+    { _ldrsStatus = pStatus_+    , _ldrsDistributionList = pDistributionList_+    } -instance FromXML ListDistributionsResponse where-    parseXML x = ListDistributionsResponse-        <$> x .@  "DistributionList"+-- | The response status code.+ldrsStatus :: Lens' ListDistributionsResponse Int+ldrsStatus = lens _ldrsStatus (\ s a -> s{_ldrsStatus = a}); -instance AWSPager ListDistributions where-    page rq rs-        | stop (rs ^. ldrDistributionList . dlIsTruncated) = Nothing-        | otherwise = Just $ rq-            & ldMarker .~ rs ^. ldrDistributionList . dlNextMarker+-- | The DistributionList type.+ldrsDistributionList :: Lens' ListDistributionsResponse DistributionList+ldrsDistributionList = lens _ldrsDistributionList (\ s a -> s{_ldrsDistributionList = a});
gen/Network/AWS/CloudFront/ListInvalidations.hs view
@@ -1,150 +1,150 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudFront.ListInvalidations--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | List invalidation batches.+-- List invalidation batches. ----- <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/ListInvalidations.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/ListInvalidations.html AWS API Reference> for ListInvalidations. module Network.AWS.CloudFront.ListInvalidations     (-    -- * Request-      ListInvalidations-    -- ** Request constructor-    , listInvalidations-    -- ** Request lenses-    , liDistributionId-    , liMarker+    -- * Creating a Request+      listInvalidations+    , ListInvalidations+    -- * Request Lenses     , liMaxItems+    , liMarker+    , liDistributionId -    -- * Response-    , ListInvalidationsResponse-    -- ** Response constructor+    -- * Destructuring the Response     , listInvalidationsResponse-    -- ** Response lenses-    , lirInvalidationList+    , ListInvalidationsResponse+    -- * Response Lenses+    , lirsStatus+    , lirsInvalidationList     ) where -import Network.AWS.Prelude-import Network.AWS.Request.RestXML-import Network.AWS.CloudFront.Types-import qualified GHC.Exts--data ListInvalidations = ListInvalidations-    { _liDistributionId :: Text-    , _liMarker         :: Maybe Text-    , _liMaxItems       :: Maybe Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.CloudFront.Types+import           Network.AWS.CloudFront.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'ListInvalidations' constructor.+-- | The request to list invalidations. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'listInvalidations' smart constructor.+data ListInvalidations = ListInvalidations'+    { _liMaxItems       :: !(Maybe Text)+    , _liMarker         :: !(Maybe Text)+    , _liDistributionId :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListInvalidations' with the minimum fields required to make a request. ----- * 'liDistributionId' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'liMarker' @::@ 'Maybe' 'Text'+-- * 'liMaxItems' ----- * 'liMaxItems' @::@ 'Maybe' 'Text'+-- * 'liMarker' ---listInvalidations :: Text -- ^ 'liDistributionId'-                  -> ListInvalidations-listInvalidations p1 = ListInvalidations-    { _liDistributionId = p1-    , _liMarker         = Nothing-    , _liMaxItems       = Nothing+-- * 'liDistributionId'+listInvalidations+    :: Text -- ^ 'liDistributionId'+    -> ListInvalidations+listInvalidations pDistributionId_ =+    ListInvalidations'+    { _liMaxItems = Nothing+    , _liMarker = Nothing+    , _liDistributionId = pDistributionId_     } --- | The distribution's id.-liDistributionId :: Lens' ListInvalidations Text-liDistributionId = lens _liDistributionId (\s a -> s { _liDistributionId = a })+-- | The maximum number of invalidation batches you want in the response+-- body.+liMaxItems :: Lens' ListInvalidations (Maybe Text)+liMaxItems = lens _liMaxItems (\ s a -> s{_liMaxItems = a}); --- | Use this parameter when paginating results to indicate where to begin in your--- list of invalidation batches. Because the results are returned in decreasing--- order from most recent to oldest, the most recent results are on the first--- page, the second page will contain earlier results, and so on. To get the--- next page of results, set the Marker to the value of the NextMarker from the--- current page's response. This value is the same as the ID of the last--- invalidation batch on that page.+-- | Use this parameter when paginating results to indicate where to begin in+-- your list of invalidation batches. Because the results are returned in+-- decreasing order from most recent to oldest, the most recent results are+-- on the first page, the second page will contain earlier results, and so+-- on. To get the next page of results, set the Marker to the value of the+-- NextMarker from the current page\'s response. This value is the same as+-- the ID of the last invalidation batch on that page. liMarker :: Lens' ListInvalidations (Maybe Text)-liMarker = lens _liMarker (\s a -> s { _liMarker = a })---- | The maximum number of invalidation batches you want in the response body.-liMaxItems :: Lens' ListInvalidations (Maybe Text)-liMaxItems = lens _liMaxItems (\s a -> s { _liMaxItems = a })+liMarker = lens _liMarker (\ s a -> s{_liMarker = a}); -newtype ListInvalidationsResponse = ListInvalidationsResponse-    { _lirInvalidationList :: InvalidationList-    } deriving (Eq, Read, Show)+-- | The distribution\'s id.+liDistributionId :: Lens' ListInvalidations Text+liDistributionId = lens _liDistributionId (\ s a -> s{_liDistributionId = a}); --- | 'ListInvalidationsResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'lirInvalidationList' @::@ 'InvalidationList'----listInvalidationsResponse :: InvalidationList -- ^ 'lirInvalidationList'-                          -> ListInvalidationsResponse-listInvalidationsResponse p1 = ListInvalidationsResponse-    { _lirInvalidationList = p1-    }+instance AWSRequest ListInvalidations where+        type Sv ListInvalidations = CloudFront+        type Rs ListInvalidations = ListInvalidationsResponse+        request = get+        response+          = receiveXML+              (\ s h x ->+                 ListInvalidationsResponse' <$>+                   (pure (fromEnum s)) <*> (parseXML x)) --- | Information about invalidation batches.-lirInvalidationList :: Lens' ListInvalidationsResponse InvalidationList-lirInvalidationList =-    lens _lirInvalidationList (\s a -> s { _lirInvalidationList = a })+instance ToHeaders ListInvalidations where+        toHeaders = const mempty  instance ToPath ListInvalidations where-    toPath ListInvalidations{..} = mconcat-        [ "/2014-11-06/distribution/"-        , toText _liDistributionId-        , "/invalidation"-        ]+        toPath ListInvalidations'{..}+          = mconcat+              ["/2015-04-17/distribution/", toBS _liDistributionId,+               "/invalidation"]  instance ToQuery ListInvalidations where-    toQuery ListInvalidations{..} = mconcat-        [ "Marker"   =? _liMarker-        , "MaxItems" =? _liMaxItems-        ]--instance ToHeaders ListInvalidations--instance ToXMLRoot ListInvalidations where-    toXMLRoot = const (namespaced ns "ListInvalidations" [])--instance ToXML ListInvalidations+        toQuery ListInvalidations'{..}+          = mconcat+              ["MaxItems" =: _liMaxItems, "Marker" =: _liMarker] -instance AWSRequest ListInvalidations where-    type Sv ListInvalidations = CloudFront-    type Rs ListInvalidations = ListInvalidationsResponse+-- | The returned result of the corresponding request.+--+-- /See:/ 'listInvalidationsResponse' smart constructor.+data ListInvalidationsResponse = ListInvalidationsResponse'+    { _lirsStatus           :: !Int+    , _lirsInvalidationList :: !InvalidationList+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -    request  = get-    response = xmlResponse+-- | Creates a value of 'ListInvalidationsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lirsStatus'+--+-- * 'lirsInvalidationList'+listInvalidationsResponse+    :: Int -- ^ 'lirsStatus'+    -> InvalidationList -- ^ 'lirsInvalidationList'+    -> ListInvalidationsResponse+listInvalidationsResponse pStatus_ pInvalidationList_ =+    ListInvalidationsResponse'+    { _lirsStatus = pStatus_+    , _lirsInvalidationList = pInvalidationList_+    } -instance FromXML ListInvalidationsResponse where-    parseXML x = ListInvalidationsResponse-        <$> x .@  "InvalidationList"+-- | The response status code.+lirsStatus :: Lens' ListInvalidationsResponse Int+lirsStatus = lens _lirsStatus (\ s a -> s{_lirsStatus = a}); -instance AWSPager ListInvalidations where-    page rq rs-        | stop (rs ^. lirInvalidationList . ilIsTruncated) = Nothing-        | otherwise = Just $ rq-            & liMarker .~ rs ^. lirInvalidationList . ilNextMarker+-- | Information about invalidation batches.+lirsInvalidationList :: Lens' ListInvalidationsResponse InvalidationList+lirsInvalidationList = lens _lirsInvalidationList (\ s a -> s{_lirsInvalidationList = a});
gen/Network/AWS/CloudFront/ListStreamingDistributions.hs view
@@ -1,135 +1,136 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudFront.ListStreamingDistributions--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | List streaming distributions.+-- List streaming distributions. ----- <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/ListStreamingDistributions.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/ListStreamingDistributions.html AWS API Reference> for ListStreamingDistributions. module Network.AWS.CloudFront.ListStreamingDistributions     (-    -- * Request-      ListStreamingDistributions-    -- ** Request constructor-    , listStreamingDistributions-    -- ** Request lenses-    , lsdMarker+    -- * Creating a Request+      listStreamingDistributions+    , ListStreamingDistributions+    -- * Request Lenses     , lsdMaxItems+    , lsdMarker -    -- * Response-    , ListStreamingDistributionsResponse-    -- ** Response constructor+    -- * Destructuring the Response     , listStreamingDistributionsResponse-    -- ** Response lenses-    , lsdrStreamingDistributionList+    , ListStreamingDistributionsResponse+    -- * Response Lenses+    , lsdrsStatus+    , lsdrsStreamingDistributionList     ) where -import Network.AWS.Prelude-import Network.AWS.Request.RestXML-import Network.AWS.CloudFront.Types-import qualified GHC.Exts--data ListStreamingDistributions = ListStreamingDistributions-    { _lsdMarker   :: Maybe Text-    , _lsdMaxItems :: Maybe Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.CloudFront.Types+import           Network.AWS.CloudFront.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'ListStreamingDistributions' constructor.+-- | The request to list your streaming distributions. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'listStreamingDistributions' smart constructor.+data ListStreamingDistributions = ListStreamingDistributions'+    { _lsdMaxItems :: !(Maybe Text)+    , _lsdMarker   :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListStreamingDistributions' with the minimum fields required to make a request. ----- * 'lsdMarker' @::@ 'Maybe' 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'lsdMaxItems' @::@ 'Maybe' 'Text'+-- * 'lsdMaxItems' ---listStreamingDistributions :: ListStreamingDistributions-listStreamingDistributions = ListStreamingDistributions-    { _lsdMarker   = Nothing-    , _lsdMaxItems = Nothing+-- * 'lsdMarker'+listStreamingDistributions+    :: ListStreamingDistributions+listStreamingDistributions =+    ListStreamingDistributions'+    { _lsdMaxItems = Nothing+    , _lsdMarker = Nothing     } --- | Use this when paginating results to indicate where to begin in your list of--- streaming distributions. The results include distributions in the list that--- occur after the marker. To get the next page of results, set the Marker to--- the value of the NextMarker from the current page's response (which is also--- the ID of the last distribution on that page).-lsdMarker :: Lens' ListStreamingDistributions (Maybe Text)-lsdMarker = lens _lsdMarker (\s a -> s { _lsdMarker = a })---- | The maximum number of streaming distributions you want in the response body.+-- | The maximum number of streaming distributions you want in the response+-- body. lsdMaxItems :: Lens' ListStreamingDistributions (Maybe Text)-lsdMaxItems = lens _lsdMaxItems (\s a -> s { _lsdMaxItems = a })+lsdMaxItems = lens _lsdMaxItems (\ s a -> s{_lsdMaxItems = a}); -newtype ListStreamingDistributionsResponse = ListStreamingDistributionsResponse-    { _lsdrStreamingDistributionList :: StreamingDistributionList-    } deriving (Eq, Read, Show)+-- | Use this when paginating results to indicate where to begin in your list+-- of streaming distributions. The results include distributions in the+-- list that occur after the marker. To get the next page of results, set+-- the Marker to the value of the NextMarker from the current page\'s+-- response (which is also the ID of the last distribution on that page).+lsdMarker :: Lens' ListStreamingDistributions (Maybe Text)+lsdMarker = lens _lsdMarker (\ s a -> s{_lsdMarker = a}); --- | 'ListStreamingDistributionsResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'lsdrStreamingDistributionList' @::@ 'StreamingDistributionList'----listStreamingDistributionsResponse :: StreamingDistributionList -- ^ 'lsdrStreamingDistributionList'-                                   -> ListStreamingDistributionsResponse-listStreamingDistributionsResponse p1 = ListStreamingDistributionsResponse-    { _lsdrStreamingDistributionList = p1-    }+instance AWSRequest ListStreamingDistributions where+        type Sv ListStreamingDistributions = CloudFront+        type Rs ListStreamingDistributions =+             ListStreamingDistributionsResponse+        request = get+        response+          = receiveXML+              (\ s h x ->+                 ListStreamingDistributionsResponse' <$>+                   (pure (fromEnum s)) <*> (parseXML x)) --- | The StreamingDistributionList type.-lsdrStreamingDistributionList :: Lens' ListStreamingDistributionsResponse StreamingDistributionList-lsdrStreamingDistributionList =-    lens _lsdrStreamingDistributionList-        (\s a -> s { _lsdrStreamingDistributionList = a })+instance ToHeaders ListStreamingDistributions where+        toHeaders = const mempty  instance ToPath ListStreamingDistributions where-    toPath = const "/2014-11-06/streaming-distribution"+        toPath = const "/2015-04-17/streaming-distribution"  instance ToQuery ListStreamingDistributions where-    toQuery ListStreamingDistributions{..} = mconcat-        [ "Marker"   =? _lsdMarker-        , "MaxItems" =? _lsdMaxItems-        ]--instance ToHeaders ListStreamingDistributions--instance ToXMLRoot ListStreamingDistributions where-    toXMLRoot = const (namespaced ns "ListStreamingDistributions" [])--instance ToXML ListStreamingDistributions+        toQuery ListStreamingDistributions'{..}+          = mconcat+              ["MaxItems" =: _lsdMaxItems, "Marker" =: _lsdMarker] -instance AWSRequest ListStreamingDistributions where-    type Sv ListStreamingDistributions = CloudFront-    type Rs ListStreamingDistributions = ListStreamingDistributionsResponse+-- | The returned result of the corresponding request.+--+-- /See:/ 'listStreamingDistributionsResponse' smart constructor.+data ListStreamingDistributionsResponse = ListStreamingDistributionsResponse'+    { _lsdrsStatus                    :: !Int+    , _lsdrsStreamingDistributionList :: !StreamingDistributionList+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -    request  = get-    response = xmlResponse+-- | Creates a value of 'ListStreamingDistributionsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lsdrsStatus'+--+-- * 'lsdrsStreamingDistributionList'+listStreamingDistributionsResponse+    :: Int -- ^ 'lsdrsStatus'+    -> StreamingDistributionList -- ^ 'lsdrsStreamingDistributionList'+    -> ListStreamingDistributionsResponse+listStreamingDistributionsResponse pStatus_ pStreamingDistributionList_ =+    ListStreamingDistributionsResponse'+    { _lsdrsStatus = pStatus_+    , _lsdrsStreamingDistributionList = pStreamingDistributionList_+    } -instance FromXML ListStreamingDistributionsResponse where-    parseXML x = ListStreamingDistributionsResponse-        <$> x .@  "StreamingDistributionList"+-- | The response status code.+lsdrsStatus :: Lens' ListStreamingDistributionsResponse Int+lsdrsStatus = lens _lsdrsStatus (\ s a -> s{_lsdrsStatus = a}); -instance AWSPager ListStreamingDistributions where-    page rq rs-        | stop (rs ^. lsdrStreamingDistributionList . sdlIsTruncated) = Nothing-        | otherwise = Just $ rq-            & lsdMarker .~ rs ^. lsdrStreamingDistributionList . sdlNextMarker+-- | The StreamingDistributionList type.+lsdrsStreamingDistributionList :: Lens' ListStreamingDistributionsResponse StreamingDistributionList+lsdrsStreamingDistributionList = lens _lsdrsStreamingDistributionList (\ s a -> s{_lsdrsStreamingDistributionList = a});
gen/Network/AWS/CloudFront/Types.hs view
@@ -1,3799 +1,743 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}-{-# LANGUAGE ViewPatterns                #-}--{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- Module      : Network.AWS.CloudFront.Types--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental--- Portability : non-portable (GHC extensions)------ Derived from AWS service descriptions, licensed under Apache 2.0.--module Network.AWS.CloudFront.Types-    (-    -- * Service-      CloudFront-    -- ** Error-    , RESTError-    -- ** XML-    , ns--    -- * CloudFrontOriginAccessIdentityList-    , CloudFrontOriginAccessIdentityList-    , cloudFrontOriginAccessIdentityList-    , cfoailIsTruncated-    , cfoailItems-    , cfoailMarker-    , cfoailMaxItems-    , cfoailNextMarker-    , cfoailQuantity--    -- * Invalidation-    , Invalidation-    , invalidation-    , iCreateTime-    , iId-    , iInvalidationBatch-    , iStatus--    -- * SSLSupportMethod-    , SSLSupportMethod (..)--    -- * AllowedMethods-    , AllowedMethods-    , allowedMethods-    , amCachedMethods-    , amItems-    , amQuantity--    -- * CloudFrontOriginAccessIdentityConfig-    , CloudFrontOriginAccessIdentityConfig-    , cloudFrontOriginAccessIdentityConfig-    , cfoaicCallerReference-    , cfoaicComment--    -- * Origin-    , Origin-    , origin-    , oCustomOriginConfig-    , oDomainName-    , oId-    , oOriginPath-    , oS3OriginConfig--    -- * ViewerProtocolPolicy-    , ViewerProtocolPolicy (..)--    -- * StreamingDistributionList-    , StreamingDistributionList-    , streamingDistributionList-    , sdlIsTruncated-    , sdlItems-    , sdlMarker-    , sdlMaxItems-    , sdlNextMarker-    , sdlQuantity--    -- * StreamingDistributionConfig-    , StreamingDistributionConfig-    , streamingDistributionConfig-    , sdcAliases-    , sdcCallerReference-    , sdcComment-    , sdcEnabled-    , sdcLogging-    , sdcPriceClass-    , sdcS3Origin-    , sdcTrustedSigners--    -- * Signer-    , Signer-    , signer-    , sAwsAccountNumber-    , sKeyPairIds--    -- * CookiePreference-    , CookiePreference-    , cookiePreference-    , cpForward-    , cpWhitelistedNames--    -- * OriginProtocolPolicy-    , OriginProtocolPolicy (..)--    -- * Distribution-    , Distribution-    , distribution-    , dActiveTrustedSigners-    , dDistributionConfig-    , dDomainName-    , dId-    , dInProgressInvalidationBatches-    , dLastModifiedTime-    , dStatus--    -- * CloudFrontOriginAccessIdentitySummary-    , CloudFrontOriginAccessIdentitySummary-    , cloudFrontOriginAccessIdentitySummary-    , cfoaisComment-    , cfoaisId-    , cfoaisS3CanonicalUserId--    -- * StreamingDistributionSummary-    , StreamingDistributionSummary-    , streamingDistributionSummary-    , sdsAliases-    , sdsComment-    , sdsDomainName-    , sdsEnabled-    , sdsId-    , sdsLastModifiedTime-    , sdsPriceClass-    , sdsS3Origin-    , sdsStatus-    , sdsTrustedSigners--    -- * CustomOriginConfig-    , CustomOriginConfig-    , customOriginConfig-    , cocHTTPPort-    , cocHTTPSPort-    , cocOriginProtocolPolicy--    -- * Aliases-    , Aliases-    , aliases-    , aItems-    , aQuantity--    -- * InvalidationBatch-    , InvalidationBatch-    , invalidationBatch-    , ibCallerReference-    , ibPaths--    -- * InvalidationSummary-    , InvalidationSummary-    , invalidationSummary-    , isCreateTime-    , isId-    , isStatus--    -- * DistributionConfig-    , DistributionConfig-    , distributionConfig-    , dcAliases-    , dcCacheBehaviors-    , dcCallerReference-    , dcComment-    , dcCustomErrorResponses-    , dcDefaultCacheBehavior-    , dcDefaultRootObject-    , dcEnabled-    , dcLogging-    , dcOrigins-    , dcPriceClass-    , dcRestrictions-    , dcViewerCertificate--    -- * CacheBehavior-    , CacheBehavior-    , cacheBehavior-    , cbAllowedMethods-    , cbForwardedValues-    , cbMinTTL-    , cbPathPattern-    , cbSmoothStreaming-    , cbTargetOriginId-    , cbTrustedSigners-    , cbViewerProtocolPolicy--    -- * DistributionList-    , DistributionList-    , distributionList-    , dlIsTruncated-    , dlItems-    , dlMarker-    , dlMaxItems-    , dlNextMarker-    , dlQuantity--    -- * KeyPairIds-    , KeyPairIds-    , keyPairIds-    , kpiItems-    , kpiQuantity--    -- * PriceClass-    , PriceClass (..)--    -- * CustomErrorResponses-    , CustomErrorResponses-    , customErrorResponses-    , cerItems-    , cerQuantity--    -- * S3OriginConfig-    , S3OriginConfig-    , s3OriginConfig-    , socOriginAccessIdentity--    -- * GeoRestriction-    , GeoRestriction-    , geoRestriction-    , grItems-    , grQuantity-    , grRestrictionType--    -- * S3Origin-    , S3Origin-    , s3Origin-    , soDomainName-    , soOriginAccessIdentity--    -- * Headers-    , Headers-    , headers-    , hItems-    , hQuantity--    -- * CachedMethods-    , CachedMethods-    , cachedMethods-    , cmItems-    , cmQuantity--    -- * ViewerCertificate-    , ViewerCertificate-    , viewerCertificate-    , vcCloudFrontDefaultCertificate-    , vcIAMCertificateId-    , vcMinimumProtocolVersion-    , vcSSLSupportMethod--    -- * Restrictions-    , Restrictions-    , restrictions-    , rGeoRestriction--    -- * Origins-    , Origins-    , origins-    , oItems-    , oQuantity--    -- * Method-    , Method (..)--    -- * MinimumProtocolVersion-    , MinimumProtocolVersion (..)--    -- * ForwardedValues-    , ForwardedValues-    , forwardedValues-    , fvCookies-    , fvHeaders-    , fvQueryString--    -- * TrustedSigners-    , TrustedSigners-    , trustedSigners-    , tsEnabled-    , tsItems-    , tsQuantity--    -- * ItemSelection-    , ItemSelection (..)--    -- * StreamingLoggingConfig-    , StreamingLoggingConfig-    , streamingLoggingConfig-    , slcBucket-    , slcEnabled-    , slcPrefix--    -- * CookieNames-    , CookieNames-    , cookieNames-    , cnItems-    , cnQuantity--    -- * CustomErrorResponse-    , CustomErrorResponse-    , customErrorResponse-    , cerErrorCachingMinTTL-    , cerErrorCode-    , cerResponseCode-    , cerResponsePagePath--    -- * CacheBehaviors-    , CacheBehaviors-    , cacheBehaviors-    , cbItems-    , cbQuantity--    -- * DefaultCacheBehavior-    , DefaultCacheBehavior-    , defaultCacheBehavior-    , dcbAllowedMethods-    , dcbForwardedValues-    , dcbMinTTL-    , dcbSmoothStreaming-    , dcbTargetOriginId-    , dcbTrustedSigners-    , dcbViewerProtocolPolicy--    -- * InvalidationList-    , InvalidationList-    , invalidationList-    , ilIsTruncated-    , ilItems-    , ilMarker-    , ilMaxItems-    , ilNextMarker-    , ilQuantity--    -- * StreamingDistribution-    , StreamingDistribution-    , streamingDistribution-    , sdActiveTrustedSigners-    , sdDomainName-    , sdId-    , sdLastModifiedTime-    , sdStatus-    , sdStreamingDistributionConfig--    -- * Paths-    , Paths-    , paths-    , pItems-    , pQuantity--    -- * CloudFrontOriginAccessIdentity-    , CloudFrontOriginAccessIdentity-    , cloudFrontOriginAccessIdentity-    , cfoaiCloudFrontOriginAccessIdentityConfig-    , cfoaiId-    , cfoaiS3CanonicalUserId--    -- * ActiveTrustedSigners-    , ActiveTrustedSigners-    , activeTrustedSigners-    , atsEnabled-    , atsItems-    , atsQuantity--    -- * DistributionSummary-    , DistributionSummary-    , distributionSummary-    , dsAliases-    , dsCacheBehaviors-    , dsComment-    , dsCustomErrorResponses-    , dsDefaultCacheBehavior-    , dsDomainName-    , dsEnabled-    , dsId-    , dsLastModifiedTime-    , dsOrigins-    , dsPriceClass-    , dsRestrictions-    , dsStatus-    , dsViewerCertificate--    -- * GeoRestrictionType-    , GeoRestrictionType (..)--    -- * LoggingConfig-    , LoggingConfig-    , loggingConfig-    , lcBucket-    , lcEnabled-    , lcIncludeCookies-    , lcPrefix-    ) where--import Network.AWS.Prelude-import Network.AWS.Signing-import qualified GHC.Exts---- | Version @2014-11-06@ of the Amazon CloudFront service.-data CloudFront--instance AWSService CloudFront where-    type Sg CloudFront = V4-    type Er CloudFront = RESTError--    service = service'-      where-        service' :: Service CloudFront-        service' = Service-            { _svcAbbrev       = "CloudFront"-            , _svcPrefix       = "cloudfront"-            , _svcVersion      = "2014-11-06"-            , _svcTargetPrefix = Nothing-            , _svcJSONVersion  = Nothing-            , _svcHandle       = handle-            , _svcRetry        = retry-            }--        handle :: Status-               -> Maybe (LazyByteString -> ServiceError RESTError)-        handle = restError statusSuccess service'--        retry :: Retry CloudFront-        retry = Exponential-            { _retryBase     = 0.05-            , _retryGrowth   = 2-            , _retryAttempts = 5-            , _retryCheck    = check-            }--        check :: Status-              -> RESTError-              -> Bool-        check (statusCode -> s) (awsErrorCode -> e)-            | s == 500  = True -- General Server Error-            | s == 509  = True -- Limit Exceeded-            | s == 503  = True -- Service Unavailable-            | otherwise = False--ns :: Text-ns = "http://cloudfront.amazonaws.com/doc/2014-11-06/"-{-# INLINE ns #-}--data CloudFrontOriginAccessIdentityList = CloudFrontOriginAccessIdentityList-    { _cfoailIsTruncated :: Bool-    , _cfoailItems       :: List "CloudFrontOriginAccessIdentitySummary" CloudFrontOriginAccessIdentitySummary-    , _cfoailMarker      :: Text-    , _cfoailMaxItems    :: Int-    , _cfoailNextMarker  :: Maybe Text-    , _cfoailQuantity    :: Int-    } deriving (Eq, Read, Show)---- | 'CloudFrontOriginAccessIdentityList' constructor.------ The fields accessible through corresponding lenses are:------ * 'cfoailIsTruncated' @::@ 'Bool'------ * 'cfoailItems' @::@ ['CloudFrontOriginAccessIdentitySummary']------ * 'cfoailMarker' @::@ 'Text'------ * 'cfoailMaxItems' @::@ 'Int'------ * 'cfoailNextMarker' @::@ 'Maybe' 'Text'------ * 'cfoailQuantity' @::@ 'Int'----cloudFrontOriginAccessIdentityList :: Text -- ^ 'cfoailMarker'-                                   -> Int -- ^ 'cfoailMaxItems'-                                   -> Bool -- ^ 'cfoailIsTruncated'-                                   -> Int -- ^ 'cfoailQuantity'-                                   -> CloudFrontOriginAccessIdentityList-cloudFrontOriginAccessIdentityList p1 p2 p3 p4 = CloudFrontOriginAccessIdentityList-    { _cfoailMarker      = p1-    , _cfoailMaxItems    = p2-    , _cfoailIsTruncated = p3-    , _cfoailQuantity    = p4-    , _cfoailNextMarker  = Nothing-    , _cfoailItems       = mempty-    }---- | A flag that indicates whether more origin access identities remain to be--- listed. If your results were truncated, you can make a follow-up pagination--- request using the Marker request parameter to retrieve more items in the list.-cfoailIsTruncated :: Lens' CloudFrontOriginAccessIdentityList Bool-cfoailIsTruncated =-    lens _cfoailIsTruncated (\s a -> s { _cfoailIsTruncated = a })---- | A complex type that contains one CloudFrontOriginAccessIdentitySummary--- element for each origin access identity that was created by the current AWS--- account.-cfoailItems :: Lens' CloudFrontOriginAccessIdentityList [CloudFrontOriginAccessIdentitySummary]-cfoailItems = lens _cfoailItems (\s a -> s { _cfoailItems = a }) . _List---- | The value you provided for the Marker request parameter.-cfoailMarker :: Lens' CloudFrontOriginAccessIdentityList Text-cfoailMarker = lens _cfoailMarker (\s a -> s { _cfoailMarker = a })---- | The value you provided for the MaxItems request parameter.-cfoailMaxItems :: Lens' CloudFrontOriginAccessIdentityList Int-cfoailMaxItems = lens _cfoailMaxItems (\s a -> s { _cfoailMaxItems = a })---- | If IsTruncated is true, this element is present and contains the value you--- can use for the Marker request parameter to continue listing your origin--- access identities where they left off.-cfoailNextMarker :: Lens' CloudFrontOriginAccessIdentityList (Maybe Text)-cfoailNextMarker = lens _cfoailNextMarker (\s a -> s { _cfoailNextMarker = a })---- | The number of CloudFront origin access identities that were created by the--- current AWS account.-cfoailQuantity :: Lens' CloudFrontOriginAccessIdentityList Int-cfoailQuantity = lens _cfoailQuantity (\s a -> s { _cfoailQuantity = a })--instance FromXML CloudFrontOriginAccessIdentityList where-    parseXML x = CloudFrontOriginAccessIdentityList-        <$> x .@  "IsTruncated"-        <*> x .@? "Items" .!@ mempty-        <*> x .@  "Marker"-        <*> x .@  "MaxItems"-        <*> x .@? "NextMarker"-        <*> x .@  "Quantity"--instance ToXML CloudFrontOriginAccessIdentityList where-    toXML CloudFrontOriginAccessIdentityList{..} = nodes "CloudFrontOriginAccessIdentityList"-        [ "Marker"      =@ _cfoailMarker-        , "NextMarker"  =@ _cfoailNextMarker-        , "MaxItems"    =@ _cfoailMaxItems-        , "IsTruncated" =@ _cfoailIsTruncated-        , "Quantity"    =@ _cfoailQuantity-        , "Items"       =@ _cfoailItems-        ]--data Invalidation = Invalidation-    { _iCreateTime        :: ISO8601-    , _iId                :: Text-    , _iInvalidationBatch :: InvalidationBatch-    , _iStatus            :: Text-    } deriving (Eq, Read, Show)---- | 'Invalidation' constructor.------ The fields accessible through corresponding lenses are:------ * 'iCreateTime' @::@ 'UTCTime'------ * 'iId' @::@ 'Text'------ * 'iInvalidationBatch' @::@ 'InvalidationBatch'------ * 'iStatus' @::@ 'Text'----invalidation :: Text -- ^ 'iId'-             -> Text -- ^ 'iStatus'-             -> UTCTime -- ^ 'iCreateTime'-             -> InvalidationBatch -- ^ 'iInvalidationBatch'-             -> Invalidation-invalidation p1 p2 p3 p4 = Invalidation-    { _iId                = p1-    , _iStatus            = p2-    , _iCreateTime        = withIso _Time (const id) p3-    , _iInvalidationBatch = p4-    }---- | The date and time the invalidation request was first made.-iCreateTime :: Lens' Invalidation UTCTime-iCreateTime = lens _iCreateTime (\s a -> s { _iCreateTime = a }) . _Time---- | The identifier for the invalidation request. For example: IDFDVBD632BHDS5.-iId :: Lens' Invalidation Text-iId = lens _iId (\s a -> s { _iId = a })---- | The current invalidation information for the batch request.-iInvalidationBatch :: Lens' Invalidation InvalidationBatch-iInvalidationBatch =-    lens _iInvalidationBatch (\s a -> s { _iInvalidationBatch = a })---- | The status of the invalidation request. When the invalidation batch is--- finished, the status is Completed.-iStatus :: Lens' Invalidation Text-iStatus = lens _iStatus (\s a -> s { _iStatus = a })--instance FromXML Invalidation where-    parseXML x = Invalidation-        <$> x .@  "CreateTime"-        <*> x .@  "Id"-        <*> x .@  "InvalidationBatch"-        <*> x .@  "Status"--instance ToXMLRoot Invalidation where-    toXMLRoot Invalidation{..} = namespaced ns "Invalidation"-        [ "Id"                =@ _iId-        , "Status"            =@ _iStatus-        , "CreateTime"        =@ _iCreateTime-        , "InvalidationBatch" =@ _iInvalidationBatch-        ]--instance ToXML Invalidation--data SSLSupportMethod-    = SniOnly -- ^ sni-only-    | Vip     -- ^ vip-      deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable SSLSupportMethod--instance FromText SSLSupportMethod where-    parser = takeLowerText >>= \case-        "sni-only" -> pure SniOnly-        "vip"      -> pure Vip-        e          -> fail $-            "Failure parsing SSLSupportMethod from " ++ show e--instance ToText SSLSupportMethod where-    toText = \case-        SniOnly -> "sni-only"-        Vip     -> "vip"--instance ToByteString SSLSupportMethod-instance ToHeader     SSLSupportMethod-instance ToQuery      SSLSupportMethod--instance FromXML SSLSupportMethod where-    parseXML = parseXMLText "SSLSupportMethod"--instance ToXML SSLSupportMethod where-    toXML = toXMLText--data AllowedMethods = AllowedMethods-    { _amCachedMethods :: Maybe CachedMethods-    , _amItems         :: List "Method" Method-    , _amQuantity      :: Int-    } deriving (Eq, Read, Show)---- | 'AllowedMethods' constructor.------ The fields accessible through corresponding lenses are:------ * 'amCachedMethods' @::@ 'Maybe' 'CachedMethods'------ * 'amItems' @::@ ['Method']------ * 'amQuantity' @::@ 'Int'----allowedMethods :: Int -- ^ 'amQuantity'-               -> AllowedMethods-allowedMethods p1 = AllowedMethods-    { _amQuantity      = p1-    , _amItems         = mempty-    , _amCachedMethods = Nothing-    }--amCachedMethods :: Lens' AllowedMethods (Maybe CachedMethods)-amCachedMethods = lens _amCachedMethods (\s a -> s { _amCachedMethods = a })---- | A complex type that contains the HTTP methods that you want CloudFront to--- process and forward to your origin.-amItems :: Lens' AllowedMethods [Method]-amItems = lens _amItems (\s a -> s { _amItems = a }) . _List---- | The number of HTTP methods that you want CloudFront to forward to your--- origin. Valid values are 2 (for GET and HEAD requests), 3 (for GET, HEAD and--- OPTIONS requests) and 7 (for GET, HEAD, OPTIONS, PUT, PATCH, POST, and DELETE--- requests).-amQuantity :: Lens' AllowedMethods Int-amQuantity = lens _amQuantity (\s a -> s { _amQuantity = a })--instance FromXML AllowedMethods where-    parseXML x = AllowedMethods-        <$> x .@? "CachedMethods"-        <*> x .@? "Items" .!@ mempty-        <*> x .@  "Quantity"--instance ToXML AllowedMethods where-    toXML AllowedMethods{..} = nodes "AllowedMethods"-        [ "Quantity"      =@ _amQuantity-        , "Items"         =@ _amItems-        , "CachedMethods" =@ _amCachedMethods-        ]--data CloudFrontOriginAccessIdentityConfig = CloudFrontOriginAccessIdentityConfig-    { _cfoaicCallerReference :: Text-    , _cfoaicComment         :: Text-    } deriving (Eq, Ord, Read, Show)---- | 'CloudFrontOriginAccessIdentityConfig' constructor.------ The fields accessible through corresponding lenses are:------ * 'cfoaicCallerReference' @::@ 'Text'------ * 'cfoaicComment' @::@ 'Text'----cloudFrontOriginAccessIdentityConfig :: Text -- ^ 'cfoaicCallerReference'-                                     -> Text -- ^ 'cfoaicComment'-                                     -> CloudFrontOriginAccessIdentityConfig-cloudFrontOriginAccessIdentityConfig p1 p2 = CloudFrontOriginAccessIdentityConfig-    { _cfoaicCallerReference = p1-    , _cfoaicComment         = p2-    }---- | A unique number that ensures the request can't be replayed. If the--- CallerReference is new (no matter the content of the--- CloudFrontOriginAccessIdentityConfig object), a new origin access identity is--- created. If the CallerReference is a value you already sent in a previous--- request to create an identity, and the content of the--- CloudFrontOriginAccessIdentityConfig is identical to the original request--- (ignoring white space), the response includes the same information returned--- to the original request. If the CallerReference is a value you already sent--- in a previous request to create an identity but the content of the--- CloudFrontOriginAccessIdentityConfig is different from the original request,--- CloudFront returns a CloudFrontOriginAccessIdentityAlreadyExists error.-cfoaicCallerReference :: Lens' CloudFrontOriginAccessIdentityConfig Text-cfoaicCallerReference =-    lens _cfoaicCallerReference (\s a -> s { _cfoaicCallerReference = a })---- | Any comments you want to include about the origin access identity.-cfoaicComment :: Lens' CloudFrontOriginAccessIdentityConfig Text-cfoaicComment = lens _cfoaicComment (\s a -> s { _cfoaicComment = a })--instance FromXML CloudFrontOriginAccessIdentityConfig where-    parseXML x = CloudFrontOriginAccessIdentityConfig-        <$> x .@  "CallerReference"-        <*> x .@  "Comment"--instance ToXMLRoot CloudFrontOriginAccessIdentityConfig where-    toXMLRoot CloudFrontOriginAccessIdentityConfig{..} = namespaced ns "CloudFrontOriginAccessIdentityConfig"-        [ "CallerReference" =@ _cfoaicCallerReference-        , "Comment"         =@ _cfoaicComment-        ]--instance ToXML CloudFrontOriginAccessIdentityConfig--data Origin = Origin-    { _oCustomOriginConfig :: Maybe CustomOriginConfig-    , _oDomainName         :: Text-    , _oId                 :: Text-    , _oOriginPath         :: Maybe Text-    , _oS3OriginConfig     :: Maybe S3OriginConfig-    } deriving (Eq, Read, Show)---- | 'Origin' constructor.------ The fields accessible through corresponding lenses are:------ * 'oCustomOriginConfig' @::@ 'Maybe' 'CustomOriginConfig'------ * 'oDomainName' @::@ 'Text'------ * 'oId' @::@ 'Text'------ * 'oOriginPath' @::@ 'Maybe' 'Text'------ * 'oS3OriginConfig' @::@ 'Maybe' 'S3OriginConfig'----origin :: Text -- ^ 'oId'-       -> Text -- ^ 'oDomainName'-       -> Origin-origin p1 p2 = Origin-    { _oId                 = p1-    , _oDomainName         = p2-    , _oOriginPath         = Nothing-    , _oS3OriginConfig     = Nothing-    , _oCustomOriginConfig = Nothing-    }---- | A complex type that contains information about a custom origin. If the origin--- is an Amazon S3 bucket, use the S3OriginConfig element instead.-oCustomOriginConfig :: Lens' Origin (Maybe CustomOriginConfig)-oCustomOriginConfig =-    lens _oCustomOriginConfig (\s a -> s { _oCustomOriginConfig = a })---- | Amazon S3 origins: The DNS name of the Amazon S3 bucket from which you want--- CloudFront to get objects for this origin, for example,--- myawsbucket.s3.amazonaws.com. Custom origins: The DNS domain name for the--- HTTP server from which you want CloudFront to get objects for this origin,--- for example, www.example.com.-oDomainName :: Lens' Origin Text-oDomainName = lens _oDomainName (\s a -> s { _oDomainName = a })---- | A unique identifier for the origin. The value of Id must be unique within the--- distribution. You use the value of Id when you create a cache behavior. The--- Id identifies the origin that CloudFront routes a request to when the request--- matches the path pattern for that cache behavior.-oId :: Lens' Origin Text-oId = lens _oId (\s a -> s { _oId = a })---- | An optional element that causes CloudFront to request your content from a--- directory in your Amazon S3 bucket or your custom origin. When you include--- the OriginPath element, specify the directory name, beginning with a /.--- CloudFront appends the directory name to the value of DomainName.-oOriginPath :: Lens' Origin (Maybe Text)-oOriginPath = lens _oOriginPath (\s a -> s { _oOriginPath = a })---- | A complex type that contains information about the Amazon S3 origin. If the--- origin is a custom origin, use the CustomOriginConfig element instead.-oS3OriginConfig :: Lens' Origin (Maybe S3OriginConfig)-oS3OriginConfig = lens _oS3OriginConfig (\s a -> s { _oS3OriginConfig = a })--instance FromXML Origin where-    parseXML x = Origin-        <$> x .@? "CustomOriginConfig"-        <*> x .@  "DomainName"-        <*> x .@  "Id"-        <*> x .@? "OriginPath"-        <*> x .@? "S3OriginConfig"--instance ToXML Origin where-    toXML Origin{..} = nodes "Origin"-        [ "Id"                 =@ _oId-        , "DomainName"         =@ _oDomainName-        , "OriginPath"         =@ _oOriginPath-        , "S3OriginConfig"     =@ _oS3OriginConfig-        , "CustomOriginConfig" =@ _oCustomOriginConfig-        ]--data ViewerProtocolPolicy-    = AllowAll        -- ^ allow-all-    | HttpsOnly       -- ^ https-only-    | RedirectToHttps -- ^ redirect-to-https-      deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable ViewerProtocolPolicy--instance FromText ViewerProtocolPolicy where-    parser = takeLowerText >>= \case-        "allow-all"         -> pure AllowAll-        "https-only"        -> pure HttpsOnly-        "redirect-to-https" -> pure RedirectToHttps-        e                   -> fail $-            "Failure parsing ViewerProtocolPolicy from " ++ show e--instance ToText ViewerProtocolPolicy where-    toText = \case-        AllowAll        -> "allow-all"-        HttpsOnly       -> "https-only"-        RedirectToHttps -> "redirect-to-https"--instance ToByteString ViewerProtocolPolicy-instance ToHeader     ViewerProtocolPolicy-instance ToQuery      ViewerProtocolPolicy--instance FromXML ViewerProtocolPolicy where-    parseXML = parseXMLText "ViewerProtocolPolicy"--instance ToXML ViewerProtocolPolicy where-    toXML = toXMLText--data StreamingDistributionList = StreamingDistributionList-    { _sdlIsTruncated :: Bool-    , _sdlItems       :: List "StreamingDistributionSummary" StreamingDistributionSummary-    , _sdlMarker      :: Text-    , _sdlMaxItems    :: Int-    , _sdlNextMarker  :: Maybe Text-    , _sdlQuantity    :: Int-    } deriving (Eq, Read, Show)---- | 'StreamingDistributionList' constructor.------ The fields accessible through corresponding lenses are:------ * 'sdlIsTruncated' @::@ 'Bool'------ * 'sdlItems' @::@ ['StreamingDistributionSummary']------ * 'sdlMarker' @::@ 'Text'------ * 'sdlMaxItems' @::@ 'Int'------ * 'sdlNextMarker' @::@ 'Maybe' 'Text'------ * 'sdlQuantity' @::@ 'Int'----streamingDistributionList :: Text -- ^ 'sdlMarker'-                          -> Int -- ^ 'sdlMaxItems'-                          -> Bool -- ^ 'sdlIsTruncated'-                          -> Int -- ^ 'sdlQuantity'-                          -> StreamingDistributionList-streamingDistributionList p1 p2 p3 p4 = StreamingDistributionList-    { _sdlMarker      = p1-    , _sdlMaxItems    = p2-    , _sdlIsTruncated = p3-    , _sdlQuantity    = p4-    , _sdlNextMarker  = Nothing-    , _sdlItems       = mempty-    }---- | A flag that indicates whether more streaming distributions remain to be--- listed. If your results were truncated, you can make a follow-up pagination--- request using the Marker request parameter to retrieve more distributions in--- the list.-sdlIsTruncated :: Lens' StreamingDistributionList Bool-sdlIsTruncated = lens _sdlIsTruncated (\s a -> s { _sdlIsTruncated = a })---- | A complex type that contains one StreamingDistributionSummary element for--- each distribution that was created by the current AWS account.-sdlItems :: Lens' StreamingDistributionList [StreamingDistributionSummary]-sdlItems = lens _sdlItems (\s a -> s { _sdlItems = a }) . _List---- | The value you provided for the Marker request parameter.-sdlMarker :: Lens' StreamingDistributionList Text-sdlMarker = lens _sdlMarker (\s a -> s { _sdlMarker = a })---- | The value you provided for the MaxItems request parameter.-sdlMaxItems :: Lens' StreamingDistributionList Int-sdlMaxItems = lens _sdlMaxItems (\s a -> s { _sdlMaxItems = a })---- | If IsTruncated is true, this element is present and contains the value you--- can use for the Marker request parameter to continue listing your streaming--- distributions where they left off.-sdlNextMarker :: Lens' StreamingDistributionList (Maybe Text)-sdlNextMarker = lens _sdlNextMarker (\s a -> s { _sdlNextMarker = a })---- | The number of streaming distributions that were created by the current AWS--- account.-sdlQuantity :: Lens' StreamingDistributionList Int-sdlQuantity = lens _sdlQuantity (\s a -> s { _sdlQuantity = a })--instance FromXML StreamingDistributionList where-    parseXML x = StreamingDistributionList-        <$> x .@  "IsTruncated"-        <*> x .@? "Items" .!@ mempty-        <*> x .@  "Marker"-        <*> x .@  "MaxItems"-        <*> x .@? "NextMarker"-        <*> x .@  "Quantity"--instance ToXML StreamingDistributionList where-    toXML StreamingDistributionList{..} = nodes "StreamingDistributionList"-        [ "Marker"      =@ _sdlMarker-        , "NextMarker"  =@ _sdlNextMarker-        , "MaxItems"    =@ _sdlMaxItems-        , "IsTruncated" =@ _sdlIsTruncated-        , "Quantity"    =@ _sdlQuantity-        , "Items"       =@ _sdlItems-        ]--data StreamingDistributionConfig = StreamingDistributionConfig-    { _sdcAliases         :: Maybe Aliases-    , _sdcCallerReference :: Text-    , _sdcComment         :: Text-    , _sdcEnabled         :: Bool-    , _sdcLogging         :: Maybe StreamingLoggingConfig-    , _sdcPriceClass      :: Maybe PriceClass-    , _sdcS3Origin        :: S3Origin-    , _sdcTrustedSigners  :: TrustedSigners-    } deriving (Eq, Read, Show)---- | 'StreamingDistributionConfig' constructor.------ The fields accessible through corresponding lenses are:------ * 'sdcAliases' @::@ 'Maybe' 'Aliases'------ * 'sdcCallerReference' @::@ 'Text'------ * 'sdcComment' @::@ 'Text'------ * 'sdcEnabled' @::@ 'Bool'------ * 'sdcLogging' @::@ 'Maybe' 'StreamingLoggingConfig'------ * 'sdcPriceClass' @::@ 'Maybe' 'PriceClass'------ * 'sdcS3Origin' @::@ 'S3Origin'------ * 'sdcTrustedSigners' @::@ 'TrustedSigners'----streamingDistributionConfig :: Text -- ^ 'sdcCallerReference'-                            -> S3Origin -- ^ 'sdcS3Origin'-                            -> Text -- ^ 'sdcComment'-                            -> TrustedSigners -- ^ 'sdcTrustedSigners'-                            -> Bool -- ^ 'sdcEnabled'-                            -> StreamingDistributionConfig-streamingDistributionConfig p1 p2 p3 p4 p5 = StreamingDistributionConfig-    { _sdcCallerReference = p1-    , _sdcS3Origin        = p2-    , _sdcComment         = p3-    , _sdcTrustedSigners  = p4-    , _sdcEnabled         = p5-    , _sdcAliases         = Nothing-    , _sdcLogging         = Nothing-    , _sdcPriceClass      = Nothing-    }---- | A complex type that contains information about CNAMEs (alternate domain--- names), if any, for this streaming distribution.-sdcAliases :: Lens' StreamingDistributionConfig (Maybe Aliases)-sdcAliases = lens _sdcAliases (\s a -> s { _sdcAliases = a })---- | A unique number that ensures the request can't be replayed. If the--- CallerReference is new (no matter the content of the--- StreamingDistributionConfig object), a new streaming distribution is created.--- If the CallerReference is a value you already sent in a previous request to--- create a streaming distribution, and the content of the--- StreamingDistributionConfig is identical to the original request (ignoring--- white space), the response includes the same information returned to the--- original request. If the CallerReference is a value you already sent in a--- previous request to create a streaming distribution but the content of the--- StreamingDistributionConfig is different from the original request,--- CloudFront returns a DistributionAlreadyExists error.-sdcCallerReference :: Lens' StreamingDistributionConfig Text-sdcCallerReference =-    lens _sdcCallerReference (\s a -> s { _sdcCallerReference = a })---- | Any comments you want to include about the streaming distribution.-sdcComment :: Lens' StreamingDistributionConfig Text-sdcComment = lens _sdcComment (\s a -> s { _sdcComment = a })---- | Whether the streaming distribution is enabled to accept end user requests for--- content.-sdcEnabled :: Lens' StreamingDistributionConfig Bool-sdcEnabled = lens _sdcEnabled (\s a -> s { _sdcEnabled = a })---- | A complex type that controls whether access logs are written for the--- streaming distribution.-sdcLogging :: Lens' StreamingDistributionConfig (Maybe StreamingLoggingConfig)-sdcLogging = lens _sdcLogging (\s a -> s { _sdcLogging = a })---- | A complex type that contains information about price class for this streaming--- distribution.-sdcPriceClass :: Lens' StreamingDistributionConfig (Maybe PriceClass)-sdcPriceClass = lens _sdcPriceClass (\s a -> s { _sdcPriceClass = a })---- | A complex type that contains information about the Amazon S3 bucket from--- which you want CloudFront to get your media files for distribution.-sdcS3Origin :: Lens' StreamingDistributionConfig S3Origin-sdcS3Origin = lens _sdcS3Origin (\s a -> s { _sdcS3Origin = a })---- | A complex type that specifies the AWS accounts, if any, that you want to--- allow to create signed URLs for private content. If you want to require--- signed URLs in requests for objects in the target origin that match the--- PathPattern for this cache behavior, specify true for Enabled, and specify--- the applicable values for Quantity and Items. For more information, go to--- Using a Signed URL to Serve Private Content in the Amazon CloudFront--- Developer Guide. If you don't want to require signed URLs in requests for--- objects that match PathPattern, specify false for Enabled and 0 for Quantity.--- Omit Items. To add, change, or remove one or more trusted signers, change--- Enabled to true (if it's currently false), change Quantity as applicable, and--- specify all of the trusted signers that you want to include in the updated--- distribution.-sdcTrustedSigners :: Lens' StreamingDistributionConfig TrustedSigners-sdcTrustedSigners =-    lens _sdcTrustedSigners (\s a -> s { _sdcTrustedSigners = a })--instance FromXML StreamingDistributionConfig where-    parseXML x = StreamingDistributionConfig-        <$> x .@? "Aliases"-        <*> x .@  "CallerReference"-        <*> x .@  "Comment"-        <*> x .@  "Enabled"-        <*> x .@? "Logging"-        <*> x .@? "PriceClass"-        <*> x .@  "S3Origin"-        <*> x .@  "TrustedSigners"--instance ToXMLRoot StreamingDistributionConfig where-    toXMLRoot StreamingDistributionConfig{..} = namespaced ns "StreamingDistributionConfig"-        [ "CallerReference" =@ _sdcCallerReference-        , "S3Origin"        =@ _sdcS3Origin-        , "Aliases"         =@ _sdcAliases-        , "Comment"         =@ _sdcComment-        , "Logging"         =@ _sdcLogging-        , "TrustedSigners"  =@ _sdcTrustedSigners-        , "PriceClass"      =@ _sdcPriceClass-        , "Enabled"         =@ _sdcEnabled-        ]--instance ToXML StreamingDistributionConfig--data Signer = Signer-    { _sAwsAccountNumber :: Maybe Text-    , _sKeyPairIds       :: Maybe KeyPairIds-    } deriving (Eq, Read, Show)---- | 'Signer' constructor.------ The fields accessible through corresponding lenses are:------ * 'sAwsAccountNumber' @::@ 'Maybe' 'Text'------ * 'sKeyPairIds' @::@ 'Maybe' 'KeyPairIds'----signer :: Signer-signer = Signer-    { _sAwsAccountNumber = Nothing-    , _sKeyPairIds       = Nothing-    }---- | Specifies an AWS account that can create signed URLs. Values: self, which--- indicates that the AWS account that was used to create the distribution can--- created signed URLs, or an AWS account number. Omit the dashes in the account--- number.-sAwsAccountNumber :: Lens' Signer (Maybe Text)-sAwsAccountNumber =-    lens _sAwsAccountNumber (\s a -> s { _sAwsAccountNumber = a })---- | A complex type that lists the active CloudFront key pairs, if any, that are--- associated with AwsAccountNumber.-sKeyPairIds :: Lens' Signer (Maybe KeyPairIds)-sKeyPairIds = lens _sKeyPairIds (\s a -> s { _sKeyPairIds = a })--instance FromXML Signer where-    parseXML x = Signer-        <$> x .@? "AwsAccountNumber"-        <*> x .@? "KeyPairIds"--instance ToXML Signer where-    toXML Signer{..} = nodes "Signer"-        [ "AwsAccountNumber" =@ _sAwsAccountNumber-        , "KeyPairIds"       =@ _sKeyPairIds-        ]--data CookiePreference = CookiePreference-    { _cpForward          :: ItemSelection-    , _cpWhitelistedNames :: Maybe CookieNames-    } deriving (Eq, Read, Show)---- | 'CookiePreference' constructor.------ The fields accessible through corresponding lenses are:------ * 'cpForward' @::@ 'ItemSelection'------ * 'cpWhitelistedNames' @::@ 'Maybe' 'CookieNames'----cookiePreference :: ItemSelection -- ^ 'cpForward'-                 -> CookiePreference-cookiePreference p1 = CookiePreference-    { _cpForward          = p1-    , _cpWhitelistedNames = Nothing-    }---- | Use this element to specify whether you want CloudFront to forward cookies to--- the origin that is associated with this cache behavior. You can specify all,--- none or whitelist. If you choose All, CloudFront forwards all cookies--- regardless of how many your application uses.-cpForward :: Lens' CookiePreference ItemSelection-cpForward = lens _cpForward (\s a -> s { _cpForward = a })---- | A complex type that specifies the whitelisted cookies, if any, that you want--- CloudFront to forward to your origin that is associated with this cache--- behavior.-cpWhitelistedNames :: Lens' CookiePreference (Maybe CookieNames)-cpWhitelistedNames =-    lens _cpWhitelistedNames (\s a -> s { _cpWhitelistedNames = a })--instance FromXML CookiePreference where-    parseXML x = CookiePreference-        <$> x .@  "Forward"-        <*> x .@? "WhitelistedNames"--instance ToXML CookiePreference where-    toXML CookiePreference{..} = nodes "CookiePreference"-        [ "Forward"          =@ _cpForward-        , "WhitelistedNames" =@ _cpWhitelistedNames-        ]--data OriginProtocolPolicy-    = HttpOnly    -- ^ http-only-    | MatchViewer -- ^ match-viewer-      deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable OriginProtocolPolicy--instance FromText OriginProtocolPolicy where-    parser = takeLowerText >>= \case-        "http-only"    -> pure HttpOnly-        "match-viewer" -> pure MatchViewer-        e              -> fail $-            "Failure parsing OriginProtocolPolicy from " ++ show e--instance ToText OriginProtocolPolicy where-    toText = \case-        HttpOnly    -> "http-only"-        MatchViewer -> "match-viewer"--instance ToByteString OriginProtocolPolicy-instance ToHeader     OriginProtocolPolicy-instance ToQuery      OriginProtocolPolicy--instance FromXML OriginProtocolPolicy where-    parseXML = parseXMLText "OriginProtocolPolicy"--instance ToXML OriginProtocolPolicy where-    toXML = toXMLText--data Distribution = Distribution-    { _dActiveTrustedSigners          :: ActiveTrustedSigners-    , _dDistributionConfig            :: DistributionConfig-    , _dDomainName                    :: Text-    , _dId                            :: Text-    , _dInProgressInvalidationBatches :: Int-    , _dLastModifiedTime              :: ISO8601-    , _dStatus                        :: Text-    } deriving (Eq, Read, Show)---- | 'Distribution' constructor.------ The fields accessible through corresponding lenses are:------ * 'dActiveTrustedSigners' @::@ 'ActiveTrustedSigners'------ * 'dDistributionConfig' @::@ 'DistributionConfig'------ * 'dDomainName' @::@ 'Text'------ * 'dId' @::@ 'Text'------ * 'dInProgressInvalidationBatches' @::@ 'Int'------ * 'dLastModifiedTime' @::@ 'UTCTime'------ * 'dStatus' @::@ 'Text'----distribution :: Text -- ^ 'dId'-             -> Text -- ^ 'dStatus'-             -> UTCTime -- ^ 'dLastModifiedTime'-             -> Int -- ^ 'dInProgressInvalidationBatches'-             -> Text -- ^ 'dDomainName'-             -> ActiveTrustedSigners -- ^ 'dActiveTrustedSigners'-             -> DistributionConfig -- ^ 'dDistributionConfig'-             -> Distribution-distribution p1 p2 p3 p4 p5 p6 p7 = Distribution-    { _dId                            = p1-    , _dStatus                        = p2-    , _dLastModifiedTime              = withIso _Time (const id) p3-    , _dInProgressInvalidationBatches = p4-    , _dDomainName                    = p5-    , _dActiveTrustedSigners          = p6-    , _dDistributionConfig            = p7-    }---- | CloudFront automatically adds this element to the response only if you've set--- up the distribution to serve private content with signed URLs. The element--- lists the key pair IDs that CloudFront is aware of for each trusted signer.--- The Signer child element lists the AWS account number of the trusted signer--- (or an empty Self element if the signer is you). The Signer element also--- includes the IDs of any active key pairs associated with the trusted signer's--- AWS account. If no KeyPairId element appears for a Signer, that signer can't--- create working signed URLs.-dActiveTrustedSigners :: Lens' Distribution ActiveTrustedSigners-dActiveTrustedSigners =-    lens _dActiveTrustedSigners (\s a -> s { _dActiveTrustedSigners = a })---- | The current configuration information for the distribution.-dDistributionConfig :: Lens' Distribution DistributionConfig-dDistributionConfig =-    lens _dDistributionConfig (\s a -> s { _dDistributionConfig = a })---- | The domain name corresponding to the distribution. For example:--- d604721fxaaqy9.cloudfront.net.-dDomainName :: Lens' Distribution Text-dDomainName = lens _dDomainName (\s a -> s { _dDomainName = a })---- | The identifier for the distribution. For example: EDFDVBD632BHDS5.-dId :: Lens' Distribution Text-dId = lens _dId (\s a -> s { _dId = a })---- | The number of invalidation batches currently in progress.-dInProgressInvalidationBatches :: Lens' Distribution Int-dInProgressInvalidationBatches =-    lens _dInProgressInvalidationBatches-        (\s a -> s { _dInProgressInvalidationBatches = a })---- | The date and time the distribution was last modified.-dLastModifiedTime :: Lens' Distribution UTCTime-dLastModifiedTime =-    lens _dLastModifiedTime (\s a -> s { _dLastModifiedTime = a })-        . _Time---- | This response element indicates the current status of the distribution. When--- the status is Deployed, the distribution's information is fully propagated--- throughout the Amazon CloudFront system.-dStatus :: Lens' Distribution Text-dStatus = lens _dStatus (\s a -> s { _dStatus = a })--instance FromXML Distribution where-    parseXML x = Distribution-        <$> x .@  "ActiveTrustedSigners"-        <*> x .@  "DistributionConfig"-        <*> x .@  "DomainName"-        <*> x .@  "Id"-        <*> x .@  "InProgressInvalidationBatches"-        <*> x .@  "LastModifiedTime"-        <*> x .@  "Status"--instance ToXMLRoot Distribution where-    toXMLRoot Distribution{..} = namespaced ns "Distribution"-        [ "Id"                            =@ _dId-        , "Status"                        =@ _dStatus-        , "LastModifiedTime"              =@ _dLastModifiedTime-        , "InProgressInvalidationBatches" =@ _dInProgressInvalidationBatches-        , "DomainName"                    =@ _dDomainName-        , "ActiveTrustedSigners"          =@ _dActiveTrustedSigners-        , "DistributionConfig"            =@ _dDistributionConfig-        ]--instance ToXML Distribution--data CloudFrontOriginAccessIdentitySummary = CloudFrontOriginAccessIdentitySummary-    { _cfoaisComment           :: Text-    , _cfoaisId                :: Text-    , _cfoaisS3CanonicalUserId :: Text-    } deriving (Eq, Ord, Read, Show)---- | 'CloudFrontOriginAccessIdentitySummary' constructor.------ The fields accessible through corresponding lenses are:------ * 'cfoaisComment' @::@ 'Text'------ * 'cfoaisId' @::@ 'Text'------ * 'cfoaisS3CanonicalUserId' @::@ 'Text'----cloudFrontOriginAccessIdentitySummary :: Text -- ^ 'cfoaisId'-                                      -> Text -- ^ 'cfoaisS3CanonicalUserId'-                                      -> Text -- ^ 'cfoaisComment'-                                      -> CloudFrontOriginAccessIdentitySummary-cloudFrontOriginAccessIdentitySummary p1 p2 p3 = CloudFrontOriginAccessIdentitySummary-    { _cfoaisId                = p1-    , _cfoaisS3CanonicalUserId = p2-    , _cfoaisComment           = p3-    }---- | The comment for this origin access identity, as originally specified when--- created.-cfoaisComment :: Lens' CloudFrontOriginAccessIdentitySummary Text-cfoaisComment = lens _cfoaisComment (\s a -> s { _cfoaisComment = a })---- | The ID for the origin access identity. For example: E74FTE3AJFJ256A.-cfoaisId :: Lens' CloudFrontOriginAccessIdentitySummary Text-cfoaisId = lens _cfoaisId (\s a -> s { _cfoaisId = a })---- | The Amazon S3 canonical user ID for the origin access identity, which you use--- when giving the origin access identity read permission to an object in Amazon--- S3.-cfoaisS3CanonicalUserId :: Lens' CloudFrontOriginAccessIdentitySummary Text-cfoaisS3CanonicalUserId =-    lens _cfoaisS3CanonicalUserId (\s a -> s { _cfoaisS3CanonicalUserId = a })--instance FromXML CloudFrontOriginAccessIdentitySummary where-    parseXML x = CloudFrontOriginAccessIdentitySummary-        <$> x .@  "Comment"-        <*> x .@  "Id"-        <*> x .@  "S3CanonicalUserId"--instance ToXML CloudFrontOriginAccessIdentitySummary where-    toXML CloudFrontOriginAccessIdentitySummary{..} = nodes "CloudFrontOriginAccessIdentitySummary"-        [ "Id"                =@ _cfoaisId-        , "S3CanonicalUserId" =@ _cfoaisS3CanonicalUserId-        , "Comment"           =@ _cfoaisComment-        ]--data StreamingDistributionSummary = StreamingDistributionSummary-    { _sdsAliases          :: Aliases-    , _sdsComment          :: Text-    , _sdsDomainName       :: Text-    , _sdsEnabled          :: Bool-    , _sdsId               :: Text-    , _sdsLastModifiedTime :: ISO8601-    , _sdsPriceClass       :: PriceClass-    , _sdsS3Origin         :: S3Origin-    , _sdsStatus           :: Text-    , _sdsTrustedSigners   :: TrustedSigners-    } deriving (Eq, Read, Show)---- | 'StreamingDistributionSummary' constructor.------ The fields accessible through corresponding lenses are:------ * 'sdsAliases' @::@ 'Aliases'------ * 'sdsComment' @::@ 'Text'------ * 'sdsDomainName' @::@ 'Text'------ * 'sdsEnabled' @::@ 'Bool'------ * 'sdsId' @::@ 'Text'------ * 'sdsLastModifiedTime' @::@ 'UTCTime'------ * 'sdsPriceClass' @::@ 'PriceClass'------ * 'sdsS3Origin' @::@ 'S3Origin'------ * 'sdsStatus' @::@ 'Text'------ * 'sdsTrustedSigners' @::@ 'TrustedSigners'----streamingDistributionSummary :: Text -- ^ 'sdsId'-                             -> Text -- ^ 'sdsStatus'-                             -> UTCTime -- ^ 'sdsLastModifiedTime'-                             -> Text -- ^ 'sdsDomainName'-                             -> S3Origin -- ^ 'sdsS3Origin'-                             -> Aliases -- ^ 'sdsAliases'-                             -> TrustedSigners -- ^ 'sdsTrustedSigners'-                             -> Text -- ^ 'sdsComment'-                             -> PriceClass -- ^ 'sdsPriceClass'-                             -> Bool -- ^ 'sdsEnabled'-                             -> StreamingDistributionSummary-streamingDistributionSummary p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 = StreamingDistributionSummary-    { _sdsId               = p1-    , _sdsStatus           = p2-    , _sdsLastModifiedTime = withIso _Time (const id) p3-    , _sdsDomainName       = p4-    , _sdsS3Origin         = p5-    , _sdsAliases          = p6-    , _sdsTrustedSigners   = p7-    , _sdsComment          = p8-    , _sdsPriceClass       = p9-    , _sdsEnabled          = p10-    }---- | A complex type that contains information about CNAMEs (alternate domain--- names), if any, for this streaming distribution.-sdsAliases :: Lens' StreamingDistributionSummary Aliases-sdsAliases = lens _sdsAliases (\s a -> s { _sdsAliases = a })---- | The comment originally specified when this distribution was created.-sdsComment :: Lens' StreamingDistributionSummary Text-sdsComment = lens _sdsComment (\s a -> s { _sdsComment = a })---- | The domain name corresponding to the distribution. For example:--- d604721fxaaqy9.cloudfront.net.-sdsDomainName :: Lens' StreamingDistributionSummary Text-sdsDomainName = lens _sdsDomainName (\s a -> s { _sdsDomainName = a })---- | Whether the distribution is enabled to accept end user requests for content.-sdsEnabled :: Lens' StreamingDistributionSummary Bool-sdsEnabled = lens _sdsEnabled (\s a -> s { _sdsEnabled = a })---- | The identifier for the distribution. For example: EDFDVBD632BHDS5.-sdsId :: Lens' StreamingDistributionSummary Text-sdsId = lens _sdsId (\s a -> s { _sdsId = a })---- | The date and time the distribution was last modified.-sdsLastModifiedTime :: Lens' StreamingDistributionSummary UTCTime-sdsLastModifiedTime =-    lens _sdsLastModifiedTime (\s a -> s { _sdsLastModifiedTime = a })-        . _Time--sdsPriceClass :: Lens' StreamingDistributionSummary PriceClass-sdsPriceClass = lens _sdsPriceClass (\s a -> s { _sdsPriceClass = a })---- | A complex type that contains information about the Amazon S3 bucket from--- which you want CloudFront to get your media files for distribution.-sdsS3Origin :: Lens' StreamingDistributionSummary S3Origin-sdsS3Origin = lens _sdsS3Origin (\s a -> s { _sdsS3Origin = a })---- | Indicates the current status of the distribution. When the status is--- Deployed, the distribution's information is fully propagated throughout the--- Amazon CloudFront system.-sdsStatus :: Lens' StreamingDistributionSummary Text-sdsStatus = lens _sdsStatus (\s a -> s { _sdsStatus = a })---- | A complex type that specifies the AWS accounts, if any, that you want to--- allow to create signed URLs for private content. If you want to require--- signed URLs in requests for objects in the target origin that match the--- PathPattern for this cache behavior, specify true for Enabled, and specify--- the applicable values for Quantity and Items. For more information, go to--- Using a Signed URL to Serve Private Content in the Amazon CloudFront--- Developer Guide. If you don't want to require signed URLs in requests for--- objects that match PathPattern, specify false for Enabled and 0 for Quantity.--- Omit Items. To add, change, or remove one or more trusted signers, change--- Enabled to true (if it's currently false), change Quantity as applicable, and--- specify all of the trusted signers that you want to include in the updated--- distribution.-sdsTrustedSigners :: Lens' StreamingDistributionSummary TrustedSigners-sdsTrustedSigners =-    lens _sdsTrustedSigners (\s a -> s { _sdsTrustedSigners = a })--instance FromXML StreamingDistributionSummary where-    parseXML x = StreamingDistributionSummary-        <$> x .@  "Aliases"-        <*> x .@  "Comment"-        <*> x .@  "DomainName"-        <*> x .@  "Enabled"-        <*> x .@  "Id"-        <*> x .@  "LastModifiedTime"-        <*> x .@  "PriceClass"-        <*> x .@  "S3Origin"-        <*> x .@  "Status"-        <*> x .@  "TrustedSigners"--instance ToXML StreamingDistributionSummary where-    toXML StreamingDistributionSummary{..} = nodes "StreamingDistributionSummary"-        [ "Id"               =@ _sdsId-        , "Status"           =@ _sdsStatus-        , "LastModifiedTime" =@ _sdsLastModifiedTime-        , "DomainName"       =@ _sdsDomainName-        , "S3Origin"         =@ _sdsS3Origin-        , "Aliases"          =@ _sdsAliases-        , "TrustedSigners"   =@ _sdsTrustedSigners-        , "Comment"          =@ _sdsComment-        , "PriceClass"       =@ _sdsPriceClass-        , "Enabled"          =@ _sdsEnabled-        ]--data CustomOriginConfig = CustomOriginConfig-    { _cocHTTPPort             :: Int-    , _cocHTTPSPort            :: Int-    , _cocOriginProtocolPolicy :: OriginProtocolPolicy-    } deriving (Eq, Read, Show)---- | 'CustomOriginConfig' constructor.------ The fields accessible through corresponding lenses are:------ * 'cocHTTPPort' @::@ 'Int'------ * 'cocHTTPSPort' @::@ 'Int'------ * 'cocOriginProtocolPolicy' @::@ 'OriginProtocolPolicy'----customOriginConfig :: Int -- ^ 'cocHTTPPort'-                   -> Int -- ^ 'cocHTTPSPort'-                   -> OriginProtocolPolicy -- ^ 'cocOriginProtocolPolicy'-                   -> CustomOriginConfig-customOriginConfig p1 p2 p3 = CustomOriginConfig-    { _cocHTTPPort             = p1-    , _cocHTTPSPort            = p2-    , _cocOriginProtocolPolicy = p3-    }---- | The HTTP port the custom origin listens on.-cocHTTPPort :: Lens' CustomOriginConfig Int-cocHTTPPort = lens _cocHTTPPort (\s a -> s { _cocHTTPPort = a })---- | The HTTPS port the custom origin listens on.-cocHTTPSPort :: Lens' CustomOriginConfig Int-cocHTTPSPort = lens _cocHTTPSPort (\s a -> s { _cocHTTPSPort = a })---- | The origin protocol policy to apply to your origin.-cocOriginProtocolPolicy :: Lens' CustomOriginConfig OriginProtocolPolicy-cocOriginProtocolPolicy =-    lens _cocOriginProtocolPolicy (\s a -> s { _cocOriginProtocolPolicy = a })--instance FromXML CustomOriginConfig where-    parseXML x = CustomOriginConfig-        <$> x .@  "HTTPPort"-        <*> x .@  "HTTPSPort"-        <*> x .@  "OriginProtocolPolicy"--instance ToXML CustomOriginConfig where-    toXML CustomOriginConfig{..} = nodes "CustomOriginConfig"-        [ "HTTPPort"             =@ _cocHTTPPort-        , "HTTPSPort"            =@ _cocHTTPSPort-        , "OriginProtocolPolicy" =@ _cocOriginProtocolPolicy-        ]--data Aliases = Aliases-    { _aItems    :: List "CNAME" Text-    , _aQuantity :: Int-    } deriving (Eq, Ord, Read, Show)---- | 'Aliases' constructor.------ The fields accessible through corresponding lenses are:------ * 'aItems' @::@ ['Text']------ * 'aQuantity' @::@ 'Int'----aliases :: Int -- ^ 'aQuantity'-        -> Aliases-aliases p1 = Aliases-    { _aQuantity = p1-    , _aItems    = mempty-    }---- | Optional: A complex type that contains CNAME elements, if any, for this--- distribution. If Quantity is 0, you can omit Items.-aItems :: Lens' Aliases [Text]-aItems = lens _aItems (\s a -> s { _aItems = a }) . _List---- | The number of CNAMEs, if any, for this distribution.-aQuantity :: Lens' Aliases Int-aQuantity = lens _aQuantity (\s a -> s { _aQuantity = a })--instance FromXML Aliases where-    parseXML x = Aliases-        <$> x .@? "Items" .!@ mempty-        <*> x .@  "Quantity"--instance ToXML Aliases where-    toXML Aliases{..} = nodes "Aliases"-        [ "Quantity" =@ _aQuantity-        , "Items"    =@ _aItems-        ]--data InvalidationBatch = InvalidationBatch-    { _ibCallerReference :: Text-    , _ibPaths           :: Paths-    } deriving (Eq, Read, Show)---- | 'InvalidationBatch' constructor.------ The fields accessible through corresponding lenses are:------ * 'ibCallerReference' @::@ 'Text'------ * 'ibPaths' @::@ 'Paths'----invalidationBatch :: Paths -- ^ 'ibPaths'-                  -> Text -- ^ 'ibCallerReference'-                  -> InvalidationBatch-invalidationBatch p1 p2 = InvalidationBatch-    { _ibPaths           = p1-    , _ibCallerReference = p2-    }---- | A unique name that ensures the request can't be replayed. If the--- CallerReference is new (no matter the content of the Path object), a new--- distribution is created. If the CallerReference is a value you already sent--- in a previous request to create an invalidation batch, and the content of--- each Path element is identical to the original request, the response includes--- the same information returned to the original request. If the CallerReference--- is a value you already sent in a previous request to create a distribution--- but the content of any Path is different from the original request,--- CloudFront returns an InvalidationBatchAlreadyExists error.-ibCallerReference :: Lens' InvalidationBatch Text-ibCallerReference =-    lens _ibCallerReference (\s a -> s { _ibCallerReference = a })---- | The path of the object to invalidate. The path is relative to the--- distribution and must begin with a slash (/). You must enclose each--- invalidation object with the Path element tags. If the path includes--- non-ASCII characters or unsafe characters as defined in RFC 1783--- (http://www.ietf.org/rfc/rfc1738.txt), URL encode those characters. Do not--- URL encode any other characters in the path, or CloudFront will not--- invalidate the old version of the updated object.-ibPaths :: Lens' InvalidationBatch Paths-ibPaths = lens _ibPaths (\s a -> s { _ibPaths = a })--instance FromXML InvalidationBatch where-    parseXML x = InvalidationBatch-        <$> x .@  "CallerReference"-        <*> x .@  "Paths"--instance ToXML InvalidationBatch where-    toXML InvalidationBatch{..} = nodes "InvalidationBatch"-        [ "Paths"           =@ _ibPaths-        , "CallerReference" =@ _ibCallerReference-        ]--data InvalidationSummary = InvalidationSummary-    { _isCreateTime :: ISO8601-    , _isId         :: Text-    , _isStatus     :: Text-    } deriving (Eq, Ord, Read, Show)---- | 'InvalidationSummary' constructor.------ The fields accessible through corresponding lenses are:------ * 'isCreateTime' @::@ 'UTCTime'------ * 'isId' @::@ 'Text'------ * 'isStatus' @::@ 'Text'----invalidationSummary :: Text -- ^ 'isId'-                    -> UTCTime -- ^ 'isCreateTime'-                    -> Text -- ^ 'isStatus'-                    -> InvalidationSummary-invalidationSummary p1 p2 p3 = InvalidationSummary-    { _isId         = p1-    , _isCreateTime = withIso _Time (const id) p2-    , _isStatus     = p3-    }--isCreateTime :: Lens' InvalidationSummary UTCTime-isCreateTime = lens _isCreateTime (\s a -> s { _isCreateTime = a }) . _Time---- | The unique ID for an invalidation request.-isId :: Lens' InvalidationSummary Text-isId = lens _isId (\s a -> s { _isId = a })---- | The status of an invalidation request.-isStatus :: Lens' InvalidationSummary Text-isStatus = lens _isStatus (\s a -> s { _isStatus = a })--instance FromXML InvalidationSummary where-    parseXML x = InvalidationSummary-        <$> x .@  "CreateTime"-        <*> x .@  "Id"-        <*> x .@  "Status"--instance ToXML InvalidationSummary where-    toXML InvalidationSummary{..} = nodes "InvalidationSummary"-        [ "Id"         =@ _isId-        , "CreateTime" =@ _isCreateTime-        , "Status"     =@ _isStatus-        ]--data DistributionConfig = DistributionConfig-    { _dcAliases              :: Maybe Aliases-    , _dcCacheBehaviors       :: Maybe CacheBehaviors-    , _dcCallerReference      :: Text-    , _dcComment              :: Text-    , _dcCustomErrorResponses :: Maybe CustomErrorResponses-    , _dcDefaultCacheBehavior :: DefaultCacheBehavior-    , _dcDefaultRootObject    :: Maybe Text-    , _dcEnabled              :: Bool-    , _dcLogging              :: Maybe LoggingConfig-    , _dcOrigins              :: Origins-    , _dcPriceClass           :: Maybe PriceClass-    , _dcRestrictions         :: Maybe Restrictions-    , _dcViewerCertificate    :: Maybe ViewerCertificate-    } deriving (Eq, Read, Show)---- | 'DistributionConfig' constructor.------ The fields accessible through corresponding lenses are:------ * 'dcAliases' @::@ 'Maybe' 'Aliases'------ * 'dcCacheBehaviors' @::@ 'Maybe' 'CacheBehaviors'------ * 'dcCallerReference' @::@ 'Text'------ * 'dcComment' @::@ 'Text'------ * 'dcCustomErrorResponses' @::@ 'Maybe' 'CustomErrorResponses'------ * 'dcDefaultCacheBehavior' @::@ 'DefaultCacheBehavior'------ * 'dcDefaultRootObject' @::@ 'Maybe' 'Text'------ * 'dcEnabled' @::@ 'Bool'------ * 'dcLogging' @::@ 'Maybe' 'LoggingConfig'------ * 'dcOrigins' @::@ 'Origins'------ * 'dcPriceClass' @::@ 'Maybe' 'PriceClass'------ * 'dcRestrictions' @::@ 'Maybe' 'Restrictions'------ * 'dcViewerCertificate' @::@ 'Maybe' 'ViewerCertificate'----distributionConfig :: Text -- ^ 'dcCallerReference'-                   -> Origins -- ^ 'dcOrigins'-                   -> DefaultCacheBehavior -- ^ 'dcDefaultCacheBehavior'-                   -> Text -- ^ 'dcComment'-                   -> Bool -- ^ 'dcEnabled'-                   -> DistributionConfig-distributionConfig p1 p2 p3 p4 p5 = DistributionConfig-    { _dcCallerReference      = p1-    , _dcOrigins              = p2-    , _dcDefaultCacheBehavior = p3-    , _dcComment              = p4-    , _dcEnabled              = p5-    , _dcAliases              = Nothing-    , _dcDefaultRootObject    = Nothing-    , _dcCacheBehaviors       = Nothing-    , _dcCustomErrorResponses = Nothing-    , _dcLogging              = Nothing-    , _dcPriceClass           = Nothing-    , _dcViewerCertificate    = Nothing-    , _dcRestrictions         = Nothing-    }---- | A complex type that contains information about CNAMEs (alternate domain--- names), if any, for this distribution.-dcAliases :: Lens' DistributionConfig (Maybe Aliases)-dcAliases = lens _dcAliases (\s a -> s { _dcAliases = a })---- | A complex type that contains zero or more CacheBehavior elements.-dcCacheBehaviors :: Lens' DistributionConfig (Maybe CacheBehaviors)-dcCacheBehaviors = lens _dcCacheBehaviors (\s a -> s { _dcCacheBehaviors = a })---- | A unique number that ensures the request can't be replayed. If the--- CallerReference is new (no matter the content of the DistributionConfig--- object), a new distribution is created. If the CallerReference is a value you--- already sent in a previous request to create a distribution, and the content--- of the DistributionConfig is identical to the original request (ignoring--- white space), the response includes the same information returned to the--- original request. If the CallerReference is a value you already sent in a--- previous request to create a distribution but the content of the--- DistributionConfig is different from the original request, CloudFront returns--- a DistributionAlreadyExists error.-dcCallerReference :: Lens' DistributionConfig Text-dcCallerReference =-    lens _dcCallerReference (\s a -> s { _dcCallerReference = a })---- | Any comments you want to include about the distribution.-dcComment :: Lens' DistributionConfig Text-dcComment = lens _dcComment (\s a -> s { _dcComment = a })---- | A complex type that contains zero or more CustomErrorResponse elements.-dcCustomErrorResponses :: Lens' DistributionConfig (Maybe CustomErrorResponses)-dcCustomErrorResponses =-    lens _dcCustomErrorResponses (\s a -> s { _dcCustomErrorResponses = a })---- | A complex type that describes the default cache behavior if you do not--- specify a CacheBehavior element or if files don't match any of the values of--- PathPattern in CacheBehavior elements.You must create exactly one default--- cache behavior.-dcDefaultCacheBehavior :: Lens' DistributionConfig DefaultCacheBehavior-dcDefaultCacheBehavior =-    lens _dcDefaultCacheBehavior (\s a -> s { _dcDefaultCacheBehavior = a })---- | The object that you want CloudFront to return (for example, index.html) when--- an end user requests the root URL for your distribution--- (http://www.example.com) instead of an object in your distribution--- (http://www.example.com/index.html). Specifying a default root object avoids--- exposing the contents of your distribution. If you don't want to specify a--- default root object when you create a distribution, include an empty--- DefaultRootObject element. To delete the default root object from an existing--- distribution, update the distribution configuration and include an empty--- DefaultRootObject element. To replace the default root object, update the--- distribution configuration and specify the new object.-dcDefaultRootObject :: Lens' DistributionConfig (Maybe Text)-dcDefaultRootObject =-    lens _dcDefaultRootObject (\s a -> s { _dcDefaultRootObject = a })---- | Whether the distribution is enabled to accept end user requests for content.-dcEnabled :: Lens' DistributionConfig Bool-dcEnabled = lens _dcEnabled (\s a -> s { _dcEnabled = a })---- | A complex type that controls whether access logs are written for the--- distribution.-dcLogging :: Lens' DistributionConfig (Maybe LoggingConfig)-dcLogging = lens _dcLogging (\s a -> s { _dcLogging = a })---- | A complex type that contains information about origins for this distribution.-dcOrigins :: Lens' DistributionConfig Origins-dcOrigins = lens _dcOrigins (\s a -> s { _dcOrigins = a })---- | A complex type that contains information about price class for this--- distribution.-dcPriceClass :: Lens' DistributionConfig (Maybe PriceClass)-dcPriceClass = lens _dcPriceClass (\s a -> s { _dcPriceClass = a })--dcRestrictions :: Lens' DistributionConfig (Maybe Restrictions)-dcRestrictions = lens _dcRestrictions (\s a -> s { _dcRestrictions = a })--dcViewerCertificate :: Lens' DistributionConfig (Maybe ViewerCertificate)-dcViewerCertificate =-    lens _dcViewerCertificate (\s a -> s { _dcViewerCertificate = a })--instance FromXML DistributionConfig where-    parseXML x = DistributionConfig-        <$> x .@? "Aliases"-        <*> x .@? "CacheBehaviors"-        <*> x .@  "CallerReference"-        <*> x .@  "Comment"-        <*> x .@? "CustomErrorResponses"-        <*> x .@  "DefaultCacheBehavior"-        <*> x .@? "DefaultRootObject"-        <*> x .@  "Enabled"-        <*> x .@? "Logging"-        <*> x .@  "Origins"-        <*> x .@? "PriceClass"-        <*> x .@? "Restrictions"-        <*> x .@? "ViewerCertificate"--instance ToXMLRoot DistributionConfig where-    toXMLRoot DistributionConfig{..} = namespaced ns "DistributionConfig"-        [ "CallerReference"      =@ _dcCallerReference-        , "Aliases"              =@ _dcAliases-        , "DefaultRootObject"    =@ _dcDefaultRootObject-        , "Origins"              =@ _dcOrigins-        , "DefaultCacheBehavior" =@ _dcDefaultCacheBehavior-        , "CacheBehaviors"       =@ _dcCacheBehaviors-        , "CustomErrorResponses" =@ _dcCustomErrorResponses-        , "Comment"              =@ _dcComment-        , "Logging"              =@ _dcLogging-        , "PriceClass"           =@ _dcPriceClass-        , "Enabled"              =@ _dcEnabled-        , "ViewerCertificate"    =@ _dcViewerCertificate-        , "Restrictions"         =@ _dcRestrictions-        ]--instance ToXML DistributionConfig--data CacheBehavior = CacheBehavior-    { _cbAllowedMethods       :: Maybe AllowedMethods-    , _cbForwardedValues      :: ForwardedValues-    , _cbMinTTL               :: Integer-    , _cbPathPattern          :: Text-    , _cbSmoothStreaming      :: Maybe Bool-    , _cbTargetOriginId       :: Text-    , _cbTrustedSigners       :: TrustedSigners-    , _cbViewerProtocolPolicy :: ViewerProtocolPolicy-    } deriving (Eq, Read, Show)---- | 'CacheBehavior' constructor.------ The fields accessible through corresponding lenses are:------ * 'cbAllowedMethods' @::@ 'Maybe' 'AllowedMethods'------ * 'cbForwardedValues' @::@ 'ForwardedValues'------ * 'cbMinTTL' @::@ 'Integer'------ * 'cbPathPattern' @::@ 'Text'------ * 'cbSmoothStreaming' @::@ 'Maybe' 'Bool'------ * 'cbTargetOriginId' @::@ 'Text'------ * 'cbTrustedSigners' @::@ 'TrustedSigners'------ * 'cbViewerProtocolPolicy' @::@ 'ViewerProtocolPolicy'----cacheBehavior :: Text -- ^ 'cbPathPattern'-              -> Text -- ^ 'cbTargetOriginId'-              -> ForwardedValues -- ^ 'cbForwardedValues'-              -> TrustedSigners -- ^ 'cbTrustedSigners'-              -> ViewerProtocolPolicy -- ^ 'cbViewerProtocolPolicy'-              -> Integer -- ^ 'cbMinTTL'-              -> CacheBehavior-cacheBehavior p1 p2 p3 p4 p5 p6 = CacheBehavior-    { _cbPathPattern          = p1-    , _cbTargetOriginId       = p2-    , _cbForwardedValues      = p3-    , _cbTrustedSigners       = p4-    , _cbViewerProtocolPolicy = p5-    , _cbMinTTL               = p6-    , _cbAllowedMethods       = Nothing-    , _cbSmoothStreaming      = Nothing-    }--cbAllowedMethods :: Lens' CacheBehavior (Maybe AllowedMethods)-cbAllowedMethods = lens _cbAllowedMethods (\s a -> s { _cbAllowedMethods = a })---- | A complex type that specifies how CloudFront handles query strings, cookies--- and headers.-cbForwardedValues :: Lens' CacheBehavior ForwardedValues-cbForwardedValues =-    lens _cbForwardedValues (\s a -> s { _cbForwardedValues = a })---- | The minimum amount of time that you want objects to stay in CloudFront caches--- before CloudFront queries your origin to see whether the object has been--- updated.You can specify a value from 0 to 3,153,600,000 seconds (100 years).-cbMinTTL :: Lens' CacheBehavior Integer-cbMinTTL = lens _cbMinTTL (\s a -> s { _cbMinTTL = a })---- | The pattern (for example, images/*.jpg) that specifies which requests you--- want this cache behavior to apply to. When CloudFront receives an end-user--- request, the requested path is compared with path patterns in the order in--- which cache behaviors are listed in the distribution. The path pattern for--- the default cache behavior is * and cannot be changed. If the request for an--- object does not match the path pattern for any cache behaviors, CloudFront--- applies the behavior in the default cache behavior.-cbPathPattern :: Lens' CacheBehavior Text-cbPathPattern = lens _cbPathPattern (\s a -> s { _cbPathPattern = a })---- | Indicates whether you want to distribute media files in Microsoft Smooth--- Streaming format using the origin that is associated with this cache--- behavior. If so, specify true; if not, specify false.-cbSmoothStreaming :: Lens' CacheBehavior (Maybe Bool)-cbSmoothStreaming =-    lens _cbSmoothStreaming (\s a -> s { _cbSmoothStreaming = a })---- | The value of ID for the origin that you want CloudFront to route requests to--- when a request matches the path pattern either for a cache behavior or for--- the default cache behavior.-cbTargetOriginId :: Lens' CacheBehavior Text-cbTargetOriginId = lens _cbTargetOriginId (\s a -> s { _cbTargetOriginId = a })---- | A complex type that specifies the AWS accounts, if any, that you want to--- allow to create signed URLs for private content. If you want to require--- signed URLs in requests for objects in the target origin that match the--- PathPattern for this cache behavior, specify true for Enabled, and specify--- the applicable values for Quantity and Items. For more information, go to--- Using a Signed URL to Serve Private Content in the Amazon CloudFront--- Developer Guide. If you don't want to require signed URLs in requests for--- objects that match PathPattern, specify false for Enabled and 0 for Quantity.--- Omit Items. To add, change, or remove one or more trusted signers, change--- Enabled to true (if it's currently false), change Quantity as applicable, and--- specify all of the trusted signers that you want to include in the updated--- distribution.-cbTrustedSigners :: Lens' CacheBehavior TrustedSigners-cbTrustedSigners = lens _cbTrustedSigners (\s a -> s { _cbTrustedSigners = a })---- | Use this element to specify the protocol that users can use to access the--- files in the origin specified by TargetOriginId when a request matches the--- path pattern in PathPattern. If you want CloudFront to allow end users to use--- any available protocol, specify allow-all. If you want CloudFront to require--- HTTPS, specify https. If you want CloudFront to respond to an HTTP request--- with an HTTP status code of 301 (Moved Permanently) and the HTTPS URL,--- specify redirect-to-https. The viewer then resubmits the request using the--- HTTPS URL.-cbViewerProtocolPolicy :: Lens' CacheBehavior ViewerProtocolPolicy-cbViewerProtocolPolicy =-    lens _cbViewerProtocolPolicy (\s a -> s { _cbViewerProtocolPolicy = a })--instance FromXML CacheBehavior where-    parseXML x = CacheBehavior-        <$> x .@? "AllowedMethods"-        <*> x .@  "ForwardedValues"-        <*> x .@  "MinTTL"-        <*> x .@  "PathPattern"-        <*> x .@? "SmoothStreaming"-        <*> x .@  "TargetOriginId"-        <*> x .@  "TrustedSigners"-        <*> x .@  "ViewerProtocolPolicy"--instance ToXML CacheBehavior where-    toXML CacheBehavior{..} = nodes "CacheBehavior"-        [ "PathPattern"          =@ _cbPathPattern-        , "TargetOriginId"       =@ _cbTargetOriginId-        , "ForwardedValues"      =@ _cbForwardedValues-        , "TrustedSigners"       =@ _cbTrustedSigners-        , "ViewerProtocolPolicy" =@ _cbViewerProtocolPolicy-        , "MinTTL"               =@ _cbMinTTL-        , "AllowedMethods"       =@ _cbAllowedMethods-        , "SmoothStreaming"      =@ _cbSmoothStreaming-        ]--data DistributionList = DistributionList-    { _dlIsTruncated :: Bool-    , _dlItems       :: List "DistributionSummary" DistributionSummary-    , _dlMarker      :: Text-    , _dlMaxItems    :: Int-    , _dlNextMarker  :: Maybe Text-    , _dlQuantity    :: Int-    } deriving (Eq, Read, Show)---- | 'DistributionList' constructor.------ The fields accessible through corresponding lenses are:------ * 'dlIsTruncated' @::@ 'Bool'------ * 'dlItems' @::@ ['DistributionSummary']------ * 'dlMarker' @::@ 'Text'------ * 'dlMaxItems' @::@ 'Int'------ * 'dlNextMarker' @::@ 'Maybe' 'Text'------ * 'dlQuantity' @::@ 'Int'----distributionList :: Text -- ^ 'dlMarker'-                 -> Int -- ^ 'dlMaxItems'-                 -> Bool -- ^ 'dlIsTruncated'-                 -> Int -- ^ 'dlQuantity'-                 -> DistributionList-distributionList p1 p2 p3 p4 = DistributionList-    { _dlMarker      = p1-    , _dlMaxItems    = p2-    , _dlIsTruncated = p3-    , _dlQuantity    = p4-    , _dlNextMarker  = Nothing-    , _dlItems       = mempty-    }---- | A flag that indicates whether more distributions remain to be listed. If your--- results were truncated, you can make a follow-up pagination request using the--- Marker request parameter to retrieve more distributions in the list.-dlIsTruncated :: Lens' DistributionList Bool-dlIsTruncated = lens _dlIsTruncated (\s a -> s { _dlIsTruncated = a })---- | A complex type that contains one DistributionSummary element for each--- distribution that was created by the current AWS account.-dlItems :: Lens' DistributionList [DistributionSummary]-dlItems = lens _dlItems (\s a -> s { _dlItems = a }) . _List---- | The value you provided for the Marker request parameter.-dlMarker :: Lens' DistributionList Text-dlMarker = lens _dlMarker (\s a -> s { _dlMarker = a })---- | The value you provided for the MaxItems request parameter.-dlMaxItems :: Lens' DistributionList Int-dlMaxItems = lens _dlMaxItems (\s a -> s { _dlMaxItems = a })---- | If IsTruncated is true, this element is present and contains the value you--- can use for the Marker request parameter to continue listing your--- distributions where they left off.-dlNextMarker :: Lens' DistributionList (Maybe Text)-dlNextMarker = lens _dlNextMarker (\s a -> s { _dlNextMarker = a })---- | The number of distributions that were created by the current AWS account.-dlQuantity :: Lens' DistributionList Int-dlQuantity = lens _dlQuantity (\s a -> s { _dlQuantity = a })--instance FromXML DistributionList where-    parseXML x = DistributionList-        <$> x .@  "IsTruncated"-        <*> x .@? "Items" .!@ mempty-        <*> x .@  "Marker"-        <*> x .@  "MaxItems"-        <*> x .@? "NextMarker"-        <*> x .@  "Quantity"--instance ToXML DistributionList where-    toXML DistributionList{..} = nodes "DistributionList"-        [ "Marker"      =@ _dlMarker-        , "NextMarker"  =@ _dlNextMarker-        , "MaxItems"    =@ _dlMaxItems-        , "IsTruncated" =@ _dlIsTruncated-        , "Quantity"    =@ _dlQuantity-        , "Items"       =@ _dlItems-        ]--data KeyPairIds = KeyPairIds-    { _kpiItems    :: List "KeyPairId" Text-    , _kpiQuantity :: Int-    } deriving (Eq, Ord, Read, Show)---- | 'KeyPairIds' constructor.------ The fields accessible through corresponding lenses are:------ * 'kpiItems' @::@ ['Text']------ * 'kpiQuantity' @::@ 'Int'----keyPairIds :: Int -- ^ 'kpiQuantity'-           -> KeyPairIds-keyPairIds p1 = KeyPairIds-    { _kpiQuantity = p1-    , _kpiItems    = mempty-    }---- | A complex type that lists the active CloudFront key pairs, if any, that are--- associated with AwsAccountNumber.-kpiItems :: Lens' KeyPairIds [Text]-kpiItems = lens _kpiItems (\s a -> s { _kpiItems = a }) . _List---- | The number of active CloudFront key pairs for AwsAccountNumber.-kpiQuantity :: Lens' KeyPairIds Int-kpiQuantity = lens _kpiQuantity (\s a -> s { _kpiQuantity = a })--instance FromXML KeyPairIds where-    parseXML x = KeyPairIds-        <$> x .@? "Items" .!@ mempty-        <*> x .@  "Quantity"--instance ToXML KeyPairIds where-    toXML KeyPairIds{..} = nodes "KeyPairIds"-        [ "Quantity" =@ _kpiQuantity-        , "Items"    =@ _kpiItems-        ]--data PriceClass-    = PriceClass100 -- ^ PriceClass_100-    | PriceClass200 -- ^ PriceClass_200-    | PriceClassAll -- ^ PriceClass_All-      deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable PriceClass--instance FromText PriceClass where-    parser = takeLowerText >>= \case-        "priceclass_100" -> pure PriceClass100-        "priceclass_200" -> pure PriceClass200-        "priceclass_all" -> pure PriceClassAll-        e                -> fail $-            "Failure parsing PriceClass from " ++ show e--instance ToText PriceClass where-    toText = \case-        PriceClass100 -> "PriceClass_100"-        PriceClass200 -> "PriceClass_200"-        PriceClassAll -> "PriceClass_All"--instance ToByteString PriceClass-instance ToHeader     PriceClass-instance ToQuery      PriceClass--instance FromXML PriceClass where-    parseXML = parseXMLText "PriceClass"--instance ToXML PriceClass where-    toXML = toXMLText--data CustomErrorResponses = CustomErrorResponses-    { _cerItems    :: List "CustomErrorResponse" CustomErrorResponse-    , _cerQuantity :: Int-    } deriving (Eq, Read, Show)---- | 'CustomErrorResponses' constructor.------ The fields accessible through corresponding lenses are:------ * 'cerItems' @::@ ['CustomErrorResponse']------ * 'cerQuantity' @::@ 'Int'----customErrorResponses :: Int -- ^ 'cerQuantity'-                     -> CustomErrorResponses-customErrorResponses p1 = CustomErrorResponses-    { _cerQuantity = p1-    , _cerItems    = mempty-    }---- | Optional: A complex type that contains custom error responses for this--- distribution. If Quantity is 0, you can omit Items.-cerItems :: Lens' CustomErrorResponses [CustomErrorResponse]-cerItems = lens _cerItems (\s a -> s { _cerItems = a }) . _List---- | The number of custom error responses for this distribution.-cerQuantity :: Lens' CustomErrorResponses Int-cerQuantity = lens _cerQuantity (\s a -> s { _cerQuantity = a })--instance FromXML CustomErrorResponses where-    parseXML x = CustomErrorResponses-        <$> x .@? "Items" .!@ mempty-        <*> x .@  "Quantity"--instance ToXML CustomErrorResponses where-    toXML CustomErrorResponses{..} = nodes "CustomErrorResponses"-        [ "Quantity" =@ _cerQuantity-        , "Items"    =@ _cerItems-        ]--newtype S3OriginConfig = S3OriginConfig-    { _socOriginAccessIdentity :: Text-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)---- | 'S3OriginConfig' constructor.------ The fields accessible through corresponding lenses are:------ * 'socOriginAccessIdentity' @::@ 'Text'----s3OriginConfig :: Text -- ^ 'socOriginAccessIdentity'-               -> S3OriginConfig-s3OriginConfig p1 = S3OriginConfig-    { _socOriginAccessIdentity = p1-    }---- | The CloudFront origin access identity to associate with the origin. Use an--- origin access identity to configure the origin so that end users can only--- access objects in an Amazon S3 bucket through CloudFront. If you want end--- users to be able to access objects using either the CloudFront URL or the--- Amazon S3 URL, specify an empty OriginAccessIdentity element. To delete the--- origin access identity from an existing distribution, update the distribution--- configuration and include an empty OriginAccessIdentity element. To replace--- the origin access identity, update the distribution configuration and specify--- the new origin access identity. Use the format--- origin-access-identity/cloudfront/Id where Id is the value that CloudFront--- returned in the Id element when you created the origin access identity.-socOriginAccessIdentity :: Lens' S3OriginConfig Text-socOriginAccessIdentity =-    lens _socOriginAccessIdentity (\s a -> s { _socOriginAccessIdentity = a })--instance FromXML S3OriginConfig where-    parseXML x = S3OriginConfig-        <$> x .@  "OriginAccessIdentity"--instance ToXML S3OriginConfig where-    toXML S3OriginConfig{..} = nodes "S3OriginConfig"-        [ "OriginAccessIdentity" =@ _socOriginAccessIdentity-        ]--data GeoRestriction = GeoRestriction-    { _grItems           :: List "Location" Text-    , _grQuantity        :: Int-    , _grRestrictionType :: GeoRestrictionType-    } deriving (Eq, Read, Show)---- | 'GeoRestriction' constructor.------ The fields accessible through corresponding lenses are:------ * 'grItems' @::@ ['Text']------ * 'grQuantity' @::@ 'Int'------ * 'grRestrictionType' @::@ 'GeoRestrictionType'----geoRestriction :: GeoRestrictionType -- ^ 'grRestrictionType'-               -> Int -- ^ 'grQuantity'-               -> GeoRestriction-geoRestriction p1 p2 = GeoRestriction-    { _grRestrictionType = p1-    , _grQuantity        = p2-    , _grItems           = mempty-    }---- | A complex type that contains a Location element for each country in which you--- want CloudFront either to distribute your content (whitelist) or not--- distribute your content (blacklist). The Location element is a two-letter,--- uppercase country code for a country that you want to include in your--- blacklist or whitelist. Include one Location element for each country.--- CloudFront and MaxMind both use ISO 3166 country codes. For the current list--- of countries and the corresponding codes, see ISO 3166-1-alpha-2 code on the--- International Organization for Standardization website. You can also refer to--- the country list in the CloudFront console, which includes both country names--- and codes.-grItems :: Lens' GeoRestriction [Text]-grItems = lens _grItems (\s a -> s { _grItems = a }) . _List---- | When geo restriction is enabled, this is the number of countries in your--- whitelist or blacklist. Otherwise, when it is not enabled, Quantity is 0, and--- you can omit Items.-grQuantity :: Lens' GeoRestriction Int-grQuantity = lens _grQuantity (\s a -> s { _grQuantity = a })---- | The method that you want to use to restrict distribution of your content by--- country: - none: No geo restriction is enabled, meaning access to content is--- not restricted by client geo location. - blacklist: The Location elements--- specify the countries in which you do not want CloudFront to distribute your--- content. - whitelist: The Location elements specify the countries in which--- you want CloudFront to distribute your content.-grRestrictionType :: Lens' GeoRestriction GeoRestrictionType-grRestrictionType =-    lens _grRestrictionType (\s a -> s { _grRestrictionType = a })--instance FromXML GeoRestriction where-    parseXML x = GeoRestriction-        <$> x .@? "Items" .!@ mempty-        <*> x .@  "Quantity"-        <*> x .@  "RestrictionType"--instance ToXML GeoRestriction where-    toXML GeoRestriction{..} = nodes "GeoRestriction"-        [ "RestrictionType" =@ _grRestrictionType-        , "Quantity"        =@ _grQuantity-        , "Items"           =@ _grItems-        ]--data S3Origin = S3Origin-    { _soDomainName           :: Text-    , _soOriginAccessIdentity :: Text-    } deriving (Eq, Ord, Read, Show)---- | 'S3Origin' constructor.------ The fields accessible through corresponding lenses are:------ * 'soDomainName' @::@ 'Text'------ * 'soOriginAccessIdentity' @::@ 'Text'----s3Origin :: Text -- ^ 'soDomainName'-         -> Text -- ^ 'soOriginAccessIdentity'-         -> S3Origin-s3Origin p1 p2 = S3Origin-    { _soDomainName           = p1-    , _soOriginAccessIdentity = p2-    }---- | The DNS name of the S3 origin.-soDomainName :: Lens' S3Origin Text-soDomainName = lens _soDomainName (\s a -> s { _soDomainName = a })---- | Your S3 origin's origin access identity.-soOriginAccessIdentity :: Lens' S3Origin Text-soOriginAccessIdentity =-    lens _soOriginAccessIdentity (\s a -> s { _soOriginAccessIdentity = a })--instance FromXML S3Origin where-    parseXML x = S3Origin-        <$> x .@  "DomainName"-        <*> x .@  "OriginAccessIdentity"--instance ToXML S3Origin where-    toXML S3Origin{..} = nodes "S3Origin"-        [ "DomainName"           =@ _soDomainName-        , "OriginAccessIdentity" =@ _soOriginAccessIdentity-        ]--data Headers = Headers-    { _hItems    :: List "Name" Text-    , _hQuantity :: Int-    } deriving (Eq, Ord, Read, Show)---- | 'Headers' constructor.------ The fields accessible through corresponding lenses are:------ * 'hItems' @::@ ['Text']------ * 'hQuantity' @::@ 'Int'----headers :: Int -- ^ 'hQuantity'-        -> Headers-headers p1 = Headers-    { _hQuantity = p1-    , _hItems    = mempty-    }---- | Optional: A complex type that contains a Name element for each header that--- you want CloudFront to forward to the origin and to vary on for this cache--- behavior. If Quantity is 0, omit Items.-hItems :: Lens' Headers [Text]-hItems = lens _hItems (\s a -> s { _hItems = a }) . _List---- | The number of different headers that you want CloudFront to forward to the--- origin and to vary on for this cache behavior. The maximum number of headers--- that you can specify by name is 10. If you want CloudFront to forward all--- headers to the origin and vary on all of them, specify 1 for Quantity and *--- for Name. If you don't want CloudFront to forward any additional headers to--- the origin or to vary on any headers, specify 0 for Quantity and omit Items.-hQuantity :: Lens' Headers Int-hQuantity = lens _hQuantity (\s a -> s { _hQuantity = a })--instance FromXML Headers where-    parseXML x = Headers-        <$> x .@? "Items" .!@ mempty-        <*> x .@  "Quantity"--instance ToXML Headers where-    toXML Headers{..} = nodes "Headers"-        [ "Quantity" =@ _hQuantity-        , "Items"    =@ _hItems-        ]--data CachedMethods = CachedMethods-    { _cmItems    :: List "Method" Method-    , _cmQuantity :: Int-    } deriving (Eq, Read, Show)---- | 'CachedMethods' constructor.------ The fields accessible through corresponding lenses are:------ * 'cmItems' @::@ ['Method']------ * 'cmQuantity' @::@ 'Int'----cachedMethods :: Int -- ^ 'cmQuantity'-              -> CachedMethods-cachedMethods p1 = CachedMethods-    { _cmQuantity = p1-    , _cmItems    = mempty-    }---- | A complex type that contains the HTTP methods that you want CloudFront to--- cache responses to.-cmItems :: Lens' CachedMethods [Method]-cmItems = lens _cmItems (\s a -> s { _cmItems = a }) . _List---- | The number of HTTP methods for which you want CloudFront to cache responses.--- Valid values are 2 (for caching responses to GET and HEAD requests) and 3--- (for caching responses to GET, HEAD, and OPTIONS requests).-cmQuantity :: Lens' CachedMethods Int-cmQuantity = lens _cmQuantity (\s a -> s { _cmQuantity = a })--instance FromXML CachedMethods where-    parseXML x = CachedMethods-        <$> x .@? "Items" .!@ mempty-        <*> x .@  "Quantity"--instance ToXML CachedMethods where-    toXML CachedMethods{..} = nodes "CachedMethods"-        [ "Quantity" =@ _cmQuantity-        , "Items"    =@ _cmItems-        ]--data ViewerCertificate = ViewerCertificate-    { _vcCloudFrontDefaultCertificate :: Maybe Bool-    , _vcIAMCertificateId             :: Maybe Text-    , _vcMinimumProtocolVersion       :: Maybe MinimumProtocolVersion-    , _vcSSLSupportMethod             :: Maybe SSLSupportMethod-    } deriving (Eq, Read, Show)---- | 'ViewerCertificate' constructor.------ The fields accessible through corresponding lenses are:------ * 'vcCloudFrontDefaultCertificate' @::@ 'Maybe' 'Bool'------ * 'vcIAMCertificateId' @::@ 'Maybe' 'Text'------ * 'vcMinimumProtocolVersion' @::@ 'Maybe' 'MinimumProtocolVersion'------ * 'vcSSLSupportMethod' @::@ 'Maybe' 'SSLSupportMethod'----viewerCertificate :: ViewerCertificate-viewerCertificate = ViewerCertificate-    { _vcIAMCertificateId             = Nothing-    , _vcCloudFrontDefaultCertificate = Nothing-    , _vcSSLSupportMethod             = Nothing-    , _vcMinimumProtocolVersion       = Nothing-    }---- | If you want viewers to use HTTPS to request your objects and you're using the--- CloudFront domain name of your distribution in your object URLs (for example,--- https://d111111abcdef8.cloudfront.net/logo.jpg), set to true. Omit this value--- if you are setting an IAMCertificateId.-vcCloudFrontDefaultCertificate :: Lens' ViewerCertificate (Maybe Bool)-vcCloudFrontDefaultCertificate =-    lens _vcCloudFrontDefaultCertificate-        (\s a -> s { _vcCloudFrontDefaultCertificate = a })---- | If you want viewers to use HTTPS to request your objects and you're using an--- alternate domain name in your object URLs (for example,--- https://example.com/logo.jpg), specify the IAM certificate identifier of the--- custom viewer certificate for this distribution. Specify either this value or--- CloudFrontDefaultCertificate.-vcIAMCertificateId :: Lens' ViewerCertificate (Maybe Text)-vcIAMCertificateId =-    lens _vcIAMCertificateId (\s a -> s { _vcIAMCertificateId = a })---- | Specify the minimum version of the SSL protocol that you want CloudFront to--- use, SSLv3 or TLSv1, for HTTPS connections. CloudFront will serve your--- objects only to browsers or devices that support at least the SSL version--- that you specify. The TLSv1 protocol is more secure, so we recommend that you--- specify SSLv3 only if your users are using browsers or devices that don't--- support TLSv1. If you're using a custom certificate (if you specify a value--- for IAMCertificateId) and if you're using dedicated IP (if you specify vip--- for SSLSupportMethod), you can choose SSLv3 or TLSv1 as the--- MinimumProtocolVersion. If you're using a custom certificate (if you specify--- a value for IAMCertificateId) and if you're using SNI (if you specify--- sni-only for SSLSupportMethod), you must specify TLSv1 for--- MinimumProtocolVersion.-vcMinimumProtocolVersion :: Lens' ViewerCertificate (Maybe MinimumProtocolVersion)-vcMinimumProtocolVersion =-    lens _vcMinimumProtocolVersion-        (\s a -> s { _vcMinimumProtocolVersion = a })---- | If you specify a value for IAMCertificateId, you must also specify how you--- want CloudFront to serve HTTPS requests. Valid values are vip and sni-only.--- If you specify vip, CloudFront uses dedicated IP addresses for your content--- and can respond to HTTPS requests from any viewer. However, you must request--- permission to use this feature, and you incur additional monthly charges. If--- you specify sni-only, CloudFront can only respond to HTTPS requests from--- viewers that support Server Name Indication (SNI). All modern browsers--- support SNI, but some browsers still in use don't support SNI. Do not specify--- a value for SSLSupportMethod if you specified true for--- CloudFrontDefaultCertificate.-vcSSLSupportMethod :: Lens' ViewerCertificate (Maybe SSLSupportMethod)-vcSSLSupportMethod =-    lens _vcSSLSupportMethod (\s a -> s { _vcSSLSupportMethod = a })--instance FromXML ViewerCertificate where-    parseXML x = ViewerCertificate-        <$> x .@? "CloudFrontDefaultCertificate"-        <*> x .@? "IAMCertificateId"-        <*> x .@? "MinimumProtocolVersion"-        <*> x .@? "SSLSupportMethod"--instance ToXML ViewerCertificate where-    toXML ViewerCertificate{..} = nodes "ViewerCertificate"-        [ "IAMCertificateId"             =@ _vcIAMCertificateId-        , "CloudFrontDefaultCertificate" =@ _vcCloudFrontDefaultCertificate-        , "SSLSupportMethod"             =@ _vcSSLSupportMethod-        , "MinimumProtocolVersion"       =@ _vcMinimumProtocolVersion-        ]--newtype Restrictions = Restrictions-    { _rGeoRestriction :: GeoRestriction-    } deriving (Eq, Read, Show)---- | 'Restrictions' constructor.------ The fields accessible through corresponding lenses are:------ * 'rGeoRestriction' @::@ 'GeoRestriction'----restrictions :: GeoRestriction -- ^ 'rGeoRestriction'-             -> Restrictions-restrictions p1 = Restrictions-    { _rGeoRestriction = p1-    }--rGeoRestriction :: Lens' Restrictions GeoRestriction-rGeoRestriction = lens _rGeoRestriction (\s a -> s { _rGeoRestriction = a })--instance FromXML Restrictions where-    parseXML x = Restrictions-        <$> x .@  "GeoRestriction"--instance ToXML Restrictions where-    toXML Restrictions{..} = nodes "Restrictions"-        [ "GeoRestriction" =@ _rGeoRestriction-        ]--data Origins = Origins-    { _oItems    :: List1 "Origin" Origin-    , _oQuantity :: Int-    } deriving (Eq, Read, Show)---- | 'Origins' constructor.------ The fields accessible through corresponding lenses are:------ * 'oItems' @::@ 'NonEmpty' 'Origin'------ * 'oQuantity' @::@ 'Int'----origins :: Int -- ^ 'oQuantity'-        -> NonEmpty Origin -- ^ 'oItems'-        -> Origins-origins p1 p2 = Origins-    { _oQuantity = p1-    , _oItems    = withIso _List1 (const id) p2-    }---- | A complex type that contains origins for this distribution.-oItems :: Lens' Origins (NonEmpty Origin)-oItems = lens _oItems (\s a -> s { _oItems = a }) . _List1---- | The number of origins for this distribution.-oQuantity :: Lens' Origins Int-oQuantity = lens _oQuantity (\s a -> s { _oQuantity = a })--instance FromXML Origins where-    parseXML x = Origins-        <$> x .@  "Items"-        <*> x .@  "Quantity"--instance ToXML Origins where-    toXML Origins{..} = nodes "Origins"-        [ "Quantity" =@ _oQuantity-        , "Items"    =@ _oItems-        ]--data Method-    = Delete' -- ^ DELETE-    | Get     -- ^ GET-    | Head'   -- ^ HEAD-    | Options -- ^ OPTIONS-    | Patch   -- ^ PATCH-    | Post    -- ^ POST-    | Put     -- ^ PUT-      deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable Method--instance FromText Method where-    parser = takeLowerText >>= \case-        "delete"  -> pure Delete'-        "get"     -> pure Get-        "head"    -> pure Head'-        "options" -> pure Options-        "patch"   -> pure Patch-        "post"    -> pure Post-        "put"     -> pure Put-        e         -> fail $-            "Failure parsing Method from " ++ show e--instance ToText Method where-    toText = \case-        Delete' -> "DELETE"-        Get     -> "GET"-        Head'   -> "HEAD"-        Options -> "OPTIONS"-        Patch   -> "PATCH"-        Post    -> "POST"-        Put     -> "PUT"--instance ToByteString Method-instance ToHeader     Method-instance ToQuery      Method--instance FromXML Method where-    parseXML = parseXMLText "Method"--instance ToXML Method where-    toXML = toXMLText--data MinimumProtocolVersion-    = SSLv3 -- ^ SSLv3-    | TLSv1 -- ^ TLSv1-      deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable MinimumProtocolVersion--instance FromText MinimumProtocolVersion where-    parser = takeLowerText >>= \case-        "sslv3" -> pure SSLv3-        "tlsv1" -> pure TLSv1-        e       -> fail $-            "Failure parsing MinimumProtocolVersion from " ++ show e--instance ToText MinimumProtocolVersion where-    toText = \case-        SSLv3 -> "SSLv3"-        TLSv1 -> "TLSv1"--instance ToByteString MinimumProtocolVersion-instance ToHeader     MinimumProtocolVersion-instance ToQuery      MinimumProtocolVersion--instance FromXML MinimumProtocolVersion where-    parseXML = parseXMLText "MinimumProtocolVersion"--instance ToXML MinimumProtocolVersion where-    toXML = toXMLText--data ForwardedValues = ForwardedValues-    { _fvCookies     :: CookiePreference-    , _fvHeaders     :: Maybe Headers-    , _fvQueryString :: Bool-    } deriving (Eq, Read, Show)---- | 'ForwardedValues' constructor.------ The fields accessible through corresponding lenses are:------ * 'fvCookies' @::@ 'CookiePreference'------ * 'fvHeaders' @::@ 'Maybe' 'Headers'------ * 'fvQueryString' @::@ 'Bool'----forwardedValues :: Bool -- ^ 'fvQueryString'-                -> CookiePreference -- ^ 'fvCookies'-                -> ForwardedValues-forwardedValues p1 p2 = ForwardedValues-    { _fvQueryString = p1-    , _fvCookies     = p2-    , _fvHeaders     = Nothing-    }---- | A complex type that specifies how CloudFront handles cookies.-fvCookies :: Lens' ForwardedValues CookiePreference-fvCookies = lens _fvCookies (\s a -> s { _fvCookies = a })---- | A complex type that specifies the Headers, if any, that you want CloudFront--- to vary upon for this cache behavior.-fvHeaders :: Lens' ForwardedValues (Maybe Headers)-fvHeaders = lens _fvHeaders (\s a -> s { _fvHeaders = a })---- | Indicates whether you want CloudFront to forward query strings to the origin--- that is associated with this cache behavior. If so, specify true; if not,--- specify false.-fvQueryString :: Lens' ForwardedValues Bool-fvQueryString = lens _fvQueryString (\s a -> s { _fvQueryString = a })--instance FromXML ForwardedValues where-    parseXML x = ForwardedValues-        <$> x .@  "Cookies"-        <*> x .@? "Headers"-        <*> x .@  "QueryString"--instance ToXML ForwardedValues where-    toXML ForwardedValues{..} = nodes "ForwardedValues"-        [ "QueryString" =@ _fvQueryString-        , "Cookies"     =@ _fvCookies-        , "Headers"     =@ _fvHeaders-        ]--data TrustedSigners = TrustedSigners-    { _tsEnabled  :: Bool-    , _tsItems    :: List "AwsAccountNumber" Text-    , _tsQuantity :: Int-    } deriving (Eq, Ord, Read, Show)---- | 'TrustedSigners' constructor.------ The fields accessible through corresponding lenses are:------ * 'tsEnabled' @::@ 'Bool'------ * 'tsItems' @::@ ['Text']------ * 'tsQuantity' @::@ 'Int'----trustedSigners :: Bool -- ^ 'tsEnabled'-               -> Int -- ^ 'tsQuantity'-               -> TrustedSigners-trustedSigners p1 p2 = TrustedSigners-    { _tsEnabled  = p1-    , _tsQuantity = p2-    , _tsItems    = mempty-    }---- | Specifies whether you want to require end users to use signed URLs to access--- the files specified by PathPattern and TargetOriginId.-tsEnabled :: Lens' TrustedSigners Bool-tsEnabled = lens _tsEnabled (\s a -> s { _tsEnabled = a })---- | Optional: A complex type that contains trusted signers for this cache--- behavior. If Quantity is 0, you can omit Items.-tsItems :: Lens' TrustedSigners [Text]-tsItems = lens _tsItems (\s a -> s { _tsItems = a }) . _List---- | The number of trusted signers for this cache behavior.-tsQuantity :: Lens' TrustedSigners Int-tsQuantity = lens _tsQuantity (\s a -> s { _tsQuantity = a })--instance FromXML TrustedSigners where-    parseXML x = TrustedSigners-        <$> x .@  "Enabled"-        <*> x .@? "Items" .!@ mempty-        <*> x .@  "Quantity"--instance ToXML TrustedSigners where-    toXML TrustedSigners{..} = nodes "TrustedSigners"-        [ "Enabled"  =@ _tsEnabled-        , "Quantity" =@ _tsQuantity-        , "Items"    =@ _tsItems-        ]--data ItemSelection-    = All       -- ^ all-    | None      -- ^ none-    | Whitelist -- ^ whitelist-      deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable ItemSelection--instance FromText ItemSelection where-    parser = takeLowerText >>= \case-        "all"       -> pure All-        "none"      -> pure None-        "whitelist" -> pure Whitelist-        e           -> fail $-            "Failure parsing ItemSelection from " ++ show e--instance ToText ItemSelection where-    toText = \case-        All       -> "all"-        None      -> "none"-        Whitelist -> "whitelist"--instance ToByteString ItemSelection-instance ToHeader     ItemSelection-instance ToQuery      ItemSelection--instance FromXML ItemSelection where-    parseXML = parseXMLText "ItemSelection"--instance ToXML ItemSelection where-    toXML = toXMLText--data StreamingLoggingConfig = StreamingLoggingConfig-    { _slcBucket  :: Text-    , _slcEnabled :: Bool-    , _slcPrefix  :: Text-    } deriving (Eq, Ord, Read, Show)---- | 'StreamingLoggingConfig' constructor.------ The fields accessible through corresponding lenses are:------ * 'slcBucket' @::@ 'Text'------ * 'slcEnabled' @::@ 'Bool'------ * 'slcPrefix' @::@ 'Text'----streamingLoggingConfig :: Bool -- ^ 'slcEnabled'-                       -> Text -- ^ 'slcBucket'-                       -> Text -- ^ 'slcPrefix'-                       -> StreamingLoggingConfig-streamingLoggingConfig p1 p2 p3 = StreamingLoggingConfig-    { _slcEnabled = p1-    , _slcBucket  = p2-    , _slcPrefix  = p3-    }---- | The Amazon S3 bucket to store the access logs in, for example,--- myawslogbucket.s3.amazonaws.com.-slcBucket :: Lens' StreamingLoggingConfig Text-slcBucket = lens _slcBucket (\s a -> s { _slcBucket = a })---- | Specifies whether you want CloudFront to save access logs to an Amazon S3--- bucket. If you do not want to enable logging when you create a streaming--- distribution or if you want to disable logging for an existing streaming--- distribution, specify false for Enabled, and specify empty Bucket and Prefix--- elements. If you specify false for Enabled but you specify values for Bucket--- and Prefix, the values are automatically deleted.-slcEnabled :: Lens' StreamingLoggingConfig Bool-slcEnabled = lens _slcEnabled (\s a -> s { _slcEnabled = a })---- | An optional string that you want CloudFront to prefix to the access log--- filenames for this streaming distribution, for example, myprefix/. If you--- want to enable logging, but you do not want to specify a prefix, you still--- must include an empty Prefix element in the Logging element.-slcPrefix :: Lens' StreamingLoggingConfig Text-slcPrefix = lens _slcPrefix (\s a -> s { _slcPrefix = a })--instance FromXML StreamingLoggingConfig where-    parseXML x = StreamingLoggingConfig-        <$> x .@  "Bucket"-        <*> x .@  "Enabled"-        <*> x .@  "Prefix"--instance ToXML StreamingLoggingConfig where-    toXML StreamingLoggingConfig{..} = nodes "StreamingLoggingConfig"-        [ "Enabled" =@ _slcEnabled-        , "Bucket"  =@ _slcBucket-        , "Prefix"  =@ _slcPrefix-        ]--data CookieNames = CookieNames-    { _cnItems    :: List "Name" Text-    , _cnQuantity :: Int-    } deriving (Eq, Ord, Read, Show)---- | 'CookieNames' constructor.------ The fields accessible through corresponding lenses are:------ * 'cnItems' @::@ ['Text']------ * 'cnQuantity' @::@ 'Int'----cookieNames :: Int -- ^ 'cnQuantity'-            -> CookieNames-cookieNames p1 = CookieNames-    { _cnQuantity = p1-    , _cnItems    = mempty-    }---- | Optional: A complex type that contains whitelisted cookies for this cache--- behavior. If Quantity is 0, you can omit Items.-cnItems :: Lens' CookieNames [Text]-cnItems = lens _cnItems (\s a -> s { _cnItems = a }) . _List---- | The number of whitelisted cookies for this cache behavior.-cnQuantity :: Lens' CookieNames Int-cnQuantity = lens _cnQuantity (\s a -> s { _cnQuantity = a })--instance FromXML CookieNames where-    parseXML x = CookieNames-        <$> x .@? "Items" .!@ mempty-        <*> x .@  "Quantity"--instance ToXML CookieNames where-    toXML CookieNames{..} = nodes "CookieNames"-        [ "Quantity" =@ _cnQuantity-        , "Items"    =@ _cnItems-        ]--data CustomErrorResponse = CustomErrorResponse-    { _cerErrorCachingMinTTL :: Maybe Integer-    , _cerErrorCode          :: Int-    , _cerResponseCode       :: Maybe Text-    , _cerResponsePagePath   :: Maybe Text-    } deriving (Eq, Ord, Read, Show)---- | 'CustomErrorResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'cerErrorCachingMinTTL' @::@ 'Maybe' 'Integer'------ * 'cerErrorCode' @::@ 'Int'------ * 'cerResponseCode' @::@ 'Maybe' 'Text'------ * 'cerResponsePagePath' @::@ 'Maybe' 'Text'----customErrorResponse :: Int -- ^ 'cerErrorCode'-                    -> CustomErrorResponse-customErrorResponse p1 = CustomErrorResponse-    { _cerErrorCode          = p1-    , _cerResponsePagePath   = Nothing-    , _cerResponseCode       = Nothing-    , _cerErrorCachingMinTTL = Nothing-    }---- | The minimum amount of time you want HTTP error codes to stay in CloudFront--- caches before CloudFront queries your origin to see whether the object has--- been updated. You can specify a value from 0 to 31,536,000.-cerErrorCachingMinTTL :: Lens' CustomErrorResponse (Maybe Integer)-cerErrorCachingMinTTL =-    lens _cerErrorCachingMinTTL (\s a -> s { _cerErrorCachingMinTTL = a })---- | The 4xx or 5xx HTTP status code that you want to customize. For a list of--- HTTP status codes that you can customize, see CloudFront documentation.-cerErrorCode :: Lens' CustomErrorResponse Int-cerErrorCode = lens _cerErrorCode (\s a -> s { _cerErrorCode = a })---- | The HTTP status code that you want CloudFront to return with the custom error--- page to the viewer. For a list of HTTP status codes that you can replace, see--- CloudFront Documentation.-cerResponseCode :: Lens' CustomErrorResponse (Maybe Text)-cerResponseCode = lens _cerResponseCode (\s a -> s { _cerResponseCode = a })---- | The path of the custom error page (for example, /custom_404.html). The path--- is relative to the distribution and must begin with a slash (/). If the path--- includes any non-ASCII characters or unsafe characters as defined in RFC 1783--- (http://www.ietf.org/rfc/rfc1738.txt), URL encode those characters. Do not--- URL encode any other characters in the path, or CloudFront will not return--- the custom error page to the viewer.-cerResponsePagePath :: Lens' CustomErrorResponse (Maybe Text)-cerResponsePagePath =-    lens _cerResponsePagePath (\s a -> s { _cerResponsePagePath = a })--instance FromXML CustomErrorResponse where-    parseXML x = CustomErrorResponse-        <$> x .@? "ErrorCachingMinTTL"-        <*> x .@  "ErrorCode"-        <*> x .@? "ResponseCode"-        <*> x .@? "ResponsePagePath"--instance ToXML CustomErrorResponse where-    toXML CustomErrorResponse{..} = nodes "CustomErrorResponse"-        [ "ErrorCode"          =@ _cerErrorCode-        , "ResponsePagePath"   =@ _cerResponsePagePath-        , "ResponseCode"       =@ _cerResponseCode-        , "ErrorCachingMinTTL" =@ _cerErrorCachingMinTTL-        ]--data CacheBehaviors = CacheBehaviors-    { _cbItems    :: List "CacheBehavior" CacheBehavior-    , _cbQuantity :: Int-    } deriving (Eq, Read, Show)---- | 'CacheBehaviors' constructor.------ The fields accessible through corresponding lenses are:------ * 'cbItems' @::@ ['CacheBehavior']------ * 'cbQuantity' @::@ 'Int'----cacheBehaviors :: Int -- ^ 'cbQuantity'-               -> CacheBehaviors-cacheBehaviors p1 = CacheBehaviors-    { _cbQuantity = p1-    , _cbItems    = mempty-    }---- | Optional: A complex type that contains cache behaviors for this distribution.--- If Quantity is 0, you can omit Items.-cbItems :: Lens' CacheBehaviors [CacheBehavior]-cbItems = lens _cbItems (\s a -> s { _cbItems = a }) . _List---- | The number of cache behaviors for this distribution.-cbQuantity :: Lens' CacheBehaviors Int-cbQuantity = lens _cbQuantity (\s a -> s { _cbQuantity = a })--instance FromXML CacheBehaviors where-    parseXML x = CacheBehaviors-        <$> x .@? "Items" .!@ mempty-        <*> x .@  "Quantity"--instance ToXML CacheBehaviors where-    toXML CacheBehaviors{..} = nodes "CacheBehaviors"-        [ "Quantity" =@ _cbQuantity-        , "Items"    =@ _cbItems-        ]--data DefaultCacheBehavior = DefaultCacheBehavior-    { _dcbAllowedMethods       :: Maybe AllowedMethods-    , _dcbForwardedValues      :: ForwardedValues-    , _dcbMinTTL               :: Integer-    , _dcbSmoothStreaming      :: Maybe Bool-    , _dcbTargetOriginId       :: Text-    , _dcbTrustedSigners       :: TrustedSigners-    , _dcbViewerProtocolPolicy :: ViewerProtocolPolicy-    } deriving (Eq, Read, Show)---- | 'DefaultCacheBehavior' constructor.------ The fields accessible through corresponding lenses are:------ * 'dcbAllowedMethods' @::@ 'Maybe' 'AllowedMethods'------ * 'dcbForwardedValues' @::@ 'ForwardedValues'------ * 'dcbMinTTL' @::@ 'Integer'------ * 'dcbSmoothStreaming' @::@ 'Maybe' 'Bool'------ * 'dcbTargetOriginId' @::@ 'Text'------ * 'dcbTrustedSigners' @::@ 'TrustedSigners'------ * 'dcbViewerProtocolPolicy' @::@ 'ViewerProtocolPolicy'----defaultCacheBehavior :: Text -- ^ 'dcbTargetOriginId'-                     -> ForwardedValues -- ^ 'dcbForwardedValues'-                     -> TrustedSigners -- ^ 'dcbTrustedSigners'-                     -> ViewerProtocolPolicy -- ^ 'dcbViewerProtocolPolicy'-                     -> Integer -- ^ 'dcbMinTTL'-                     -> DefaultCacheBehavior-defaultCacheBehavior p1 p2 p3 p4 p5 = DefaultCacheBehavior-    { _dcbTargetOriginId       = p1-    , _dcbForwardedValues      = p2-    , _dcbTrustedSigners       = p3-    , _dcbViewerProtocolPolicy = p4-    , _dcbMinTTL               = p5-    , _dcbAllowedMethods       = Nothing-    , _dcbSmoothStreaming      = Nothing-    }--dcbAllowedMethods :: Lens' DefaultCacheBehavior (Maybe AllowedMethods)-dcbAllowedMethods =-    lens _dcbAllowedMethods (\s a -> s { _dcbAllowedMethods = a })---- | A complex type that specifies how CloudFront handles query strings, cookies--- and headers.-dcbForwardedValues :: Lens' DefaultCacheBehavior ForwardedValues-dcbForwardedValues =-    lens _dcbForwardedValues (\s a -> s { _dcbForwardedValues = a })---- | The minimum amount of time that you want objects to stay in CloudFront caches--- before CloudFront queries your origin to see whether the object has been--- updated.You can specify a value from 0 to 3,153,600,000 seconds (100 years).-dcbMinTTL :: Lens' DefaultCacheBehavior Integer-dcbMinTTL = lens _dcbMinTTL (\s a -> s { _dcbMinTTL = a })---- | Indicates whether you want to distribute media files in Microsoft Smooth--- Streaming format using the origin that is associated with this cache--- behavior. If so, specify true; if not, specify false.-dcbSmoothStreaming :: Lens' DefaultCacheBehavior (Maybe Bool)-dcbSmoothStreaming =-    lens _dcbSmoothStreaming (\s a -> s { _dcbSmoothStreaming = a })---- | The value of ID for the origin that you want CloudFront to route requests to--- when a request matches the path pattern either for a cache behavior or for--- the default cache behavior.-dcbTargetOriginId :: Lens' DefaultCacheBehavior Text-dcbTargetOriginId =-    lens _dcbTargetOriginId (\s a -> s { _dcbTargetOriginId = a })---- | A complex type that specifies the AWS accounts, if any, that you want to--- allow to create signed URLs for private content. If you want to require--- signed URLs in requests for objects in the target origin that match the--- PathPattern for this cache behavior, specify true for Enabled, and specify--- the applicable values for Quantity and Items. For more information, go to--- Using a Signed URL to Serve Private Content in the Amazon CloudFront--- Developer Guide. If you don't want to require signed URLs in requests for--- objects that match PathPattern, specify false for Enabled and 0 for Quantity.--- Omit Items. To add, change, or remove one or more trusted signers, change--- Enabled to true (if it's currently false), change Quantity as applicable, and--- specify all of the trusted signers that you want to include in the updated--- distribution.-dcbTrustedSigners :: Lens' DefaultCacheBehavior TrustedSigners-dcbTrustedSigners =-    lens _dcbTrustedSigners (\s a -> s { _dcbTrustedSigners = a })---- | Use this element to specify the protocol that users can use to access the--- files in the origin specified by TargetOriginId when a request matches the--- path pattern in PathPattern. If you want CloudFront to allow end users to use--- any available protocol, specify allow-all. If you want CloudFront to require--- HTTPS, specify https. If you want CloudFront to respond to an HTTP request--- with an HTTP status code of 301 (Moved Permanently) and the HTTPS URL,--- specify redirect-to-https. The viewer then resubmits the request using the--- HTTPS URL.-dcbViewerProtocolPolicy :: Lens' DefaultCacheBehavior ViewerProtocolPolicy-dcbViewerProtocolPolicy =-    lens _dcbViewerProtocolPolicy (\s a -> s { _dcbViewerProtocolPolicy = a })--instance FromXML DefaultCacheBehavior where-    parseXML x = DefaultCacheBehavior-        <$> x .@? "AllowedMethods"-        <*> x .@  "ForwardedValues"-        <*> x .@  "MinTTL"-        <*> x .@? "SmoothStreaming"-        <*> x .@  "TargetOriginId"-        <*> x .@  "TrustedSigners"-        <*> x .@  "ViewerProtocolPolicy"--instance ToXML DefaultCacheBehavior where-    toXML DefaultCacheBehavior{..} = nodes "DefaultCacheBehavior"-        [ "TargetOriginId"       =@ _dcbTargetOriginId-        , "ForwardedValues"      =@ _dcbForwardedValues-        , "TrustedSigners"       =@ _dcbTrustedSigners-        , "ViewerProtocolPolicy" =@ _dcbViewerProtocolPolicy-        , "MinTTL"               =@ _dcbMinTTL-        , "AllowedMethods"       =@ _dcbAllowedMethods-        , "SmoothStreaming"      =@ _dcbSmoothStreaming-        ]--data InvalidationList = InvalidationList-    { _ilIsTruncated :: Bool-    , _ilItems       :: List "InvalidationSummary" InvalidationSummary-    , _ilMarker      :: Text-    , _ilMaxItems    :: Int-    , _ilNextMarker  :: Maybe Text-    , _ilQuantity    :: Int-    } deriving (Eq, Read, Show)---- | 'InvalidationList' constructor.------ The fields accessible through corresponding lenses are:------ * 'ilIsTruncated' @::@ 'Bool'------ * 'ilItems' @::@ ['InvalidationSummary']------ * 'ilMarker' @::@ 'Text'------ * 'ilMaxItems' @::@ 'Int'------ * 'ilNextMarker' @::@ 'Maybe' 'Text'------ * 'ilQuantity' @::@ 'Int'----invalidationList :: Text -- ^ 'ilMarker'-                 -> Int -- ^ 'ilMaxItems'-                 -> Bool -- ^ 'ilIsTruncated'-                 -> Int -- ^ 'ilQuantity'-                 -> InvalidationList-invalidationList p1 p2 p3 p4 = InvalidationList-    { _ilMarker      = p1-    , _ilMaxItems    = p2-    , _ilIsTruncated = p3-    , _ilQuantity    = p4-    , _ilNextMarker  = Nothing-    , _ilItems       = mempty-    }---- | A flag that indicates whether more invalidation batch requests remain to be--- listed. If your results were truncated, you can make a follow-up pagination--- request using the Marker request parameter to retrieve more invalidation--- batches in the list.-ilIsTruncated :: Lens' InvalidationList Bool-ilIsTruncated = lens _ilIsTruncated (\s a -> s { _ilIsTruncated = a })---- | A complex type that contains one InvalidationSummary element for each--- invalidation batch that was created by the current AWS account.-ilItems :: Lens' InvalidationList [InvalidationSummary]-ilItems = lens _ilItems (\s a -> s { _ilItems = a }) . _List---- | The value you provided for the Marker request parameter.-ilMarker :: Lens' InvalidationList Text-ilMarker = lens _ilMarker (\s a -> s { _ilMarker = a })---- | The value you provided for the MaxItems request parameter.-ilMaxItems :: Lens' InvalidationList Int-ilMaxItems = lens _ilMaxItems (\s a -> s { _ilMaxItems = a })---- | If IsTruncated is true, this element is present and contains the value you--- can use for the Marker request parameter to continue listing your--- invalidation batches where they left off.-ilNextMarker :: Lens' InvalidationList (Maybe Text)-ilNextMarker = lens _ilNextMarker (\s a -> s { _ilNextMarker = a })---- | The number of invalidation batches that were created by the current AWS--- account.-ilQuantity :: Lens' InvalidationList Int-ilQuantity = lens _ilQuantity (\s a -> s { _ilQuantity = a })--instance FromXML InvalidationList where-    parseXML x = InvalidationList-        <$> x .@  "IsTruncated"-        <*> x .@? "Items" .!@ mempty-        <*> x .@  "Marker"-        <*> x .@  "MaxItems"-        <*> x .@? "NextMarker"-        <*> x .@  "Quantity"--instance ToXML InvalidationList where-    toXML InvalidationList{..} = nodes "InvalidationList"-        [ "Marker"      =@ _ilMarker-        , "NextMarker"  =@ _ilNextMarker-        , "MaxItems"    =@ _ilMaxItems-        , "IsTruncated" =@ _ilIsTruncated-        , "Quantity"    =@ _ilQuantity-        , "Items"       =@ _ilItems-        ]--data StreamingDistribution = StreamingDistribution-    { _sdActiveTrustedSigners        :: ActiveTrustedSigners-    , _sdDomainName                  :: Text-    , _sdId                          :: Text-    , _sdLastModifiedTime            :: Maybe ISO8601-    , _sdStatus                      :: Text-    , _sdStreamingDistributionConfig :: StreamingDistributionConfig-    } deriving (Eq, Read, Show)---- | 'StreamingDistribution' constructor.------ The fields accessible through corresponding lenses are:------ * 'sdActiveTrustedSigners' @::@ 'ActiveTrustedSigners'------ * 'sdDomainName' @::@ 'Text'------ * 'sdId' @::@ 'Text'------ * 'sdLastModifiedTime' @::@ 'Maybe' 'UTCTime'------ * 'sdStatus' @::@ 'Text'------ * 'sdStreamingDistributionConfig' @::@ 'StreamingDistributionConfig'----streamingDistribution :: Text -- ^ 'sdId'-                      -> Text -- ^ 'sdStatus'-                      -> Text -- ^ 'sdDomainName'-                      -> ActiveTrustedSigners -- ^ 'sdActiveTrustedSigners'-                      -> StreamingDistributionConfig -- ^ 'sdStreamingDistributionConfig'-                      -> StreamingDistribution-streamingDistribution p1 p2 p3 p4 p5 = StreamingDistribution-    { _sdId                          = p1-    , _sdStatus                      = p2-    , _sdDomainName                  = p3-    , _sdActiveTrustedSigners        = p4-    , _sdStreamingDistributionConfig = p5-    , _sdLastModifiedTime            = Nothing-    }---- | CloudFront automatically adds this element to the response only if you've set--- up the distribution to serve private content with signed URLs. The element--- lists the key pair IDs that CloudFront is aware of for each trusted signer.--- The Signer child element lists the AWS account number of the trusted signer--- (or an empty Self element if the signer is you). The Signer element also--- includes the IDs of any active key pairs associated with the trusted signer's--- AWS account. If no KeyPairId element appears for a Signer, that signer can't--- create working signed URLs.-sdActiveTrustedSigners :: Lens' StreamingDistribution ActiveTrustedSigners-sdActiveTrustedSigners =-    lens _sdActiveTrustedSigners (\s a -> s { _sdActiveTrustedSigners = a })---- | The domain name corresponding to the streaming distribution. For example:--- s5c39gqb8ow64r.cloudfront.net.-sdDomainName :: Lens' StreamingDistribution Text-sdDomainName = lens _sdDomainName (\s a -> s { _sdDomainName = a })---- | The identifier for the streaming distribution. For example: EGTXBD79H29TRA8.-sdId :: Lens' StreamingDistribution Text-sdId = lens _sdId (\s a -> s { _sdId = a })---- | The date and time the distribution was last modified.-sdLastModifiedTime :: Lens' StreamingDistribution (Maybe UTCTime)-sdLastModifiedTime =-    lens _sdLastModifiedTime (\s a -> s { _sdLastModifiedTime = a })-        . mapping _Time---- | The current status of the streaming distribution. When the status is--- Deployed, the distribution's information is fully propagated throughout the--- Amazon CloudFront system.-sdStatus :: Lens' StreamingDistribution Text-sdStatus = lens _sdStatus (\s a -> s { _sdStatus = a })---- | The current configuration information for the streaming distribution.-sdStreamingDistributionConfig :: Lens' StreamingDistribution StreamingDistributionConfig-sdStreamingDistributionConfig =-    lens _sdStreamingDistributionConfig-        (\s a -> s { _sdStreamingDistributionConfig = a })--instance FromXML StreamingDistribution where-    parseXML x = StreamingDistribution-        <$> x .@  "ActiveTrustedSigners"-        <*> x .@  "DomainName"-        <*> x .@  "Id"-        <*> x .@? "LastModifiedTime"-        <*> x .@  "Status"-        <*> x .@  "StreamingDistributionConfig"--instance ToXMLRoot StreamingDistribution where-    toXMLRoot StreamingDistribution{..} = namespaced ns "StreamingDistribution"-        [ "Id"                          =@ _sdId-        , "Status"                      =@ _sdStatus-        , "LastModifiedTime"            =@ _sdLastModifiedTime-        , "DomainName"                  =@ _sdDomainName-        , "ActiveTrustedSigners"        =@ _sdActiveTrustedSigners-        , "StreamingDistributionConfig" =@ _sdStreamingDistributionConfig-        ]--instance ToXML StreamingDistribution--data Paths = Paths-    { _pItems    :: List "Path" Text-    , _pQuantity :: Int-    } deriving (Eq, Ord, Read, Show)---- | 'Paths' constructor.------ The fields accessible through corresponding lenses are:------ * 'pItems' @::@ ['Text']------ * 'pQuantity' @::@ 'Int'----paths :: Int -- ^ 'pQuantity'-      -> Paths-paths p1 = Paths-    { _pQuantity = p1-    , _pItems    = mempty-    }---- | A complex type that contains a list of the objects that you want to--- invalidate.-pItems :: Lens' Paths [Text]-pItems = lens _pItems (\s a -> s { _pItems = a }) . _List---- | The number of objects that you want to invalidate.-pQuantity :: Lens' Paths Int-pQuantity = lens _pQuantity (\s a -> s { _pQuantity = a })--instance FromXML Paths where-    parseXML x = Paths-        <$> x .@? "Items" .!@ mempty-        <*> x .@  "Quantity"--instance ToXML Paths where-    toXML Paths{..} = nodes "Paths"-        [ "Quantity" =@ _pQuantity-        , "Items"    =@ _pItems-        ]--data CloudFrontOriginAccessIdentity = CloudFrontOriginAccessIdentity-    { _cfoaiCloudFrontOriginAccessIdentityConfig :: Maybe CloudFrontOriginAccessIdentityConfig-    , _cfoaiId                                   :: Text-    , _cfoaiS3CanonicalUserId                    :: Text-    } deriving (Eq, Read, Show)---- | 'CloudFrontOriginAccessIdentity' constructor.------ The fields accessible through corresponding lenses are:------ * 'cfoaiCloudFrontOriginAccessIdentityConfig' @::@ 'Maybe' 'CloudFrontOriginAccessIdentityConfig'------ * 'cfoaiId' @::@ 'Text'------ * 'cfoaiS3CanonicalUserId' @::@ 'Text'----cloudFrontOriginAccessIdentity :: Text -- ^ 'cfoaiId'-                               -> Text -- ^ 'cfoaiS3CanonicalUserId'-                               -> CloudFrontOriginAccessIdentity-cloudFrontOriginAccessIdentity p1 p2 = CloudFrontOriginAccessIdentity-    { _cfoaiId                                   = p1-    , _cfoaiS3CanonicalUserId                    = p2-    , _cfoaiCloudFrontOriginAccessIdentityConfig = Nothing-    }---- | The current configuration information for the identity.-cfoaiCloudFrontOriginAccessIdentityConfig :: Lens' CloudFrontOriginAccessIdentity (Maybe CloudFrontOriginAccessIdentityConfig)-cfoaiCloudFrontOriginAccessIdentityConfig =-    lens _cfoaiCloudFrontOriginAccessIdentityConfig-        (\s a -> s { _cfoaiCloudFrontOriginAccessIdentityConfig = a })---- | The ID for the origin access identity. For example: E74FTE3AJFJ256A.-cfoaiId :: Lens' CloudFrontOriginAccessIdentity Text-cfoaiId = lens _cfoaiId (\s a -> s { _cfoaiId = a })---- | The Amazon S3 canonical user ID for the origin access identity, which you use--- when giving the origin access identity read permission to an object in Amazon--- S3.-cfoaiS3CanonicalUserId :: Lens' CloudFrontOriginAccessIdentity Text-cfoaiS3CanonicalUserId =-    lens _cfoaiS3CanonicalUserId (\s a -> s { _cfoaiS3CanonicalUserId = a })--instance FromXML CloudFrontOriginAccessIdentity where-    parseXML x = CloudFrontOriginAccessIdentity-        <$> x .@? "CloudFrontOriginAccessIdentityConfig"-        <*> x .@  "Id"-        <*> x .@  "S3CanonicalUserId"--instance ToXMLRoot CloudFrontOriginAccessIdentity where-    toXMLRoot CloudFrontOriginAccessIdentity{..} = namespaced ns "CloudFrontOriginAccessIdentity"-        [ "Id"                                   =@ _cfoaiId-        , "S3CanonicalUserId"                    =@ _cfoaiS3CanonicalUserId-        , "CloudFrontOriginAccessIdentityConfig" =@ _cfoaiCloudFrontOriginAccessIdentityConfig-        ]--instance ToXML CloudFrontOriginAccessIdentity--data ActiveTrustedSigners = ActiveTrustedSigners-    { _atsEnabled  :: Bool-    , _atsItems    :: List "Signer" Signer-    , _atsQuantity :: Int-    } deriving (Eq, Read, Show)---- | 'ActiveTrustedSigners' constructor.------ The fields accessible through corresponding lenses are:------ * 'atsEnabled' @::@ 'Bool'------ * 'atsItems' @::@ ['Signer']------ * 'atsQuantity' @::@ 'Int'----activeTrustedSigners :: Bool -- ^ 'atsEnabled'-                     -> Int -- ^ 'atsQuantity'-                     -> ActiveTrustedSigners-activeTrustedSigners p1 p2 = ActiveTrustedSigners-    { _atsEnabled  = p1-    , _atsQuantity = p2-    , _atsItems    = mempty-    }---- | Each active trusted signer.-atsEnabled :: Lens' ActiveTrustedSigners Bool-atsEnabled = lens _atsEnabled (\s a -> s { _atsEnabled = a })---- | A complex type that contains one Signer complex type for each unique trusted--- signer that is specified in the TrustedSigners complex type, including--- trusted signers in the default cache behavior and in all of the other cache--- behaviors.-atsItems :: Lens' ActiveTrustedSigners [Signer]-atsItems = lens _atsItems (\s a -> s { _atsItems = a }) . _List---- | The number of unique trusted signers included in all cache behaviors. For--- example, if three cache behaviors all list the same three AWS accounts, the--- value of Quantity for ActiveTrustedSigners will be 3.-atsQuantity :: Lens' ActiveTrustedSigners Int-atsQuantity = lens _atsQuantity (\s a -> s { _atsQuantity = a })--instance FromXML ActiveTrustedSigners where-    parseXML x = ActiveTrustedSigners-        <$> x .@  "Enabled"-        <*> x .@? "Items" .!@ mempty-        <*> x .@  "Quantity"--instance ToXML ActiveTrustedSigners where-    toXML ActiveTrustedSigners{..} = nodes "ActiveTrustedSigners"-        [ "Enabled"  =@ _atsEnabled-        , "Quantity" =@ _atsQuantity-        , "Items"    =@ _atsItems-        ]--data DistributionSummary = DistributionSummary-    { _dsAliases              :: Aliases-    , _dsCacheBehaviors       :: CacheBehaviors-    , _dsComment              :: Text-    , _dsCustomErrorResponses :: CustomErrorResponses-    , _dsDefaultCacheBehavior :: DefaultCacheBehavior-    , _dsDomainName           :: Text-    , _dsEnabled              :: Bool-    , _dsId                   :: Text-    , _dsLastModifiedTime     :: ISO8601-    , _dsOrigins              :: Origins-    , _dsPriceClass           :: PriceClass-    , _dsRestrictions         :: Restrictions-    , _dsStatus               :: Text-    , _dsViewerCertificate    :: ViewerCertificate-    } deriving (Eq, Read, Show)---- | 'DistributionSummary' constructor.------ The fields accessible through corresponding lenses are:------ * 'dsAliases' @::@ 'Aliases'------ * 'dsCacheBehaviors' @::@ 'CacheBehaviors'------ * 'dsComment' @::@ 'Text'------ * 'dsCustomErrorResponses' @::@ 'CustomErrorResponses'------ * 'dsDefaultCacheBehavior' @::@ 'DefaultCacheBehavior'------ * 'dsDomainName' @::@ 'Text'------ * 'dsEnabled' @::@ 'Bool'------ * 'dsId' @::@ 'Text'------ * 'dsLastModifiedTime' @::@ 'UTCTime'------ * 'dsOrigins' @::@ 'Origins'------ * 'dsPriceClass' @::@ 'PriceClass'------ * 'dsRestrictions' @::@ 'Restrictions'------ * 'dsStatus' @::@ 'Text'------ * 'dsViewerCertificate' @::@ 'ViewerCertificate'----distributionSummary :: Text -- ^ 'dsId'-                    -> Text -- ^ 'dsStatus'-                    -> UTCTime -- ^ 'dsLastModifiedTime'-                    -> Text -- ^ 'dsDomainName'-                    -> Aliases -- ^ 'dsAliases'-                    -> Origins -- ^ 'dsOrigins'-                    -> DefaultCacheBehavior -- ^ 'dsDefaultCacheBehavior'-                    -> CacheBehaviors -- ^ 'dsCacheBehaviors'-                    -> CustomErrorResponses -- ^ 'dsCustomErrorResponses'-                    -> Text -- ^ 'dsComment'-                    -> PriceClass -- ^ 'dsPriceClass'-                    -> Bool -- ^ 'dsEnabled'-                    -> ViewerCertificate -- ^ 'dsViewerCertificate'-                    -> Restrictions -- ^ 'dsRestrictions'-                    -> DistributionSummary-distributionSummary p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 = DistributionSummary-    { _dsId                   = p1-    , _dsStatus               = p2-    , _dsLastModifiedTime     = withIso _Time (const id) p3-    , _dsDomainName           = p4-    , _dsAliases              = p5-    , _dsOrigins              = p6-    , _dsDefaultCacheBehavior = p7-    , _dsCacheBehaviors       = p8-    , _dsCustomErrorResponses = p9-    , _dsComment              = p10-    , _dsPriceClass           = p11-    , _dsEnabled              = p12-    , _dsViewerCertificate    = p13-    , _dsRestrictions         = p14-    }---- | A complex type that contains information about CNAMEs (alternate domain--- names), if any, for this distribution.-dsAliases :: Lens' DistributionSummary Aliases-dsAliases = lens _dsAliases (\s a -> s { _dsAliases = a })---- | A complex type that contains zero or more CacheBehavior elements.-dsCacheBehaviors :: Lens' DistributionSummary CacheBehaviors-dsCacheBehaviors = lens _dsCacheBehaviors (\s a -> s { _dsCacheBehaviors = a })---- | The comment originally specified when this distribution was created.-dsComment :: Lens' DistributionSummary Text-dsComment = lens _dsComment (\s a -> s { _dsComment = a })---- | A complex type that contains zero or more CustomErrorResponses elements.-dsCustomErrorResponses :: Lens' DistributionSummary CustomErrorResponses-dsCustomErrorResponses =-    lens _dsCustomErrorResponses (\s a -> s { _dsCustomErrorResponses = a })---- | A complex type that describes the default cache behavior if you do not--- specify a CacheBehavior element or if files don't match any of the values of--- PathPattern in CacheBehavior elements.You must create exactly one default--- cache behavior.-dsDefaultCacheBehavior :: Lens' DistributionSummary DefaultCacheBehavior-dsDefaultCacheBehavior =-    lens _dsDefaultCacheBehavior (\s a -> s { _dsDefaultCacheBehavior = a })---- | The domain name corresponding to the distribution. For example:--- d604721fxaaqy9.cloudfront.net.-dsDomainName :: Lens' DistributionSummary Text-dsDomainName = lens _dsDomainName (\s a -> s { _dsDomainName = a })---- | Whether the distribution is enabled to accept end user requests for content.-dsEnabled :: Lens' DistributionSummary Bool-dsEnabled = lens _dsEnabled (\s a -> s { _dsEnabled = a })---- | The identifier for the distribution. For example: EDFDVBD632BHDS5.-dsId :: Lens' DistributionSummary Text-dsId = lens _dsId (\s a -> s { _dsId = a })---- | The date and time the distribution was last modified.-dsLastModifiedTime :: Lens' DistributionSummary UTCTime-dsLastModifiedTime =-    lens _dsLastModifiedTime (\s a -> s { _dsLastModifiedTime = a })-        . _Time---- | A complex type that contains information about origins for this distribution.-dsOrigins :: Lens' DistributionSummary Origins-dsOrigins = lens _dsOrigins (\s a -> s { _dsOrigins = a })--dsPriceClass :: Lens' DistributionSummary PriceClass-dsPriceClass = lens _dsPriceClass (\s a -> s { _dsPriceClass = a })--dsRestrictions :: Lens' DistributionSummary Restrictions-dsRestrictions = lens _dsRestrictions (\s a -> s { _dsRestrictions = a })---- | This response element indicates the current status of the distribution. When--- the status is Deployed, the distribution's information is fully propagated--- throughout the Amazon CloudFront system.-dsStatus :: Lens' DistributionSummary Text-dsStatus = lens _dsStatus (\s a -> s { _dsStatus = a })--dsViewerCertificate :: Lens' DistributionSummary ViewerCertificate-dsViewerCertificate =-    lens _dsViewerCertificate (\s a -> s { _dsViewerCertificate = a })--instance FromXML DistributionSummary where-    parseXML x = DistributionSummary-        <$> x .@  "Aliases"-        <*> x .@  "CacheBehaviors"-        <*> x .@  "Comment"-        <*> x .@  "CustomErrorResponses"-        <*> x .@  "DefaultCacheBehavior"-        <*> x .@  "DomainName"-        <*> x .@  "Enabled"-        <*> x .@  "Id"-        <*> x .@  "LastModifiedTime"-        <*> x .@  "Origins"-        <*> x .@  "PriceClass"-        <*> x .@  "Restrictions"-        <*> x .@  "Status"-        <*> x .@  "ViewerCertificate"--instance ToXML DistributionSummary where-    toXML DistributionSummary{..} = nodes "DistributionSummary"-        [ "Id"                   =@ _dsId-        , "Status"               =@ _dsStatus-        , "LastModifiedTime"     =@ _dsLastModifiedTime-        , "DomainName"           =@ _dsDomainName-        , "Aliases"              =@ _dsAliases-        , "Origins"              =@ _dsOrigins-        , "DefaultCacheBehavior" =@ _dsDefaultCacheBehavior-        , "CacheBehaviors"       =@ _dsCacheBehaviors-        , "CustomErrorResponses" =@ _dsCustomErrorResponses-        , "Comment"              =@ _dsComment-        , "PriceClass"           =@ _dsPriceClass-        , "Enabled"              =@ _dsEnabled-        , "ViewerCertificate"    =@ _dsViewerCertificate-        , "Restrictions"         =@ _dsRestrictions-        ]--data GeoRestrictionType-    = GRTBlacklist -- ^ blacklist-    | GRTNone      -- ^ none-    | GRTWhitelist -- ^ whitelist-      deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable GeoRestrictionType--instance FromText GeoRestrictionType where-    parser = takeLowerText >>= \case-        "blacklist" -> pure GRTBlacklist-        "none"      -> pure GRTNone-        "whitelist" -> pure GRTWhitelist-        e           -> fail $-            "Failure parsing GeoRestrictionType from " ++ show e--instance ToText GeoRestrictionType where-    toText = \case-        GRTBlacklist -> "blacklist"-        GRTNone      -> "none"-        GRTWhitelist -> "whitelist"--instance ToByteString GeoRestrictionType-instance ToHeader     GeoRestrictionType-instance ToQuery      GeoRestrictionType--instance FromXML GeoRestrictionType where-    parseXML = parseXMLText "GeoRestrictionType"--instance ToXML GeoRestrictionType where-    toXML = toXMLText--data LoggingConfig = LoggingConfig-    { _lcBucket         :: Text-    , _lcEnabled        :: Bool-    , _lcIncludeCookies :: Bool-    , _lcPrefix         :: Text-    } deriving (Eq, Ord, Read, Show)---- | 'LoggingConfig' constructor.------ The fields accessible through corresponding lenses are:------ * 'lcBucket' @::@ 'Text'------ * 'lcEnabled' @::@ 'Bool'------ * 'lcIncludeCookies' @::@ 'Bool'------ * 'lcPrefix' @::@ 'Text'----loggingConfig :: Bool -- ^ 'lcEnabled'-              -> Bool -- ^ 'lcIncludeCookies'-              -> Text -- ^ 'lcBucket'-              -> Text -- ^ 'lcPrefix'-              -> LoggingConfig-loggingConfig p1 p2 p3 p4 = LoggingConfig-    { _lcEnabled        = p1-    , _lcIncludeCookies = p2-    , _lcBucket         = p3-    , _lcPrefix         = p4-    }---- | The Amazon S3 bucket to store the access logs in, for example,--- myawslogbucket.s3.amazonaws.com.-lcBucket :: Lens' LoggingConfig Text-lcBucket = lens _lcBucket (\s a -> s { _lcBucket = a })---- | Specifies whether you want CloudFront to save access logs to an Amazon S3--- bucket. If you do not want to enable logging when you create a distribution--- or if you want to disable logging for an existing distribution, specify false--- for Enabled, and specify empty Bucket and Prefix elements. If you specify--- false for Enabled but you specify values for Bucket, prefix and--- IncludeCookies, the values are automatically deleted.-lcEnabled :: Lens' LoggingConfig Bool-lcEnabled = lens _lcEnabled (\s a -> s { _lcEnabled = a })---- | Specifies whether you want CloudFront to include cookies in access logs,--- specify true for IncludeCookies. If you choose to include cookies in logs,--- CloudFront logs all cookies regardless of how you configure the cache--- behaviors for this distribution. If you do not want to include cookies when--- you create a distribution or if you want to disable include cookies for an--- existing distribution, specify false for IncludeCookies.-lcIncludeCookies :: Lens' LoggingConfig Bool-lcIncludeCookies = lens _lcIncludeCookies (\s a -> s { _lcIncludeCookies = a })---- | An optional string that you want CloudFront to prefix to the access log--- filenames for this distribution, for example, myprefix/. If you want to--- enable logging, but you do not want to specify a prefix, you still must--- include an empty Prefix element in the Logging element.-lcPrefix :: Lens' LoggingConfig Text-lcPrefix = lens _lcPrefix (\s a -> s { _lcPrefix = a })--instance FromXML LoggingConfig where-    parseXML x = LoggingConfig-        <$> x .@  "Bucket"-        <*> x .@  "Enabled"-        <*> x .@  "IncludeCookies"-        <*> x .@  "Prefix"--instance ToXML LoggingConfig where-    toXML LoggingConfig{..} = nodes "LoggingConfig"-        [ "Enabled"        =@ _lcEnabled-        , "IncludeCookies" =@ _lcIncludeCookies-        , "Bucket"         =@ _lcBucket-        , "Prefix"         =@ _lcPrefix-        ]+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TypeFamilies      #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.CloudFront.Types+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.CloudFront.Types+    (+    -- * Service+      CloudFront++    -- * Errors+    , _InvalidErrorCode+    , _TooManyCacheBehaviors+    , _DistributionNotDisabled+    , _InvalidOriginAccessIdentity+    , _TooManyCloudFrontOriginAccessIdentities+    , _TooManyStreamingDistributions+    , _InvalidArgument+    , _NoSuchCloudFrontOriginAccessIdentity+    , _NoSuchStreamingDistribution+    , _CloudFrontOriginAccessIdentityInUse+    , _InconsistentQuantities+    , _TooManyInvalidationsInProgress+    , _TooManyDistributionCNAMEs+    , _InvalidForwardCookies+    , _TooManyCookieNamesInWhiteList+    , _BatchTooLarge+    , _InvalidOrigin+    , _TooManyTrustedSigners+    , _NoSuchOrigin+    , _NoSuchInvalidation+    , _StreamingDistributionNotDisabled+    , _InvalidTTLOrder+    , _TooManyStreamingDistributionCNAMEs+    , _TooManyDistributions+    , _InvalidRequiredProtocol+    , _TooManyHeadersInForwardedValues+    , _TooManyCertificates+    , _MissingBody+    , _DistributionAlreadyExists+    , _IllegalUpdate+    , _InvalidResponseCode+    , _InvalidIfMatchVersion+    , _PreconditionFailed+    , _InvalidProtocolSettings+    , _TrustedSignerDoesNotExist+    , _InvalidHeadersForS3Origin+    , _CNAMEAlreadyExists+    , _StreamingDistributionAlreadyExists+    , _TooManyOrigins+    , _CloudFrontOriginAccessIdentityAlreadyExists+    , _InvalidRelativePath+    , _InvalidMinimumProtocolVersion+    , _AccessDenied+    , _NoSuchDistribution+    , _InvalidViewerCertificate+    , _InvalidDefaultRootObject+    , _InvalidLocationCode+    , _InvalidGeoRestrictionParameter++    -- * GeoRestrictionType+    , GeoRestrictionType (..)++    -- * ItemSelection+    , ItemSelection (..)++    -- * Method+    , Method (..)++    -- * MinimumProtocolVersion+    , MinimumProtocolVersion (..)++    -- * OriginProtocolPolicy+    , OriginProtocolPolicy (..)++    -- * PriceClass+    , PriceClass (..)++    -- * SSLSupportMethod+    , SSLSupportMethod (..)++    -- * ViewerProtocolPolicy+    , ViewerProtocolPolicy (..)++    -- * ActiveTrustedSigners+    , ActiveTrustedSigners+    , activeTrustedSigners+    , atsItems+    , atsEnabled+    , atsQuantity++    -- * Aliases+    , Aliases+    , aliases+    , aItems+    , aQuantity++    -- * AllowedMethods+    , AllowedMethods+    , allowedMethods+    , amCachedMethods+    , amQuantity+    , amItems++    -- * CacheBehavior+    , CacheBehavior+    , cacheBehavior+    , cbAllowedMethods+    , cbMaxTTL+    , cbSmoothStreaming+    , cbDefaultTTL+    , cbPathPattern+    , cbTargetOriginId+    , cbForwardedValues+    , cbTrustedSigners+    , cbViewerProtocolPolicy+    , cbMinTTL++    -- * CacheBehaviors+    , CacheBehaviors+    , cacheBehaviors+    , cbItems+    , cbQuantity++    -- * CachedMethods+    , CachedMethods+    , cachedMethods+    , cmQuantity+    , cmItems++    -- * CloudFrontOriginAccessIdentity+    , CloudFrontOriginAccessIdentity+    , cloudFrontOriginAccessIdentity+    , cfoaiCloudFrontOriginAccessIdentityConfig+    , cfoaiId+    , cfoaiS3CanonicalUserId++    -- * CloudFrontOriginAccessIdentityConfig+    , CloudFrontOriginAccessIdentityConfig+    , cloudFrontOriginAccessIdentityConfig+    , cfoaicCallerReference+    , cfoaicComment++    -- * CloudFrontOriginAccessIdentityList+    , CloudFrontOriginAccessIdentityList+    , cloudFrontOriginAccessIdentityList+    , cfoailItems+    , cfoailNextMarker+    , cfoailMarker+    , cfoailMaxItems+    , cfoailIsTruncated+    , cfoailQuantity++    -- * CloudFrontOriginAccessIdentitySummary+    , CloudFrontOriginAccessIdentitySummary+    , cloudFrontOriginAccessIdentitySummary+    , cfoaisId+    , cfoaisS3CanonicalUserId+    , cfoaisComment++    -- * CookieNames+    , CookieNames+    , cookieNames+    , cnItems+    , cnQuantity++    -- * CookiePreference+    , CookiePreference+    , cookiePreference+    , cpWhitelistedNames+    , cpForward++    -- * CustomErrorResponse+    , CustomErrorResponse+    , customErrorResponse+    , ceResponsePagePath+    , ceResponseCode+    , ceErrorCachingMinTTL+    , ceErrorCode++    -- * CustomErrorResponses+    , CustomErrorResponses+    , customErrorResponses+    , cerItems+    , cerQuantity++    -- * CustomOriginConfig+    , CustomOriginConfig+    , customOriginConfig+    , cocHTTPPort+    , cocHTTPSPort+    , cocOriginProtocolPolicy++    -- * DefaultCacheBehavior+    , DefaultCacheBehavior+    , defaultCacheBehavior+    , dcbAllowedMethods+    , dcbMaxTTL+    , dcbSmoothStreaming+    , dcbDefaultTTL+    , dcbTargetOriginId+    , dcbForwardedValues+    , dcbTrustedSigners+    , dcbViewerProtocolPolicy+    , dcbMinTTL++    -- * Distribution+    , Distribution+    , distribution+    , dId+    , dStatus+    , dLastModifiedTime+    , dInProgressInvalidationBatches+    , dDomainName+    , dActiveTrustedSigners+    , dDistributionConfig++    -- * DistributionConfig+    , DistributionConfig+    , distributionConfig+    , dcDefaultRootObject+    , dcAliases+    , dcCustomErrorResponses+    , dcPriceClass+    , dcViewerCertificate+    , dcRestrictions+    , dcCacheBehaviors+    , dcLogging+    , dcCallerReference+    , dcOrigins+    , dcDefaultCacheBehavior+    , dcComment+    , dcEnabled++    -- * DistributionList+    , DistributionList+    , distributionList+    , dlItems+    , dlNextMarker+    , dlMarker+    , dlMaxItems+    , dlIsTruncated+    , dlQuantity++    -- * DistributionSummary+    , DistributionSummary+    , distributionSummary+    , dsId+    , dsStatus+    , dsLastModifiedTime+    , dsDomainName+    , dsAliases+    , dsOrigins+    , dsDefaultCacheBehavior+    , dsCacheBehaviors+    , dsCustomErrorResponses+    , dsComment+    , dsPriceClass+    , dsEnabled+    , dsViewerCertificate+    , dsRestrictions++    -- * ForwardedValues+    , ForwardedValues+    , forwardedValues+    , fvHeaders+    , fvQueryString+    , fvCookies++    -- * GeoRestriction+    , GeoRestriction+    , geoRestriction+    , grItems+    , grRestrictionType+    , grQuantity++    -- * Headers+    , Headers+    , headers+    , hItems+    , hQuantity++    -- * Invalidation+    , Invalidation+    , invalidation+    , iId+    , iStatus+    , iCreateTime+    , iInvalidationBatch++    -- * InvalidationBatch+    , InvalidationBatch+    , invalidationBatch+    , ibPaths+    , ibCallerReference++    -- * InvalidationList+    , InvalidationList+    , invalidationList+    , ilItems+    , ilNextMarker+    , ilMarker+    , ilMaxItems+    , ilIsTruncated+    , ilQuantity++    -- * InvalidationSummary+    , InvalidationSummary+    , invalidationSummary+    , isId+    , isCreateTime+    , isStatus++    -- * KeyPairIds+    , KeyPairIds+    , keyPairIds+    , kpiItems+    , kpiQuantity++    -- * LoggingConfig+    , LoggingConfig+    , loggingConfig+    , lcEnabled+    , lcIncludeCookies+    , lcBucket+    , lcPrefix++    -- * Origin+    , Origin+    , origin+    , oCustomOriginConfig+    , oS3OriginConfig+    , oOriginPath+    , oId+    , oDomainName++    -- * Origins+    , Origins+    , origins+    , oItems+    , oQuantity++    -- * Paths+    , Paths+    , paths+    , pItems+    , pQuantity++    -- * Restrictions+    , Restrictions+    , restrictions+    , rGeoRestriction++    -- * S3Origin+    , S3Origin+    , s3Origin+    , soDomainName+    , soOriginAccessIdentity++    -- * S3OriginConfig+    , S3OriginConfig+    , s3OriginConfig+    , socOriginAccessIdentity++    -- * Signer+    , Signer+    , signer+    , sAWSAccountNumber+    , sKeyPairIds++    -- * StreamingDistribution+    , StreamingDistribution+    , streamingDistribution+    , sdLastModifiedTime+    , sdId+    , sdStatus+    , sdDomainName+    , sdActiveTrustedSigners+    , sdStreamingDistributionConfig++    -- * StreamingDistributionConfig+    , StreamingDistributionConfig+    , streamingDistributionConfig+    , sdcAliases+    , sdcPriceClass+    , sdcLogging+    , sdcCallerReference+    , sdcS3Origin+    , sdcComment+    , sdcTrustedSigners+    , sdcEnabled++    -- * StreamingDistributionList+    , StreamingDistributionList+    , streamingDistributionList+    , sdlItems+    , sdlNextMarker+    , sdlMarker+    , sdlMaxItems+    , sdlIsTruncated+    , sdlQuantity++    -- * StreamingDistributionSummary+    , StreamingDistributionSummary+    , streamingDistributionSummary+    , sdsId+    , sdsStatus+    , sdsLastModifiedTime+    , sdsDomainName+    , sdsS3Origin+    , sdsAliases+    , sdsTrustedSigners+    , sdsComment+    , sdsPriceClass+    , sdsEnabled++    -- * StreamingLoggingConfig+    , StreamingLoggingConfig+    , streamingLoggingConfig+    , slcEnabled+    , slcBucket+    , slcPrefix++    -- * TrustedSigners+    , TrustedSigners+    , trustedSigners+    , tsItems+    , tsEnabled+    , tsQuantity++    -- * ViewerCertificate+    , ViewerCertificate+    , viewerCertificate+    , vcSSLSupportMethod+    , vcMinimumProtocolVersion+    , vcIAMCertificateId+    , vcCloudFrontDefaultCertificate+    ) where++import           Network.AWS.CloudFront.Types.Product+import           Network.AWS.CloudFront.Types.Sum+import           Network.AWS.Prelude+import           Network.AWS.Sign.V4++-- | Version @2015-04-17@ of the Amazon CloudFront SDK.+data CloudFront++instance AWSService CloudFront where+    type Sg CloudFront = V4+    service = const svc+      where+        svc =+            Service+            { _svcAbbrev = "CloudFront"+            , _svcPrefix = "cloudfront"+            , _svcVersion = "2015-04-17"+            , _svcEndpoint = defaultEndpoint svc+            , _svcTimeout = Just 70+            , _svcStatus = statusSuccess+            , _svcError = parseXMLError+            , _svcRetry = retry+            }+        retry =+            Exponential+            { _retryBase = 5.0e-2+            , _retryGrowth = 2+            , _retryAttempts = 5+            , _retryCheck = check+            }+        check e+          | has (hasCode "ThrottlingException" . hasStatus 400) e =+              Just "throttling_exception"+          | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"+          | has (hasStatus 503) e = Just "service_unavailable"+          | has (hasStatus 500) e = Just "general_server_error"+          | has (hasStatus 509) e = Just "limit_exceeded"+          | otherwise = Nothing++-- | Prism for InvalidErrorCode' errors.+_InvalidErrorCode :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidErrorCode = _ServiceError . hasStatus 400 . hasCode "InvalidErrorCode"++-- | You cannot create anymore cache behaviors for the distribution.+_TooManyCacheBehaviors :: AsError a => Getting (First ServiceError) a ServiceError+_TooManyCacheBehaviors =+    _ServiceError . hasStatus 400 . hasCode "TooManyCacheBehaviors"++-- | Prism for DistributionNotDisabled' errors.+_DistributionNotDisabled :: AsError a => Getting (First ServiceError) a ServiceError+_DistributionNotDisabled =+    _ServiceError . hasStatus 409 . hasCode "DistributionNotDisabled"++-- | The origin access identity is not valid or doesn\'t exist.+_InvalidOriginAccessIdentity :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidOriginAccessIdentity =+    _ServiceError . hasStatus 400 . hasCode "InvalidOriginAccessIdentity"++-- | Processing your request would cause you to exceed the maximum number of+-- origin access identities allowed.+_TooManyCloudFrontOriginAccessIdentities :: AsError a => Getting (First ServiceError) a ServiceError+_TooManyCloudFrontOriginAccessIdentities =+    _ServiceError .+    hasStatus 400 . hasCode "TooManyCloudFrontOriginAccessIdentities"++-- | Processing your request would cause you to exceed the maximum number of+-- streaming distributions allowed.+_TooManyStreamingDistributions :: AsError a => Getting (First ServiceError) a ServiceError+_TooManyStreamingDistributions =+    _ServiceError . hasStatus 400 . hasCode "TooManyStreamingDistributions"++-- | The argument is invalid.+_InvalidArgument :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidArgument = _ServiceError . hasStatus 400 . hasCode "InvalidArgument"++-- | The specified origin access identity does not exist.+_NoSuchCloudFrontOriginAccessIdentity :: AsError a => Getting (First ServiceError) a ServiceError+_NoSuchCloudFrontOriginAccessIdentity =+    _ServiceError .+    hasStatus 404 . hasCode "NoSuchCloudFrontOriginAccessIdentity"++-- | The specified streaming distribution does not exist.+_NoSuchStreamingDistribution :: AsError a => Getting (First ServiceError) a ServiceError+_NoSuchStreamingDistribution =+    _ServiceError . hasStatus 404 . hasCode "NoSuchStreamingDistribution"++-- | Prism for CloudFrontOriginAccessIdentityInUse' errors.+_CloudFrontOriginAccessIdentityInUse :: AsError a => Getting (First ServiceError) a ServiceError+_CloudFrontOriginAccessIdentityInUse =+    _ServiceError .+    hasStatus 409 . hasCode "CloudFrontOriginAccessIdentityInUse"++-- | The value of Quantity and the size of Items do not match.+_InconsistentQuantities :: AsError a => Getting (First ServiceError) a ServiceError+_InconsistentQuantities =+    _ServiceError . hasStatus 400 . hasCode "InconsistentQuantities"++-- | You have exceeded the maximum number of allowable InProgress+-- invalidation batch requests, or invalidation objects.+_TooManyInvalidationsInProgress :: AsError a => Getting (First ServiceError) a ServiceError+_TooManyInvalidationsInProgress =+    _ServiceError . hasStatus 400 . hasCode "TooManyInvalidationsInProgress"++-- | Your request contains more CNAMEs than are allowed per distribution.+_TooManyDistributionCNAMEs :: AsError a => Getting (First ServiceError) a ServiceError+_TooManyDistributionCNAMEs =+    _ServiceError . hasStatus 400 . hasCode "TooManyDistributionCNAMEs"++-- | Your request contains forward cookies option which doesn\'t match with+-- the expectation for the whitelisted list of cookie names. Either list of+-- cookie names has been specified when not allowed or list of cookie names+-- is missing when expected.+_InvalidForwardCookies :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidForwardCookies =+    _ServiceError . hasStatus 400 . hasCode "InvalidForwardCookies"++-- | Your request contains more cookie names in the whitelist than are+-- allowed per cache behavior.+_TooManyCookieNamesInWhiteList :: AsError a => Getting (First ServiceError) a ServiceError+_TooManyCookieNamesInWhiteList =+    _ServiceError . hasStatus 400 . hasCode "TooManyCookieNamesInWhiteList"++-- | Prism for BatchTooLarge' errors.+_BatchTooLarge :: AsError a => Getting (First ServiceError) a ServiceError+_BatchTooLarge = _ServiceError . hasStatus 413 . hasCode "BatchTooLarge"++-- | The Amazon S3 origin server specified does not refer to a valid Amazon+-- S3 bucket.+_InvalidOrigin :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidOrigin = _ServiceError . hasStatus 400 . hasCode "InvalidOrigin"++-- | Your request contains more trusted signers than are allowed per+-- distribution.+_TooManyTrustedSigners :: AsError a => Getting (First ServiceError) a ServiceError+_TooManyTrustedSigners =+    _ServiceError . hasStatus 400 . hasCode "TooManyTrustedSigners"++-- | No origin exists with the specified Origin Id.+_NoSuchOrigin :: AsError a => Getting (First ServiceError) a ServiceError+_NoSuchOrigin = _ServiceError . hasStatus 404 . hasCode "NoSuchOrigin"++-- | The specified invalidation does not exist.+_NoSuchInvalidation :: AsError a => Getting (First ServiceError) a ServiceError+_NoSuchInvalidation =+    _ServiceError . hasStatus 404 . hasCode "NoSuchInvalidation"++-- | Prism for StreamingDistributionNotDisabled' errors.+_StreamingDistributionNotDisabled :: AsError a => Getting (First ServiceError) a ServiceError+_StreamingDistributionNotDisabled =+    _ServiceError . hasStatus 409 . hasCode "StreamingDistributionNotDisabled"++-- | Prism for InvalidTTLOrder' errors.+_InvalidTTLOrder :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidTTLOrder = _ServiceError . hasStatus 400 . hasCode "InvalidTTLOrder"++-- | Prism for TooManyStreamingDistributionCNAMEs' errors.+_TooManyStreamingDistributionCNAMEs :: AsError a => Getting (First ServiceError) a ServiceError+_TooManyStreamingDistributionCNAMEs =+    _ServiceError .+    hasStatus 400 . hasCode "TooManyStreamingDistributionCNAMEs"++-- | Processing your request would cause you to exceed the maximum number of+-- distributions allowed.+_TooManyDistributions :: AsError a => Getting (First ServiceError) a ServiceError+_TooManyDistributions =+    _ServiceError . hasStatus 400 . hasCode "TooManyDistributions"++-- | This operation requires the HTTPS protocol. Ensure that you specify the+-- HTTPS protocol in your request, or omit the RequiredProtocols element+-- from your distribution configuration.+_InvalidRequiredProtocol :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidRequiredProtocol =+    _ServiceError . hasStatus 400 . hasCode "InvalidRequiredProtocol"++-- | Prism for TooManyHeadersInForwardedValues' errors.+_TooManyHeadersInForwardedValues :: AsError a => Getting (First ServiceError) a ServiceError+_TooManyHeadersInForwardedValues =+    _ServiceError . hasStatus 400 . hasCode "TooManyHeadersInForwardedValues"++-- | You cannot create anymore custom ssl certificates.+_TooManyCertificates :: AsError a => Getting (First ServiceError) a ServiceError+_TooManyCertificates =+    _ServiceError . hasStatus 400 . hasCode "TooManyCertificates"++-- | This operation requires a body. Ensure that the body is present and the+-- Content-Type header is set.+_MissingBody :: AsError a => Getting (First ServiceError) a ServiceError+_MissingBody = _ServiceError . hasStatus 400 . hasCode "MissingBody"++-- | The caller reference you attempted to create the distribution with is+-- associated with another distribution.+_DistributionAlreadyExists :: AsError a => Getting (First ServiceError) a ServiceError+_DistributionAlreadyExists =+    _ServiceError . hasStatus 409 . hasCode "DistributionAlreadyExists"++-- | Origin and CallerReference cannot be updated.+_IllegalUpdate :: AsError a => Getting (First ServiceError) a ServiceError+_IllegalUpdate = _ServiceError . hasStatus 400 . hasCode "IllegalUpdate"++-- | Prism for InvalidResponseCode' errors.+_InvalidResponseCode :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidResponseCode =+    _ServiceError . hasStatus 400 . hasCode "InvalidResponseCode"++-- | The If-Match version is missing or not valid for the distribution.+_InvalidIfMatchVersion :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidIfMatchVersion =+    _ServiceError . hasStatus 400 . hasCode "InvalidIfMatchVersion"++-- | The precondition given in one or more of the request-header fields+-- evaluated to false.+_PreconditionFailed :: AsError a => Getting (First ServiceError) a ServiceError+_PreconditionFailed =+    _ServiceError . hasStatus 412 . hasCode "PreconditionFailed"++-- | You cannot specify SSLv3 as the minimum protocol version if you only+-- want to support only clients that Support Server Name Indication (SNI).+_InvalidProtocolSettings :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidProtocolSettings =+    _ServiceError . hasStatus 400 . hasCode "InvalidProtocolSettings"++-- | One or more of your trusted signers do not exist.+_TrustedSignerDoesNotExist :: AsError a => Getting (First ServiceError) a ServiceError+_TrustedSignerDoesNotExist =+    _ServiceError . hasStatus 400 . hasCode "TrustedSignerDoesNotExist"++-- | Prism for InvalidHeadersForS3Origin' errors.+_InvalidHeadersForS3Origin :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidHeadersForS3Origin =+    _ServiceError . hasStatus 400 . hasCode "InvalidHeadersForS3Origin"++-- | Prism for CNAMEAlreadyExists' errors.+_CNAMEAlreadyExists :: AsError a => Getting (First ServiceError) a ServiceError+_CNAMEAlreadyExists =+    _ServiceError . hasStatus 409 . hasCode "CNAMEAlreadyExists"++-- | Prism for StreamingDistributionAlreadyExists' errors.+_StreamingDistributionAlreadyExists :: AsError a => Getting (First ServiceError) a ServiceError+_StreamingDistributionAlreadyExists =+    _ServiceError .+    hasStatus 409 . hasCode "StreamingDistributionAlreadyExists"++-- | You cannot create anymore origins for the distribution.+_TooManyOrigins :: AsError a => Getting (First ServiceError) a ServiceError+_TooManyOrigins = _ServiceError . hasStatus 400 . hasCode "TooManyOrigins"++-- | If the CallerReference is a value you already sent in a previous request+-- to create an identity but the content of the+-- CloudFrontOriginAccessIdentityConfig is different from the original+-- request, CloudFront returns a+-- CloudFrontOriginAccessIdentityAlreadyExists error.+_CloudFrontOriginAccessIdentityAlreadyExists :: AsError a => Getting (First ServiceError) a ServiceError+_CloudFrontOriginAccessIdentityAlreadyExists =+    _ServiceError .+    hasStatus 409 . hasCode "CloudFrontOriginAccessIdentityAlreadyExists"++-- | The relative path is too big, is not URL-encoded, or does not begin with+-- a slash (\/).+_InvalidRelativePath :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidRelativePath =+    _ServiceError . hasStatus 400 . hasCode "InvalidRelativePath"++-- | Prism for InvalidMinimumProtocolVersion' errors.+_InvalidMinimumProtocolVersion :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidMinimumProtocolVersion =+    _ServiceError . hasStatus 400 . hasCode "InvalidMinimumProtocolVersion"++-- | Access denied.+_AccessDenied :: AsError a => Getting (First ServiceError) a ServiceError+_AccessDenied = _ServiceError . hasStatus 403 . hasCode "AccessDenied"++-- | The specified distribution does not exist.+_NoSuchDistribution :: AsError a => Getting (First ServiceError) a ServiceError+_NoSuchDistribution =+    _ServiceError . hasStatus 404 . hasCode "NoSuchDistribution"++-- | Prism for InvalidViewerCertificate' errors.+_InvalidViewerCertificate :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidViewerCertificate =+    _ServiceError . hasStatus 400 . hasCode "InvalidViewerCertificate"++-- | The default root object file name is too big or contains an invalid+-- character.+_InvalidDefaultRootObject :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidDefaultRootObject =+    _ServiceError . hasStatus 400 . hasCode "InvalidDefaultRootObject"++-- | Prism for InvalidLocationCode' errors.+_InvalidLocationCode :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidLocationCode =+    _ServiceError . hasStatus 400 . hasCode "InvalidLocationCode"++-- | Prism for InvalidGeoRestrictionParameter' errors.+_InvalidGeoRestrictionParameter :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidGeoRestrictionParameter =+    _ServiceError . hasStatus 400 . hasCode "InvalidGeoRestrictionParameter"
+ gen/Network/AWS/CloudFront/Types/Product.hs view
@@ -0,0 +1,3297 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.CloudFront.Types.Product+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.CloudFront.Types.Product where++import           Network.AWS.CloudFront.Types.Sum+import           Network.AWS.Prelude++-- | A complex type that lists the AWS accounts, if any, that you included in+-- the TrustedSigners complex type for the default cache behavior or for+-- any of the other cache behaviors for this distribution. These are+-- accounts that you want to allow to create signed URLs for private+-- content.+--+-- /See:/ 'activeTrustedSigners' smart constructor.+data ActiveTrustedSigners = ActiveTrustedSigners'+    { _atsItems    :: !(Maybe [Signer])+    , _atsEnabled  :: !Bool+    , _atsQuantity :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ActiveTrustedSigners' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'atsItems'+--+-- * 'atsEnabled'+--+-- * 'atsQuantity'+activeTrustedSigners+    :: Bool -- ^ 'atsEnabled'+    -> Int -- ^ 'atsQuantity'+    -> ActiveTrustedSigners+activeTrustedSigners pEnabled_ pQuantity_ =+    ActiveTrustedSigners'+    { _atsItems = Nothing+    , _atsEnabled = pEnabled_+    , _atsQuantity = pQuantity_+    }++-- | A complex type that contains one Signer complex type for each unique+-- trusted signer that is specified in the TrustedSigners complex type,+-- including trusted signers in the default cache behavior and in all of+-- the other cache behaviors.+atsItems :: Lens' ActiveTrustedSigners [Signer]+atsItems = lens _atsItems (\ s a -> s{_atsItems = a}) . _Default . _Coerce;++-- | Each active trusted signer.+atsEnabled :: Lens' ActiveTrustedSigners Bool+atsEnabled = lens _atsEnabled (\ s a -> s{_atsEnabled = a});++-- | The number of unique trusted signers included in all cache behaviors.+-- For example, if three cache behaviors all list the same three AWS+-- accounts, the value of Quantity for ActiveTrustedSigners will be 3.+atsQuantity :: Lens' ActiveTrustedSigners Int+atsQuantity = lens _atsQuantity (\ s a -> s{_atsQuantity = a});++instance FromXML ActiveTrustedSigners where+        parseXML x+          = ActiveTrustedSigners' <$>+              (x .@? "Items" .!@ mempty >>=+                 may (parseXMLList "Signer"))+                <*> (x .@ "Enabled")+                <*> (x .@ "Quantity")++-- | A complex type that contains information about CNAMEs (alternate domain+-- names), if any, for this distribution.+--+-- /See:/ 'aliases' smart constructor.+data Aliases = Aliases'+    { _aItems    :: !(Maybe [Text])+    , _aQuantity :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Aliases' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aItems'+--+-- * 'aQuantity'+aliases+    :: Int -- ^ 'aQuantity'+    -> Aliases+aliases pQuantity_ =+    Aliases'+    { _aItems = Nothing+    , _aQuantity = pQuantity_+    }++-- | Optional: A complex type that contains CNAME elements, if any, for this+-- distribution. If Quantity is 0, you can omit Items.+aItems :: Lens' Aliases [Text]+aItems = lens _aItems (\ s a -> s{_aItems = a}) . _Default . _Coerce;++-- | The number of CNAMEs, if any, for this distribution.+aQuantity :: Lens' Aliases Int+aQuantity = lens _aQuantity (\ s a -> s{_aQuantity = a});++instance FromXML Aliases where+        parseXML x+          = Aliases' <$>+              (x .@? "Items" .!@ mempty >>=+                 may (parseXMLList "CNAME"))+                <*> (x .@ "Quantity")++instance ToXML Aliases where+        toXML Aliases'{..}+          = mconcat+              ["Items" @= toXML (toXMLList "CNAME" <$> _aItems),+               "Quantity" @= _aQuantity]++-- | A complex type that controls which HTTP methods CloudFront processes and+-- forwards to your Amazon S3 bucket or your custom origin. There are three+-- choices: - CloudFront forwards only GET and HEAD requests. - CloudFront+-- forwards only GET, HEAD and OPTIONS requests. - CloudFront forwards GET,+-- HEAD, OPTIONS, PUT, PATCH, POST, and DELETE requests. If you pick the+-- third choice, you may need to restrict access to your Amazon S3 bucket+-- or to your custom origin so users can\'t perform operations that you+-- don\'t want them to. For example, you may not want users to have+-- permission to delete objects from your origin.+--+-- /See:/ 'allowedMethods' smart constructor.+data AllowedMethods = AllowedMethods'+    { _amCachedMethods :: !(Maybe CachedMethods)+    , _amQuantity      :: !Int+    , _amItems         :: ![Method]+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'AllowedMethods' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'amCachedMethods'+--+-- * 'amQuantity'+--+-- * 'amItems'+allowedMethods+    :: Int -- ^ 'amQuantity'+    -> AllowedMethods+allowedMethods pQuantity_ =+    AllowedMethods'+    { _amCachedMethods = Nothing+    , _amQuantity = pQuantity_+    , _amItems = mempty+    }++-- | Undocumented member.+amCachedMethods :: Lens' AllowedMethods (Maybe CachedMethods)+amCachedMethods = lens _amCachedMethods (\ s a -> s{_amCachedMethods = a});++-- | The number of HTTP methods that you want CloudFront to forward to your+-- origin. Valid values are 2 (for GET and HEAD requests), 3 (for GET, HEAD+-- and OPTIONS requests) and 7 (for GET, HEAD, OPTIONS, PUT, PATCH, POST,+-- and DELETE requests).+amQuantity :: Lens' AllowedMethods Int+amQuantity = lens _amQuantity (\ s a -> s{_amQuantity = a});++-- | A complex type that contains the HTTP methods that you want CloudFront+-- to process and forward to your origin.+amItems :: Lens' AllowedMethods [Method]+amItems = lens _amItems (\ s a -> s{_amItems = a}) . _Coerce;++instance FromXML AllowedMethods where+        parseXML x+          = AllowedMethods' <$>+              (x .@? "CachedMethods") <*> (x .@ "Quantity") <*>+                (x .@? "Items" .!@ mempty >>= parseXMLList "Method")++instance ToXML AllowedMethods where+        toXML AllowedMethods'{..}+          = mconcat+              ["CachedMethods" @= _amCachedMethods,+               "Quantity" @= _amQuantity,+               "Items" @= toXMLList "Method" _amItems]++-- | A complex type that describes how CloudFront processes requests. You can+-- create up to 10 cache behaviors.You must create at least as many cache+-- behaviors (including the default cache behavior) as you have origins if+-- you want CloudFront to distribute objects from all of the origins. Each+-- cache behavior specifies the one origin from which you want CloudFront+-- to get objects. If you have two origins and only the default cache+-- behavior, the default cache behavior will cause CloudFront to get+-- objects from one of the origins, but the other origin will never be+-- used. If you don\'t want to specify any cache behaviors, include only an+-- empty CacheBehaviors element. Don\'t include an empty CacheBehavior+-- element, or CloudFront returns a MalformedXML error. To delete all cache+-- behaviors in an existing distribution, update the distribution+-- configuration and include only an empty CacheBehaviors element. To add,+-- change, or remove one or more cache behaviors, update the distribution+-- configuration and specify all of the cache behaviors that you want to+-- include in the updated distribution.+--+-- /See:/ 'cacheBehavior' smart constructor.+data CacheBehavior = CacheBehavior'+    { _cbAllowedMethods       :: !(Maybe AllowedMethods)+    , _cbMaxTTL               :: !(Maybe Integer)+    , _cbSmoothStreaming      :: !(Maybe Bool)+    , _cbDefaultTTL           :: !(Maybe Integer)+    , _cbPathPattern          :: !Text+    , _cbTargetOriginId       :: !Text+    , _cbForwardedValues      :: !ForwardedValues+    , _cbTrustedSigners       :: !TrustedSigners+    , _cbViewerProtocolPolicy :: !ViewerProtocolPolicy+    , _cbMinTTL               :: !Integer+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CacheBehavior' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cbAllowedMethods'+--+-- * 'cbMaxTTL'+--+-- * 'cbSmoothStreaming'+--+-- * 'cbDefaultTTL'+--+-- * 'cbPathPattern'+--+-- * 'cbTargetOriginId'+--+-- * 'cbForwardedValues'+--+-- * 'cbTrustedSigners'+--+-- * 'cbViewerProtocolPolicy'+--+-- * 'cbMinTTL'+cacheBehavior+    :: Text -- ^ 'cbPathPattern'+    -> Text -- ^ 'cbTargetOriginId'+    -> ForwardedValues -- ^ 'cbForwardedValues'+    -> TrustedSigners -- ^ 'cbTrustedSigners'+    -> ViewerProtocolPolicy -- ^ 'cbViewerProtocolPolicy'+    -> Integer -- ^ 'cbMinTTL'+    -> CacheBehavior+cacheBehavior pPathPattern_ pTargetOriginId_ pForwardedValues_ pTrustedSigners_ pViewerProtocolPolicy_ pMinTTL_ =+    CacheBehavior'+    { _cbAllowedMethods = Nothing+    , _cbMaxTTL = Nothing+    , _cbSmoothStreaming = Nothing+    , _cbDefaultTTL = Nothing+    , _cbPathPattern = pPathPattern_+    , _cbTargetOriginId = pTargetOriginId_+    , _cbForwardedValues = pForwardedValues_+    , _cbTrustedSigners = pTrustedSigners_+    , _cbViewerProtocolPolicy = pViewerProtocolPolicy_+    , _cbMinTTL = pMinTTL_+    }++-- | Undocumented member.+cbAllowedMethods :: Lens' CacheBehavior (Maybe AllowedMethods)+cbAllowedMethods = lens _cbAllowedMethods (\ s a -> s{_cbAllowedMethods = a});++-- | The maximum amount of time (in seconds) that an object is in a+-- CloudFront cache before CloudFront forwards another request to your+-- origin to determine whether the object has been updated. The value that+-- you specify applies only when your origin adds HTTP headers such as+-- Cache-Control max-age, Cache-Control s-maxage, and Expires to objects.+-- You can specify a value from 0 to 3,153,600,000 seconds (100 years).+cbMaxTTL :: Lens' CacheBehavior (Maybe Integer)+cbMaxTTL = lens _cbMaxTTL (\ s a -> s{_cbMaxTTL = a});++-- | Indicates whether you want to distribute media files in Microsoft Smooth+-- Streaming format using the origin that is associated with this cache+-- behavior. If so, specify true; if not, specify false.+cbSmoothStreaming :: Lens' CacheBehavior (Maybe Bool)+cbSmoothStreaming = lens _cbSmoothStreaming (\ s a -> s{_cbSmoothStreaming = a});++-- | If you don\'t configure your origin to add a Cache-Control max-age+-- directive or an Expires header, DefaultTTL is the default amount of time+-- (in seconds) that an object is in a CloudFront cache before CloudFront+-- forwards another request to your origin to determine whether the object+-- has been updated. The value that you specify applies only when your+-- origin does not add HTTP headers such as Cache-Control max-age,+-- Cache-Control s-maxage, and Expires to objects. You can specify a value+-- from 0 to 3,153,600,000 seconds (100 years).+cbDefaultTTL :: Lens' CacheBehavior (Maybe Integer)+cbDefaultTTL = lens _cbDefaultTTL (\ s a -> s{_cbDefaultTTL = a});++-- | The pattern (for example, images\/*.jpg) that specifies which requests+-- you want this cache behavior to apply to. When CloudFront receives an+-- end-user request, the requested path is compared with path patterns in+-- the order in which cache behaviors are listed in the distribution. The+-- path pattern for the default cache behavior is * and cannot be changed.+-- If the request for an object does not match the path pattern for any+-- cache behaviors, CloudFront applies the behavior in the default cache+-- behavior.+cbPathPattern :: Lens' CacheBehavior Text+cbPathPattern = lens _cbPathPattern (\ s a -> s{_cbPathPattern = a});++-- | The value of ID for the origin that you want CloudFront to route+-- requests to when a request matches the path pattern either for a cache+-- behavior or for the default cache behavior.+cbTargetOriginId :: Lens' CacheBehavior Text+cbTargetOriginId = lens _cbTargetOriginId (\ s a -> s{_cbTargetOriginId = a});++-- | A complex type that specifies how CloudFront handles query strings,+-- cookies and headers.+cbForwardedValues :: Lens' CacheBehavior ForwardedValues+cbForwardedValues = lens _cbForwardedValues (\ s a -> s{_cbForwardedValues = a});++-- | A complex type that specifies the AWS accounts, if any, that you want to+-- allow to create signed URLs for private content. If you want to require+-- signed URLs in requests for objects in the target origin that match the+-- PathPattern for this cache behavior, specify true for Enabled, and+-- specify the applicable values for Quantity and Items. For more+-- information, go to Using a Signed URL to Serve Private Content in the+-- Amazon CloudFront Developer Guide. If you don\'t want to require signed+-- URLs in requests for objects that match PathPattern, specify false for+-- Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or+-- more trusted signers, change Enabled to true (if it\'s currently false),+-- change Quantity as applicable, and specify all of the trusted signers+-- that you want to include in the updated distribution.+cbTrustedSigners :: Lens' CacheBehavior TrustedSigners+cbTrustedSigners = lens _cbTrustedSigners (\ s a -> s{_cbTrustedSigners = a});++-- | Use this element to specify the protocol that users can use to access+-- the files in the origin specified by TargetOriginId when a request+-- matches the path pattern in PathPattern. If you want CloudFront to allow+-- end users to use any available protocol, specify allow-all. If you want+-- CloudFront to require HTTPS, specify https. If you want CloudFront to+-- respond to an HTTP request with an HTTP status code of 301 (Moved+-- Permanently) and the HTTPS URL, specify redirect-to-https. The viewer+-- then resubmits the request using the HTTPS URL.+cbViewerProtocolPolicy :: Lens' CacheBehavior ViewerProtocolPolicy+cbViewerProtocolPolicy = lens _cbViewerProtocolPolicy (\ s a -> s{_cbViewerProtocolPolicy = a});++-- | The minimum amount of time that you want objects to stay in CloudFront+-- caches before CloudFront queries your origin to see whether the object+-- has been updated.You can specify a value from 0 to 3,153,600,000 seconds+-- (100 years).+cbMinTTL :: Lens' CacheBehavior Integer+cbMinTTL = lens _cbMinTTL (\ s a -> s{_cbMinTTL = a});++instance FromXML CacheBehavior where+        parseXML x+          = CacheBehavior' <$>+              (x .@? "AllowedMethods") <*> (x .@? "MaxTTL") <*>+                (x .@? "SmoothStreaming")+                <*> (x .@? "DefaultTTL")+                <*> (x .@ "PathPattern")+                <*> (x .@ "TargetOriginId")+                <*> (x .@ "ForwardedValues")+                <*> (x .@ "TrustedSigners")+                <*> (x .@ "ViewerProtocolPolicy")+                <*> (x .@ "MinTTL")++instance ToXML CacheBehavior where+        toXML CacheBehavior'{..}+          = mconcat+              ["AllowedMethods" @= _cbAllowedMethods,+               "MaxTTL" @= _cbMaxTTL,+               "SmoothStreaming" @= _cbSmoothStreaming,+               "DefaultTTL" @= _cbDefaultTTL,+               "PathPattern" @= _cbPathPattern,+               "TargetOriginId" @= _cbTargetOriginId,+               "ForwardedValues" @= _cbForwardedValues,+               "TrustedSigners" @= _cbTrustedSigners,+               "ViewerProtocolPolicy" @= _cbViewerProtocolPolicy,+               "MinTTL" @= _cbMinTTL]++-- | A complex type that contains zero or more CacheBehavior elements.+--+-- /See:/ 'cacheBehaviors' smart constructor.+data CacheBehaviors = CacheBehaviors'+    { _cbItems    :: !(Maybe [CacheBehavior])+    , _cbQuantity :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CacheBehaviors' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cbItems'+--+-- * 'cbQuantity'+cacheBehaviors+    :: Int -- ^ 'cbQuantity'+    -> CacheBehaviors+cacheBehaviors pQuantity_ =+    CacheBehaviors'+    { _cbItems = Nothing+    , _cbQuantity = pQuantity_+    }++-- | Optional: A complex type that contains cache behaviors for this+-- distribution. If Quantity is 0, you can omit Items.+cbItems :: Lens' CacheBehaviors [CacheBehavior]+cbItems = lens _cbItems (\ s a -> s{_cbItems = a}) . _Default . _Coerce;++-- | The number of cache behaviors for this distribution.+cbQuantity :: Lens' CacheBehaviors Int+cbQuantity = lens _cbQuantity (\ s a -> s{_cbQuantity = a});++instance FromXML CacheBehaviors where+        parseXML x+          = CacheBehaviors' <$>+              (x .@? "Items" .!@ mempty >>=+                 may (parseXMLList "CacheBehavior"))+                <*> (x .@ "Quantity")++instance ToXML CacheBehaviors where+        toXML CacheBehaviors'{..}+          = mconcat+              ["Items" @=+                 toXML (toXMLList "CacheBehavior" <$> _cbItems),+               "Quantity" @= _cbQuantity]++-- | A complex type that controls whether CloudFront caches the response to+-- requests using the specified HTTP methods. There are two choices: -+-- CloudFront caches responses to GET and HEAD requests. - CloudFront+-- caches responses to GET, HEAD, and OPTIONS requests. If you pick the+-- second choice for your S3 Origin, you may need to forward+-- Access-Control-Request-Method, Access-Control-Request-Headers and Origin+-- headers for the responses to be cached correctly.+--+-- /See:/ 'cachedMethods' smart constructor.+data CachedMethods = CachedMethods'+    { _cmQuantity :: !Int+    , _cmItems    :: ![Method]+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CachedMethods' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cmQuantity'+--+-- * 'cmItems'+cachedMethods+    :: Int -- ^ 'cmQuantity'+    -> CachedMethods+cachedMethods pQuantity_ =+    CachedMethods'+    { _cmQuantity = pQuantity_+    , _cmItems = mempty+    }++-- | The number of HTTP methods for which you want CloudFront to cache+-- responses. Valid values are 2 (for caching responses to GET and HEAD+-- requests) and 3 (for caching responses to GET, HEAD, and OPTIONS+-- requests).+cmQuantity :: Lens' CachedMethods Int+cmQuantity = lens _cmQuantity (\ s a -> s{_cmQuantity = a});++-- | A complex type that contains the HTTP methods that you want CloudFront+-- to cache responses to.+cmItems :: Lens' CachedMethods [Method]+cmItems = lens _cmItems (\ s a -> s{_cmItems = a}) . _Coerce;++instance FromXML CachedMethods where+        parseXML x+          = CachedMethods' <$>+              (x .@ "Quantity") <*>+                (x .@? "Items" .!@ mempty >>= parseXMLList "Method")++instance ToXML CachedMethods where+        toXML CachedMethods'{..}+          = mconcat+              ["Quantity" @= _cmQuantity,+               "Items" @= toXMLList "Method" _cmItems]++-- | CloudFront origin access identity.+--+-- /See:/ 'cloudFrontOriginAccessIdentity' smart constructor.+data CloudFrontOriginAccessIdentity = CloudFrontOriginAccessIdentity'+    { _cfoaiCloudFrontOriginAccessIdentityConfig :: !(Maybe CloudFrontOriginAccessIdentityConfig)+    , _cfoaiId                                   :: !Text+    , _cfoaiS3CanonicalUserId                    :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CloudFrontOriginAccessIdentity' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cfoaiCloudFrontOriginAccessIdentityConfig'+--+-- * 'cfoaiId'+--+-- * 'cfoaiS3CanonicalUserId'+cloudFrontOriginAccessIdentity+    :: Text -- ^ 'cfoaiId'+    -> Text -- ^ 'cfoaiS3CanonicalUserId'+    -> CloudFrontOriginAccessIdentity+cloudFrontOriginAccessIdentity pId_ pS3CanonicalUserId_ =+    CloudFrontOriginAccessIdentity'+    { _cfoaiCloudFrontOriginAccessIdentityConfig = Nothing+    , _cfoaiId = pId_+    , _cfoaiS3CanonicalUserId = pS3CanonicalUserId_+    }++-- | The current configuration information for the identity.+cfoaiCloudFrontOriginAccessIdentityConfig :: Lens' CloudFrontOriginAccessIdentity (Maybe CloudFrontOriginAccessIdentityConfig)+cfoaiCloudFrontOriginAccessIdentityConfig = lens _cfoaiCloudFrontOriginAccessIdentityConfig (\ s a -> s{_cfoaiCloudFrontOriginAccessIdentityConfig = a});++-- | The ID for the origin access identity. For example: E74FTE3AJFJ256A.+cfoaiId :: Lens' CloudFrontOriginAccessIdentity Text+cfoaiId = lens _cfoaiId (\ s a -> s{_cfoaiId = a});++-- | The Amazon S3 canonical user ID for the origin access identity, which+-- you use when giving the origin access identity read permission to an+-- object in Amazon S3.+cfoaiS3CanonicalUserId :: Lens' CloudFrontOriginAccessIdentity Text+cfoaiS3CanonicalUserId = lens _cfoaiS3CanonicalUserId (\ s a -> s{_cfoaiS3CanonicalUserId = a});++instance FromXML CloudFrontOriginAccessIdentity where+        parseXML x+          = CloudFrontOriginAccessIdentity' <$>+              (x .@? "CloudFrontOriginAccessIdentityConfig") <*>+                (x .@ "Id")+                <*> (x .@ "S3CanonicalUserId")++-- | Origin access identity configuration.+--+-- /See:/ 'cloudFrontOriginAccessIdentityConfig' smart constructor.+data CloudFrontOriginAccessIdentityConfig = CloudFrontOriginAccessIdentityConfig'+    { _cfoaicCallerReference :: !Text+    , _cfoaicComment         :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CloudFrontOriginAccessIdentityConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cfoaicCallerReference'+--+-- * 'cfoaicComment'+cloudFrontOriginAccessIdentityConfig+    :: Text -- ^ 'cfoaicCallerReference'+    -> Text -- ^ 'cfoaicComment'+    -> CloudFrontOriginAccessIdentityConfig+cloudFrontOriginAccessIdentityConfig pCallerReference_ pComment_ =+    CloudFrontOriginAccessIdentityConfig'+    { _cfoaicCallerReference = pCallerReference_+    , _cfoaicComment = pComment_+    }++-- | A unique number that ensures the request can\'t be replayed. If the+-- CallerReference is new (no matter the content of the+-- CloudFrontOriginAccessIdentityConfig object), a new origin access+-- identity is created. If the CallerReference is a value you already sent+-- in a previous request to create an identity, and the content of the+-- CloudFrontOriginAccessIdentityConfig is identical to the original+-- request (ignoring white space), the response includes the same+-- information returned to the original request. If the CallerReference is+-- a value you already sent in a previous request to create an identity but+-- the content of the CloudFrontOriginAccessIdentityConfig is different+-- from the original request, CloudFront returns a+-- CloudFrontOriginAccessIdentityAlreadyExists error.+cfoaicCallerReference :: Lens' CloudFrontOriginAccessIdentityConfig Text+cfoaicCallerReference = lens _cfoaicCallerReference (\ s a -> s{_cfoaicCallerReference = a});++-- | Any comments you want to include about the origin access identity.+cfoaicComment :: Lens' CloudFrontOriginAccessIdentityConfig Text+cfoaicComment = lens _cfoaicComment (\ s a -> s{_cfoaicComment = a});++instance FromXML CloudFrontOriginAccessIdentityConfig+         where+        parseXML x+          = CloudFrontOriginAccessIdentityConfig' <$>+              (x .@ "CallerReference") <*> (x .@ "Comment")++instance ToXML CloudFrontOriginAccessIdentityConfig+         where+        toXML CloudFrontOriginAccessIdentityConfig'{..}+          = mconcat+              ["CallerReference" @= _cfoaicCallerReference,+               "Comment" @= _cfoaicComment]++-- | The CloudFrontOriginAccessIdentityList type.+--+-- /See:/ 'cloudFrontOriginAccessIdentityList' smart constructor.+data CloudFrontOriginAccessIdentityList = CloudFrontOriginAccessIdentityList'+    { _cfoailItems       :: !(Maybe [CloudFrontOriginAccessIdentitySummary])+    , _cfoailNextMarker  :: !(Maybe Text)+    , _cfoailMarker      :: !Text+    , _cfoailMaxItems    :: !Int+    , _cfoailIsTruncated :: !Bool+    , _cfoailQuantity    :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CloudFrontOriginAccessIdentityList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cfoailItems'+--+-- * 'cfoailNextMarker'+--+-- * 'cfoailMarker'+--+-- * 'cfoailMaxItems'+--+-- * 'cfoailIsTruncated'+--+-- * 'cfoailQuantity'+cloudFrontOriginAccessIdentityList+    :: Text -- ^ 'cfoailMarker'+    -> Int -- ^ 'cfoailMaxItems'+    -> Bool -- ^ 'cfoailIsTruncated'+    -> Int -- ^ 'cfoailQuantity'+    -> CloudFrontOriginAccessIdentityList+cloudFrontOriginAccessIdentityList pMarker_ pMaxItems_ pIsTruncated_ pQuantity_ =+    CloudFrontOriginAccessIdentityList'+    { _cfoailItems = Nothing+    , _cfoailNextMarker = Nothing+    , _cfoailMarker = pMarker_+    , _cfoailMaxItems = pMaxItems_+    , _cfoailIsTruncated = pIsTruncated_+    , _cfoailQuantity = pQuantity_+    }++-- | A complex type that contains one CloudFrontOriginAccessIdentitySummary+-- element for each origin access identity that was created by the current+-- AWS account.+cfoailItems :: Lens' CloudFrontOriginAccessIdentityList [CloudFrontOriginAccessIdentitySummary]+cfoailItems = lens _cfoailItems (\ s a -> s{_cfoailItems = a}) . _Default . _Coerce;++-- | If IsTruncated is true, this element is present and contains the value+-- you can use for the Marker request parameter to continue listing your+-- origin access identities where they left off.+cfoailNextMarker :: Lens' CloudFrontOriginAccessIdentityList (Maybe Text)+cfoailNextMarker = lens _cfoailNextMarker (\ s a -> s{_cfoailNextMarker = a});++-- | The value you provided for the Marker request parameter.+cfoailMarker :: Lens' CloudFrontOriginAccessIdentityList Text+cfoailMarker = lens _cfoailMarker (\ s a -> s{_cfoailMarker = a});++-- | The value you provided for the MaxItems request parameter.+cfoailMaxItems :: Lens' CloudFrontOriginAccessIdentityList Int+cfoailMaxItems = lens _cfoailMaxItems (\ s a -> s{_cfoailMaxItems = a});++-- | A flag that indicates whether more origin access identities remain to be+-- listed. If your results were truncated, you can make a follow-up+-- pagination request using the Marker request parameter to retrieve more+-- items in the list.+cfoailIsTruncated :: Lens' CloudFrontOriginAccessIdentityList Bool+cfoailIsTruncated = lens _cfoailIsTruncated (\ s a -> s{_cfoailIsTruncated = a});++-- | The number of CloudFront origin access identities that were created by+-- the current AWS account.+cfoailQuantity :: Lens' CloudFrontOriginAccessIdentityList Int+cfoailQuantity = lens _cfoailQuantity (\ s a -> s{_cfoailQuantity = a});++instance FromXML CloudFrontOriginAccessIdentityList+         where+        parseXML x+          = CloudFrontOriginAccessIdentityList' <$>+              (x .@? "Items" .!@ mempty >>=+                 may+                   (parseXMLList+                      "CloudFrontOriginAccessIdentitySummary"))+                <*> (x .@? "NextMarker")+                <*> (x .@ "Marker")+                <*> (x .@ "MaxItems")+                <*> (x .@ "IsTruncated")+                <*> (x .@ "Quantity")++-- | Summary of the information about a CloudFront origin access identity.+--+-- /See:/ 'cloudFrontOriginAccessIdentitySummary' smart constructor.+data CloudFrontOriginAccessIdentitySummary = CloudFrontOriginAccessIdentitySummary'+    { _cfoaisId                :: !Text+    , _cfoaisS3CanonicalUserId :: !Text+    , _cfoaisComment           :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CloudFrontOriginAccessIdentitySummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cfoaisId'+--+-- * 'cfoaisS3CanonicalUserId'+--+-- * 'cfoaisComment'+cloudFrontOriginAccessIdentitySummary+    :: Text -- ^ 'cfoaisId'+    -> Text -- ^ 'cfoaisS3CanonicalUserId'+    -> Text -- ^ 'cfoaisComment'+    -> CloudFrontOriginAccessIdentitySummary+cloudFrontOriginAccessIdentitySummary pId_ pS3CanonicalUserId_ pComment_ =+    CloudFrontOriginAccessIdentitySummary'+    { _cfoaisId = pId_+    , _cfoaisS3CanonicalUserId = pS3CanonicalUserId_+    , _cfoaisComment = pComment_+    }++-- | The ID for the origin access identity. For example: E74FTE3AJFJ256A.+cfoaisId :: Lens' CloudFrontOriginAccessIdentitySummary Text+cfoaisId = lens _cfoaisId (\ s a -> s{_cfoaisId = a});++-- | The Amazon S3 canonical user ID for the origin access identity, which+-- you use when giving the origin access identity read permission to an+-- object in Amazon S3.+cfoaisS3CanonicalUserId :: Lens' CloudFrontOriginAccessIdentitySummary Text+cfoaisS3CanonicalUserId = lens _cfoaisS3CanonicalUserId (\ s a -> s{_cfoaisS3CanonicalUserId = a});++-- | The comment for this origin access identity, as originally specified+-- when created.+cfoaisComment :: Lens' CloudFrontOriginAccessIdentitySummary Text+cfoaisComment = lens _cfoaisComment (\ s a -> s{_cfoaisComment = a});++instance FromXML+         CloudFrontOriginAccessIdentitySummary where+        parseXML x+          = CloudFrontOriginAccessIdentitySummary' <$>+              (x .@ "Id") <*> (x .@ "S3CanonicalUserId") <*>+                (x .@ "Comment")++-- | A complex type that specifies the whitelisted cookies, if any, that you+-- want CloudFront to forward to your origin that is associated with this+-- cache behavior.+--+-- /See:/ 'cookieNames' smart constructor.+data CookieNames = CookieNames'+    { _cnItems    :: !(Maybe [Text])+    , _cnQuantity :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CookieNames' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cnItems'+--+-- * 'cnQuantity'+cookieNames+    :: Int -- ^ 'cnQuantity'+    -> CookieNames+cookieNames pQuantity_ =+    CookieNames'+    { _cnItems = Nothing+    , _cnQuantity = pQuantity_+    }++-- | Optional: A complex type that contains whitelisted cookies for this+-- cache behavior. If Quantity is 0, you can omit Items.+cnItems :: Lens' CookieNames [Text]+cnItems = lens _cnItems (\ s a -> s{_cnItems = a}) . _Default . _Coerce;++-- | The number of whitelisted cookies for this cache behavior.+cnQuantity :: Lens' CookieNames Int+cnQuantity = lens _cnQuantity (\ s a -> s{_cnQuantity = a});++instance FromXML CookieNames where+        parseXML x+          = CookieNames' <$>+              (x .@? "Items" .!@ mempty >>=+                 may (parseXMLList "Name"))+                <*> (x .@ "Quantity")++instance ToXML CookieNames where+        toXML CookieNames'{..}+          = mconcat+              ["Items" @= toXML (toXMLList "Name" <$> _cnItems),+               "Quantity" @= _cnQuantity]++-- | A complex type that specifies the cookie preferences associated with+-- this cache behavior.+--+-- /See:/ 'cookiePreference' smart constructor.+data CookiePreference = CookiePreference'+    { _cpWhitelistedNames :: !(Maybe CookieNames)+    , _cpForward          :: !ItemSelection+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CookiePreference' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpWhitelistedNames'+--+-- * 'cpForward'+cookiePreference+    :: ItemSelection -- ^ 'cpForward'+    -> CookiePreference+cookiePreference pForward_ =+    CookiePreference'+    { _cpWhitelistedNames = Nothing+    , _cpForward = pForward_+    }++-- | A complex type that specifies the whitelisted cookies, if any, that you+-- want CloudFront to forward to your origin that is associated with this+-- cache behavior.+cpWhitelistedNames :: Lens' CookiePreference (Maybe CookieNames)+cpWhitelistedNames = lens _cpWhitelistedNames (\ s a -> s{_cpWhitelistedNames = a});++-- | Use this element to specify whether you want CloudFront to forward+-- cookies to the origin that is associated with this cache behavior. You+-- can specify all, none or whitelist. If you choose All, CloudFront+-- forwards all cookies regardless of how many your application uses.+cpForward :: Lens' CookiePreference ItemSelection+cpForward = lens _cpForward (\ s a -> s{_cpForward = a});++instance FromXML CookiePreference where+        parseXML x+          = CookiePreference' <$>+              (x .@? "WhitelistedNames") <*> (x .@ "Forward")++instance ToXML CookiePreference where+        toXML CookiePreference'{..}+          = mconcat+              ["WhitelistedNames" @= _cpWhitelistedNames,+               "Forward" @= _cpForward]++-- | A complex type that describes how you\'d prefer CloudFront to respond to+-- requests that result in either a 4xx or 5xx response. You can control+-- whether a custom error page should be displayed, what the desired+-- response code should be for this error page and how long should the+-- error response be cached by CloudFront. If you don\'t want to specify+-- any custom error responses, include only an empty CustomErrorResponses+-- element. To delete all custom error responses in an existing+-- distribution, update the distribution configuration and include only an+-- empty CustomErrorResponses element. To add, change, or remove one or+-- more custom error responses, update the distribution configuration and+-- specify all of the custom error responses that you want to include in+-- the updated distribution.+--+-- /See:/ 'customErrorResponse' smart constructor.+data CustomErrorResponse = CustomErrorResponse'+    { _ceResponsePagePath   :: !(Maybe Text)+    , _ceResponseCode       :: !(Maybe Text)+    , _ceErrorCachingMinTTL :: !(Maybe Integer)+    , _ceErrorCode          :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CustomErrorResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ceResponsePagePath'+--+-- * 'ceResponseCode'+--+-- * 'ceErrorCachingMinTTL'+--+-- * 'ceErrorCode'+customErrorResponse+    :: Int -- ^ 'ceErrorCode'+    -> CustomErrorResponse+customErrorResponse pErrorCode_ =+    CustomErrorResponse'+    { _ceResponsePagePath = Nothing+    , _ceResponseCode = Nothing+    , _ceErrorCachingMinTTL = Nothing+    , _ceErrorCode = pErrorCode_+    }++-- | The path of the custom error page (for example, \/custom_404.html). The+-- path is relative to the distribution and must begin with a slash (\/).+-- If the path includes any non-ASCII characters or unsafe characters as+-- defined in RFC 1783 (http:\/\/www.ietf.org\/rfc\/rfc1738.txt), URL+-- encode those characters. Do not URL encode any other characters in the+-- path, or CloudFront will not return the custom error page to the viewer.+ceResponsePagePath :: Lens' CustomErrorResponse (Maybe Text)+ceResponsePagePath = lens _ceResponsePagePath (\ s a -> s{_ceResponsePagePath = a});++-- | The HTTP status code that you want CloudFront to return with the custom+-- error page to the viewer. For a list of HTTP status codes that you can+-- replace, see CloudFront Documentation.+ceResponseCode :: Lens' CustomErrorResponse (Maybe Text)+ceResponseCode = lens _ceResponseCode (\ s a -> s{_ceResponseCode = a});++-- | The minimum amount of time you want HTTP error codes to stay in+-- CloudFront caches before CloudFront queries your origin to see whether+-- the object has been updated. You can specify a value from 0 to+-- 31,536,000.+ceErrorCachingMinTTL :: Lens' CustomErrorResponse (Maybe Integer)+ceErrorCachingMinTTL = lens _ceErrorCachingMinTTL (\ s a -> s{_ceErrorCachingMinTTL = a});++-- | The 4xx or 5xx HTTP status code that you want to customize. For a list+-- of HTTP status codes that you can customize, see CloudFront+-- documentation.+ceErrorCode :: Lens' CustomErrorResponse Int+ceErrorCode = lens _ceErrorCode (\ s a -> s{_ceErrorCode = a});++instance FromXML CustomErrorResponse where+        parseXML x+          = CustomErrorResponse' <$>+              (x .@? "ResponsePagePath") <*> (x .@? "ResponseCode")+                <*> (x .@? "ErrorCachingMinTTL")+                <*> (x .@ "ErrorCode")++instance ToXML CustomErrorResponse where+        toXML CustomErrorResponse'{..}+          = mconcat+              ["ResponsePagePath" @= _ceResponsePagePath,+               "ResponseCode" @= _ceResponseCode,+               "ErrorCachingMinTTL" @= _ceErrorCachingMinTTL,+               "ErrorCode" @= _ceErrorCode]++-- | A complex type that contains zero or more CustomErrorResponse elements.+--+-- /See:/ 'customErrorResponses' smart constructor.+data CustomErrorResponses = CustomErrorResponses'+    { _cerItems    :: !(Maybe [CustomErrorResponse])+    , _cerQuantity :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CustomErrorResponses' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cerItems'+--+-- * 'cerQuantity'+customErrorResponses+    :: Int -- ^ 'cerQuantity'+    -> CustomErrorResponses+customErrorResponses pQuantity_ =+    CustomErrorResponses'+    { _cerItems = Nothing+    , _cerQuantity = pQuantity_+    }++-- | Optional: A complex type that contains custom error responses for this+-- distribution. If Quantity is 0, you can omit Items.+cerItems :: Lens' CustomErrorResponses [CustomErrorResponse]+cerItems = lens _cerItems (\ s a -> s{_cerItems = a}) . _Default . _Coerce;++-- | The number of custom error responses for this distribution.+cerQuantity :: Lens' CustomErrorResponses Int+cerQuantity = lens _cerQuantity (\ s a -> s{_cerQuantity = a});++instance FromXML CustomErrorResponses where+        parseXML x+          = CustomErrorResponses' <$>+              (x .@? "Items" .!@ mempty >>=+                 may (parseXMLList "CustomErrorResponse"))+                <*> (x .@ "Quantity")++instance ToXML CustomErrorResponses where+        toXML CustomErrorResponses'{..}+          = mconcat+              ["Items" @=+                 toXML+                   (toXMLList "CustomErrorResponse" <$> _cerItems),+               "Quantity" @= _cerQuantity]++-- | A customer origin.+--+-- /See:/ 'customOriginConfig' smart constructor.+data CustomOriginConfig = CustomOriginConfig'+    { _cocHTTPPort             :: !Int+    , _cocHTTPSPort            :: !Int+    , _cocOriginProtocolPolicy :: !OriginProtocolPolicy+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CustomOriginConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cocHTTPPort'+--+-- * 'cocHTTPSPort'+--+-- * 'cocOriginProtocolPolicy'+customOriginConfig+    :: Int -- ^ 'cocHTTPPort'+    -> Int -- ^ 'cocHTTPSPort'+    -> OriginProtocolPolicy -- ^ 'cocOriginProtocolPolicy'+    -> CustomOriginConfig+customOriginConfig pHTTPPort_ pHTTPSPort_ pOriginProtocolPolicy_ =+    CustomOriginConfig'+    { _cocHTTPPort = pHTTPPort_+    , _cocHTTPSPort = pHTTPSPort_+    , _cocOriginProtocolPolicy = pOriginProtocolPolicy_+    }++-- | The HTTP port the custom origin listens on.+cocHTTPPort :: Lens' CustomOriginConfig Int+cocHTTPPort = lens _cocHTTPPort (\ s a -> s{_cocHTTPPort = a});++-- | The HTTPS port the custom origin listens on.+cocHTTPSPort :: Lens' CustomOriginConfig Int+cocHTTPSPort = lens _cocHTTPSPort (\ s a -> s{_cocHTTPSPort = a});++-- | The origin protocol policy to apply to your origin.+cocOriginProtocolPolicy :: Lens' CustomOriginConfig OriginProtocolPolicy+cocOriginProtocolPolicy = lens _cocOriginProtocolPolicy (\ s a -> s{_cocOriginProtocolPolicy = a});++instance FromXML CustomOriginConfig where+        parseXML x+          = CustomOriginConfig' <$>+              (x .@ "HTTPPort") <*> (x .@ "HTTPSPort") <*>+                (x .@ "OriginProtocolPolicy")++instance ToXML CustomOriginConfig where+        toXML CustomOriginConfig'{..}+          = mconcat+              ["HTTPPort" @= _cocHTTPPort,+               "HTTPSPort" @= _cocHTTPSPort,+               "OriginProtocolPolicy" @= _cocOriginProtocolPolicy]++-- | A complex type that describes the default cache behavior if you do not+-- specify a CacheBehavior element or if files don\'t match any of the+-- values of PathPattern in CacheBehavior elements.You must create exactly+-- one default cache behavior.+--+-- /See:/ 'defaultCacheBehavior' smart constructor.+data DefaultCacheBehavior = DefaultCacheBehavior'+    { _dcbAllowedMethods       :: !(Maybe AllowedMethods)+    , _dcbMaxTTL               :: !(Maybe Integer)+    , _dcbSmoothStreaming      :: !(Maybe Bool)+    , _dcbDefaultTTL           :: !(Maybe Integer)+    , _dcbTargetOriginId       :: !Text+    , _dcbForwardedValues      :: !ForwardedValues+    , _dcbTrustedSigners       :: !TrustedSigners+    , _dcbViewerProtocolPolicy :: !ViewerProtocolPolicy+    , _dcbMinTTL               :: !Integer+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DefaultCacheBehavior' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dcbAllowedMethods'+--+-- * 'dcbMaxTTL'+--+-- * 'dcbSmoothStreaming'+--+-- * 'dcbDefaultTTL'+--+-- * 'dcbTargetOriginId'+--+-- * 'dcbForwardedValues'+--+-- * 'dcbTrustedSigners'+--+-- * 'dcbViewerProtocolPolicy'+--+-- * 'dcbMinTTL'+defaultCacheBehavior+    :: Text -- ^ 'dcbTargetOriginId'+    -> ForwardedValues -- ^ 'dcbForwardedValues'+    -> TrustedSigners -- ^ 'dcbTrustedSigners'+    -> ViewerProtocolPolicy -- ^ 'dcbViewerProtocolPolicy'+    -> Integer -- ^ 'dcbMinTTL'+    -> DefaultCacheBehavior+defaultCacheBehavior pTargetOriginId_ pForwardedValues_ pTrustedSigners_ pViewerProtocolPolicy_ pMinTTL_ =+    DefaultCacheBehavior'+    { _dcbAllowedMethods = Nothing+    , _dcbMaxTTL = Nothing+    , _dcbSmoothStreaming = Nothing+    , _dcbDefaultTTL = Nothing+    , _dcbTargetOriginId = pTargetOriginId_+    , _dcbForwardedValues = pForwardedValues_+    , _dcbTrustedSigners = pTrustedSigners_+    , _dcbViewerProtocolPolicy = pViewerProtocolPolicy_+    , _dcbMinTTL = pMinTTL_+    }++-- | Undocumented member.+dcbAllowedMethods :: Lens' DefaultCacheBehavior (Maybe AllowedMethods)+dcbAllowedMethods = lens _dcbAllowedMethods (\ s a -> s{_dcbAllowedMethods = a});++-- | The maximum amount of time (in seconds) that an object is in a+-- CloudFront cache before CloudFront forwards another request to your+-- origin to determine whether the object has been updated. The value that+-- you specify applies only when your origin adds HTTP headers such as+-- Cache-Control max-age, Cache-Control s-maxage, and Expires to objects.+-- You can specify a value from 0 to 3,153,600,000 seconds (100 years).+dcbMaxTTL :: Lens' DefaultCacheBehavior (Maybe Integer)+dcbMaxTTL = lens _dcbMaxTTL (\ s a -> s{_dcbMaxTTL = a});++-- | Indicates whether you want to distribute media files in Microsoft Smooth+-- Streaming format using the origin that is associated with this cache+-- behavior. If so, specify true; if not, specify false.+dcbSmoothStreaming :: Lens' DefaultCacheBehavior (Maybe Bool)+dcbSmoothStreaming = lens _dcbSmoothStreaming (\ s a -> s{_dcbSmoothStreaming = a});++-- | If you don\'t configure your origin to add a Cache-Control max-age+-- directive or an Expires header, DefaultTTL is the default amount of time+-- (in seconds) that an object is in a CloudFront cache before CloudFront+-- forwards another request to your origin to determine whether the object+-- has been updated. The value that you specify applies only when your+-- origin does not add HTTP headers such as Cache-Control max-age,+-- Cache-Control s-maxage, and Expires to objects. You can specify a value+-- from 0 to 3,153,600,000 seconds (100 years).+dcbDefaultTTL :: Lens' DefaultCacheBehavior (Maybe Integer)+dcbDefaultTTL = lens _dcbDefaultTTL (\ s a -> s{_dcbDefaultTTL = a});++-- | The value of ID for the origin that you want CloudFront to route+-- requests to when a request matches the path pattern either for a cache+-- behavior or for the default cache behavior.+dcbTargetOriginId :: Lens' DefaultCacheBehavior Text+dcbTargetOriginId = lens _dcbTargetOriginId (\ s a -> s{_dcbTargetOriginId = a});++-- | A complex type that specifies how CloudFront handles query strings,+-- cookies and headers.+dcbForwardedValues :: Lens' DefaultCacheBehavior ForwardedValues+dcbForwardedValues = lens _dcbForwardedValues (\ s a -> s{_dcbForwardedValues = a});++-- | A complex type that specifies the AWS accounts, if any, that you want to+-- allow to create signed URLs for private content. If you want to require+-- signed URLs in requests for objects in the target origin that match the+-- PathPattern for this cache behavior, specify true for Enabled, and+-- specify the applicable values for Quantity and Items. For more+-- information, go to Using a Signed URL to Serve Private Content in the+-- Amazon CloudFront Developer Guide. If you don\'t want to require signed+-- URLs in requests for objects that match PathPattern, specify false for+-- Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or+-- more trusted signers, change Enabled to true (if it\'s currently false),+-- change Quantity as applicable, and specify all of the trusted signers+-- that you want to include in the updated distribution.+dcbTrustedSigners :: Lens' DefaultCacheBehavior TrustedSigners+dcbTrustedSigners = lens _dcbTrustedSigners (\ s a -> s{_dcbTrustedSigners = a});++-- | Use this element to specify the protocol that users can use to access+-- the files in the origin specified by TargetOriginId when a request+-- matches the path pattern in PathPattern. If you want CloudFront to allow+-- end users to use any available protocol, specify allow-all. If you want+-- CloudFront to require HTTPS, specify https. If you want CloudFront to+-- respond to an HTTP request with an HTTP status code of 301 (Moved+-- Permanently) and the HTTPS URL, specify redirect-to-https. The viewer+-- then resubmits the request using the HTTPS URL.+dcbViewerProtocolPolicy :: Lens' DefaultCacheBehavior ViewerProtocolPolicy+dcbViewerProtocolPolicy = lens _dcbViewerProtocolPolicy (\ s a -> s{_dcbViewerProtocolPolicy = a});++-- | The minimum amount of time that you want objects to stay in CloudFront+-- caches before CloudFront queries your origin to see whether the object+-- has been updated.You can specify a value from 0 to 3,153,600,000 seconds+-- (100 years).+dcbMinTTL :: Lens' DefaultCacheBehavior Integer+dcbMinTTL = lens _dcbMinTTL (\ s a -> s{_dcbMinTTL = a});++instance FromXML DefaultCacheBehavior where+        parseXML x+          = DefaultCacheBehavior' <$>+              (x .@? "AllowedMethods") <*> (x .@? "MaxTTL") <*>+                (x .@? "SmoothStreaming")+                <*> (x .@? "DefaultTTL")+                <*> (x .@ "TargetOriginId")+                <*> (x .@ "ForwardedValues")+                <*> (x .@ "TrustedSigners")+                <*> (x .@ "ViewerProtocolPolicy")+                <*> (x .@ "MinTTL")++instance ToXML DefaultCacheBehavior where+        toXML DefaultCacheBehavior'{..}+          = mconcat+              ["AllowedMethods" @= _dcbAllowedMethods,+               "MaxTTL" @= _dcbMaxTTL,+               "SmoothStreaming" @= _dcbSmoothStreaming,+               "DefaultTTL" @= _dcbDefaultTTL,+               "TargetOriginId" @= _dcbTargetOriginId,+               "ForwardedValues" @= _dcbForwardedValues,+               "TrustedSigners" @= _dcbTrustedSigners,+               "ViewerProtocolPolicy" @= _dcbViewerProtocolPolicy,+               "MinTTL" @= _dcbMinTTL]++-- | A distribution.+--+-- /See:/ 'distribution' smart constructor.+data Distribution = Distribution'+    { _dId                            :: !Text+    , _dStatus                        :: !Text+    , _dLastModifiedTime              :: !ISO8601+    , _dInProgressInvalidationBatches :: !Int+    , _dDomainName                    :: !Text+    , _dActiveTrustedSigners          :: !ActiveTrustedSigners+    , _dDistributionConfig            :: !DistributionConfig+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Distribution' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dId'+--+-- * 'dStatus'+--+-- * 'dLastModifiedTime'+--+-- * 'dInProgressInvalidationBatches'+--+-- * 'dDomainName'+--+-- * 'dActiveTrustedSigners'+--+-- * 'dDistributionConfig'+distribution+    :: Text -- ^ 'dId'+    -> Text -- ^ 'dStatus'+    -> UTCTime -- ^ 'dLastModifiedTime'+    -> Int -- ^ 'dInProgressInvalidationBatches'+    -> Text -- ^ 'dDomainName'+    -> ActiveTrustedSigners -- ^ 'dActiveTrustedSigners'+    -> DistributionConfig -- ^ 'dDistributionConfig'+    -> Distribution+distribution pId_ pStatus_ pLastModifiedTime_ pInProgressInvalidationBatches_ pDomainName_ pActiveTrustedSigners_ pDistributionConfig_ =+    Distribution'+    { _dId = pId_+    , _dStatus = pStatus_+    , _dLastModifiedTime = _Time # pLastModifiedTime_+    , _dInProgressInvalidationBatches = pInProgressInvalidationBatches_+    , _dDomainName = pDomainName_+    , _dActiveTrustedSigners = pActiveTrustedSigners_+    , _dDistributionConfig = pDistributionConfig_+    }++-- | The identifier for the distribution. For example: EDFDVBD632BHDS5.+dId :: Lens' Distribution Text+dId = lens _dId (\ s a -> s{_dId = a});++-- | This response element indicates the current status of the distribution.+-- When the status is Deployed, the distribution\'s information is fully+-- propagated throughout the Amazon CloudFront system.+dStatus :: Lens' Distribution Text+dStatus = lens _dStatus (\ s a -> s{_dStatus = a});++-- | The date and time the distribution was last modified.+dLastModifiedTime :: Lens' Distribution UTCTime+dLastModifiedTime = lens _dLastModifiedTime (\ s a -> s{_dLastModifiedTime = a}) . _Time;++-- | The number of invalidation batches currently in progress.+dInProgressInvalidationBatches :: Lens' Distribution Int+dInProgressInvalidationBatches = lens _dInProgressInvalidationBatches (\ s a -> s{_dInProgressInvalidationBatches = a});++-- | The domain name corresponding to the distribution. For example:+-- d604721fxaaqy9.cloudfront.net.+dDomainName :: Lens' Distribution Text+dDomainName = lens _dDomainName (\ s a -> s{_dDomainName = a});++-- | CloudFront automatically adds this element to the response only if+-- you\'ve set up the distribution to serve private content with signed+-- URLs. The element lists the key pair IDs that CloudFront is aware of for+-- each trusted signer. The Signer child element lists the AWS account+-- number of the trusted signer (or an empty Self element if the signer is+-- you). The Signer element also includes the IDs of any active key pairs+-- associated with the trusted signer\'s AWS account. If no KeyPairId+-- element appears for a Signer, that signer can\'t create working signed+-- URLs.+dActiveTrustedSigners :: Lens' Distribution ActiveTrustedSigners+dActiveTrustedSigners = lens _dActiveTrustedSigners (\ s a -> s{_dActiveTrustedSigners = a});++-- | The current configuration information for the distribution.+dDistributionConfig :: Lens' Distribution DistributionConfig+dDistributionConfig = lens _dDistributionConfig (\ s a -> s{_dDistributionConfig = a});++instance FromXML Distribution where+        parseXML x+          = Distribution' <$>+              (x .@ "Id") <*> (x .@ "Status") <*>+                (x .@ "LastModifiedTime")+                <*> (x .@ "InProgressInvalidationBatches")+                <*> (x .@ "DomainName")+                <*> (x .@ "ActiveTrustedSigners")+                <*> (x .@ "DistributionConfig")++-- | A distribution Configuration.+--+-- /See:/ 'distributionConfig' smart constructor.+data DistributionConfig = DistributionConfig'+    { _dcDefaultRootObject    :: !(Maybe Text)+    , _dcAliases              :: !(Maybe Aliases)+    , _dcCustomErrorResponses :: !(Maybe CustomErrorResponses)+    , _dcPriceClass           :: !(Maybe PriceClass)+    , _dcViewerCertificate    :: !(Maybe ViewerCertificate)+    , _dcRestrictions         :: !(Maybe Restrictions)+    , _dcCacheBehaviors       :: !(Maybe CacheBehaviors)+    , _dcLogging              :: !(Maybe LoggingConfig)+    , _dcCallerReference      :: !Text+    , _dcOrigins              :: !Origins+    , _dcDefaultCacheBehavior :: !DefaultCacheBehavior+    , _dcComment              :: !Text+    , _dcEnabled              :: !Bool+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DistributionConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dcDefaultRootObject'+--+-- * 'dcAliases'+--+-- * 'dcCustomErrorResponses'+--+-- * 'dcPriceClass'+--+-- * 'dcViewerCertificate'+--+-- * 'dcRestrictions'+--+-- * 'dcCacheBehaviors'+--+-- * 'dcLogging'+--+-- * 'dcCallerReference'+--+-- * 'dcOrigins'+--+-- * 'dcDefaultCacheBehavior'+--+-- * 'dcComment'+--+-- * 'dcEnabled'+distributionConfig+    :: Text -- ^ 'dcCallerReference'+    -> Origins -- ^ 'dcOrigins'+    -> DefaultCacheBehavior -- ^ 'dcDefaultCacheBehavior'+    -> Text -- ^ 'dcComment'+    -> Bool -- ^ 'dcEnabled'+    -> DistributionConfig+distributionConfig pCallerReference_ pOrigins_ pDefaultCacheBehavior_ pComment_ pEnabled_ =+    DistributionConfig'+    { _dcDefaultRootObject = Nothing+    , _dcAliases = Nothing+    , _dcCustomErrorResponses = Nothing+    , _dcPriceClass = Nothing+    , _dcViewerCertificate = Nothing+    , _dcRestrictions = Nothing+    , _dcCacheBehaviors = Nothing+    , _dcLogging = Nothing+    , _dcCallerReference = pCallerReference_+    , _dcOrigins = pOrigins_+    , _dcDefaultCacheBehavior = pDefaultCacheBehavior_+    , _dcComment = pComment_+    , _dcEnabled = pEnabled_+    }++-- | The object that you want CloudFront to return (for example, index.html)+-- when an end user requests the root URL for your distribution+-- (http:\/\/www.example.com) instead of an object in your distribution+-- (http:\/\/www.example.com\/index.html). Specifying a default root object+-- avoids exposing the contents of your distribution. If you don\'t want to+-- specify a default root object when you create a distribution, include an+-- empty DefaultRootObject element. To delete the default root object from+-- an existing distribution, update the distribution configuration and+-- include an empty DefaultRootObject element. To replace the default root+-- object, update the distribution configuration and specify the new+-- object.+dcDefaultRootObject :: Lens' DistributionConfig (Maybe Text)+dcDefaultRootObject = lens _dcDefaultRootObject (\ s a -> s{_dcDefaultRootObject = a});++-- | A complex type that contains information about CNAMEs (alternate domain+-- names), if any, for this distribution.+dcAliases :: Lens' DistributionConfig (Maybe Aliases)+dcAliases = lens _dcAliases (\ s a -> s{_dcAliases = a});++-- | A complex type that contains zero or more CustomErrorResponse elements.+dcCustomErrorResponses :: Lens' DistributionConfig (Maybe CustomErrorResponses)+dcCustomErrorResponses = lens _dcCustomErrorResponses (\ s a -> s{_dcCustomErrorResponses = a});++-- | A complex type that contains information about price class for this+-- distribution.+dcPriceClass :: Lens' DistributionConfig (Maybe PriceClass)+dcPriceClass = lens _dcPriceClass (\ s a -> s{_dcPriceClass = a});++-- | Undocumented member.+dcViewerCertificate :: Lens' DistributionConfig (Maybe ViewerCertificate)+dcViewerCertificate = lens _dcViewerCertificate (\ s a -> s{_dcViewerCertificate = a});++-- | Undocumented member.+dcRestrictions :: Lens' DistributionConfig (Maybe Restrictions)+dcRestrictions = lens _dcRestrictions (\ s a -> s{_dcRestrictions = a});++-- | A complex type that contains zero or more CacheBehavior elements.+dcCacheBehaviors :: Lens' DistributionConfig (Maybe CacheBehaviors)+dcCacheBehaviors = lens _dcCacheBehaviors (\ s a -> s{_dcCacheBehaviors = a});++-- | A complex type that controls whether access logs are written for the+-- distribution.+dcLogging :: Lens' DistributionConfig (Maybe LoggingConfig)+dcLogging = lens _dcLogging (\ s a -> s{_dcLogging = a});++-- | A unique number that ensures the request can\'t be replayed. If the+-- CallerReference is new (no matter the content of the DistributionConfig+-- object), a new distribution is created. If the CallerReference is a+-- value you already sent in a previous request to create a distribution,+-- and the content of the DistributionConfig is identical to the original+-- request (ignoring white space), the response includes the same+-- information returned to the original request. If the CallerReference is+-- a value you already sent in a previous request to create a distribution+-- but the content of the DistributionConfig is different from the original+-- request, CloudFront returns a DistributionAlreadyExists error.+dcCallerReference :: Lens' DistributionConfig Text+dcCallerReference = lens _dcCallerReference (\ s a -> s{_dcCallerReference = a});++-- | A complex type that contains information about origins for this+-- distribution.+dcOrigins :: Lens' DistributionConfig Origins+dcOrigins = lens _dcOrigins (\ s a -> s{_dcOrigins = a});++-- | A complex type that describes the default cache behavior if you do not+-- specify a CacheBehavior element or if files don\'t match any of the+-- values of PathPattern in CacheBehavior elements.You must create exactly+-- one default cache behavior.+dcDefaultCacheBehavior :: Lens' DistributionConfig DefaultCacheBehavior+dcDefaultCacheBehavior = lens _dcDefaultCacheBehavior (\ s a -> s{_dcDefaultCacheBehavior = a});++-- | Any comments you want to include about the distribution.+dcComment :: Lens' DistributionConfig Text+dcComment = lens _dcComment (\ s a -> s{_dcComment = a});++-- | Whether the distribution is enabled to accept end user requests for+-- content.+dcEnabled :: Lens' DistributionConfig Bool+dcEnabled = lens _dcEnabled (\ s a -> s{_dcEnabled = a});++instance FromXML DistributionConfig where+        parseXML x+          = DistributionConfig' <$>+              (x .@? "DefaultRootObject") <*> (x .@? "Aliases") <*>+                (x .@? "CustomErrorResponses")+                <*> (x .@? "PriceClass")+                <*> (x .@? "ViewerCertificate")+                <*> (x .@? "Restrictions")+                <*> (x .@? "CacheBehaviors")+                <*> (x .@? "Logging")+                <*> (x .@ "CallerReference")+                <*> (x .@ "Origins")+                <*> (x .@ "DefaultCacheBehavior")+                <*> (x .@ "Comment")+                <*> (x .@ "Enabled")++instance ToXML DistributionConfig where+        toXML DistributionConfig'{..}+          = mconcat+              ["DefaultRootObject" @= _dcDefaultRootObject,+               "Aliases" @= _dcAliases,+               "CustomErrorResponses" @= _dcCustomErrorResponses,+               "PriceClass" @= _dcPriceClass,+               "ViewerCertificate" @= _dcViewerCertificate,+               "Restrictions" @= _dcRestrictions,+               "CacheBehaviors" @= _dcCacheBehaviors,+               "Logging" @= _dcLogging,+               "CallerReference" @= _dcCallerReference,+               "Origins" @= _dcOrigins,+               "DefaultCacheBehavior" @= _dcDefaultCacheBehavior,+               "Comment" @= _dcComment, "Enabled" @= _dcEnabled]++-- | A distribution list.+--+-- /See:/ 'distributionList' smart constructor.+data DistributionList = DistributionList'+    { _dlItems       :: !(Maybe [DistributionSummary])+    , _dlNextMarker  :: !(Maybe Text)+    , _dlMarker      :: !Text+    , _dlMaxItems    :: !Int+    , _dlIsTruncated :: !Bool+    , _dlQuantity    :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DistributionList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dlItems'+--+-- * 'dlNextMarker'+--+-- * 'dlMarker'+--+-- * 'dlMaxItems'+--+-- * 'dlIsTruncated'+--+-- * 'dlQuantity'+distributionList+    :: Text -- ^ 'dlMarker'+    -> Int -- ^ 'dlMaxItems'+    -> Bool -- ^ 'dlIsTruncated'+    -> Int -- ^ 'dlQuantity'+    -> DistributionList+distributionList pMarker_ pMaxItems_ pIsTruncated_ pQuantity_ =+    DistributionList'+    { _dlItems = Nothing+    , _dlNextMarker = Nothing+    , _dlMarker = pMarker_+    , _dlMaxItems = pMaxItems_+    , _dlIsTruncated = pIsTruncated_+    , _dlQuantity = pQuantity_+    }++-- | A complex type that contains one DistributionSummary element for each+-- distribution that was created by the current AWS account.+dlItems :: Lens' DistributionList [DistributionSummary]+dlItems = lens _dlItems (\ s a -> s{_dlItems = a}) . _Default . _Coerce;++-- | If IsTruncated is true, this element is present and contains the value+-- you can use for the Marker request parameter to continue listing your+-- distributions where they left off.+dlNextMarker :: Lens' DistributionList (Maybe Text)+dlNextMarker = lens _dlNextMarker (\ s a -> s{_dlNextMarker = a});++-- | The value you provided for the Marker request parameter.+dlMarker :: Lens' DistributionList Text+dlMarker = lens _dlMarker (\ s a -> s{_dlMarker = a});++-- | The value you provided for the MaxItems request parameter.+dlMaxItems :: Lens' DistributionList Int+dlMaxItems = lens _dlMaxItems (\ s a -> s{_dlMaxItems = a});++-- | A flag that indicates whether more distributions remain to be listed. If+-- your results were truncated, you can make a follow-up pagination request+-- using the Marker request parameter to retrieve more distributions in the+-- list.+dlIsTruncated :: Lens' DistributionList Bool+dlIsTruncated = lens _dlIsTruncated (\ s a -> s{_dlIsTruncated = a});++-- | The number of distributions that were created by the current AWS+-- account.+dlQuantity :: Lens' DistributionList Int+dlQuantity = lens _dlQuantity (\ s a -> s{_dlQuantity = a});++instance FromXML DistributionList where+        parseXML x+          = DistributionList' <$>+              (x .@? "Items" .!@ mempty >>=+                 may (parseXMLList "DistributionSummary"))+                <*> (x .@? "NextMarker")+                <*> (x .@ "Marker")+                <*> (x .@ "MaxItems")+                <*> (x .@ "IsTruncated")+                <*> (x .@ "Quantity")++-- | A summary of the information for an Amazon CloudFront distribution.+--+-- /See:/ 'distributionSummary' smart constructor.+data DistributionSummary = DistributionSummary'+    { _dsId                   :: !Text+    , _dsStatus               :: !Text+    , _dsLastModifiedTime     :: !ISO8601+    , _dsDomainName           :: !Text+    , _dsAliases              :: !Aliases+    , _dsOrigins              :: !Origins+    , _dsDefaultCacheBehavior :: !DefaultCacheBehavior+    , _dsCacheBehaviors       :: !CacheBehaviors+    , _dsCustomErrorResponses :: !CustomErrorResponses+    , _dsComment              :: !Text+    , _dsPriceClass           :: !PriceClass+    , _dsEnabled              :: !Bool+    , _dsViewerCertificate    :: !ViewerCertificate+    , _dsRestrictions         :: !Restrictions+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DistributionSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsId'+--+-- * 'dsStatus'+--+-- * 'dsLastModifiedTime'+--+-- * 'dsDomainName'+--+-- * 'dsAliases'+--+-- * 'dsOrigins'+--+-- * 'dsDefaultCacheBehavior'+--+-- * 'dsCacheBehaviors'+--+-- * 'dsCustomErrorResponses'+--+-- * 'dsComment'+--+-- * 'dsPriceClass'+--+-- * 'dsEnabled'+--+-- * 'dsViewerCertificate'+--+-- * 'dsRestrictions'+distributionSummary+    :: Text -- ^ 'dsId'+    -> Text -- ^ 'dsStatus'+    -> UTCTime -- ^ 'dsLastModifiedTime'+    -> Text -- ^ 'dsDomainName'+    -> Aliases -- ^ 'dsAliases'+    -> Origins -- ^ 'dsOrigins'+    -> DefaultCacheBehavior -- ^ 'dsDefaultCacheBehavior'+    -> CacheBehaviors -- ^ 'dsCacheBehaviors'+    -> CustomErrorResponses -- ^ 'dsCustomErrorResponses'+    -> Text -- ^ 'dsComment'+    -> PriceClass -- ^ 'dsPriceClass'+    -> Bool -- ^ 'dsEnabled'+    -> ViewerCertificate -- ^ 'dsViewerCertificate'+    -> Restrictions -- ^ 'dsRestrictions'+    -> DistributionSummary+distributionSummary pId_ pStatus_ pLastModifiedTime_ pDomainName_ pAliases_ pOrigins_ pDefaultCacheBehavior_ pCacheBehaviors_ pCustomErrorResponses_ pComment_ pPriceClass_ pEnabled_ pViewerCertificate_ pRestrictions_ =+    DistributionSummary'+    { _dsId = pId_+    , _dsStatus = pStatus_+    , _dsLastModifiedTime = _Time # pLastModifiedTime_+    , _dsDomainName = pDomainName_+    , _dsAliases = pAliases_+    , _dsOrigins = pOrigins_+    , _dsDefaultCacheBehavior = pDefaultCacheBehavior_+    , _dsCacheBehaviors = pCacheBehaviors_+    , _dsCustomErrorResponses = pCustomErrorResponses_+    , _dsComment = pComment_+    , _dsPriceClass = pPriceClass_+    , _dsEnabled = pEnabled_+    , _dsViewerCertificate = pViewerCertificate_+    , _dsRestrictions = pRestrictions_+    }++-- | The identifier for the distribution. For example: EDFDVBD632BHDS5.+dsId :: Lens' DistributionSummary Text+dsId = lens _dsId (\ s a -> s{_dsId = a});++-- | This response element indicates the current status of the distribution.+-- When the status is Deployed, the distribution\'s information is fully+-- propagated throughout the Amazon CloudFront system.+dsStatus :: Lens' DistributionSummary Text+dsStatus = lens _dsStatus (\ s a -> s{_dsStatus = a});++-- | The date and time the distribution was last modified.+dsLastModifiedTime :: Lens' DistributionSummary UTCTime+dsLastModifiedTime = lens _dsLastModifiedTime (\ s a -> s{_dsLastModifiedTime = a}) . _Time;++-- | The domain name corresponding to the distribution. For example:+-- d604721fxaaqy9.cloudfront.net.+dsDomainName :: Lens' DistributionSummary Text+dsDomainName = lens _dsDomainName (\ s a -> s{_dsDomainName = a});++-- | A complex type that contains information about CNAMEs (alternate domain+-- names), if any, for this distribution.+dsAliases :: Lens' DistributionSummary Aliases+dsAliases = lens _dsAliases (\ s a -> s{_dsAliases = a});++-- | A complex type that contains information about origins for this+-- distribution.+dsOrigins :: Lens' DistributionSummary Origins+dsOrigins = lens _dsOrigins (\ s a -> s{_dsOrigins = a});++-- | A complex type that describes the default cache behavior if you do not+-- specify a CacheBehavior element or if files don\'t match any of the+-- values of PathPattern in CacheBehavior elements.You must create exactly+-- one default cache behavior.+dsDefaultCacheBehavior :: Lens' DistributionSummary DefaultCacheBehavior+dsDefaultCacheBehavior = lens _dsDefaultCacheBehavior (\ s a -> s{_dsDefaultCacheBehavior = a});++-- | A complex type that contains zero or more CacheBehavior elements.+dsCacheBehaviors :: Lens' DistributionSummary CacheBehaviors+dsCacheBehaviors = lens _dsCacheBehaviors (\ s a -> s{_dsCacheBehaviors = a});++-- | A complex type that contains zero or more CustomErrorResponses elements.+dsCustomErrorResponses :: Lens' DistributionSummary CustomErrorResponses+dsCustomErrorResponses = lens _dsCustomErrorResponses (\ s a -> s{_dsCustomErrorResponses = a});++-- | The comment originally specified when this distribution was created.+dsComment :: Lens' DistributionSummary Text+dsComment = lens _dsComment (\ s a -> s{_dsComment = a});++-- | Undocumented member.+dsPriceClass :: Lens' DistributionSummary PriceClass+dsPriceClass = lens _dsPriceClass (\ s a -> s{_dsPriceClass = a});++-- | Whether the distribution is enabled to accept end user requests for+-- content.+dsEnabled :: Lens' DistributionSummary Bool+dsEnabled = lens _dsEnabled (\ s a -> s{_dsEnabled = a});++-- | Undocumented member.+dsViewerCertificate :: Lens' DistributionSummary ViewerCertificate+dsViewerCertificate = lens _dsViewerCertificate (\ s a -> s{_dsViewerCertificate = a});++-- | Undocumented member.+dsRestrictions :: Lens' DistributionSummary Restrictions+dsRestrictions = lens _dsRestrictions (\ s a -> s{_dsRestrictions = a});++instance FromXML DistributionSummary where+        parseXML x+          = DistributionSummary' <$>+              (x .@ "Id") <*> (x .@ "Status") <*>+                (x .@ "LastModifiedTime")+                <*> (x .@ "DomainName")+                <*> (x .@ "Aliases")+                <*> (x .@ "Origins")+                <*> (x .@ "DefaultCacheBehavior")+                <*> (x .@ "CacheBehaviors")+                <*> (x .@ "CustomErrorResponses")+                <*> (x .@ "Comment")+                <*> (x .@ "PriceClass")+                <*> (x .@ "Enabled")+                <*> (x .@ "ViewerCertificate")+                <*> (x .@ "Restrictions")++-- | A complex type that specifies how CloudFront handles query strings,+-- cookies and headers.+--+-- /See:/ 'forwardedValues' smart constructor.+data ForwardedValues = ForwardedValues'+    { _fvHeaders     :: !(Maybe Headers)+    , _fvQueryString :: !Bool+    , _fvCookies     :: !CookiePreference+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ForwardedValues' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fvHeaders'+--+-- * 'fvQueryString'+--+-- * 'fvCookies'+forwardedValues+    :: Bool -- ^ 'fvQueryString'+    -> CookiePreference -- ^ 'fvCookies'+    -> ForwardedValues+forwardedValues pQueryString_ pCookies_ =+    ForwardedValues'+    { _fvHeaders = Nothing+    , _fvQueryString = pQueryString_+    , _fvCookies = pCookies_+    }++-- | A complex type that specifies the Headers, if any, that you want+-- CloudFront to vary upon for this cache behavior.+fvHeaders :: Lens' ForwardedValues (Maybe Headers)+fvHeaders = lens _fvHeaders (\ s a -> s{_fvHeaders = a});++-- | Indicates whether you want CloudFront to forward query strings to the+-- origin that is associated with this cache behavior. If so, specify true;+-- if not, specify false.+fvQueryString :: Lens' ForwardedValues Bool+fvQueryString = lens _fvQueryString (\ s a -> s{_fvQueryString = a});++-- | A complex type that specifies how CloudFront handles cookies.+fvCookies :: Lens' ForwardedValues CookiePreference+fvCookies = lens _fvCookies (\ s a -> s{_fvCookies = a});++instance FromXML ForwardedValues where+        parseXML x+          = ForwardedValues' <$>+              (x .@? "Headers") <*> (x .@ "QueryString") <*>+                (x .@ "Cookies")++instance ToXML ForwardedValues where+        toXML ForwardedValues'{..}+          = mconcat+              ["Headers" @= _fvHeaders,+               "QueryString" @= _fvQueryString,+               "Cookies" @= _fvCookies]++-- | A complex type that controls the countries in which your content is+-- distributed. For more information about geo restriction, go to+-- Customizing Error Responses in the Amazon CloudFront Developer Guide.+-- CloudFront determines the location of your users using MaxMind GeoIP+-- databases. For information about the accuracy of these databases, see+-- How accurate are your GeoIP databases? on the MaxMind website.+--+-- /See:/ 'geoRestriction' smart constructor.+data GeoRestriction = GeoRestriction'+    { _grItems           :: !(Maybe [Text])+    , _grRestrictionType :: !GeoRestrictionType+    , _grQuantity        :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GeoRestriction' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'grItems'+--+-- * 'grRestrictionType'+--+-- * 'grQuantity'+geoRestriction+    :: GeoRestrictionType -- ^ 'grRestrictionType'+    -> Int -- ^ 'grQuantity'+    -> GeoRestriction+geoRestriction pRestrictionType_ pQuantity_ =+    GeoRestriction'+    { _grItems = Nothing+    , _grRestrictionType = pRestrictionType_+    , _grQuantity = pQuantity_+    }++-- | A complex type that contains a Location element for each country in+-- which you want CloudFront either to distribute your content (whitelist)+-- or not distribute your content (blacklist). The Location element is a+-- two-letter, uppercase country code for a country that you want to+-- include in your blacklist or whitelist. Include one Location element for+-- each country. CloudFront and MaxMind both use ISO 3166 country codes.+-- For the current list of countries and the corresponding codes, see ISO+-- 3166-1-alpha-2 code on the International Organization for+-- Standardization website. You can also refer to the country list in the+-- CloudFront console, which includes both country names and codes.+grItems :: Lens' GeoRestriction [Text]+grItems = lens _grItems (\ s a -> s{_grItems = a}) . _Default . _Coerce;++-- | The method that you want to use to restrict distribution of your content+-- by country: - none: No geo restriction is enabled, meaning access to+-- content is not restricted by client geo location. - blacklist: The+-- Location elements specify the countries in which you do not want+-- CloudFront to distribute your content. - whitelist: The Location+-- elements specify the countries in which you want CloudFront to+-- distribute your content.+grRestrictionType :: Lens' GeoRestriction GeoRestrictionType+grRestrictionType = lens _grRestrictionType (\ s a -> s{_grRestrictionType = a});++-- | When geo restriction is enabled, this is the number of countries in your+-- whitelist or blacklist. Otherwise, when it is not enabled, Quantity is+-- 0, and you can omit Items.+grQuantity :: Lens' GeoRestriction Int+grQuantity = lens _grQuantity (\ s a -> s{_grQuantity = a});++instance FromXML GeoRestriction where+        parseXML x+          = GeoRestriction' <$>+              (x .@? "Items" .!@ mempty >>=+                 may (parseXMLList "Location"))+                <*> (x .@ "RestrictionType")+                <*> (x .@ "Quantity")++instance ToXML GeoRestriction where+        toXML GeoRestriction'{..}+          = mconcat+              ["Items" @=+                 toXML (toXMLList "Location" <$> _grItems),+               "RestrictionType" @= _grRestrictionType,+               "Quantity" @= _grQuantity]++-- | A complex type that specifies the headers that you want CloudFront to+-- forward to the origin for this cache behavior. For the headers that you+-- specify, CloudFront also caches separate versions of a given object+-- based on the header values in viewer requests; this is known as varying+-- on headers. For example, suppose viewer requests for logo.jpg contain a+-- custom Product header that has a value of either Acme or Apex, and you+-- configure CloudFront to vary on the Product header. CloudFront forwards+-- the Product header to the origin and caches the response from the origin+-- once for each header value.+--+-- /See:/ 'headers' smart constructor.+data Headers = Headers'+    { _hItems    :: !(Maybe [Text])+    , _hQuantity :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Headers' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hItems'+--+-- * 'hQuantity'+headers+    :: Int -- ^ 'hQuantity'+    -> Headers+headers pQuantity_ =+    Headers'+    { _hItems = Nothing+    , _hQuantity = pQuantity_+    }++-- | Optional: A complex type that contains a Name element for each header+-- that you want CloudFront to forward to the origin and to vary on for+-- this cache behavior. If Quantity is 0, omit Items.+hItems :: Lens' Headers [Text]+hItems = lens _hItems (\ s a -> s{_hItems = a}) . _Default . _Coerce;++-- | The number of different headers that you want CloudFront to forward to+-- the origin and to vary on for this cache behavior. The maximum number of+-- headers that you can specify by name is 10. If you want CloudFront to+-- forward all headers to the origin and vary on all of them, specify 1 for+-- Quantity and * for Name. If you don\'t want CloudFront to forward any+-- additional headers to the origin or to vary on any headers, specify 0+-- for Quantity and omit Items.+hQuantity :: Lens' Headers Int+hQuantity = lens _hQuantity (\ s a -> s{_hQuantity = a});++instance FromXML Headers where+        parseXML x+          = Headers' <$>+              (x .@? "Items" .!@ mempty >>=+                 may (parseXMLList "Name"))+                <*> (x .@ "Quantity")++instance ToXML Headers where+        toXML Headers'{..}+          = mconcat+              ["Items" @= toXML (toXMLList "Name" <$> _hItems),+               "Quantity" @= _hQuantity]++-- | An invalidation.+--+-- /See:/ 'invalidation' smart constructor.+data Invalidation = Invalidation'+    { _iId                :: !Text+    , _iStatus            :: !Text+    , _iCreateTime        :: !ISO8601+    , _iInvalidationBatch :: !InvalidationBatch+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Invalidation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iId'+--+-- * 'iStatus'+--+-- * 'iCreateTime'+--+-- * 'iInvalidationBatch'+invalidation+    :: Text -- ^ 'iId'+    -> Text -- ^ 'iStatus'+    -> UTCTime -- ^ 'iCreateTime'+    -> InvalidationBatch -- ^ 'iInvalidationBatch'+    -> Invalidation+invalidation pId_ pStatus_ pCreateTime_ pInvalidationBatch_ =+    Invalidation'+    { _iId = pId_+    , _iStatus = pStatus_+    , _iCreateTime = _Time # pCreateTime_+    , _iInvalidationBatch = pInvalidationBatch_+    }++-- | The identifier for the invalidation request. For example:+-- IDFDVBD632BHDS5.+iId :: Lens' Invalidation Text+iId = lens _iId (\ s a -> s{_iId = a});++-- | The status of the invalidation request. When the invalidation batch is+-- finished, the status is Completed.+iStatus :: Lens' Invalidation Text+iStatus = lens _iStatus (\ s a -> s{_iStatus = a});++-- | The date and time the invalidation request was first made.+iCreateTime :: Lens' Invalidation UTCTime+iCreateTime = lens _iCreateTime (\ s a -> s{_iCreateTime = a}) . _Time;++-- | The current invalidation information for the batch request.+iInvalidationBatch :: Lens' Invalidation InvalidationBatch+iInvalidationBatch = lens _iInvalidationBatch (\ s a -> s{_iInvalidationBatch = a});++instance FromXML Invalidation where+        parseXML x+          = Invalidation' <$>+              (x .@ "Id") <*> (x .@ "Status") <*>+                (x .@ "CreateTime")+                <*> (x .@ "InvalidationBatch")++-- | An invalidation batch.+--+-- /See:/ 'invalidationBatch' smart constructor.+data InvalidationBatch = InvalidationBatch'+    { _ibPaths           :: !Paths+    , _ibCallerReference :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InvalidationBatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ibPaths'+--+-- * 'ibCallerReference'+invalidationBatch+    :: Paths -- ^ 'ibPaths'+    -> Text -- ^ 'ibCallerReference'+    -> InvalidationBatch+invalidationBatch pPaths_ pCallerReference_ =+    InvalidationBatch'+    { _ibPaths = pPaths_+    , _ibCallerReference = pCallerReference_+    }++-- | The path of the object to invalidate. The path is relative to the+-- distribution and must begin with a slash (\/). You must enclose each+-- invalidation object with the Path element tags. If the path includes+-- non-ASCII characters or unsafe characters as defined in RFC 1783+-- (http:\/\/www.ietf.org\/rfc\/rfc1738.txt), URL encode those characters.+-- Do not URL encode any other characters in the path, or CloudFront will+-- not invalidate the old version of the updated object.+ibPaths :: Lens' InvalidationBatch Paths+ibPaths = lens _ibPaths (\ s a -> s{_ibPaths = a});++-- | A unique name that ensures the request can\'t be replayed. If the+-- CallerReference is new (no matter the content of the Path object), a new+-- distribution is created. If the CallerReference is a value you already+-- sent in a previous request to create an invalidation batch, and the+-- content of each Path element is identical to the original request, the+-- response includes the same information returned to the original request.+-- If the CallerReference is a value you already sent in a previous request+-- to create a distribution but the content of any Path is different from+-- the original request, CloudFront returns an+-- InvalidationBatchAlreadyExists error.+ibCallerReference :: Lens' InvalidationBatch Text+ibCallerReference = lens _ibCallerReference (\ s a -> s{_ibCallerReference = a});++instance FromXML InvalidationBatch where+        parseXML x+          = InvalidationBatch' <$>+              (x .@ "Paths") <*> (x .@ "CallerReference")++instance ToXML InvalidationBatch where+        toXML InvalidationBatch'{..}+          = mconcat+              ["Paths" @= _ibPaths,+               "CallerReference" @= _ibCallerReference]++-- | An invalidation list.+--+-- /See:/ 'invalidationList' smart constructor.+data InvalidationList = InvalidationList'+    { _ilItems       :: !(Maybe [InvalidationSummary])+    , _ilNextMarker  :: !(Maybe Text)+    , _ilMarker      :: !Text+    , _ilMaxItems    :: !Int+    , _ilIsTruncated :: !Bool+    , _ilQuantity    :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InvalidationList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ilItems'+--+-- * 'ilNextMarker'+--+-- * 'ilMarker'+--+-- * 'ilMaxItems'+--+-- * 'ilIsTruncated'+--+-- * 'ilQuantity'+invalidationList+    :: Text -- ^ 'ilMarker'+    -> Int -- ^ 'ilMaxItems'+    -> Bool -- ^ 'ilIsTruncated'+    -> Int -- ^ 'ilQuantity'+    -> InvalidationList+invalidationList pMarker_ pMaxItems_ pIsTruncated_ pQuantity_ =+    InvalidationList'+    { _ilItems = Nothing+    , _ilNextMarker = Nothing+    , _ilMarker = pMarker_+    , _ilMaxItems = pMaxItems_+    , _ilIsTruncated = pIsTruncated_+    , _ilQuantity = pQuantity_+    }++-- | A complex type that contains one InvalidationSummary element for each+-- invalidation batch that was created by the current AWS account.+ilItems :: Lens' InvalidationList [InvalidationSummary]+ilItems = lens _ilItems (\ s a -> s{_ilItems = a}) . _Default . _Coerce;++-- | If IsTruncated is true, this element is present and contains the value+-- you can use for the Marker request parameter to continue listing your+-- invalidation batches where they left off.+ilNextMarker :: Lens' InvalidationList (Maybe Text)+ilNextMarker = lens _ilNextMarker (\ s a -> s{_ilNextMarker = a});++-- | The value you provided for the Marker request parameter.+ilMarker :: Lens' InvalidationList Text+ilMarker = lens _ilMarker (\ s a -> s{_ilMarker = a});++-- | The value you provided for the MaxItems request parameter.+ilMaxItems :: Lens' InvalidationList Int+ilMaxItems = lens _ilMaxItems (\ s a -> s{_ilMaxItems = a});++-- | A flag that indicates whether more invalidation batch requests remain to+-- be listed. If your results were truncated, you can make a follow-up+-- pagination request using the Marker request parameter to retrieve more+-- invalidation batches in the list.+ilIsTruncated :: Lens' InvalidationList Bool+ilIsTruncated = lens _ilIsTruncated (\ s a -> s{_ilIsTruncated = a});++-- | The number of invalidation batches that were created by the current AWS+-- account.+ilQuantity :: Lens' InvalidationList Int+ilQuantity = lens _ilQuantity (\ s a -> s{_ilQuantity = a});++instance FromXML InvalidationList where+        parseXML x+          = InvalidationList' <$>+              (x .@? "Items" .!@ mempty >>=+                 may (parseXMLList "InvalidationSummary"))+                <*> (x .@? "NextMarker")+                <*> (x .@ "Marker")+                <*> (x .@ "MaxItems")+                <*> (x .@ "IsTruncated")+                <*> (x .@ "Quantity")++-- | Summary of an invalidation request.+--+-- /See:/ 'invalidationSummary' smart constructor.+data InvalidationSummary = InvalidationSummary'+    { _isId         :: !Text+    , _isCreateTime :: !ISO8601+    , _isStatus     :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InvalidationSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'isId'+--+-- * 'isCreateTime'+--+-- * 'isStatus'+invalidationSummary+    :: Text -- ^ 'isId'+    -> UTCTime -- ^ 'isCreateTime'+    -> Text -- ^ 'isStatus'+    -> InvalidationSummary+invalidationSummary pId_ pCreateTime_ pStatus_ =+    InvalidationSummary'+    { _isId = pId_+    , _isCreateTime = _Time # pCreateTime_+    , _isStatus = pStatus_+    }++-- | The unique ID for an invalidation request.+isId :: Lens' InvalidationSummary Text+isId = lens _isId (\ s a -> s{_isId = a});++-- | Undocumented member.+isCreateTime :: Lens' InvalidationSummary UTCTime+isCreateTime = lens _isCreateTime (\ s a -> s{_isCreateTime = a}) . _Time;++-- | The status of an invalidation request.+isStatus :: Lens' InvalidationSummary Text+isStatus = lens _isStatus (\ s a -> s{_isStatus = a});++instance FromXML InvalidationSummary where+        parseXML x+          = InvalidationSummary' <$>+              (x .@ "Id") <*> (x .@ "CreateTime") <*>+                (x .@ "Status")++-- | A complex type that lists the active CloudFront key pairs, if any, that+-- are associated with AwsAccountNumber.+--+-- /See:/ 'keyPairIds' smart constructor.+data KeyPairIds = KeyPairIds'+    { _kpiItems    :: !(Maybe [Text])+    , _kpiQuantity :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'KeyPairIds' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'kpiItems'+--+-- * 'kpiQuantity'+keyPairIds+    :: Int -- ^ 'kpiQuantity'+    -> KeyPairIds+keyPairIds pQuantity_ =+    KeyPairIds'+    { _kpiItems = Nothing+    , _kpiQuantity = pQuantity_+    }++-- | A complex type that lists the active CloudFront key pairs, if any, that+-- are associated with AwsAccountNumber.+kpiItems :: Lens' KeyPairIds [Text]+kpiItems = lens _kpiItems (\ s a -> s{_kpiItems = a}) . _Default . _Coerce;++-- | The number of active CloudFront key pairs for AwsAccountNumber.+kpiQuantity :: Lens' KeyPairIds Int+kpiQuantity = lens _kpiQuantity (\ s a -> s{_kpiQuantity = a});++instance FromXML KeyPairIds where+        parseXML x+          = KeyPairIds' <$>+              (x .@? "Items" .!@ mempty >>=+                 may (parseXMLList "KeyPairId"))+                <*> (x .@ "Quantity")++-- | A complex type that controls whether access logs are written for the+-- distribution.+--+-- /See:/ 'loggingConfig' smart constructor.+data LoggingConfig = LoggingConfig'+    { _lcEnabled        :: !Bool+    , _lcIncludeCookies :: !Bool+    , _lcBucket         :: !Text+    , _lcPrefix         :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'LoggingConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lcEnabled'+--+-- * 'lcIncludeCookies'+--+-- * 'lcBucket'+--+-- * 'lcPrefix'+loggingConfig+    :: Bool -- ^ 'lcEnabled'+    -> Bool -- ^ 'lcIncludeCookies'+    -> Text -- ^ 'lcBucket'+    -> Text -- ^ 'lcPrefix'+    -> LoggingConfig+loggingConfig pEnabled_ pIncludeCookies_ pBucket_ pPrefix_ =+    LoggingConfig'+    { _lcEnabled = pEnabled_+    , _lcIncludeCookies = pIncludeCookies_+    , _lcBucket = pBucket_+    , _lcPrefix = pPrefix_+    }++-- | Specifies whether you want CloudFront to save access logs to an Amazon+-- S3 bucket. If you do not want to enable logging when you create a+-- distribution or if you want to disable logging for an existing+-- distribution, specify false for Enabled, and specify empty Bucket and+-- Prefix elements. If you specify false for Enabled but you specify values+-- for Bucket, prefix and IncludeCookies, the values are automatically+-- deleted.+lcEnabled :: Lens' LoggingConfig Bool+lcEnabled = lens _lcEnabled (\ s a -> s{_lcEnabled = a});++-- | Specifies whether you want CloudFront to include cookies in access logs,+-- specify true for IncludeCookies. If you choose to include cookies in+-- logs, CloudFront logs all cookies regardless of how you configure the+-- cache behaviors for this distribution. If you do not want to include+-- cookies when you create a distribution or if you want to disable include+-- cookies for an existing distribution, specify false for IncludeCookies.+lcIncludeCookies :: Lens' LoggingConfig Bool+lcIncludeCookies = lens _lcIncludeCookies (\ s a -> s{_lcIncludeCookies = a});++-- | The Amazon S3 bucket to store the access logs in, for example,+-- myawslogbucket.s3.amazonaws.com.+lcBucket :: Lens' LoggingConfig Text+lcBucket = lens _lcBucket (\ s a -> s{_lcBucket = a});++-- | An optional string that you want CloudFront to prefix to the access log+-- filenames for this distribution, for example, myprefix\/. If you want to+-- enable logging, but you do not want to specify a prefix, you still must+-- include an empty Prefix element in the Logging element.+lcPrefix :: Lens' LoggingConfig Text+lcPrefix = lens _lcPrefix (\ s a -> s{_lcPrefix = a});++instance FromXML LoggingConfig where+        parseXML x+          = LoggingConfig' <$>+              (x .@ "Enabled") <*> (x .@ "IncludeCookies") <*>+                (x .@ "Bucket")+                <*> (x .@ "Prefix")++instance ToXML LoggingConfig where+        toXML LoggingConfig'{..}+          = mconcat+              ["Enabled" @= _lcEnabled,+               "IncludeCookies" @= _lcIncludeCookies,+               "Bucket" @= _lcBucket, "Prefix" @= _lcPrefix]++-- | A complex type that describes the Amazon S3 bucket or the HTTP server+-- (for example, a web server) from which CloudFront gets your files.You+-- must create at least one origin.+--+-- /See:/ 'origin' smart constructor.+data Origin = Origin'+    { _oCustomOriginConfig :: !(Maybe CustomOriginConfig)+    , _oS3OriginConfig     :: !(Maybe S3OriginConfig)+    , _oOriginPath         :: !(Maybe Text)+    , _oId                 :: !Text+    , _oDomainName         :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Origin' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oCustomOriginConfig'+--+-- * 'oS3OriginConfig'+--+-- * 'oOriginPath'+--+-- * 'oId'+--+-- * 'oDomainName'+origin+    :: Text -- ^ 'oId'+    -> Text -- ^ 'oDomainName'+    -> Origin+origin pId_ pDomainName_ =+    Origin'+    { _oCustomOriginConfig = Nothing+    , _oS3OriginConfig = Nothing+    , _oOriginPath = Nothing+    , _oId = pId_+    , _oDomainName = pDomainName_+    }++-- | A complex type that contains information about a custom origin. If the+-- origin is an Amazon S3 bucket, use the S3OriginConfig element instead.+oCustomOriginConfig :: Lens' Origin (Maybe CustomOriginConfig)+oCustomOriginConfig = lens _oCustomOriginConfig (\ s a -> s{_oCustomOriginConfig = a});++-- | A complex type that contains information about the Amazon S3 origin. If+-- the origin is a custom origin, use the CustomOriginConfig element+-- instead.+oS3OriginConfig :: Lens' Origin (Maybe S3OriginConfig)+oS3OriginConfig = lens _oS3OriginConfig (\ s a -> s{_oS3OriginConfig = a});++-- | An optional element that causes CloudFront to request your content from+-- a directory in your Amazon S3 bucket or your custom origin. When you+-- include the OriginPath element, specify the directory name, beginning+-- with a \/. CloudFront appends the directory name to the value of+-- DomainName.+oOriginPath :: Lens' Origin (Maybe Text)+oOriginPath = lens _oOriginPath (\ s a -> s{_oOriginPath = a});++-- | A unique identifier for the origin. The value of Id must be unique+-- within the distribution. You use the value of Id when you create a cache+-- behavior. The Id identifies the origin that CloudFront routes a request+-- to when the request matches the path pattern for that cache behavior.+oId :: Lens' Origin Text+oId = lens _oId (\ s a -> s{_oId = a});++-- | Amazon S3 origins: The DNS name of the Amazon S3 bucket from which you+-- want CloudFront to get objects for this origin, for example,+-- myawsbucket.s3.amazonaws.com. Custom origins: The DNS domain name for+-- the HTTP server from which you want CloudFront to get objects for this+-- origin, for example, www.example.com.+oDomainName :: Lens' Origin Text+oDomainName = lens _oDomainName (\ s a -> s{_oDomainName = a});++instance FromXML Origin where+        parseXML x+          = Origin' <$>+              (x .@? "CustomOriginConfig") <*>+                (x .@? "S3OriginConfig")+                <*> (x .@? "OriginPath")+                <*> (x .@ "Id")+                <*> (x .@ "DomainName")++instance ToXML Origin where+        toXML Origin'{..}+          = mconcat+              ["CustomOriginConfig" @= _oCustomOriginConfig,+               "S3OriginConfig" @= _oS3OriginConfig,+               "OriginPath" @= _oOriginPath, "Id" @= _oId,+               "DomainName" @= _oDomainName]++-- | A complex type that contains information about origins for this+-- distribution.+--+-- /See:/ 'origins' smart constructor.+data Origins = Origins'+    { _oItems    :: !(Maybe (List1 Origin))+    , _oQuantity :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Origins' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oItems'+--+-- * 'oQuantity'+origins+    :: Int -- ^ 'oQuantity'+    -> Origins+origins pQuantity_ =+    Origins'+    { _oItems = Nothing+    , _oQuantity = pQuantity_+    }++-- | A complex type that contains origins for this distribution.+oItems :: Lens' Origins (Maybe (NonEmpty Origin))+oItems = lens _oItems (\ s a -> s{_oItems = a}) . mapping _List1;++-- | The number of origins for this distribution.+oQuantity :: Lens' Origins Int+oQuantity = lens _oQuantity (\ s a -> s{_oQuantity = a});++instance FromXML Origins where+        parseXML x+          = Origins' <$>+              (x .@? "Items" .!@ mempty >>=+                 may (parseXMLList1 "Origin"))+                <*> (x .@ "Quantity")++instance ToXML Origins where+        toXML Origins'{..}+          = mconcat+              ["Items" @= toXML (toXMLList "Origin" <$> _oItems),+               "Quantity" @= _oQuantity]++-- | A complex type that contains information about the objects that you want+-- to invalidate.+--+-- /See:/ 'paths' smart constructor.+data Paths = Paths'+    { _pItems    :: !(Maybe [Text])+    , _pQuantity :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Paths' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pItems'+--+-- * 'pQuantity'+paths+    :: Int -- ^ 'pQuantity'+    -> Paths+paths pQuantity_ =+    Paths'+    { _pItems = Nothing+    , _pQuantity = pQuantity_+    }++-- | A complex type that contains a list of the objects that you want to+-- invalidate.+pItems :: Lens' Paths [Text]+pItems = lens _pItems (\ s a -> s{_pItems = a}) . _Default . _Coerce;++-- | The number of objects that you want to invalidate.+pQuantity :: Lens' Paths Int+pQuantity = lens _pQuantity (\ s a -> s{_pQuantity = a});++instance FromXML Paths where+        parseXML x+          = Paths' <$>+              (x .@? "Items" .!@ mempty >>=+                 may (parseXMLList "Path"))+                <*> (x .@ "Quantity")++instance ToXML Paths where+        toXML Paths'{..}+          = mconcat+              ["Items" @= toXML (toXMLList "Path" <$> _pItems),+               "Quantity" @= _pQuantity]++-- | A complex type that identifies ways in which you want to restrict+-- distribution of your content.+--+-- /See:/ 'restrictions' smart constructor.+newtype Restrictions = Restrictions'+    { _rGeoRestriction :: GeoRestriction+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Restrictions' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rGeoRestriction'+restrictions+    :: GeoRestriction -- ^ 'rGeoRestriction'+    -> Restrictions+restrictions pGeoRestriction_ =+    Restrictions'+    { _rGeoRestriction = pGeoRestriction_+    }++-- | Undocumented member.+rGeoRestriction :: Lens' Restrictions GeoRestriction+rGeoRestriction = lens _rGeoRestriction (\ s a -> s{_rGeoRestriction = a});++instance FromXML Restrictions where+        parseXML x+          = Restrictions' <$> (x .@ "GeoRestriction")++instance ToXML Restrictions where+        toXML Restrictions'{..}+          = mconcat ["GeoRestriction" @= _rGeoRestriction]++-- | A complex type that contains information about the Amazon S3 bucket from+-- which you want CloudFront to get your media files for distribution.+--+-- /See:/ 's3Origin' smart constructor.+data S3Origin = S3Origin'+    { _soDomainName           :: !Text+    , _soOriginAccessIdentity :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'S3Origin' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'soDomainName'+--+-- * 'soOriginAccessIdentity'+s3Origin+    :: Text -- ^ 'soDomainName'+    -> Text -- ^ 'soOriginAccessIdentity'+    -> S3Origin+s3Origin pDomainName_ pOriginAccessIdentity_ =+    S3Origin'+    { _soDomainName = pDomainName_+    , _soOriginAccessIdentity = pOriginAccessIdentity_+    }++-- | The DNS name of the S3 origin.+soDomainName :: Lens' S3Origin Text+soDomainName = lens _soDomainName (\ s a -> s{_soDomainName = a});++-- | Your S3 origin\'s origin access identity.+soOriginAccessIdentity :: Lens' S3Origin Text+soOriginAccessIdentity = lens _soOriginAccessIdentity (\ s a -> s{_soOriginAccessIdentity = a});++instance FromXML S3Origin where+        parseXML x+          = S3Origin' <$>+              (x .@ "DomainName") <*> (x .@ "OriginAccessIdentity")++instance ToXML S3Origin where+        toXML S3Origin'{..}+          = mconcat+              ["DomainName" @= _soDomainName,+               "OriginAccessIdentity" @= _soOriginAccessIdentity]++-- | A complex type that contains information about the Amazon S3 origin. If+-- the origin is a custom origin, use the CustomOriginConfig element+-- instead.+--+-- /See:/ 's3OriginConfig' smart constructor.+newtype S3OriginConfig = S3OriginConfig'+    { _socOriginAccessIdentity :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'S3OriginConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'socOriginAccessIdentity'+s3OriginConfig+    :: Text -- ^ 'socOriginAccessIdentity'+    -> S3OriginConfig+s3OriginConfig pOriginAccessIdentity_ =+    S3OriginConfig'+    { _socOriginAccessIdentity = pOriginAccessIdentity_+    }++-- | The CloudFront origin access identity to associate with the origin. Use+-- an origin access identity to configure the origin so that end users can+-- only access objects in an Amazon S3 bucket through CloudFront. If you+-- want end users to be able to access objects using either the CloudFront+-- URL or the Amazon S3 URL, specify an empty OriginAccessIdentity element.+-- To delete the origin access identity from an existing distribution,+-- update the distribution configuration and include an empty+-- OriginAccessIdentity element. To replace the origin access identity,+-- update the distribution configuration and specify the new origin access+-- identity. Use the format origin-access-identity\/cloudfront\/Id where Id+-- is the value that CloudFront returned in the Id element when you created+-- the origin access identity.+socOriginAccessIdentity :: Lens' S3OriginConfig Text+socOriginAccessIdentity = lens _socOriginAccessIdentity (\ s a -> s{_socOriginAccessIdentity = a});++instance FromXML S3OriginConfig where+        parseXML x+          = S3OriginConfig' <$> (x .@ "OriginAccessIdentity")++instance ToXML S3OriginConfig where+        toXML S3OriginConfig'{..}+          = mconcat+              ["OriginAccessIdentity" @= _socOriginAccessIdentity]++-- | A complex type that lists the AWS accounts that were included in the+-- TrustedSigners complex type, as well as their active CloudFront key pair+-- IDs, if any.+--+-- /See:/ 'signer' smart constructor.+data Signer = Signer'+    { _sAWSAccountNumber :: !(Maybe Text)+    , _sKeyPairIds       :: !(Maybe KeyPairIds)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Signer' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sAWSAccountNumber'+--+-- * 'sKeyPairIds'+signer+    :: Signer+signer =+    Signer'+    { _sAWSAccountNumber = Nothing+    , _sKeyPairIds = Nothing+    }++-- | Specifies an AWS account that can create signed URLs. Values: self,+-- which indicates that the AWS account that was used to create the+-- distribution can created signed URLs, or an AWS account number. Omit the+-- dashes in the account number.+sAWSAccountNumber :: Lens' Signer (Maybe Text)+sAWSAccountNumber = lens _sAWSAccountNumber (\ s a -> s{_sAWSAccountNumber = a});++-- | A complex type that lists the active CloudFront key pairs, if any, that+-- are associated with AwsAccountNumber.+sKeyPairIds :: Lens' Signer (Maybe KeyPairIds)+sKeyPairIds = lens _sKeyPairIds (\ s a -> s{_sKeyPairIds = a});++instance FromXML Signer where+        parseXML x+          = Signer' <$>+              (x .@? "AwsAccountNumber") <*> (x .@? "KeyPairIds")++-- | A streaming distribution.+--+-- /See:/ 'streamingDistribution' smart constructor.+data StreamingDistribution = StreamingDistribution'+    { _sdLastModifiedTime            :: !(Maybe ISO8601)+    , _sdId                          :: !Text+    , _sdStatus                      :: !Text+    , _sdDomainName                  :: !Text+    , _sdActiveTrustedSigners        :: !ActiveTrustedSigners+    , _sdStreamingDistributionConfig :: !StreamingDistributionConfig+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'StreamingDistribution' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdLastModifiedTime'+--+-- * 'sdId'+--+-- * 'sdStatus'+--+-- * 'sdDomainName'+--+-- * 'sdActiveTrustedSigners'+--+-- * 'sdStreamingDistributionConfig'+streamingDistribution+    :: Text -- ^ 'sdId'+    -> Text -- ^ 'sdStatus'+    -> Text -- ^ 'sdDomainName'+    -> ActiveTrustedSigners -- ^ 'sdActiveTrustedSigners'+    -> StreamingDistributionConfig -- ^ 'sdStreamingDistributionConfig'+    -> StreamingDistribution+streamingDistribution pId_ pStatus_ pDomainName_ pActiveTrustedSigners_ pStreamingDistributionConfig_ =+    StreamingDistribution'+    { _sdLastModifiedTime = Nothing+    , _sdId = pId_+    , _sdStatus = pStatus_+    , _sdDomainName = pDomainName_+    , _sdActiveTrustedSigners = pActiveTrustedSigners_+    , _sdStreamingDistributionConfig = pStreamingDistributionConfig_+    }++-- | The date and time the distribution was last modified.+sdLastModifiedTime :: Lens' StreamingDistribution (Maybe UTCTime)+sdLastModifiedTime = lens _sdLastModifiedTime (\ s a -> s{_sdLastModifiedTime = a}) . mapping _Time;++-- | The identifier for the streaming distribution. For example:+-- EGTXBD79H29TRA8.+sdId :: Lens' StreamingDistribution Text+sdId = lens _sdId (\ s a -> s{_sdId = a});++-- | The current status of the streaming distribution. When the status is+-- Deployed, the distribution\'s information is fully propagated throughout+-- the Amazon CloudFront system.+sdStatus :: Lens' StreamingDistribution Text+sdStatus = lens _sdStatus (\ s a -> s{_sdStatus = a});++-- | The domain name corresponding to the streaming distribution. For+-- example: s5c39gqb8ow64r.cloudfront.net.+sdDomainName :: Lens' StreamingDistribution Text+sdDomainName = lens _sdDomainName (\ s a -> s{_sdDomainName = a});++-- | CloudFront automatically adds this element to the response only if+-- you\'ve set up the distribution to serve private content with signed+-- URLs. The element lists the key pair IDs that CloudFront is aware of for+-- each trusted signer. The Signer child element lists the AWS account+-- number of the trusted signer (or an empty Self element if the signer is+-- you). The Signer element also includes the IDs of any active key pairs+-- associated with the trusted signer\'s AWS account. If no KeyPairId+-- element appears for a Signer, that signer can\'t create working signed+-- URLs.+sdActiveTrustedSigners :: Lens' StreamingDistribution ActiveTrustedSigners+sdActiveTrustedSigners = lens _sdActiveTrustedSigners (\ s a -> s{_sdActiveTrustedSigners = a});++-- | The current configuration information for the streaming distribution.+sdStreamingDistributionConfig :: Lens' StreamingDistribution StreamingDistributionConfig+sdStreamingDistributionConfig = lens _sdStreamingDistributionConfig (\ s a -> s{_sdStreamingDistributionConfig = a});++instance FromXML StreamingDistribution where+        parseXML x+          = StreamingDistribution' <$>+              (x .@? "LastModifiedTime") <*> (x .@ "Id") <*>+                (x .@ "Status")+                <*> (x .@ "DomainName")+                <*> (x .@ "ActiveTrustedSigners")+                <*> (x .@ "StreamingDistributionConfig")++-- | The configuration for the streaming distribution.+--+-- /See:/ 'streamingDistributionConfig' smart constructor.+data StreamingDistributionConfig = StreamingDistributionConfig'+    { _sdcAliases         :: !(Maybe Aliases)+    , _sdcPriceClass      :: !(Maybe PriceClass)+    , _sdcLogging         :: !(Maybe StreamingLoggingConfig)+    , _sdcCallerReference :: !Text+    , _sdcS3Origin        :: !S3Origin+    , _sdcComment         :: !Text+    , _sdcTrustedSigners  :: !TrustedSigners+    , _sdcEnabled         :: !Bool+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'StreamingDistributionConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdcAliases'+--+-- * 'sdcPriceClass'+--+-- * 'sdcLogging'+--+-- * 'sdcCallerReference'+--+-- * 'sdcS3Origin'+--+-- * 'sdcComment'+--+-- * 'sdcTrustedSigners'+--+-- * 'sdcEnabled'+streamingDistributionConfig+    :: Text -- ^ 'sdcCallerReference'+    -> S3Origin -- ^ 'sdcS3Origin'+    -> Text -- ^ 'sdcComment'+    -> TrustedSigners -- ^ 'sdcTrustedSigners'+    -> Bool -- ^ 'sdcEnabled'+    -> StreamingDistributionConfig+streamingDistributionConfig pCallerReference_ pS3Origin_ pComment_ pTrustedSigners_ pEnabled_ =+    StreamingDistributionConfig'+    { _sdcAliases = Nothing+    , _sdcPriceClass = Nothing+    , _sdcLogging = Nothing+    , _sdcCallerReference = pCallerReference_+    , _sdcS3Origin = pS3Origin_+    , _sdcComment = pComment_+    , _sdcTrustedSigners = pTrustedSigners_+    , _sdcEnabled = pEnabled_+    }++-- | A complex type that contains information about CNAMEs (alternate domain+-- names), if any, for this streaming distribution.+sdcAliases :: Lens' StreamingDistributionConfig (Maybe Aliases)+sdcAliases = lens _sdcAliases (\ s a -> s{_sdcAliases = a});++-- | A complex type that contains information about price class for this+-- streaming distribution.+sdcPriceClass :: Lens' StreamingDistributionConfig (Maybe PriceClass)+sdcPriceClass = lens _sdcPriceClass (\ s a -> s{_sdcPriceClass = a});++-- | A complex type that controls whether access logs are written for the+-- streaming distribution.+sdcLogging :: Lens' StreamingDistributionConfig (Maybe StreamingLoggingConfig)+sdcLogging = lens _sdcLogging (\ s a -> s{_sdcLogging = a});++-- | A unique number that ensures the request can\'t be replayed. If the+-- CallerReference is new (no matter the content of the+-- StreamingDistributionConfig object), a new streaming distribution is+-- created. If the CallerReference is a value you already sent in a+-- previous request to create a streaming distribution, and the content of+-- the StreamingDistributionConfig is identical to the original request+-- (ignoring white space), the response includes the same information+-- returned to the original request. If the CallerReference is a value you+-- already sent in a previous request to create a streaming distribution+-- but the content of the StreamingDistributionConfig is different from the+-- original request, CloudFront returns a DistributionAlreadyExists error.+sdcCallerReference :: Lens' StreamingDistributionConfig Text+sdcCallerReference = lens _sdcCallerReference (\ s a -> s{_sdcCallerReference = a});++-- | A complex type that contains information about the Amazon S3 bucket from+-- which you want CloudFront to get your media files for distribution.+sdcS3Origin :: Lens' StreamingDistributionConfig S3Origin+sdcS3Origin = lens _sdcS3Origin (\ s a -> s{_sdcS3Origin = a});++-- | Any comments you want to include about the streaming distribution.+sdcComment :: Lens' StreamingDistributionConfig Text+sdcComment = lens _sdcComment (\ s a -> s{_sdcComment = a});++-- | A complex type that specifies the AWS accounts, if any, that you want to+-- allow to create signed URLs for private content. If you want to require+-- signed URLs in requests for objects in the target origin that match the+-- PathPattern for this cache behavior, specify true for Enabled, and+-- specify the applicable values for Quantity and Items. For more+-- information, go to Using a Signed URL to Serve Private Content in the+-- Amazon CloudFront Developer Guide. If you don\'t want to require signed+-- URLs in requests for objects that match PathPattern, specify false for+-- Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or+-- more trusted signers, change Enabled to true (if it\'s currently false),+-- change Quantity as applicable, and specify all of the trusted signers+-- that you want to include in the updated distribution.+sdcTrustedSigners :: Lens' StreamingDistributionConfig TrustedSigners+sdcTrustedSigners = lens _sdcTrustedSigners (\ s a -> s{_sdcTrustedSigners = a});++-- | Whether the streaming distribution is enabled to accept end user+-- requests for content.+sdcEnabled :: Lens' StreamingDistributionConfig Bool+sdcEnabled = lens _sdcEnabled (\ s a -> s{_sdcEnabled = a});++instance FromXML StreamingDistributionConfig where+        parseXML x+          = StreamingDistributionConfig' <$>+              (x .@? "Aliases") <*> (x .@? "PriceClass") <*>+                (x .@? "Logging")+                <*> (x .@ "CallerReference")+                <*> (x .@ "S3Origin")+                <*> (x .@ "Comment")+                <*> (x .@ "TrustedSigners")+                <*> (x .@ "Enabled")++instance ToXML StreamingDistributionConfig where+        toXML StreamingDistributionConfig'{..}+          = mconcat+              ["Aliases" @= _sdcAliases,+               "PriceClass" @= _sdcPriceClass,+               "Logging" @= _sdcLogging,+               "CallerReference" @= _sdcCallerReference,+               "S3Origin" @= _sdcS3Origin, "Comment" @= _sdcComment,+               "TrustedSigners" @= _sdcTrustedSigners,+               "Enabled" @= _sdcEnabled]++-- | A streaming distribution list.+--+-- /See:/ 'streamingDistributionList' smart constructor.+data StreamingDistributionList = StreamingDistributionList'+    { _sdlItems       :: !(Maybe [StreamingDistributionSummary])+    , _sdlNextMarker  :: !(Maybe Text)+    , _sdlMarker      :: !Text+    , _sdlMaxItems    :: !Int+    , _sdlIsTruncated :: !Bool+    , _sdlQuantity    :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'StreamingDistributionList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdlItems'+--+-- * 'sdlNextMarker'+--+-- * 'sdlMarker'+--+-- * 'sdlMaxItems'+--+-- * 'sdlIsTruncated'+--+-- * 'sdlQuantity'+streamingDistributionList+    :: Text -- ^ 'sdlMarker'+    -> Int -- ^ 'sdlMaxItems'+    -> Bool -- ^ 'sdlIsTruncated'+    -> Int -- ^ 'sdlQuantity'+    -> StreamingDistributionList+streamingDistributionList pMarker_ pMaxItems_ pIsTruncated_ pQuantity_ =+    StreamingDistributionList'+    { _sdlItems = Nothing+    , _sdlNextMarker = Nothing+    , _sdlMarker = pMarker_+    , _sdlMaxItems = pMaxItems_+    , _sdlIsTruncated = pIsTruncated_+    , _sdlQuantity = pQuantity_+    }++-- | A complex type that contains one StreamingDistributionSummary element+-- for each distribution that was created by the current AWS account.+sdlItems :: Lens' StreamingDistributionList [StreamingDistributionSummary]+sdlItems = lens _sdlItems (\ s a -> s{_sdlItems = a}) . _Default . _Coerce;++-- | If IsTruncated is true, this element is present and contains the value+-- you can use for the Marker request parameter to continue listing your+-- streaming distributions where they left off.+sdlNextMarker :: Lens' StreamingDistributionList (Maybe Text)+sdlNextMarker = lens _sdlNextMarker (\ s a -> s{_sdlNextMarker = a});++-- | The value you provided for the Marker request parameter.+sdlMarker :: Lens' StreamingDistributionList Text+sdlMarker = lens _sdlMarker (\ s a -> s{_sdlMarker = a});++-- | The value you provided for the MaxItems request parameter.+sdlMaxItems :: Lens' StreamingDistributionList Int+sdlMaxItems = lens _sdlMaxItems (\ s a -> s{_sdlMaxItems = a});++-- | A flag that indicates whether more streaming distributions remain to be+-- listed. If your results were truncated, you can make a follow-up+-- pagination request using the Marker request parameter to retrieve more+-- distributions in the list.+sdlIsTruncated :: Lens' StreamingDistributionList Bool+sdlIsTruncated = lens _sdlIsTruncated (\ s a -> s{_sdlIsTruncated = a});++-- | The number of streaming distributions that were created by the current+-- AWS account.+sdlQuantity :: Lens' StreamingDistributionList Int+sdlQuantity = lens _sdlQuantity (\ s a -> s{_sdlQuantity = a});++instance FromXML StreamingDistributionList where+        parseXML x+          = StreamingDistributionList' <$>+              (x .@? "Items" .!@ mempty >>=+                 may (parseXMLList "StreamingDistributionSummary"))+                <*> (x .@? "NextMarker")+                <*> (x .@ "Marker")+                <*> (x .@ "MaxItems")+                <*> (x .@ "IsTruncated")+                <*> (x .@ "Quantity")++-- | A summary of the information for an Amazon CloudFront streaming+-- distribution.+--+-- /See:/ 'streamingDistributionSummary' smart constructor.+data StreamingDistributionSummary = StreamingDistributionSummary'+    { _sdsId               :: !Text+    , _sdsStatus           :: !Text+    , _sdsLastModifiedTime :: !ISO8601+    , _sdsDomainName       :: !Text+    , _sdsS3Origin         :: !S3Origin+    , _sdsAliases          :: !Aliases+    , _sdsTrustedSigners   :: !TrustedSigners+    , _sdsComment          :: !Text+    , _sdsPriceClass       :: !PriceClass+    , _sdsEnabled          :: !Bool+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'StreamingDistributionSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdsId'+--+-- * 'sdsStatus'+--+-- * 'sdsLastModifiedTime'+--+-- * 'sdsDomainName'+--+-- * 'sdsS3Origin'+--+-- * 'sdsAliases'+--+-- * 'sdsTrustedSigners'+--+-- * 'sdsComment'+--+-- * 'sdsPriceClass'+--+-- * 'sdsEnabled'+streamingDistributionSummary+    :: Text -- ^ 'sdsId'+    -> Text -- ^ 'sdsStatus'+    -> UTCTime -- ^ 'sdsLastModifiedTime'+    -> Text -- ^ 'sdsDomainName'+    -> S3Origin -- ^ 'sdsS3Origin'+    -> Aliases -- ^ 'sdsAliases'+    -> TrustedSigners -- ^ 'sdsTrustedSigners'+    -> Text -- ^ 'sdsComment'+    -> PriceClass -- ^ 'sdsPriceClass'+    -> Bool -- ^ 'sdsEnabled'+    -> StreamingDistributionSummary+streamingDistributionSummary pId_ pStatus_ pLastModifiedTime_ pDomainName_ pS3Origin_ pAliases_ pTrustedSigners_ pComment_ pPriceClass_ pEnabled_ =+    StreamingDistributionSummary'+    { _sdsId = pId_+    , _sdsStatus = pStatus_+    , _sdsLastModifiedTime = _Time # pLastModifiedTime_+    , _sdsDomainName = pDomainName_+    , _sdsS3Origin = pS3Origin_+    , _sdsAliases = pAliases_+    , _sdsTrustedSigners = pTrustedSigners_+    , _sdsComment = pComment_+    , _sdsPriceClass = pPriceClass_+    , _sdsEnabled = pEnabled_+    }++-- | The identifier for the distribution. For example: EDFDVBD632BHDS5.+sdsId :: Lens' StreamingDistributionSummary Text+sdsId = lens _sdsId (\ s a -> s{_sdsId = a});++-- | Indicates the current status of the distribution. When the status is+-- Deployed, the distribution\'s information is fully propagated throughout+-- the Amazon CloudFront system.+sdsStatus :: Lens' StreamingDistributionSummary Text+sdsStatus = lens _sdsStatus (\ s a -> s{_sdsStatus = a});++-- | The date and time the distribution was last modified.+sdsLastModifiedTime :: Lens' StreamingDistributionSummary UTCTime+sdsLastModifiedTime = lens _sdsLastModifiedTime (\ s a -> s{_sdsLastModifiedTime = a}) . _Time;++-- | The domain name corresponding to the distribution. For example:+-- d604721fxaaqy9.cloudfront.net.+sdsDomainName :: Lens' StreamingDistributionSummary Text+sdsDomainName = lens _sdsDomainName (\ s a -> s{_sdsDomainName = a});++-- | A complex type that contains information about the Amazon S3 bucket from+-- which you want CloudFront to get your media files for distribution.+sdsS3Origin :: Lens' StreamingDistributionSummary S3Origin+sdsS3Origin = lens _sdsS3Origin (\ s a -> s{_sdsS3Origin = a});++-- | A complex type that contains information about CNAMEs (alternate domain+-- names), if any, for this streaming distribution.+sdsAliases :: Lens' StreamingDistributionSummary Aliases+sdsAliases = lens _sdsAliases (\ s a -> s{_sdsAliases = a});++-- | A complex type that specifies the AWS accounts, if any, that you want to+-- allow to create signed URLs for private content. If you want to require+-- signed URLs in requests for objects in the target origin that match the+-- PathPattern for this cache behavior, specify true for Enabled, and+-- specify the applicable values for Quantity and Items. For more+-- information, go to Using a Signed URL to Serve Private Content in the+-- Amazon CloudFront Developer Guide. If you don\'t want to require signed+-- URLs in requests for objects that match PathPattern, specify false for+-- Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or+-- more trusted signers, change Enabled to true (if it\'s currently false),+-- change Quantity as applicable, and specify all of the trusted signers+-- that you want to include in the updated distribution.+sdsTrustedSigners :: Lens' StreamingDistributionSummary TrustedSigners+sdsTrustedSigners = lens _sdsTrustedSigners (\ s a -> s{_sdsTrustedSigners = a});++-- | The comment originally specified when this distribution was created.+sdsComment :: Lens' StreamingDistributionSummary Text+sdsComment = lens _sdsComment (\ s a -> s{_sdsComment = a});++-- | Undocumented member.+sdsPriceClass :: Lens' StreamingDistributionSummary PriceClass+sdsPriceClass = lens _sdsPriceClass (\ s a -> s{_sdsPriceClass = a});++-- | Whether the distribution is enabled to accept end user requests for+-- content.+sdsEnabled :: Lens' StreamingDistributionSummary Bool+sdsEnabled = lens _sdsEnabled (\ s a -> s{_sdsEnabled = a});++instance FromXML StreamingDistributionSummary where+        parseXML x+          = StreamingDistributionSummary' <$>+              (x .@ "Id") <*> (x .@ "Status") <*>+                (x .@ "LastModifiedTime")+                <*> (x .@ "DomainName")+                <*> (x .@ "S3Origin")+                <*> (x .@ "Aliases")+                <*> (x .@ "TrustedSigners")+                <*> (x .@ "Comment")+                <*> (x .@ "PriceClass")+                <*> (x .@ "Enabled")++-- | A complex type that controls whether access logs are written for this+-- streaming distribution.+--+-- /See:/ 'streamingLoggingConfig' smart constructor.+data StreamingLoggingConfig = StreamingLoggingConfig'+    { _slcEnabled :: !Bool+    , _slcBucket  :: !Text+    , _slcPrefix  :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'StreamingLoggingConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'slcEnabled'+--+-- * 'slcBucket'+--+-- * 'slcPrefix'+streamingLoggingConfig+    :: Bool -- ^ 'slcEnabled'+    -> Text -- ^ 'slcBucket'+    -> Text -- ^ 'slcPrefix'+    -> StreamingLoggingConfig+streamingLoggingConfig pEnabled_ pBucket_ pPrefix_ =+    StreamingLoggingConfig'+    { _slcEnabled = pEnabled_+    , _slcBucket = pBucket_+    , _slcPrefix = pPrefix_+    }++-- | Specifies whether you want CloudFront to save access logs to an Amazon+-- S3 bucket. If you do not want to enable logging when you create a+-- streaming distribution or if you want to disable logging for an existing+-- streaming distribution, specify false for Enabled, and specify empty+-- Bucket and Prefix elements. If you specify false for Enabled but you+-- specify values for Bucket and Prefix, the values are automatically+-- deleted.+slcEnabled :: Lens' StreamingLoggingConfig Bool+slcEnabled = lens _slcEnabled (\ s a -> s{_slcEnabled = a});++-- | The Amazon S3 bucket to store the access logs in, for example,+-- myawslogbucket.s3.amazonaws.com.+slcBucket :: Lens' StreamingLoggingConfig Text+slcBucket = lens _slcBucket (\ s a -> s{_slcBucket = a});++-- | An optional string that you want CloudFront to prefix to the access log+-- filenames for this streaming distribution, for example, myprefix\/. If+-- you want to enable logging, but you do not want to specify a prefix, you+-- still must include an empty Prefix element in the Logging element.+slcPrefix :: Lens' StreamingLoggingConfig Text+slcPrefix = lens _slcPrefix (\ s a -> s{_slcPrefix = a});++instance FromXML StreamingLoggingConfig where+        parseXML x+          = StreamingLoggingConfig' <$>+              (x .@ "Enabled") <*> (x .@ "Bucket") <*>+                (x .@ "Prefix")++instance ToXML StreamingLoggingConfig where+        toXML StreamingLoggingConfig'{..}+          = mconcat+              ["Enabled" @= _slcEnabled, "Bucket" @= _slcBucket,+               "Prefix" @= _slcPrefix]++-- | A complex type that specifies the AWS accounts, if any, that you want to+-- allow to create signed URLs for private content. If you want to require+-- signed URLs in requests for objects in the target origin that match the+-- PathPattern for this cache behavior, specify true for Enabled, and+-- specify the applicable values for Quantity and Items. For more+-- information, go to Using a Signed URL to Serve Private Content in the+-- Amazon CloudFront Developer Guide. If you don\'t want to require signed+-- URLs in requests for objects that match PathPattern, specify false for+-- Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or+-- more trusted signers, change Enabled to true (if it\'s currently false),+-- change Quantity as applicable, and specify all of the trusted signers+-- that you want to include in the updated distribution.+--+-- /See:/ 'trustedSigners' smart constructor.+data TrustedSigners = TrustedSigners'+    { _tsItems    :: !(Maybe [Text])+    , _tsEnabled  :: !Bool+    , _tsQuantity :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'TrustedSigners' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tsItems'+--+-- * 'tsEnabled'+--+-- * 'tsQuantity'+trustedSigners+    :: Bool -- ^ 'tsEnabled'+    -> Int -- ^ 'tsQuantity'+    -> TrustedSigners+trustedSigners pEnabled_ pQuantity_ =+    TrustedSigners'+    { _tsItems = Nothing+    , _tsEnabled = pEnabled_+    , _tsQuantity = pQuantity_+    }++-- | Optional: A complex type that contains trusted signers for this cache+-- behavior. If Quantity is 0, you can omit Items.+tsItems :: Lens' TrustedSigners [Text]+tsItems = lens _tsItems (\ s a -> s{_tsItems = a}) . _Default . _Coerce;++-- | Specifies whether you want to require end users to use signed URLs to+-- access the files specified by PathPattern and TargetOriginId.+tsEnabled :: Lens' TrustedSigners Bool+tsEnabled = lens _tsEnabled (\ s a -> s{_tsEnabled = a});++-- | The number of trusted signers for this cache behavior.+tsQuantity :: Lens' TrustedSigners Int+tsQuantity = lens _tsQuantity (\ s a -> s{_tsQuantity = a});++instance FromXML TrustedSigners where+        parseXML x+          = TrustedSigners' <$>+              (x .@? "Items" .!@ mempty >>=+                 may (parseXMLList "AwsAccountNumber"))+                <*> (x .@ "Enabled")+                <*> (x .@ "Quantity")++instance ToXML TrustedSigners where+        toXML TrustedSigners'{..}+          = mconcat+              ["Items" @=+                 toXML (toXMLList "AwsAccountNumber" <$> _tsItems),+               "Enabled" @= _tsEnabled, "Quantity" @= _tsQuantity]++-- | A complex type that contains information about viewer certificates for+-- this distribution.+--+-- /See:/ 'viewerCertificate' smart constructor.+data ViewerCertificate = ViewerCertificate'+    { _vcSSLSupportMethod             :: !(Maybe SSLSupportMethod)+    , _vcMinimumProtocolVersion       :: !(Maybe MinimumProtocolVersion)+    , _vcIAMCertificateId             :: !(Maybe Text)+    , _vcCloudFrontDefaultCertificate :: !(Maybe Bool)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ViewerCertificate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vcSSLSupportMethod'+--+-- * 'vcMinimumProtocolVersion'+--+-- * 'vcIAMCertificateId'+--+-- * 'vcCloudFrontDefaultCertificate'+viewerCertificate+    :: ViewerCertificate+viewerCertificate =+    ViewerCertificate'+    { _vcSSLSupportMethod = Nothing+    , _vcMinimumProtocolVersion = Nothing+    , _vcIAMCertificateId = Nothing+    , _vcCloudFrontDefaultCertificate = Nothing+    }++-- | If you specify a value for IAMCertificateId, you must also specify how+-- you want CloudFront to serve HTTPS requests. Valid values are vip and+-- sni-only. If you specify vip, CloudFront uses dedicated IP addresses for+-- your content and can respond to HTTPS requests from any viewer. However,+-- you must request permission to use this feature, and you incur+-- additional monthly charges. If you specify sni-only, CloudFront can only+-- respond to HTTPS requests from viewers that support Server Name+-- Indication (SNI). All modern browsers support SNI, but some browsers+-- still in use don\'t support SNI. Do not specify a value for+-- SSLSupportMethod if you specified true for CloudFrontDefaultCertificate.+vcSSLSupportMethod :: Lens' ViewerCertificate (Maybe SSLSupportMethod)+vcSSLSupportMethod = lens _vcSSLSupportMethod (\ s a -> s{_vcSSLSupportMethod = a});++-- | Specify the minimum version of the SSL protocol that you want CloudFront+-- to use, SSLv3 or TLSv1, for HTTPS connections. CloudFront will serve+-- your objects only to browsers or devices that support at least the SSL+-- version that you specify. The TLSv1 protocol is more secure, so we+-- recommend that you specify SSLv3 only if your users are using browsers+-- or devices that don\'t support TLSv1. If you\'re using a custom+-- certificate (if you specify a value for IAMCertificateId) and if you\'re+-- using dedicated IP (if you specify vip for SSLSupportMethod), you can+-- choose SSLv3 or TLSv1 as the MinimumProtocolVersion. If you\'re using a+-- custom certificate (if you specify a value for IAMCertificateId) and if+-- you\'re using SNI (if you specify sni-only for SSLSupportMethod), you+-- must specify TLSv1 for MinimumProtocolVersion.+vcMinimumProtocolVersion :: Lens' ViewerCertificate (Maybe MinimumProtocolVersion)+vcMinimumProtocolVersion = lens _vcMinimumProtocolVersion (\ s a -> s{_vcMinimumProtocolVersion = a});++-- | If you want viewers to use HTTPS to request your objects and you\'re+-- using an alternate domain name in your object URLs (for example,+-- https:\/\/example.com\/logo.jpg), specify the IAM certificate identifier+-- of the custom viewer certificate for this distribution. Specify either+-- this value or CloudFrontDefaultCertificate.+vcIAMCertificateId :: Lens' ViewerCertificate (Maybe Text)+vcIAMCertificateId = lens _vcIAMCertificateId (\ s a -> s{_vcIAMCertificateId = a});++-- | If you want viewers to use HTTPS to request your objects and you\'re+-- using the CloudFront domain name of your distribution in your object+-- URLs (for example, https:\/\/d111111abcdef8.cloudfront.net\/logo.jpg),+-- set to true. Omit this value if you are setting an IAMCertificateId.+vcCloudFrontDefaultCertificate :: Lens' ViewerCertificate (Maybe Bool)+vcCloudFrontDefaultCertificate = lens _vcCloudFrontDefaultCertificate (\ s a -> s{_vcCloudFrontDefaultCertificate = a});++instance FromXML ViewerCertificate where+        parseXML x+          = ViewerCertificate' <$>+              (x .@? "SSLSupportMethod") <*>+                (x .@? "MinimumProtocolVersion")+                <*> (x .@? "IAMCertificateId")+                <*> (x .@? "CloudFrontDefaultCertificate")++instance ToXML ViewerCertificate where+        toXML ViewerCertificate'{..}+          = mconcat+              ["SSLSupportMethod" @= _vcSSLSupportMethod,+               "MinimumProtocolVersion" @=+                 _vcMinimumProtocolVersion,+               "IAMCertificateId" @= _vcIAMCertificateId,+               "CloudFrontDefaultCertificate" @=+                 _vcCloudFrontDefaultCertificate]
+ gen/Network/AWS/CloudFront/Types/Sum.hs view
@@ -0,0 +1,271 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.CloudFront.Types.Sum+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.CloudFront.Types.Sum where++import           Network.AWS.Prelude++data GeoRestrictionType+    = Blacklist+    | None+    | Whitelist+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText GeoRestrictionType where+    parser = takeLowerText >>= \case+        "blacklist" -> pure Blacklist+        "none" -> pure None+        "whitelist" -> pure Whitelist+        e -> fromTextError $ "Failure parsing GeoRestrictionType from value: '" <> e+           <> "'. Accepted values: blacklist, none, whitelist"++instance ToText GeoRestrictionType where+    toText = \case+        Blacklist -> "blacklist"+        None -> "none"+        Whitelist -> "whitelist"++instance Hashable     GeoRestrictionType+instance ToByteString GeoRestrictionType+instance ToQuery      GeoRestrictionType+instance ToHeader     GeoRestrictionType++instance FromXML GeoRestrictionType where+    parseXML = parseXMLText "GeoRestrictionType"++instance ToXML GeoRestrictionType where+    toXML = toXMLText++data ItemSelection+    = ISAll+    | ISNone+    | ISWhitelist+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText ItemSelection where+    parser = takeLowerText >>= \case+        "all" -> pure ISAll+        "none" -> pure ISNone+        "whitelist" -> pure ISWhitelist+        e -> fromTextError $ "Failure parsing ItemSelection from value: '" <> e+           <> "'. Accepted values: all, none, whitelist"++instance ToText ItemSelection where+    toText = \case+        ISAll -> "all"+        ISNone -> "none"+        ISWhitelist -> "whitelist"++instance Hashable     ItemSelection+instance ToByteString ItemSelection+instance ToQuery      ItemSelection+instance ToHeader     ItemSelection++instance FromXML ItemSelection where+    parseXML = parseXMLText "ItemSelection"++instance ToXML ItemSelection where+    toXML = toXMLText++data Method+    = Delete+    | Get+    | Head+    | Options+    | Patch+    | Post+    | Put+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText Method where+    parser = takeLowerText >>= \case+        "delete" -> pure Delete+        "get" -> pure Get+        "head" -> pure Head+        "options" -> pure Options+        "patch" -> pure Patch+        "post" -> pure Post+        "put" -> pure Put+        e -> fromTextError $ "Failure parsing Method from value: '" <> e+           <> "'. Accepted values: delete, get, head, options, patch, post, put"++instance ToText Method where+    toText = \case+        Delete -> "delete"+        Get -> "get"+        Head -> "head"+        Options -> "options"+        Patch -> "patch"+        Post -> "post"+        Put -> "put"++instance Hashable     Method+instance ToByteString Method+instance ToQuery      Method+instance ToHeader     Method++instance FromXML Method where+    parseXML = parseXMLText "Method"++instance ToXML Method where+    toXML = toXMLText++data MinimumProtocolVersion+    = SSLV3+    | TLSV1+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText MinimumProtocolVersion where+    parser = takeLowerText >>= \case+        "sslv3" -> pure SSLV3+        "tlsv1" -> pure TLSV1+        e -> fromTextError $ "Failure parsing MinimumProtocolVersion from value: '" <> e+           <> "'. Accepted values: sslv3, tlsv1"++instance ToText MinimumProtocolVersion where+    toText = \case+        SSLV3 -> "sslv3"+        TLSV1 -> "tlsv1"++instance Hashable     MinimumProtocolVersion+instance ToByteString MinimumProtocolVersion+instance ToQuery      MinimumProtocolVersion+instance ToHeader     MinimumProtocolVersion++instance FromXML MinimumProtocolVersion where+    parseXML = parseXMLText "MinimumProtocolVersion"++instance ToXML MinimumProtocolVersion where+    toXML = toXMLText++data OriginProtocolPolicy+    = HTTPOnly+    | MatchViewer+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText OriginProtocolPolicy where+    parser = takeLowerText >>= \case+        "http-only" -> pure HTTPOnly+        "match-viewer" -> pure MatchViewer+        e -> fromTextError $ "Failure parsing OriginProtocolPolicy from value: '" <> e+           <> "'. Accepted values: http-only, match-viewer"++instance ToText OriginProtocolPolicy where+    toText = \case+        HTTPOnly -> "http-only"+        MatchViewer -> "match-viewer"++instance Hashable     OriginProtocolPolicy+instance ToByteString OriginProtocolPolicy+instance ToQuery      OriginProtocolPolicy+instance ToHeader     OriginProtocolPolicy++instance FromXML OriginProtocolPolicy where+    parseXML = parseXMLText "OriginProtocolPolicy"++instance ToXML OriginProtocolPolicy where+    toXML = toXMLText++data PriceClass+    = PriceClass100+    | PriceClass200+    | PriceClassAll+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText PriceClass where+    parser = takeLowerText >>= \case+        "priceclass_100" -> pure PriceClass100+        "priceclass_200" -> pure PriceClass200+        "priceclass_all" -> pure PriceClassAll+        e -> fromTextError $ "Failure parsing PriceClass from value: '" <> e+           <> "'. Accepted values: priceclass_100, priceclass_200, priceclass_all"++instance ToText PriceClass where+    toText = \case+        PriceClass100 -> "priceclass_100"+        PriceClass200 -> "priceclass_200"+        PriceClassAll -> "priceclass_all"++instance Hashable     PriceClass+instance ToByteString PriceClass+instance ToQuery      PriceClass+instance ToHeader     PriceClass++instance FromXML PriceClass where+    parseXML = parseXMLText "PriceClass"++instance ToXML PriceClass where+    toXML = toXMLText++data SSLSupportMethod+    = SNIOnly+    | VIP+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText SSLSupportMethod where+    parser = takeLowerText >>= \case+        "sni-only" -> pure SNIOnly+        "vip" -> pure VIP+        e -> fromTextError $ "Failure parsing SSLSupportMethod from value: '" <> e+           <> "'. Accepted values: sni-only, vip"++instance ToText SSLSupportMethod where+    toText = \case+        SNIOnly -> "sni-only"+        VIP -> "vip"++instance Hashable     SSLSupportMethod+instance ToByteString SSLSupportMethod+instance ToQuery      SSLSupportMethod+instance ToHeader     SSLSupportMethod++instance FromXML SSLSupportMethod where+    parseXML = parseXMLText "SSLSupportMethod"++instance ToXML SSLSupportMethod where+    toXML = toXMLText++data ViewerProtocolPolicy+    = AllowAll+    | HTTPSOnly+    | RedirectToHTTPS+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText ViewerProtocolPolicy where+    parser = takeLowerText >>= \case+        "allow-all" -> pure AllowAll+        "https-only" -> pure HTTPSOnly+        "redirect-to-https" -> pure RedirectToHTTPS+        e -> fromTextError $ "Failure parsing ViewerProtocolPolicy from value: '" <> e+           <> "'. Accepted values: allow-all, https-only, redirect-to-https"++instance ToText ViewerProtocolPolicy where+    toText = \case+        AllowAll -> "allow-all"+        HTTPSOnly -> "https-only"+        RedirectToHTTPS -> "redirect-to-https"++instance Hashable     ViewerProtocolPolicy+instance ToByteString ViewerProtocolPolicy+instance ToQuery      ViewerProtocolPolicy+instance ToHeader     ViewerProtocolPolicy++instance FromXML ViewerProtocolPolicy where+    parseXML = parseXMLText "ViewerProtocolPolicy"++instance ToXML ViewerProtocolPolicy where+    toXML = toXMLText
gen/Network/AWS/CloudFront/UpdateCloudFrontOriginAccessIdentity.hs view
@@ -1,149 +1,167 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Update an origin access identity.+-- Update an origin access identity. ----- <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/UpdateCloudFrontOriginAccessIdentity.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/UpdateCloudFrontOriginAccessIdentity.html AWS API Reference> for UpdateCloudFrontOriginAccessIdentity. module Network.AWS.CloudFront.UpdateCloudFrontOriginAccessIdentity     (-    -- * Request-      UpdateCloudFrontOriginAccessIdentity-    -- ** Request constructor-    , updateCloudFrontOriginAccessIdentity-    -- ** Request lenses+    -- * Creating a Request+      updateCloudFrontOriginAccessIdentity+    , UpdateCloudFrontOriginAccessIdentity+    -- * Request Lenses+    , ucfoaiIfMatch     , ucfoaiCloudFrontOriginAccessIdentityConfig     , ucfoaiId-    , ucfoaiIfMatch -    -- * Response-    , UpdateCloudFrontOriginAccessIdentityResponse-    -- ** Response constructor+    -- * Destructuring the Response     , updateCloudFrontOriginAccessIdentityResponse-    -- ** Response lenses-    , ucfoairCloudFrontOriginAccessIdentity-    , ucfoairETag+    , UpdateCloudFrontOriginAccessIdentityResponse+    -- * Response Lenses+    , ucfoairsETag+    , ucfoairsCloudFrontOriginAccessIdentity+    , ucfoairsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.RestXML-import Network.AWS.CloudFront.Types-import qualified GHC.Exts--data UpdateCloudFrontOriginAccessIdentity = UpdateCloudFrontOriginAccessIdentity-    { _ucfoaiCloudFrontOriginAccessIdentityConfig :: CloudFrontOriginAccessIdentityConfig-    , _ucfoaiId                                   :: Text-    , _ucfoaiIfMatch                              :: Maybe Text-    } deriving (Eq, Read, Show)+import           Network.AWS.CloudFront.Types+import           Network.AWS.CloudFront.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'UpdateCloudFrontOriginAccessIdentity' constructor.+-- | The request to update an origin access identity. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'updateCloudFrontOriginAccessIdentity' smart constructor.+data UpdateCloudFrontOriginAccessIdentity = UpdateCloudFrontOriginAccessIdentity'+    { _ucfoaiIfMatch                              :: !(Maybe Text)+    , _ucfoaiCloudFrontOriginAccessIdentityConfig :: !CloudFrontOriginAccessIdentityConfig+    , _ucfoaiId                                   :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateCloudFrontOriginAccessIdentity' with the minimum fields required to make a request. ----- * 'ucfoaiCloudFrontOriginAccessIdentityConfig' @::@ 'CloudFrontOriginAccessIdentityConfig'+-- Use one of the following lenses to modify other fields as desired: ----- * 'ucfoaiId' @::@ 'Text'+-- * 'ucfoaiIfMatch' ----- * 'ucfoaiIfMatch' @::@ 'Maybe' 'Text'+-- * 'ucfoaiCloudFrontOriginAccessIdentityConfig' ---updateCloudFrontOriginAccessIdentity :: CloudFrontOriginAccessIdentityConfig -- ^ 'ucfoaiCloudFrontOriginAccessIdentityConfig'-                                     -> Text -- ^ 'ucfoaiId'-                                     -> UpdateCloudFrontOriginAccessIdentity-updateCloudFrontOriginAccessIdentity p1 p2 = UpdateCloudFrontOriginAccessIdentity-    { _ucfoaiCloudFrontOriginAccessIdentityConfig = p1-    , _ucfoaiId                                   = p2-    , _ucfoaiIfMatch                              = Nothing+-- * 'ucfoaiId'+updateCloudFrontOriginAccessIdentity+    :: CloudFrontOriginAccessIdentityConfig -- ^ 'ucfoaiCloudFrontOriginAccessIdentityConfig'+    -> Text -- ^ 'ucfoaiId'+    -> UpdateCloudFrontOriginAccessIdentity+updateCloudFrontOriginAccessIdentity pCloudFrontOriginAccessIdentityConfig_ pId_ =+    UpdateCloudFrontOriginAccessIdentity'+    { _ucfoaiIfMatch = Nothing+    , _ucfoaiCloudFrontOriginAccessIdentityConfig = pCloudFrontOriginAccessIdentityConfig_+    , _ucfoaiId = pId_     } --- | The identity's configuration information.+-- | The value of the ETag header you received when retrieving the+-- identity\'s configuration. For example: E2QWRUHAPOMQZL.+ucfoaiIfMatch :: Lens' UpdateCloudFrontOriginAccessIdentity (Maybe Text)+ucfoaiIfMatch = lens _ucfoaiIfMatch (\ s a -> s{_ucfoaiIfMatch = a});++-- | The identity\'s configuration information. ucfoaiCloudFrontOriginAccessIdentityConfig :: Lens' UpdateCloudFrontOriginAccessIdentity CloudFrontOriginAccessIdentityConfig-ucfoaiCloudFrontOriginAccessIdentityConfig =-    lens _ucfoaiCloudFrontOriginAccessIdentityConfig-        (\s a -> s { _ucfoaiCloudFrontOriginAccessIdentityConfig = a })+ucfoaiCloudFrontOriginAccessIdentityConfig = lens _ucfoaiCloudFrontOriginAccessIdentityConfig (\ s a -> s{_ucfoaiCloudFrontOriginAccessIdentityConfig = a}); --- | The identity's id.+-- | The identity\'s id. ucfoaiId :: Lens' UpdateCloudFrontOriginAccessIdentity Text-ucfoaiId = lens _ucfoaiId (\s a -> s { _ucfoaiId = a })+ucfoaiId = lens _ucfoaiId (\ s a -> s{_ucfoaiId = a}); --- | The value of the ETag header you received when retrieving the identity's--- configuration. For example: E2QWRUHAPOMQZL.-ucfoaiIfMatch :: Lens' UpdateCloudFrontOriginAccessIdentity (Maybe Text)-ucfoaiIfMatch = lens _ucfoaiIfMatch (\s a -> s { _ucfoaiIfMatch = a })+instance AWSRequest+         UpdateCloudFrontOriginAccessIdentity where+        type Sv UpdateCloudFrontOriginAccessIdentity =+             CloudFront+        type Rs UpdateCloudFrontOriginAccessIdentity =+             UpdateCloudFrontOriginAccessIdentityResponse+        request = putXML+        response+          = receiveXML+              (\ s h x ->+                 UpdateCloudFrontOriginAccessIdentityResponse' <$>+                   (h .#? "ETag") <*> (parseXML x) <*>+                     (pure (fromEnum s))) -data UpdateCloudFrontOriginAccessIdentityResponse = UpdateCloudFrontOriginAccessIdentityResponse-    { _ucfoairCloudFrontOriginAccessIdentity :: Maybe CloudFrontOriginAccessIdentity-    , _ucfoairETag                           :: Maybe Text-    } deriving (Eq, Read, Show)+instance ToElement+         UpdateCloudFrontOriginAccessIdentity where+        toElement+          = mkElement+              "{http://cloudfront.amazonaws.com/doc/2015-04-17/}CloudFrontOriginAccessIdentityConfig"+              .+              _ucfoaiCloudFrontOriginAccessIdentityConfig --- | 'UpdateCloudFrontOriginAccessIdentityResponse' constructor.+instance ToHeaders+         UpdateCloudFrontOriginAccessIdentity where+        toHeaders UpdateCloudFrontOriginAccessIdentity'{..}+          = mconcat ["If-Match" =# _ucfoaiIfMatch]++instance ToPath UpdateCloudFrontOriginAccessIdentity+         where+        toPath UpdateCloudFrontOriginAccessIdentity'{..}+          = mconcat+              ["/2015-04-17/origin-access-identity/cloudfront/",+               toBS _ucfoaiId, "/config"]++instance ToQuery UpdateCloudFrontOriginAccessIdentity+         where+        toQuery = const mempty++-- | The returned result of the corresponding request. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'updateCloudFrontOriginAccessIdentityResponse' smart constructor.+data UpdateCloudFrontOriginAccessIdentityResponse = UpdateCloudFrontOriginAccessIdentityResponse'+    { _ucfoairsETag                           :: !(Maybe Text)+    , _ucfoairsCloudFrontOriginAccessIdentity :: !(Maybe CloudFrontOriginAccessIdentity)+    , _ucfoairsStatus                         :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateCloudFrontOriginAccessIdentityResponse' with the minimum fields required to make a request. ----- * 'ucfoairCloudFrontOriginAccessIdentity' @::@ 'Maybe' 'CloudFrontOriginAccessIdentity'+-- Use one of the following lenses to modify other fields as desired: ----- * 'ucfoairETag' @::@ 'Maybe' 'Text'+-- * 'ucfoairsETag' ---updateCloudFrontOriginAccessIdentityResponse :: UpdateCloudFrontOriginAccessIdentityResponse-updateCloudFrontOriginAccessIdentityResponse = UpdateCloudFrontOriginAccessIdentityResponse-    { _ucfoairCloudFrontOriginAccessIdentity = Nothing-    , _ucfoairETag                           = Nothing+-- * 'ucfoairsCloudFrontOriginAccessIdentity'+--+-- * 'ucfoairsStatus'+updateCloudFrontOriginAccessIdentityResponse+    :: Int -- ^ 'ucfoairsStatus'+    -> UpdateCloudFrontOriginAccessIdentityResponse+updateCloudFrontOriginAccessIdentityResponse pStatus_ =+    UpdateCloudFrontOriginAccessIdentityResponse'+    { _ucfoairsETag = Nothing+    , _ucfoairsCloudFrontOriginAccessIdentity = Nothing+    , _ucfoairsStatus = pStatus_     } --- | The origin access identity's information.-ucfoairCloudFrontOriginAccessIdentity :: Lens' UpdateCloudFrontOriginAccessIdentityResponse (Maybe CloudFrontOriginAccessIdentity)-ucfoairCloudFrontOriginAccessIdentity =-    lens _ucfoairCloudFrontOriginAccessIdentity-        (\s a -> s { _ucfoairCloudFrontOriginAccessIdentity = a })- -- | The current version of the configuration. For example: E2QWRUHAPOMQZL.-ucfoairETag :: Lens' UpdateCloudFrontOriginAccessIdentityResponse (Maybe Text)-ucfoairETag = lens _ucfoairETag (\s a -> s { _ucfoairETag = a })--instance ToPath UpdateCloudFrontOriginAccessIdentity where-    toPath UpdateCloudFrontOriginAccessIdentity{..} = mconcat-        [ "/2014-11-06/origin-access-identity/cloudfront/"-        , toText _ucfoaiId-        , "/config"-        ]--instance ToQuery UpdateCloudFrontOriginAccessIdentity where-    toQuery = const mempty--instance ToHeaders UpdateCloudFrontOriginAccessIdentity where-    toHeaders UpdateCloudFrontOriginAccessIdentity{..} = mconcat-        [ "If-Match" =: _ucfoaiIfMatch-        ]--instance ToXMLRoot UpdateCloudFrontOriginAccessIdentity where-    toXMLRoot = extractRoot ns . toXML . _ucfoaiCloudFrontOriginAccessIdentityConfig--instance ToXML UpdateCloudFrontOriginAccessIdentity+ucfoairsETag :: Lens' UpdateCloudFrontOriginAccessIdentityResponse (Maybe Text)+ucfoairsETag = lens _ucfoairsETag (\ s a -> s{_ucfoairsETag = a}); -instance AWSRequest UpdateCloudFrontOriginAccessIdentity where-    type Sv UpdateCloudFrontOriginAccessIdentity = CloudFront-    type Rs UpdateCloudFrontOriginAccessIdentity = UpdateCloudFrontOriginAccessIdentityResponse+-- | The origin access identity\'s information.+ucfoairsCloudFrontOriginAccessIdentity :: Lens' UpdateCloudFrontOriginAccessIdentityResponse (Maybe CloudFrontOriginAccessIdentity)+ucfoairsCloudFrontOriginAccessIdentity = lens _ucfoairsCloudFrontOriginAccessIdentity (\ s a -> s{_ucfoairsCloudFrontOriginAccessIdentity = a}); -    request  = put-    response = xmlHeaderResponse $ \h x -> UpdateCloudFrontOriginAccessIdentityResponse-        <$> x .@? "CloudFrontOriginAccessIdentity"-        <*> h ~:? "ETag"+-- | The response status code.+ucfoairsStatus :: Lens' UpdateCloudFrontOriginAccessIdentityResponse Int+ucfoairsStatus = lens _ucfoairsStatus (\ s a -> s{_ucfoairsStatus = a});
gen/Network/AWS/CloudFront/UpdateDistribution.hs view
@@ -1,146 +1,160 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudFront.UpdateDistribution--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Update a distribution.+-- Update a distribution. ----- <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/UpdateDistribution.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/UpdateDistribution.html AWS API Reference> for UpdateDistribution. module Network.AWS.CloudFront.UpdateDistribution     (-    -- * Request-      UpdateDistribution-    -- ** Request constructor-    , updateDistribution-    -- ** Request lenses+    -- * Creating a Request+      updateDistribution+    , UpdateDistribution+    -- * Request Lenses+    , udIfMatch     , udDistributionConfig     , udId-    , udIfMatch -    -- * Response-    , UpdateDistributionResponse-    -- ** Response constructor+    -- * Destructuring the Response     , updateDistributionResponse-    -- ** Response lenses-    , udrDistribution-    , udrETag+    , UpdateDistributionResponse+    -- * Response Lenses+    , udrsETag+    , udrsDistribution+    , udrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.RestXML-import Network.AWS.CloudFront.Types-import qualified GHC.Exts--data UpdateDistribution = UpdateDistribution-    { _udDistributionConfig :: DistributionConfig-    , _udId                 :: Text-    , _udIfMatch            :: Maybe Text-    } deriving (Eq, Read, Show)+import           Network.AWS.CloudFront.Types+import           Network.AWS.CloudFront.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'UpdateDistribution' constructor.+-- | The request to update a distribution. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'updateDistribution' smart constructor.+data UpdateDistribution = UpdateDistribution'+    { _udIfMatch            :: !(Maybe Text)+    , _udDistributionConfig :: !DistributionConfig+    , _udId                 :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateDistribution' with the minimum fields required to make a request. ----- * 'udDistributionConfig' @::@ 'DistributionConfig'+-- Use one of the following lenses to modify other fields as desired: ----- * 'udId' @::@ 'Text'+-- * 'udIfMatch' ----- * 'udIfMatch' @::@ 'Maybe' 'Text'+-- * 'udDistributionConfig' ---updateDistribution :: DistributionConfig -- ^ 'udDistributionConfig'-                   -> Text -- ^ 'udId'-                   -> UpdateDistribution-updateDistribution p1 p2 = UpdateDistribution-    { _udDistributionConfig = p1-    , _udId                 = p2-    , _udIfMatch            = Nothing+-- * 'udId'+updateDistribution+    :: DistributionConfig -- ^ 'udDistributionConfig'+    -> Text -- ^ 'udId'+    -> UpdateDistribution+updateDistribution pDistributionConfig_ pId_ =+    UpdateDistribution'+    { _udIfMatch = Nothing+    , _udDistributionConfig = pDistributionConfig_+    , _udId = pId_     } --- | The distribution's configuration information.+-- | The value of the ETag header you received when retrieving the+-- distribution\'s configuration. For example: E2QWRUHAPOMQZL.+udIfMatch :: Lens' UpdateDistribution (Maybe Text)+udIfMatch = lens _udIfMatch (\ s a -> s{_udIfMatch = a});++-- | The distribution\'s configuration information. udDistributionConfig :: Lens' UpdateDistribution DistributionConfig-udDistributionConfig =-    lens _udDistributionConfig (\s a -> s { _udDistributionConfig = a })+udDistributionConfig = lens _udDistributionConfig (\ s a -> s{_udDistributionConfig = a}); --- | The distribution's id.+-- | The distribution\'s id. udId :: Lens' UpdateDistribution Text-udId = lens _udId (\s a -> s { _udId = a })---- | The value of the ETag header you received when retrieving the distribution's--- configuration. For example: E2QWRUHAPOMQZL.-udIfMatch :: Lens' UpdateDistribution (Maybe Text)-udIfMatch = lens _udIfMatch (\s a -> s { _udIfMatch = a })--data UpdateDistributionResponse = UpdateDistributionResponse-    { _udrDistribution :: Maybe Distribution-    , _udrETag         :: Maybe Text-    } deriving (Eq, Read, Show)+udId = lens _udId (\ s a -> s{_udId = a}); --- | 'UpdateDistributionResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'udrDistribution' @::@ 'Maybe' 'Distribution'------ * 'udrETag' @::@ 'Maybe' 'Text'----updateDistributionResponse :: UpdateDistributionResponse-updateDistributionResponse = UpdateDistributionResponse-    { _udrDistribution = Nothing-    , _udrETag         = Nothing-    }+instance AWSRequest UpdateDistribution where+        type Sv UpdateDistribution = CloudFront+        type Rs UpdateDistribution =+             UpdateDistributionResponse+        request = putXML+        response+          = receiveXML+              (\ s h x ->+                 UpdateDistributionResponse' <$>+                   (h .#? "ETag") <*> (parseXML x) <*>+                     (pure (fromEnum s))) --- | The distribution's information.-udrDistribution :: Lens' UpdateDistributionResponse (Maybe Distribution)-udrDistribution = lens _udrDistribution (\s a -> s { _udrDistribution = a })+instance ToElement UpdateDistribution where+        toElement+          = mkElement+              "{http://cloudfront.amazonaws.com/doc/2015-04-17/}DistributionConfig"+              .+              _udDistributionConfig --- | The current version of the configuration. For example: E2QWRUHAPOMQZL.-udrETag :: Lens' UpdateDistributionResponse (Maybe Text)-udrETag = lens _udrETag (\s a -> s { _udrETag = a })+instance ToHeaders UpdateDistribution where+        toHeaders UpdateDistribution'{..}+          = mconcat ["If-Match" =# _udIfMatch]  instance ToPath UpdateDistribution where-    toPath UpdateDistribution{..} = mconcat-        [ "/2014-11-06/distribution/"-        , toText _udId-        , "/config"-        ]+        toPath UpdateDistribution'{..}+          = mconcat+              ["/2015-04-17/distribution/", toBS _udId, "/config"]  instance ToQuery UpdateDistribution where-    toQuery = const mempty+        toQuery = const mempty -instance ToHeaders UpdateDistribution where-    toHeaders UpdateDistribution{..} = mconcat-        [ "If-Match" =: _udIfMatch-        ]+-- | The returned result of the corresponding request.+--+-- /See:/ 'updateDistributionResponse' smart constructor.+data UpdateDistributionResponse = UpdateDistributionResponse'+    { _udrsETag         :: !(Maybe Text)+    , _udrsDistribution :: !(Maybe Distribution)+    , _udrsStatus       :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance ToXMLRoot UpdateDistribution where-    toXMLRoot = extractRoot ns . toXML . _udDistributionConfig+-- | Creates a value of 'UpdateDistributionResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'udrsETag'+--+-- * 'udrsDistribution'+--+-- * 'udrsStatus'+updateDistributionResponse+    :: Int -- ^ 'udrsStatus'+    -> UpdateDistributionResponse+updateDistributionResponse pStatus_ =+    UpdateDistributionResponse'+    { _udrsETag = Nothing+    , _udrsDistribution = Nothing+    , _udrsStatus = pStatus_+    } -instance ToXML UpdateDistribution+-- | The current version of the configuration. For example: E2QWRUHAPOMQZL.+udrsETag :: Lens' UpdateDistributionResponse (Maybe Text)+udrsETag = lens _udrsETag (\ s a -> s{_udrsETag = a}); -instance AWSRequest UpdateDistribution where-    type Sv UpdateDistribution = CloudFront-    type Rs UpdateDistribution = UpdateDistributionResponse+-- | The distribution\'s information.+udrsDistribution :: Lens' UpdateDistributionResponse (Maybe Distribution)+udrsDistribution = lens _udrsDistribution (\ s a -> s{_udrsDistribution = a}); -    request  = put-    response = xmlHeaderResponse $ \h x -> UpdateDistributionResponse-        <$> x .@? "Distribution"-        <*> h ~:? "ETag"+-- | The response status code.+udrsStatus :: Lens' UpdateDistributionResponse Int+udrsStatus = lens _udrsStatus (\ s a -> s{_udrsStatus = a});
gen/Network/AWS/CloudFront/UpdateStreamingDistribution.hs view
@@ -1,149 +1,161 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudFront.UpdateStreamingDistribution--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Update a streaming distribution.+-- Update a streaming distribution. ----- <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/UpdateStreamingDistribution.html>+-- /See:/ <http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/UpdateStreamingDistribution.html AWS API Reference> for UpdateStreamingDistribution. module Network.AWS.CloudFront.UpdateStreamingDistribution     (-    -- * Request-      UpdateStreamingDistribution-    -- ** Request constructor-    , updateStreamingDistribution-    -- ** Request lenses-    , usdId+    -- * Creating a Request+      updateStreamingDistribution+    , UpdateStreamingDistribution+    -- * Request Lenses     , usdIfMatch     , usdStreamingDistributionConfig+    , usdId -    -- * Response-    , UpdateStreamingDistributionResponse-    -- ** Response constructor+    -- * Destructuring the Response     , updateStreamingDistributionResponse-    -- ** Response lenses-    , usdrETag-    , usdrStreamingDistribution+    , UpdateStreamingDistributionResponse+    -- * Response Lenses+    , usdrsETag+    , usdrsStreamingDistribution+    , usdrsStatus     ) where -import Network.AWS.Prelude-import Network.AWS.Request.RestXML-import Network.AWS.CloudFront.Types-import qualified GHC.Exts--data UpdateStreamingDistribution = UpdateStreamingDistribution-    { _usdId                          :: Text-    , _usdIfMatch                     :: Maybe Text-    , _usdStreamingDistributionConfig :: StreamingDistributionConfig-    } deriving (Eq, Read, Show)+import           Network.AWS.CloudFront.Types+import           Network.AWS.CloudFront.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'UpdateStreamingDistribution' constructor.+-- | The request to update a streaming distribution. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'updateStreamingDistribution' smart constructor.+data UpdateStreamingDistribution = UpdateStreamingDistribution'+    { _usdIfMatch                     :: !(Maybe Text)+    , _usdStreamingDistributionConfig :: !StreamingDistributionConfig+    , _usdId                          :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateStreamingDistribution' with the minimum fields required to make a request. ----- * 'usdId' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'usdIfMatch' @::@ 'Maybe' 'Text'+-- * 'usdIfMatch' ----- * 'usdStreamingDistributionConfig' @::@ 'StreamingDistributionConfig'+-- * 'usdStreamingDistributionConfig' ---updateStreamingDistribution :: StreamingDistributionConfig -- ^ 'usdStreamingDistributionConfig'-                            -> Text -- ^ 'usdId'-                            -> UpdateStreamingDistribution-updateStreamingDistribution p1 p2 = UpdateStreamingDistribution-    { _usdStreamingDistributionConfig = p1-    , _usdId                          = p2-    , _usdIfMatch                     = Nothing+-- * 'usdId'+updateStreamingDistribution+    :: StreamingDistributionConfig -- ^ 'usdStreamingDistributionConfig'+    -> Text -- ^ 'usdId'+    -> UpdateStreamingDistribution+updateStreamingDistribution pStreamingDistributionConfig_ pId_ =+    UpdateStreamingDistribution'+    { _usdIfMatch = Nothing+    , _usdStreamingDistributionConfig = pStreamingDistributionConfig_+    , _usdId = pId_     } --- | The streaming distribution's id.-usdId :: Lens' UpdateStreamingDistribution Text-usdId = lens _usdId (\s a -> s { _usdId = a })- -- | The value of the ETag header you received when retrieving the streaming--- distribution's configuration. For example: E2QWRUHAPOMQZL.+-- distribution\'s configuration. For example: E2QWRUHAPOMQZL. usdIfMatch :: Lens' UpdateStreamingDistribution (Maybe Text)-usdIfMatch = lens _usdIfMatch (\s a -> s { _usdIfMatch = a })+usdIfMatch = lens _usdIfMatch (\ s a -> s{_usdIfMatch = a}); --- | The streaming distribution's configuration information.+-- | The streaming distribution\'s configuration information. usdStreamingDistributionConfig :: Lens' UpdateStreamingDistribution StreamingDistributionConfig-usdStreamingDistributionConfig =-    lens _usdStreamingDistributionConfig-        (\s a -> s { _usdStreamingDistributionConfig = a })+usdStreamingDistributionConfig = lens _usdStreamingDistributionConfig (\ s a -> s{_usdStreamingDistributionConfig = a}); -data UpdateStreamingDistributionResponse = UpdateStreamingDistributionResponse-    { _usdrETag                  :: Maybe Text-    , _usdrStreamingDistribution :: Maybe StreamingDistribution-    } deriving (Eq, Read, Show)+-- | The streaming distribution\'s id.+usdId :: Lens' UpdateStreamingDistribution Text+usdId = lens _usdId (\ s a -> s{_usdId = a}); --- | 'UpdateStreamingDistributionResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'usdrETag' @::@ 'Maybe' 'Text'------ * 'usdrStreamingDistribution' @::@ 'Maybe' 'StreamingDistribution'----updateStreamingDistributionResponse :: UpdateStreamingDistributionResponse-updateStreamingDistributionResponse = UpdateStreamingDistributionResponse-    { _usdrStreamingDistribution = Nothing-    , _usdrETag                  = Nothing-    }+instance AWSRequest UpdateStreamingDistribution where+        type Sv UpdateStreamingDistribution = CloudFront+        type Rs UpdateStreamingDistribution =+             UpdateStreamingDistributionResponse+        request = putXML+        response+          = receiveXML+              (\ s h x ->+                 UpdateStreamingDistributionResponse' <$>+                   (h .#? "ETag") <*> (parseXML x) <*>+                     (pure (fromEnum s))) --- | The current version of the configuration. For example: E2QWRUHAPOMQZL.-usdrETag :: Lens' UpdateStreamingDistributionResponse (Maybe Text)-usdrETag = lens _usdrETag (\s a -> s { _usdrETag = a })+instance ToElement UpdateStreamingDistribution where+        toElement+          = mkElement+              "{http://cloudfront.amazonaws.com/doc/2015-04-17/}StreamingDistributionConfig"+              .+              _usdStreamingDistributionConfig --- | The streaming distribution's information.-usdrStreamingDistribution :: Lens' UpdateStreamingDistributionResponse (Maybe StreamingDistribution)-usdrStreamingDistribution =-    lens _usdrStreamingDistribution-        (\s a -> s { _usdrStreamingDistribution = a })+instance ToHeaders UpdateStreamingDistribution where+        toHeaders UpdateStreamingDistribution'{..}+          = mconcat ["If-Match" =# _usdIfMatch]  instance ToPath UpdateStreamingDistribution where-    toPath UpdateStreamingDistribution{..} = mconcat-        [ "/2014-11-06/streaming-distribution/"-        , toText _usdId-        , "/config"-        ]+        toPath UpdateStreamingDistribution'{..}+          = mconcat+              ["/2015-04-17/streaming-distribution/", toBS _usdId,+               "/config"]  instance ToQuery UpdateStreamingDistribution where-    toQuery = const mempty+        toQuery = const mempty -instance ToHeaders UpdateStreamingDistribution where-    toHeaders UpdateStreamingDistribution{..} = mconcat-        [ "If-Match" =: _usdIfMatch-        ]+-- | The returned result of the corresponding request.+--+-- /See:/ 'updateStreamingDistributionResponse' smart constructor.+data UpdateStreamingDistributionResponse = UpdateStreamingDistributionResponse'+    { _usdrsETag                  :: !(Maybe Text)+    , _usdrsStreamingDistribution :: !(Maybe StreamingDistribution)+    , _usdrsStatus                :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance ToXMLRoot UpdateStreamingDistribution where-    toXMLRoot = extractRoot ns . toXML . _usdStreamingDistributionConfig+-- | Creates a value of 'UpdateStreamingDistributionResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'usdrsETag'+--+-- * 'usdrsStreamingDistribution'+--+-- * 'usdrsStatus'+updateStreamingDistributionResponse+    :: Int -- ^ 'usdrsStatus'+    -> UpdateStreamingDistributionResponse+updateStreamingDistributionResponse pStatus_ =+    UpdateStreamingDistributionResponse'+    { _usdrsETag = Nothing+    , _usdrsStreamingDistribution = Nothing+    , _usdrsStatus = pStatus_+    } -instance ToXML UpdateStreamingDistribution+-- | The current version of the configuration. For example: E2QWRUHAPOMQZL.+usdrsETag :: Lens' UpdateStreamingDistributionResponse (Maybe Text)+usdrsETag = lens _usdrsETag (\ s a -> s{_usdrsETag = a}); -instance AWSRequest UpdateStreamingDistribution where-    type Sv UpdateStreamingDistribution = CloudFront-    type Rs UpdateStreamingDistribution = UpdateStreamingDistributionResponse+-- | The streaming distribution\'s information.+usdrsStreamingDistribution :: Lens' UpdateStreamingDistributionResponse (Maybe StreamingDistribution)+usdrsStreamingDistribution = lens _usdrsStreamingDistribution (\ s a -> s{_usdrsStreamingDistribution = a}); -    request  = put-    response = xmlHeaderResponse $ \h x -> UpdateStreamingDistributionResponse-        <$> h ~:? "ETag"-        <*> x .@? "StreamingDistribution"+-- | The response status code.+usdrsStatus :: Lens' UpdateStreamingDistributionResponse Int+usdrsStatus = lens _usdrsStatus (\ s a -> s{_usdrsStatus = a});
+ gen/Network/AWS/CloudFront/Waiters.hs view
@@ -0,0 +1,20 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TypeFamilies      #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.CloudFront.Waiters+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.CloudFront.Waiters where++import           Network.AWS.CloudFront.Types+import           Network.AWS.Prelude+import           Network.AWS.Waiter
+ test/Main.hs view
@@ -0,0 +1,21 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Main+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Main (main) where++import Test.Tasty+import Test.AWS.CloudFront+import Test.AWS.CloudFront.Internal++main :: IO ()+main = defaultMain $ testGroup "CloudFront"+    [ testGroup "tests"    tests+    , testGroup "fixtures" fixtures+    ]
+ test/Test/AWS/CloudFront.hs view
@@ -0,0 +1,26 @@+{-# LANGUAGE OverloadedStrings #-}++-- Module      : Test.AWS.CloudFront+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++module Test.AWS.CloudFront+    ( tests+    , fixtures+    ) where++import           Network.AWS.CloudFront+import           Test.AWS.Gen.CloudFront+import           Test.Tasty++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/AWS/CloudFront/Internal.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE OverloadedStrings #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Test.AWS.CloudFront.Internal+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++module Test.AWS.CloudFront.Internal where++import Test.AWS.Prelude
+ test/Test/AWS/Gen/CloudFront.hs view
@@ -0,0 +1,396 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-orphans        #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Test.AWS.Gen.CloudFront+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Test.AWS.Gen.CloudFront where++import Data.Proxy+import Test.AWS.Fixture+import Test.AWS.Prelude+import Test.Tasty+import Network.AWS.CloudFront+import Test.AWS.CloudFront.Internal++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+--     [ testGroup "request"+--         [ testDeleteStreamingDistribution $+--             deleteStreamingDistribution+--+--         , testUpdateStreamingDistribution $+--             updateStreamingDistribution+--+--         , testCreateDistribution $+--             createDistribution+--+--         , testGetDistributionConfig $+--             getDistributionConfig+--+--         , testGetDistribution $+--             getDistribution+--+--         , testDeleteCloudFrontOriginAccessIdentity $+--             deleteCloudFrontOriginAccessIdentity+--+--         , testUpdateCloudFrontOriginAccessIdentity $+--             updateCloudFrontOriginAccessIdentity+--+--         , testListStreamingDistributions $+--             listStreamingDistributions+--+--         , testGetStreamingDistributionConfig $+--             getStreamingDistributionConfig+--+--         , testGetCloudFrontOriginAccessIdentityConfig $+--             getCloudFrontOriginAccessIdentityConfig+--+--         , testCreateStreamingDistribution $+--             createStreamingDistribution+--+--         , testCreateCloudFrontOriginAccessIdentity $+--             createCloudFrontOriginAccessIdentity+--+--         , testListCloudFrontOriginAccessIdentities $+--             listCloudFrontOriginAccessIdentities+--+--         , testGetInvalidation $+--             getInvalidation+--+--         , testListInvalidations $+--             listInvalidations+--+--         , testGetStreamingDistribution $+--             getStreamingDistribution+--+--         , testGetCloudFrontOriginAccessIdentity $+--             getCloudFrontOriginAccessIdentity+--+--         , testCreateInvalidation $+--             createInvalidation+--+--         , testUpdateDistribution $+--             updateDistribution+--+--         , testDeleteDistribution $+--             deleteDistribution+--+--         , testListDistributions $+--             listDistributions+--+--           ]++--     , testGroup "response"+--         [ testDeleteStreamingDistributionResponse $+--             deleteStreamingDistributionResponse+--+--         , testUpdateStreamingDistributionResponse $+--             updateStreamingDistributionResponse+--+--         , testCreateDistributionResponse $+--             createDistributionResponse+--+--         , testGetDistributionConfigResponse $+--             getDistributionConfigResponse+--+--         , testGetDistributionResponse $+--             getDistributionResponse+--+--         , testDeleteCloudFrontOriginAccessIdentityResponse $+--             deleteCloudFrontOriginAccessIdentityResponse+--+--         , testUpdateCloudFrontOriginAccessIdentityResponse $+--             updateCloudFrontOriginAccessIdentityResponse+--+--         , testListStreamingDistributionsResponse $+--             listStreamingDistributionsResponse+--+--         , testGetStreamingDistributionConfigResponse $+--             getStreamingDistributionConfigResponse+--+--         , testGetCloudFrontOriginAccessIdentityConfigResponse $+--             getCloudFrontOriginAccessIdentityConfigResponse+--+--         , testCreateStreamingDistributionResponse $+--             createStreamingDistributionResponse+--+--         , testCreateCloudFrontOriginAccessIdentityResponse $+--             createCloudFrontOriginAccessIdentityResponse+--+--         , testListCloudFrontOriginAccessIdentitiesResponse $+--             listCloudFrontOriginAccessIdentitiesResponse+--+--         , testGetInvalidationResponse $+--             getInvalidationResponse+--+--         , testListInvalidationsResponse $+--             listInvalidationsResponse+--+--         , testGetStreamingDistributionResponse $+--             getStreamingDistributionResponse+--+--         , testGetCloudFrontOriginAccessIdentityResponse $+--             getCloudFrontOriginAccessIdentityResponse+--+--         , testCreateInvalidationResponse $+--             createInvalidationResponse+--+--         , testUpdateDistributionResponse $+--             updateDistributionResponse+--+--         , testDeleteDistributionResponse $+--             deleteDistributionResponse+--+--         , testListDistributionsResponse $+--             listDistributionsResponse+--+--           ]+--     ]++-- Requests++testDeleteStreamingDistribution :: DeleteStreamingDistribution -> TestTree+testDeleteStreamingDistribution = req+    "DeleteStreamingDistribution"+    "fixture/DeleteStreamingDistribution"++testUpdateStreamingDistribution :: UpdateStreamingDistribution -> TestTree+testUpdateStreamingDistribution = req+    "UpdateStreamingDistribution"+    "fixture/UpdateStreamingDistribution"++testCreateDistribution :: CreateDistribution -> TestTree+testCreateDistribution = req+    "CreateDistribution"+    "fixture/CreateDistribution"++testGetDistributionConfig :: GetDistributionConfig -> TestTree+testGetDistributionConfig = req+    "GetDistributionConfig"+    "fixture/GetDistributionConfig"++testGetDistribution :: GetDistribution -> TestTree+testGetDistribution = req+    "GetDistribution"+    "fixture/GetDistribution"++testDeleteCloudFrontOriginAccessIdentity :: DeleteCloudFrontOriginAccessIdentity -> TestTree+testDeleteCloudFrontOriginAccessIdentity = req+    "DeleteCloudFrontOriginAccessIdentity"+    "fixture/DeleteCloudFrontOriginAccessIdentity"++testUpdateCloudFrontOriginAccessIdentity :: UpdateCloudFrontOriginAccessIdentity -> TestTree+testUpdateCloudFrontOriginAccessIdentity = req+    "UpdateCloudFrontOriginAccessIdentity"+    "fixture/UpdateCloudFrontOriginAccessIdentity"++testListStreamingDistributions :: ListStreamingDistributions -> TestTree+testListStreamingDistributions = req+    "ListStreamingDistributions"+    "fixture/ListStreamingDistributions"++testGetStreamingDistributionConfig :: GetStreamingDistributionConfig -> TestTree+testGetStreamingDistributionConfig = req+    "GetStreamingDistributionConfig"+    "fixture/GetStreamingDistributionConfig"++testGetCloudFrontOriginAccessIdentityConfig :: GetCloudFrontOriginAccessIdentityConfig -> TestTree+testGetCloudFrontOriginAccessIdentityConfig = req+    "GetCloudFrontOriginAccessIdentityConfig"+    "fixture/GetCloudFrontOriginAccessIdentityConfig"++testCreateStreamingDistribution :: CreateStreamingDistribution -> TestTree+testCreateStreamingDistribution = req+    "CreateStreamingDistribution"+    "fixture/CreateStreamingDistribution"++testCreateCloudFrontOriginAccessIdentity :: CreateCloudFrontOriginAccessIdentity -> TestTree+testCreateCloudFrontOriginAccessIdentity = req+    "CreateCloudFrontOriginAccessIdentity"+    "fixture/CreateCloudFrontOriginAccessIdentity"++testListCloudFrontOriginAccessIdentities :: ListCloudFrontOriginAccessIdentities -> TestTree+testListCloudFrontOriginAccessIdentities = req+    "ListCloudFrontOriginAccessIdentities"+    "fixture/ListCloudFrontOriginAccessIdentities"++testGetInvalidation :: GetInvalidation -> TestTree+testGetInvalidation = req+    "GetInvalidation"+    "fixture/GetInvalidation"++testListInvalidations :: ListInvalidations -> TestTree+testListInvalidations = req+    "ListInvalidations"+    "fixture/ListInvalidations"++testGetStreamingDistribution :: GetStreamingDistribution -> TestTree+testGetStreamingDistribution = req+    "GetStreamingDistribution"+    "fixture/GetStreamingDistribution"++testGetCloudFrontOriginAccessIdentity :: GetCloudFrontOriginAccessIdentity -> TestTree+testGetCloudFrontOriginAccessIdentity = req+    "GetCloudFrontOriginAccessIdentity"+    "fixture/GetCloudFrontOriginAccessIdentity"++testCreateInvalidation :: CreateInvalidation -> TestTree+testCreateInvalidation = req+    "CreateInvalidation"+    "fixture/CreateInvalidation"++testUpdateDistribution :: UpdateDistribution -> TestTree+testUpdateDistribution = req+    "UpdateDistribution"+    "fixture/UpdateDistribution"++testDeleteDistribution :: DeleteDistribution -> TestTree+testDeleteDistribution = req+    "DeleteDistribution"+    "fixture/DeleteDistribution"++testListDistributions :: ListDistributions -> TestTree+testListDistributions = req+    "ListDistributions"+    "fixture/ListDistributions"++-- Responses++testDeleteStreamingDistributionResponse :: DeleteStreamingDistributionResponse -> TestTree+testDeleteStreamingDistributionResponse = res+    "DeleteStreamingDistributionResponse"+    "fixture/DeleteStreamingDistributionResponse"+    (Proxy :: Proxy DeleteStreamingDistribution)++testUpdateStreamingDistributionResponse :: UpdateStreamingDistributionResponse -> TestTree+testUpdateStreamingDistributionResponse = res+    "UpdateStreamingDistributionResponse"+    "fixture/UpdateStreamingDistributionResponse"+    (Proxy :: Proxy UpdateStreamingDistribution)++testCreateDistributionResponse :: CreateDistributionResponse -> TestTree+testCreateDistributionResponse = res+    "CreateDistributionResponse"+    "fixture/CreateDistributionResponse"+    (Proxy :: Proxy CreateDistribution)++testGetDistributionConfigResponse :: GetDistributionConfigResponse -> TestTree+testGetDistributionConfigResponse = res+    "GetDistributionConfigResponse"+    "fixture/GetDistributionConfigResponse"+    (Proxy :: Proxy GetDistributionConfig)++testGetDistributionResponse :: GetDistributionResponse -> TestTree+testGetDistributionResponse = res+    "GetDistributionResponse"+    "fixture/GetDistributionResponse"+    (Proxy :: Proxy GetDistribution)++testDeleteCloudFrontOriginAccessIdentityResponse :: DeleteCloudFrontOriginAccessIdentityResponse -> TestTree+testDeleteCloudFrontOriginAccessIdentityResponse = res+    "DeleteCloudFrontOriginAccessIdentityResponse"+    "fixture/DeleteCloudFrontOriginAccessIdentityResponse"+    (Proxy :: Proxy DeleteCloudFrontOriginAccessIdentity)++testUpdateCloudFrontOriginAccessIdentityResponse :: UpdateCloudFrontOriginAccessIdentityResponse -> TestTree+testUpdateCloudFrontOriginAccessIdentityResponse = res+    "UpdateCloudFrontOriginAccessIdentityResponse"+    "fixture/UpdateCloudFrontOriginAccessIdentityResponse"+    (Proxy :: Proxy UpdateCloudFrontOriginAccessIdentity)++testListStreamingDistributionsResponse :: ListStreamingDistributionsResponse -> TestTree+testListStreamingDistributionsResponse = res+    "ListStreamingDistributionsResponse"+    "fixture/ListStreamingDistributionsResponse"+    (Proxy :: Proxy ListStreamingDistributions)++testGetStreamingDistributionConfigResponse :: GetStreamingDistributionConfigResponse -> TestTree+testGetStreamingDistributionConfigResponse = res+    "GetStreamingDistributionConfigResponse"+    "fixture/GetStreamingDistributionConfigResponse"+    (Proxy :: Proxy GetStreamingDistributionConfig)++testGetCloudFrontOriginAccessIdentityConfigResponse :: GetCloudFrontOriginAccessIdentityConfigResponse -> TestTree+testGetCloudFrontOriginAccessIdentityConfigResponse = res+    "GetCloudFrontOriginAccessIdentityConfigResponse"+    "fixture/GetCloudFrontOriginAccessIdentityConfigResponse"+    (Proxy :: Proxy GetCloudFrontOriginAccessIdentityConfig)++testCreateStreamingDistributionResponse :: CreateStreamingDistributionResponse -> TestTree+testCreateStreamingDistributionResponse = res+    "CreateStreamingDistributionResponse"+    "fixture/CreateStreamingDistributionResponse"+    (Proxy :: Proxy CreateStreamingDistribution)++testCreateCloudFrontOriginAccessIdentityResponse :: CreateCloudFrontOriginAccessIdentityResponse -> TestTree+testCreateCloudFrontOriginAccessIdentityResponse = res+    "CreateCloudFrontOriginAccessIdentityResponse"+    "fixture/CreateCloudFrontOriginAccessIdentityResponse"+    (Proxy :: Proxy CreateCloudFrontOriginAccessIdentity)++testListCloudFrontOriginAccessIdentitiesResponse :: ListCloudFrontOriginAccessIdentitiesResponse -> TestTree+testListCloudFrontOriginAccessIdentitiesResponse = res+    "ListCloudFrontOriginAccessIdentitiesResponse"+    "fixture/ListCloudFrontOriginAccessIdentitiesResponse"+    (Proxy :: Proxy ListCloudFrontOriginAccessIdentities)++testGetInvalidationResponse :: GetInvalidationResponse -> TestTree+testGetInvalidationResponse = res+    "GetInvalidationResponse"+    "fixture/GetInvalidationResponse"+    (Proxy :: Proxy GetInvalidation)++testListInvalidationsResponse :: ListInvalidationsResponse -> TestTree+testListInvalidationsResponse = res+    "ListInvalidationsResponse"+    "fixture/ListInvalidationsResponse"+    (Proxy :: Proxy ListInvalidations)++testGetStreamingDistributionResponse :: GetStreamingDistributionResponse -> TestTree+testGetStreamingDistributionResponse = res+    "GetStreamingDistributionResponse"+    "fixture/GetStreamingDistributionResponse"+    (Proxy :: Proxy GetStreamingDistribution)++testGetCloudFrontOriginAccessIdentityResponse :: GetCloudFrontOriginAccessIdentityResponse -> TestTree+testGetCloudFrontOriginAccessIdentityResponse = res+    "GetCloudFrontOriginAccessIdentityResponse"+    "fixture/GetCloudFrontOriginAccessIdentityResponse"+    (Proxy :: Proxy GetCloudFrontOriginAccessIdentity)++testCreateInvalidationResponse :: CreateInvalidationResponse -> TestTree+testCreateInvalidationResponse = res+    "CreateInvalidationResponse"+    "fixture/CreateInvalidationResponse"+    (Proxy :: Proxy CreateInvalidation)++testUpdateDistributionResponse :: UpdateDistributionResponse -> TestTree+testUpdateDistributionResponse = res+    "UpdateDistributionResponse"+    "fixture/UpdateDistributionResponse"+    (Proxy :: Proxy UpdateDistribution)++testDeleteDistributionResponse :: DeleteDistributionResponse -> TestTree+testDeleteDistributionResponse = res+    "DeleteDistributionResponse"+    "fixture/DeleteDistributionResponse"+    (Proxy :: Proxy DeleteDistribution)++testListDistributionsResponse :: ListDistributionsResponse -> TestTree+testListDistributionsResponse = res+    "ListDistributionsResponse"+    "fixture/ListDistributionsResponse"+    (Proxy :: Proxy ListDistributions)