@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Amazon CloudFront
@version 2020-05-31
@auth AWS SigV4
@endpoints 111
@hint download_for_search
@toc 2020-05-31(111)

@endpoint PUT /2020-05-31/distribution/{TargetDistributionId}/associate-alias
@required {TargetDistributionId: str, Alias: str}

@endpoint POST /2020-05-31/distribution/{PrimaryDistributionId}/copy
@required {PrimaryDistributionId: str, CallerReference: str}
@optional {Staging: bool, If-Match: str, Enabled: bool}
@returns(200) {Distribution: Distribution?{Id: str, ARN: str, Status: str, LastModifiedTime: str(timestamp), InProgressInvalidationBatches: int, DomainName: str, ActiveTrustedSigners: ActiveTrustedSigners?{Enabled: bool, Quantity: int, Items: [Signer]?}, ActiveTrustedKeyGroups: ActiveTrustedKeyGroups?{Enabled: bool, Quantity: int, Items: [KGKeyPairIds]?}, DistributionConfig: DistributionConfig{CallerReference: str, Aliases: Aliases?{Quantity: int, Items: [str]?}, DefaultRootObject: str?, Origins: Origins{Quantity: int, Items: [Origin]}, OriginGroups: OriginGroups?{Quantity: int, Items: [OriginGroup]?}, DefaultCacheBehavior: DefaultCacheBehavior{TargetOriginId: str, TrustedSigners: TrustedSigners?, TrustedKeyGroups: TrustedKeyGroups?, ViewerProtocolPolicy: str, AllowedMethods: AllowedMethods?, SmoothStreaming: bool?, Compress: bool?, LambdaFunctionAssociations: LambdaFunctionAssociations?, FunctionAssociations: FunctionAssociations?, FieldLevelEncryptionId: str?, RealtimeLogConfigArn: str?, CachePolicyId: str?, OriginRequestPolicyId: str?, ResponseHeadersPolicyId: str?, ForwardedValues: ForwardedValues?, MinTTL: int(i64)?, DefaultTTL: int(i64)?, MaxTTL: int(i64)?}, CacheBehaviors: CacheBehaviors?{Quantity: int, Items: [CacheBehavior]?}, CustomErrorResponses: CustomErrorResponses?{Quantity: int, Items: [CustomErrorResponse]?}, Comment: str, Logging: LoggingConfig?{Enabled: bool, IncludeCookies: bool, Bucket: str, Prefix: str}, PriceClass: str?, Enabled: bool, ViewerCertificate: ViewerCertificate?{CloudFrontDefaultCertificate: bool?, IAMCertificateId: str?, ACMCertificateArn: str?, SSLSupportMethod: str?, MinimumProtocolVersion: str?, Certificate: str?, CertificateSource: str?}, Restrictions: Restrictions?{GeoRestriction: GeoRestriction}, WebACLId: str?, HttpVersion: str?, IsIPV6Enabled: bool?, ContinuousDeploymentPolicyId: str?, Staging: bool?}, AliasICPRecordals: [AliasICPRecordal]?}, Location: str?, ETag: str?}

@endpoint POST /2020-05-31/cache-policy
@required {CachePolicyConfig: CachePolicyConfig}
@returns(200) {CachePolicy: CachePolicy?{Id: str, LastModifiedTime: str(timestamp), CachePolicyConfig: CachePolicyConfig{Comment: str?, Name: str, DefaultTTL: int(i64)?, MaxTTL: int(i64)?, MinTTL: int(i64), ParametersInCacheKeyAndForwardedToOrigin: ParametersInCacheKeyAndForwardedToOrigin?{EnableAcceptEncodingGzip: bool, EnableAcceptEncodingBrotli: bool?, HeadersConfig: CachePolicyHeadersConfig, CookiesConfig: CachePolicyCookiesConfig, QueryStringsConfig: CachePolicyQueryStringsConfig}}}, Location: str?, ETag: str?}

@endpoint POST /2020-05-31/origin-access-identity/cloudfront
@required {CloudFrontOriginAccessIdentityConfig: CloudFrontOriginAccessIdentityConfig}
@returns(200) {CloudFrontOriginAccessIdentity: CloudFrontOriginAccessIdentity?{Id: str, S3CanonicalUserId: str, CloudFrontOriginAccessIdentityConfig: CloudFrontOriginAccessIdentityConfig?{CallerReference: str, Comment: str}}, Location: str?, ETag: str?}

@endpoint POST /2020-05-31/continuous-deployment-policy
@required {ContinuousDeploymentPolicyConfig: ContinuousDeploymentPolicyConfig}
@returns(200) {ContinuousDeploymentPolicy: ContinuousDeploymentPolicy?{Id: str, LastModifiedTime: str(timestamp), ContinuousDeploymentPolicyConfig: ContinuousDeploymentPolicyConfig{StagingDistributionDnsNames: StagingDistributionDnsNames{Quantity: int, Items: [str]?}, Enabled: bool, TrafficConfig: TrafficConfig?{SingleWeightConfig: ContinuousDeploymentSingleWeightConfig?, SingleHeaderConfig: ContinuousDeploymentSingleHeaderConfig?, Type: str}}}, Location: str?, ETag: str?}

@endpoint POST /2020-05-31/distribution
@required {DistributionConfig: DistributionConfig}
@returns(200) {Distribution: Distribution?{Id: str, ARN: str, Status: str, LastModifiedTime: str(timestamp), InProgressInvalidationBatches: int, DomainName: str, ActiveTrustedSigners: ActiveTrustedSigners?{Enabled: bool, Quantity: int, Items: [Signer]?}, ActiveTrustedKeyGroups: ActiveTrustedKeyGroups?{Enabled: bool, Quantity: int, Items: [KGKeyPairIds]?}, DistributionConfig: DistributionConfig{CallerReference: str, Aliases: Aliases?{Quantity: int, Items: [str]?}, DefaultRootObject: str?, Origins: Origins{Quantity: int, Items: [Origin]}, OriginGroups: OriginGroups?{Quantity: int, Items: [OriginGroup]?}, DefaultCacheBehavior: DefaultCacheBehavior{TargetOriginId: str, TrustedSigners: TrustedSigners?, TrustedKeyGroups: TrustedKeyGroups?, ViewerProtocolPolicy: str, AllowedMethods: AllowedMethods?, SmoothStreaming: bool?, Compress: bool?, LambdaFunctionAssociations: LambdaFunctionAssociations?, FunctionAssociations: FunctionAssociations?, FieldLevelEncryptionId: str?, RealtimeLogConfigArn: str?, CachePolicyId: str?, OriginRequestPolicyId: str?, ResponseHeadersPolicyId: str?, ForwardedValues: ForwardedValues?, MinTTL: int(i64)?, DefaultTTL: int(i64)?, MaxTTL: int(i64)?}, CacheBehaviors: CacheBehaviors?{Quantity: int, Items: [CacheBehavior]?}, CustomErrorResponses: CustomErrorResponses?{Quantity: int, Items: [CustomErrorResponse]?}, Comment: str, Logging: LoggingConfig?{Enabled: bool, IncludeCookies: bool, Bucket: str, Prefix: str}, PriceClass: str?, Enabled: bool, ViewerCertificate: ViewerCertificate?{CloudFrontDefaultCertificate: bool?, IAMCertificateId: str?, ACMCertificateArn: str?, SSLSupportMethod: str?, MinimumProtocolVersion: str?, Certificate: str?, CertificateSource: str?}, Restrictions: Restrictions?{GeoRestriction: GeoRestriction}, WebACLId: str?, HttpVersion: str?, IsIPV6Enabled: bool?, ContinuousDeploymentPolicyId: str?, Staging: bool?}, AliasICPRecordals: [AliasICPRecordal]?}, Location: str?, ETag: str?}

@endpoint POST /2020-05-31/distribution?WithTags
@required {DistributionConfigWithTags: DistributionConfigWithTags}
@returns(200) {Distribution: Distribution?{Id: str, ARN: str, Status: str, LastModifiedTime: str(timestamp), InProgressInvalidationBatches: int, DomainName: str, ActiveTrustedSigners: ActiveTrustedSigners?{Enabled: bool, Quantity: int, Items: [Signer]?}, ActiveTrustedKeyGroups: ActiveTrustedKeyGroups?{Enabled: bool, Quantity: int, Items: [KGKeyPairIds]?}, DistributionConfig: DistributionConfig{CallerReference: str, Aliases: Aliases?{Quantity: int, Items: [str]?}, DefaultRootObject: str?, Origins: Origins{Quantity: int, Items: [Origin]}, OriginGroups: OriginGroups?{Quantity: int, Items: [OriginGroup]?}, DefaultCacheBehavior: DefaultCacheBehavior{TargetOriginId: str, TrustedSigners: TrustedSigners?, TrustedKeyGroups: TrustedKeyGroups?, ViewerProtocolPolicy: str, AllowedMethods: AllowedMethods?, SmoothStreaming: bool?, Compress: bool?, LambdaFunctionAssociations: LambdaFunctionAssociations?, FunctionAssociations: FunctionAssociations?, FieldLevelEncryptionId: str?, RealtimeLogConfigArn: str?, CachePolicyId: str?, OriginRequestPolicyId: str?, ResponseHeadersPolicyId: str?, ForwardedValues: ForwardedValues?, MinTTL: int(i64)?, DefaultTTL: int(i64)?, MaxTTL: int(i64)?}, CacheBehaviors: CacheBehaviors?{Quantity: int, Items: [CacheBehavior]?}, CustomErrorResponses: CustomErrorResponses?{Quantity: int, Items: [CustomErrorResponse]?}, Comment: str, Logging: LoggingConfig?{Enabled: bool, IncludeCookies: bool, Bucket: str, Prefix: str}, PriceClass: str?, Enabled: bool, ViewerCertificate: ViewerCertificate?{CloudFrontDefaultCertificate: bool?, IAMCertificateId: str?, ACMCertificateArn: str?, SSLSupportMethod: str?, MinimumProtocolVersion: str?, Certificate: str?, CertificateSource: str?}, Restrictions: Restrictions?{GeoRestriction: GeoRestriction}, WebACLId: str?, HttpVersion: str?, IsIPV6Enabled: bool?, ContinuousDeploymentPolicyId: str?, Staging: bool?}, AliasICPRecordals: [AliasICPRecordal]?}, Location: str?, ETag: str?}

@endpoint POST /2020-05-31/field-level-encryption
@required {FieldLevelEncryptionConfig: FieldLevelEncryptionConfig}
@returns(200) {FieldLevelEncryption: FieldLevelEncryption?{Id: str, LastModifiedTime: str(timestamp), FieldLevelEncryptionConfig: FieldLevelEncryptionConfig{CallerReference: str, Comment: str?, QueryArgProfileConfig: QueryArgProfileConfig?{ForwardWhenQueryArgProfileIsUnknown: bool, QueryArgProfiles: QueryArgProfiles?}, ContentTypeProfileConfig: ContentTypeProfileConfig?{ForwardWhenContentTypeIsUnknown: bool, ContentTypeProfiles: ContentTypeProfiles?}}}, Location: str?, ETag: str?}

@endpoint POST /2020-05-31/field-level-encryption-profile
@required {FieldLevelEncryptionProfileConfig: FieldLevelEncryptionProfileConfig}
@returns(200) {FieldLevelEncryptionProfile: FieldLevelEncryptionProfile?{Id: str, LastModifiedTime: str(timestamp), FieldLevelEncryptionProfileConfig: FieldLevelEncryptionProfileConfig{Name: str, CallerReference: str, Comment: str?, EncryptionEntities: EncryptionEntities{Quantity: int, Items: [EncryptionEntity]?}}}, Location: str?, ETag: str?}

@endpoint POST /2020-05-31/function
@required {Name: str, FunctionConfig: FunctionConfig, FunctionCode: bytes}
@returns(200) {FunctionSummary: FunctionSummary?{Name: str, Status: str?, FunctionConfig: FunctionConfig{Comment: str, Runtime: str, KeyValueStoreAssociations: KeyValueStoreAssociations?{Quantity: int, Items: [KeyValueStoreAssociation]?}}, FunctionMetadata: FunctionMetadata{FunctionARN: str, Stage: str?, CreatedTime: str(timestamp)?, LastModifiedTime: str(timestamp)}}, Location: str?, ETag: str?}

@endpoint POST /2020-05-31/distribution/{DistributionId}/invalidation
@required {DistributionId: str, InvalidationBatch: InvalidationBatch}
@returns(200) {Location: str?, Invalidation: Invalidation?{Id: str, Status: str, CreateTime: str(timestamp), InvalidationBatch: InvalidationBatch{Paths: Paths{Quantity: int, Items: [str]?}, CallerReference: str}}}

@endpoint POST /2020-05-31/key-group
@required {KeyGroupConfig: KeyGroupConfig}
@returns(200) {KeyGroup: KeyGroup?{Id: str, LastModifiedTime: str(timestamp), KeyGroupConfig: KeyGroupConfig{Name: str, Items: [str], Comment: str?}}, Location: str?, ETag: str?}

@endpoint POST /2020-05-31/key-value-store/
@required {Name: str}
@optional {Comment: str, ImportSource: ImportSource}
@returns(200) {KeyValueStore: KeyValueStore?{Name: str, Id: str, Comment: str, ARN: str, Status: str?, LastModifiedTime: str(timestamp)}, ETag: str?, Location: str?}

@endpoint POST /2020-05-31/distributions/{DistributionId}/monitoring-subscription/
@required {DistributionId: str, MonitoringSubscription: MonitoringSubscription}
@returns(200) {MonitoringSubscription: MonitoringSubscription?{RealtimeMetricsSubscriptionConfig: RealtimeMetricsSubscriptionConfig?{RealtimeMetricsSubscriptionStatus: str}}}

@endpoint POST /2020-05-31/origin-access-control
@required {OriginAccessControlConfig: OriginAccessControlConfig}
@returns(200) {OriginAccessControl: OriginAccessControl?{Id: str, OriginAccessControlConfig: OriginAccessControlConfig?{Name: str, Description: str?, SigningProtocol: str, SigningBehavior: str, OriginAccessControlOriginType: str}}, Location: str?, ETag: str?}

@endpoint POST /2020-05-31/origin-request-policy
@required {OriginRequestPolicyConfig: OriginRequestPolicyConfig}
@returns(200) {OriginRequestPolicy: OriginRequestPolicy?{Id: str, LastModifiedTime: str(timestamp), OriginRequestPolicyConfig: OriginRequestPolicyConfig{Comment: str?, Name: str, HeadersConfig: OriginRequestPolicyHeadersConfig{HeaderBehavior: str, Headers: Headers?}, CookiesConfig: OriginRequestPolicyCookiesConfig{CookieBehavior: str, Cookies: CookieNames?}, QueryStringsConfig: OriginRequestPolicyQueryStringsConfig{QueryStringBehavior: str, QueryStrings: QueryStringNames?}}}, Location: str?, ETag: str?}

@endpoint POST /2020-05-31/public-key
@required {PublicKeyConfig: PublicKeyConfig}
@returns(200) {PublicKey: PublicKey?{Id: str, CreatedTime: str(timestamp), PublicKeyConfig: PublicKeyConfig{CallerReference: str, Name: str, EncodedKey: str, Comment: str?}}, Location: str?, ETag: str?}

@endpoint POST /2020-05-31/realtime-log-config
@required {EndPoints: [EndPoint], Fields: [str], Name: str, SamplingRate: int(i64)}
@returns(200) {RealtimeLogConfig: RealtimeLogConfig?{ARN: str, Name: str, SamplingRate: int(i64), EndPoints: [EndPoint], Fields: [str]}}

@endpoint POST /2020-05-31/response-headers-policy
@required {ResponseHeadersPolicyConfig: ResponseHeadersPolicyConfig}
@returns(200) {ResponseHeadersPolicy: ResponseHeadersPolicy?{Id: str, LastModifiedTime: str(timestamp), ResponseHeadersPolicyConfig: ResponseHeadersPolicyConfig{Comment: str?, Name: str, CorsConfig: ResponseHeadersPolicyCorsConfig?{AccessControlAllowOrigins: ResponseHeadersPolicyAccessControlAllowOrigins, AccessControlAllowHeaders: ResponseHeadersPolicyAccessControlAllowHeaders, AccessControlAllowMethods: ResponseHeadersPolicyAccessControlAllowMethods, AccessControlAllowCredentials: bool, AccessControlExposeHeaders: ResponseHeadersPolicyAccessControlExposeHeaders?, AccessControlMaxAgeSec: int?, OriginOverride: bool}, SecurityHeadersConfig: ResponseHeadersPolicySecurityHeadersConfig?{XSSProtection: ResponseHeadersPolicyXSSProtection?, FrameOptions: ResponseHeadersPolicyFrameOptions?, ReferrerPolicy: ResponseHeadersPolicyReferrerPolicy?, ContentSecurityPolicy: ResponseHeadersPolicyContentSecurityPolicy?, ContentTypeOptions: ResponseHeadersPolicyContentTypeOptions?, StrictTransportSecurity: ResponseHeadersPolicyStrictTransportSecurity?}, ServerTimingHeadersConfig: ResponseHeadersPolicyServerTimingHeadersConfig?{Enabled: bool, SamplingRate: num(f64)?}, CustomHeadersConfig: ResponseHeadersPolicyCustomHeadersConfig?{Quantity: int, Items: [ResponseHeadersPolicyCustomHeader]?}, RemoveHeadersConfig: ResponseHeadersPolicyRemoveHeadersConfig?{Quantity: int, Items: [ResponseHeadersPolicyRemoveHeader]?}}}, Location: str?, ETag: str?}

@endpoint POST /2020-05-31/streaming-distribution
@required {StreamingDistributionConfig: StreamingDistributionConfig}
@returns(200) {StreamingDistribution: StreamingDistribution?{Id: str, ARN: str, Status: str, LastModifiedTime: str(timestamp)?, DomainName: str, ActiveTrustedSigners: ActiveTrustedSigners{Enabled: bool, Quantity: int, Items: [Signer]?}, StreamingDistributionConfig: StreamingDistributionConfig{CallerReference: str, S3Origin: S3Origin{DomainName: str, OriginAccessIdentity: str}, Aliases: Aliases?{Quantity: int, Items: [str]?}, Comment: str, Logging: StreamingLoggingConfig?{Enabled: bool, Bucket: str, Prefix: str}, TrustedSigners: TrustedSigners{Enabled: bool, Quantity: int, Items: [str]?}, PriceClass: str?, Enabled: bool}}, Location: str?, ETag: str?}

@endpoint POST /2020-05-31/streaming-distribution?WithTags
@required {StreamingDistributionConfigWithTags: StreamingDistributionConfigWithTags}
@returns(200) {StreamingDistribution: StreamingDistribution?{Id: str, ARN: str, Status: str, LastModifiedTime: str(timestamp)?, DomainName: str, ActiveTrustedSigners: ActiveTrustedSigners{Enabled: bool, Quantity: int, Items: [Signer]?}, StreamingDistributionConfig: StreamingDistributionConfig{CallerReference: str, S3Origin: S3Origin{DomainName: str, OriginAccessIdentity: str}, Aliases: Aliases?{Quantity: int, Items: [str]?}, Comment: str, Logging: StreamingLoggingConfig?{Enabled: bool, Bucket: str, Prefix: str}, TrustedSigners: TrustedSigners{Enabled: bool, Quantity: int, Items: [str]?}, PriceClass: str?, Enabled: bool}}, Location: str?, ETag: str?}

@endpoint DELETE /2020-05-31/cache-policy/{Id}
@required {Id: str}
@optional {If-Match: str}

@endpoint DELETE /2020-05-31/origin-access-identity/cloudfront/{Id}
@required {Id: str}
@optional {If-Match: str}

@endpoint DELETE /2020-05-31/continuous-deployment-policy/{Id}
@required {Id: str}
@optional {If-Match: str}

@endpoint DELETE /2020-05-31/distribution/{Id}
@required {Id: str}
@optional {If-Match: str}

@endpoint DELETE /2020-05-31/field-level-encryption/{Id}
@required {Id: str}
@optional {If-Match: str}

@endpoint DELETE /2020-05-31/field-level-encryption-profile/{Id}
@required {Id: str}
@optional {If-Match: str}

@endpoint DELETE /2020-05-31/function/{Name}
@required {Name: str, If-Match: str}

@endpoint DELETE /2020-05-31/key-group/{Id}
@required {Id: str}
@optional {If-Match: str}

@endpoint DELETE /2020-05-31/key-value-store/{Name}
@required {Name: str, If-Match: str}

@endpoint DELETE /2020-05-31/distributions/{DistributionId}/monitoring-subscription/
@required {DistributionId: str}

@endpoint DELETE /2020-05-31/origin-access-control/{Id}
@required {Id: str}
@optional {If-Match: str}

@endpoint DELETE /2020-05-31/origin-request-policy/{Id}
@required {Id: str}
@optional {If-Match: str}

@endpoint DELETE /2020-05-31/public-key/{Id}
@required {Id: str}
@optional {If-Match: str}

@endpoint POST /2020-05-31/delete-realtime-log-config/
@optional {Name: str, ARN: str}

@endpoint DELETE /2020-05-31/response-headers-policy/{Id}
@required {Id: str}
@optional {If-Match: str}

@endpoint DELETE /2020-05-31/streaming-distribution/{Id}
@required {Id: str}
@optional {If-Match: str}

@endpoint GET /2020-05-31/function/{Name}/describe
@required {Name: str}
@optional {Stage: str}
@returns(200) {FunctionSummary: FunctionSummary?{Name: str, Status: str?, FunctionConfig: FunctionConfig{Comment: str, Runtime: str, KeyValueStoreAssociations: KeyValueStoreAssociations?{Quantity: int, Items: [KeyValueStoreAssociation]?}}, FunctionMetadata: FunctionMetadata{FunctionARN: str, Stage: str?, CreatedTime: str(timestamp)?, LastModifiedTime: str(timestamp)}}, ETag: str?}

@endpoint GET /2020-05-31/key-value-store/{Name}
@required {Name: str}
@returns(200) {KeyValueStore: KeyValueStore?{Name: str, Id: str, Comment: str, ARN: str, Status: str?, LastModifiedTime: str(timestamp)}, ETag: str?}

@endpoint GET /2020-05-31/cache-policy/{Id}
@required {Id: str}
@returns(200) {CachePolicy: CachePolicy?{Id: str, LastModifiedTime: str(timestamp), CachePolicyConfig: CachePolicyConfig{Comment: str?, Name: str, DefaultTTL: int(i64)?, MaxTTL: int(i64)?, MinTTL: int(i64), ParametersInCacheKeyAndForwardedToOrigin: ParametersInCacheKeyAndForwardedToOrigin?{EnableAcceptEncodingGzip: bool, EnableAcceptEncodingBrotli: bool?, HeadersConfig: CachePolicyHeadersConfig, CookiesConfig: CachePolicyCookiesConfig, QueryStringsConfig: CachePolicyQueryStringsConfig}}}, ETag: str?}

@endpoint GET /2020-05-31/cache-policy/{Id}/config
@required {Id: str}
@returns(200) {CachePolicyConfig: CachePolicyConfig?{Comment: str?, Name: str, DefaultTTL: int(i64)?, MaxTTL: int(i64)?, MinTTL: int(i64), ParametersInCacheKeyAndForwardedToOrigin: ParametersInCacheKeyAndForwardedToOrigin?{EnableAcceptEncodingGzip: bool, EnableAcceptEncodingBrotli: bool?, HeadersConfig: CachePolicyHeadersConfig{HeaderBehavior: str, Headers: Headers?}, CookiesConfig: CachePolicyCookiesConfig{CookieBehavior: str, Cookies: CookieNames?}, QueryStringsConfig: CachePolicyQueryStringsConfig{QueryStringBehavior: str, QueryStrings: QueryStringNames?}}}, ETag: str?}

@endpoint GET /2020-05-31/origin-access-identity/cloudfront/{Id}
@required {Id: str}
@returns(200) {CloudFrontOriginAccessIdentity: CloudFrontOriginAccessIdentity?{Id: str, S3CanonicalUserId: str, CloudFrontOriginAccessIdentityConfig: CloudFrontOriginAccessIdentityConfig?{CallerReference: str, Comment: str}}, ETag: str?}

@endpoint GET /2020-05-31/origin-access-identity/cloudfront/{Id}/config
@required {Id: str}
@returns(200) {CloudFrontOriginAccessIdentityConfig: CloudFrontOriginAccessIdentityConfig?{CallerReference: str, Comment: str}, ETag: str?}

@endpoint GET /2020-05-31/continuous-deployment-policy/{Id}
@required {Id: str}
@returns(200) {ContinuousDeploymentPolicy: ContinuousDeploymentPolicy?{Id: str, LastModifiedTime: str(timestamp), ContinuousDeploymentPolicyConfig: ContinuousDeploymentPolicyConfig{StagingDistributionDnsNames: StagingDistributionDnsNames{Quantity: int, Items: [str]?}, Enabled: bool, TrafficConfig: TrafficConfig?{SingleWeightConfig: ContinuousDeploymentSingleWeightConfig?, SingleHeaderConfig: ContinuousDeploymentSingleHeaderConfig?, Type: str}}}, ETag: str?}

@endpoint GET /2020-05-31/continuous-deployment-policy/{Id}/config
@required {Id: str}
@returns(200) {ContinuousDeploymentPolicyConfig: ContinuousDeploymentPolicyConfig?{StagingDistributionDnsNames: StagingDistributionDnsNames{Quantity: int, Items: [str]?}, Enabled: bool, TrafficConfig: TrafficConfig?{SingleWeightConfig: ContinuousDeploymentSingleWeightConfig?{Weight: num(f32), SessionStickinessConfig: SessionStickinessConfig?}, SingleHeaderConfig: ContinuousDeploymentSingleHeaderConfig?{Header: str, Value: str}, Type: str}}, ETag: str?}

@endpoint GET /2020-05-31/distribution/{Id}
@required {Id: str}
@returns(200) {Distribution: Distribution?{Id: str, ARN: str, Status: str, LastModifiedTime: str(timestamp), InProgressInvalidationBatches: int, DomainName: str, ActiveTrustedSigners: ActiveTrustedSigners?{Enabled: bool, Quantity: int, Items: [Signer]?}, ActiveTrustedKeyGroups: ActiveTrustedKeyGroups?{Enabled: bool, Quantity: int, Items: [KGKeyPairIds]?}, DistributionConfig: DistributionConfig{CallerReference: str, Aliases: Aliases?{Quantity: int, Items: [str]?}, DefaultRootObject: str?, Origins: Origins{Quantity: int, Items: [Origin]}, OriginGroups: OriginGroups?{Quantity: int, Items: [OriginGroup]?}, DefaultCacheBehavior: DefaultCacheBehavior{TargetOriginId: str, TrustedSigners: TrustedSigners?, TrustedKeyGroups: TrustedKeyGroups?, ViewerProtocolPolicy: str, AllowedMethods: AllowedMethods?, SmoothStreaming: bool?, Compress: bool?, LambdaFunctionAssociations: LambdaFunctionAssociations?, FunctionAssociations: FunctionAssociations?, FieldLevelEncryptionId: str?, RealtimeLogConfigArn: str?, CachePolicyId: str?, OriginRequestPolicyId: str?, ResponseHeadersPolicyId: str?, ForwardedValues: ForwardedValues?, MinTTL: int(i64)?, DefaultTTL: int(i64)?, MaxTTL: int(i64)?}, CacheBehaviors: CacheBehaviors?{Quantity: int, Items: [CacheBehavior]?}, CustomErrorResponses: CustomErrorResponses?{Quantity: int, Items: [CustomErrorResponse]?}, Comment: str, Logging: LoggingConfig?{Enabled: bool, IncludeCookies: bool, Bucket: str, Prefix: str}, PriceClass: str?, Enabled: bool, ViewerCertificate: ViewerCertificate?{CloudFrontDefaultCertificate: bool?, IAMCertificateId: str?, ACMCertificateArn: str?, SSLSupportMethod: str?, MinimumProtocolVersion: str?, Certificate: str?, CertificateSource: str?}, Restrictions: Restrictions?{GeoRestriction: GeoRestriction}, WebACLId: str?, HttpVersion: str?, IsIPV6Enabled: bool?, ContinuousDeploymentPolicyId: str?, Staging: bool?}, AliasICPRecordals: [AliasICPRecordal]?}, ETag: str?}

@endpoint GET /2020-05-31/distribution/{Id}/config
@required {Id: str}
@returns(200) {DistributionConfig: DistributionConfig?{CallerReference: str, Aliases: Aliases?{Quantity: int, Items: [str]?}, DefaultRootObject: str?, Origins: Origins{Quantity: int, Items: [Origin]}, OriginGroups: OriginGroups?{Quantity: int, Items: [OriginGroup]?}, DefaultCacheBehavior: DefaultCacheBehavior{TargetOriginId: str, TrustedSigners: TrustedSigners?{Enabled: bool, Quantity: int, Items: [str]?}, TrustedKeyGroups: TrustedKeyGroups?{Enabled: bool, Quantity: int, Items: [str]?}, ViewerProtocolPolicy: str, AllowedMethods: AllowedMethods?{Quantity: int, Items: [str], CachedMethods: CachedMethods?}, SmoothStreaming: bool?, Compress: bool?, LambdaFunctionAssociations: LambdaFunctionAssociations?{Quantity: int, Items: [LambdaFunctionAssociation]?}, FunctionAssociations: FunctionAssociations?{Quantity: int, Items: [FunctionAssociation]?}, FieldLevelEncryptionId: str?, RealtimeLogConfigArn: str?, CachePolicyId: str?, OriginRequestPolicyId: str?, ResponseHeadersPolicyId: str?, ForwardedValues: ForwardedValues?{QueryString: bool, Cookies: CookiePreference, Headers: Headers?, QueryStringCacheKeys: QueryStringCacheKeys?}, MinTTL: int(i64)?, DefaultTTL: int(i64)?, MaxTTL: int(i64)?}, CacheBehaviors: CacheBehaviors?{Quantity: int, Items: [CacheBehavior]?}, CustomErrorResponses: CustomErrorResponses?{Quantity: int, Items: [CustomErrorResponse]?}, Comment: str, Logging: LoggingConfig?{Enabled: bool, IncludeCookies: bool, Bucket: str, Prefix: str}, PriceClass: str?, Enabled: bool, ViewerCertificate: ViewerCertificate?{CloudFrontDefaultCertificate: bool?, IAMCertificateId: str?, ACMCertificateArn: str?, SSLSupportMethod: str?, MinimumProtocolVersion: str?, Certificate: str?, CertificateSource: str?}, Restrictions: Restrictions?{GeoRestriction: GeoRestriction{RestrictionType: str, Quantity: int, Items: [str]?}}, WebACLId: str?, HttpVersion: str?, IsIPV6Enabled: bool?, ContinuousDeploymentPolicyId: str?, Staging: bool?}, ETag: str?}

@endpoint GET /2020-05-31/field-level-encryption/{Id}
@required {Id: str}
@returns(200) {FieldLevelEncryption: FieldLevelEncryption?{Id: str, LastModifiedTime: str(timestamp), FieldLevelEncryptionConfig: FieldLevelEncryptionConfig{CallerReference: str, Comment: str?, QueryArgProfileConfig: QueryArgProfileConfig?{ForwardWhenQueryArgProfileIsUnknown: bool, QueryArgProfiles: QueryArgProfiles?}, ContentTypeProfileConfig: ContentTypeProfileConfig?{ForwardWhenContentTypeIsUnknown: bool, ContentTypeProfiles: ContentTypeProfiles?}}}, ETag: str?}

@endpoint GET /2020-05-31/field-level-encryption/{Id}/config
@required {Id: str}
@returns(200) {FieldLevelEncryptionConfig: FieldLevelEncryptionConfig?{CallerReference: str, Comment: str?, QueryArgProfileConfig: QueryArgProfileConfig?{ForwardWhenQueryArgProfileIsUnknown: bool, QueryArgProfiles: QueryArgProfiles?{Quantity: int, Items: [QueryArgProfile]?}}, ContentTypeProfileConfig: ContentTypeProfileConfig?{ForwardWhenContentTypeIsUnknown: bool, ContentTypeProfiles: ContentTypeProfiles?{Quantity: int, Items: [ContentTypeProfile]?}}}, ETag: str?}

@endpoint GET /2020-05-31/field-level-encryption-profile/{Id}
@required {Id: str}
@returns(200) {FieldLevelEncryptionProfile: FieldLevelEncryptionProfile?{Id: str, LastModifiedTime: str(timestamp), FieldLevelEncryptionProfileConfig: FieldLevelEncryptionProfileConfig{Name: str, CallerReference: str, Comment: str?, EncryptionEntities: EncryptionEntities{Quantity: int, Items: [EncryptionEntity]?}}}, ETag: str?}

@endpoint GET /2020-05-31/field-level-encryption-profile/{Id}/config
@required {Id: str}
@returns(200) {FieldLevelEncryptionProfileConfig: FieldLevelEncryptionProfileConfig?{Name: str, CallerReference: str, Comment: str?, EncryptionEntities: EncryptionEntities{Quantity: int, Items: [EncryptionEntity]?}}, ETag: str?}

@endpoint GET /2020-05-31/function/{Name}
@required {Name: str}
@optional {Stage: str}
@returns(200) {FunctionCode: bytes?, ETag: str?, ContentType: str?}

@endpoint GET /2020-05-31/distribution/{DistributionId}/invalidation/{Id}
@required {DistributionId: str, Id: str}
@returns(200) {Invalidation: Invalidation?{Id: str, Status: str, CreateTime: str(timestamp), InvalidationBatch: InvalidationBatch{Paths: Paths{Quantity: int, Items: [str]?}, CallerReference: str}}}

@endpoint GET /2020-05-31/key-group/{Id}
@required {Id: str}
@returns(200) {KeyGroup: KeyGroup?{Id: str, LastModifiedTime: str(timestamp), KeyGroupConfig: KeyGroupConfig{Name: str, Items: [str], Comment: str?}}, ETag: str?}

@endpoint GET /2020-05-31/key-group/{Id}/config
@required {Id: str}
@returns(200) {KeyGroupConfig: KeyGroupConfig?{Name: str, Items: [str], Comment: str?}, ETag: str?}

@endpoint GET /2020-05-31/distributions/{DistributionId}/monitoring-subscription/
@required {DistributionId: str}
@returns(200) {MonitoringSubscription: MonitoringSubscription?{RealtimeMetricsSubscriptionConfig: RealtimeMetricsSubscriptionConfig?{RealtimeMetricsSubscriptionStatus: str}}}

@endpoint GET /2020-05-31/origin-access-control/{Id}
@required {Id: str}
@returns(200) {OriginAccessControl: OriginAccessControl?{Id: str, OriginAccessControlConfig: OriginAccessControlConfig?{Name: str, Description: str?, SigningProtocol: str, SigningBehavior: str, OriginAccessControlOriginType: str}}, ETag: str?}

@endpoint GET /2020-05-31/origin-access-control/{Id}/config
@required {Id: str}
@returns(200) {OriginAccessControlConfig: OriginAccessControlConfig?{Name: str, Description: str?, SigningProtocol: str, SigningBehavior: str, OriginAccessControlOriginType: str}, ETag: str?}

@endpoint GET /2020-05-31/origin-request-policy/{Id}
@required {Id: str}
@returns(200) {OriginRequestPolicy: OriginRequestPolicy?{Id: str, LastModifiedTime: str(timestamp), OriginRequestPolicyConfig: OriginRequestPolicyConfig{Comment: str?, Name: str, HeadersConfig: OriginRequestPolicyHeadersConfig{HeaderBehavior: str, Headers: Headers?}, CookiesConfig: OriginRequestPolicyCookiesConfig{CookieBehavior: str, Cookies: CookieNames?}, QueryStringsConfig: OriginRequestPolicyQueryStringsConfig{QueryStringBehavior: str, QueryStrings: QueryStringNames?}}}, ETag: str?}

@endpoint GET /2020-05-31/origin-request-policy/{Id}/config
@required {Id: str}
@returns(200) {OriginRequestPolicyConfig: OriginRequestPolicyConfig?{Comment: str?, Name: str, HeadersConfig: OriginRequestPolicyHeadersConfig{HeaderBehavior: str, Headers: Headers?{Quantity: int, Items: [str]?}}, CookiesConfig: OriginRequestPolicyCookiesConfig{CookieBehavior: str, Cookies: CookieNames?{Quantity: int, Items: [str]?}}, QueryStringsConfig: OriginRequestPolicyQueryStringsConfig{QueryStringBehavior: str, QueryStrings: QueryStringNames?{Quantity: int, Items: [str]?}}}, ETag: str?}

@endpoint GET /2020-05-31/public-key/{Id}
@required {Id: str}
@returns(200) {PublicKey: PublicKey?{Id: str, CreatedTime: str(timestamp), PublicKeyConfig: PublicKeyConfig{CallerReference: str, Name: str, EncodedKey: str, Comment: str?}}, ETag: str?}

@endpoint GET /2020-05-31/public-key/{Id}/config
@required {Id: str}
@returns(200) {PublicKeyConfig: PublicKeyConfig?{CallerReference: str, Name: str, EncodedKey: str, Comment: str?}, ETag: str?}

@endpoint POST /2020-05-31/get-realtime-log-config/
@optional {Name: str, ARN: str}
@returns(200) {RealtimeLogConfig: RealtimeLogConfig?{ARN: str, Name: str, SamplingRate: int(i64), EndPoints: [EndPoint], Fields: [str]}}

@endpoint GET /2020-05-31/response-headers-policy/{Id}
@required {Id: str}
@returns(200) {ResponseHeadersPolicy: ResponseHeadersPolicy?{Id: str, LastModifiedTime: str(timestamp), ResponseHeadersPolicyConfig: ResponseHeadersPolicyConfig{Comment: str?, Name: str, CorsConfig: ResponseHeadersPolicyCorsConfig?{AccessControlAllowOrigins: ResponseHeadersPolicyAccessControlAllowOrigins, AccessControlAllowHeaders: ResponseHeadersPolicyAccessControlAllowHeaders, AccessControlAllowMethods: ResponseHeadersPolicyAccessControlAllowMethods, AccessControlAllowCredentials: bool, AccessControlExposeHeaders: ResponseHeadersPolicyAccessControlExposeHeaders?, AccessControlMaxAgeSec: int?, OriginOverride: bool}, SecurityHeadersConfig: ResponseHeadersPolicySecurityHeadersConfig?{XSSProtection: ResponseHeadersPolicyXSSProtection?, FrameOptions: ResponseHeadersPolicyFrameOptions?, ReferrerPolicy: ResponseHeadersPolicyReferrerPolicy?, ContentSecurityPolicy: ResponseHeadersPolicyContentSecurityPolicy?, ContentTypeOptions: ResponseHeadersPolicyContentTypeOptions?, StrictTransportSecurity: ResponseHeadersPolicyStrictTransportSecurity?}, ServerTimingHeadersConfig: ResponseHeadersPolicyServerTimingHeadersConfig?{Enabled: bool, SamplingRate: num(f64)?}, CustomHeadersConfig: ResponseHeadersPolicyCustomHeadersConfig?{Quantity: int, Items: [ResponseHeadersPolicyCustomHeader]?}, RemoveHeadersConfig: ResponseHeadersPolicyRemoveHeadersConfig?{Quantity: int, Items: [ResponseHeadersPolicyRemoveHeader]?}}}, ETag: str?}

@endpoint GET /2020-05-31/response-headers-policy/{Id}/config
@required {Id: str}
@returns(200) {ResponseHeadersPolicyConfig: ResponseHeadersPolicyConfig?{Comment: str?, Name: str, CorsConfig: ResponseHeadersPolicyCorsConfig?{AccessControlAllowOrigins: ResponseHeadersPolicyAccessControlAllowOrigins{Quantity: int, Items: [str]}, AccessControlAllowHeaders: ResponseHeadersPolicyAccessControlAllowHeaders{Quantity: int, Items: [str]}, AccessControlAllowMethods: ResponseHeadersPolicyAccessControlAllowMethods{Quantity: int, Items: [str]}, AccessControlAllowCredentials: bool, AccessControlExposeHeaders: ResponseHeadersPolicyAccessControlExposeHeaders?{Quantity: int, Items: [str]?}, AccessControlMaxAgeSec: int?, OriginOverride: bool}, SecurityHeadersConfig: ResponseHeadersPolicySecurityHeadersConfig?{XSSProtection: ResponseHeadersPolicyXSSProtection?{Override: bool, Protection: bool, ModeBlock: bool?, ReportUri: str?}, FrameOptions: ResponseHeadersPolicyFrameOptions?{Override: bool, FrameOption: str}, ReferrerPolicy: ResponseHeadersPolicyReferrerPolicy?{Override: bool, ReferrerPolicy: str}, ContentSecurityPolicy: ResponseHeadersPolicyContentSecurityPolicy?{Override: bool, ContentSecurityPolicy: str}, ContentTypeOptions: ResponseHeadersPolicyContentTypeOptions?{Override: bool}, StrictTransportSecurity: ResponseHeadersPolicyStrictTransportSecurity?{Override: bool, IncludeSubdomains: bool?, Preload: bool?, AccessControlMaxAgeSec: int}}, ServerTimingHeadersConfig: ResponseHeadersPolicyServerTimingHeadersConfig?{Enabled: bool, SamplingRate: num(f64)?}, CustomHeadersConfig: ResponseHeadersPolicyCustomHeadersConfig?{Quantity: int, Items: [ResponseHeadersPolicyCustomHeader]?}, RemoveHeadersConfig: ResponseHeadersPolicyRemoveHeadersConfig?{Quantity: int, Items: [ResponseHeadersPolicyRemoveHeader]?}}, ETag: str?}

@endpoint GET /2020-05-31/streaming-distribution/{Id}
@required {Id: str}
@returns(200) {StreamingDistribution: StreamingDistribution?{Id: str, ARN: str, Status: str, LastModifiedTime: str(timestamp)?, DomainName: str, ActiveTrustedSigners: ActiveTrustedSigners{Enabled: bool, Quantity: int, Items: [Signer]?}, StreamingDistributionConfig: StreamingDistributionConfig{CallerReference: str, S3Origin: S3Origin{DomainName: str, OriginAccessIdentity: str}, Aliases: Aliases?{Quantity: int, Items: [str]?}, Comment: str, Logging: StreamingLoggingConfig?{Enabled: bool, Bucket: str, Prefix: str}, TrustedSigners: TrustedSigners{Enabled: bool, Quantity: int, Items: [str]?}, PriceClass: str?, Enabled: bool}}, ETag: str?}

@endpoint GET /2020-05-31/streaming-distribution/{Id}/config
@required {Id: str}
@returns(200) {StreamingDistributionConfig: StreamingDistributionConfig?{CallerReference: str, S3Origin: S3Origin{DomainName: str, OriginAccessIdentity: str}, Aliases: Aliases?{Quantity: int, Items: [str]?}, Comment: str, Logging: StreamingLoggingConfig?{Enabled: bool, Bucket: str, Prefix: str}, TrustedSigners: TrustedSigners{Enabled: bool, Quantity: int, Items: [str]?}, PriceClass: str?, Enabled: bool}, ETag: str?}

@endpoint GET /2020-05-31/cache-policy
@optional {Type: str, Marker: str, MaxItems: str}
@returns(200) {CachePolicyList: CachePolicyList?{NextMarker: str?, MaxItems: int, Quantity: int, Items: [CachePolicySummary]?}}

@endpoint GET /2020-05-31/origin-access-identity/cloudfront
@optional {Marker: str, MaxItems: str}
@returns(200) {CloudFrontOriginAccessIdentityList: CloudFrontOriginAccessIdentityList?{Marker: str, NextMarker: str?, MaxItems: int, IsTruncated: bool, Quantity: int, Items: [CloudFrontOriginAccessIdentitySummary]?}}

@endpoint GET /2020-05-31/conflicting-alias
@required {DistributionId: str, Alias: str}
@optional {Marker: str, MaxItems: int}
@returns(200) {ConflictingAliasesList: ConflictingAliasesList?{NextMarker: str?, MaxItems: int?, Quantity: int?, Items: [ConflictingAlias]?}}

@endpoint GET /2020-05-31/continuous-deployment-policy
@optional {Marker: str, MaxItems: str}
@returns(200) {ContinuousDeploymentPolicyList: ContinuousDeploymentPolicyList?{NextMarker: str?, MaxItems: int, Quantity: int, Items: [ContinuousDeploymentPolicySummary]?}}

@endpoint GET /2020-05-31/distribution
@optional {Marker: str, MaxItems: str}
@returns(200) {DistributionList: DistributionList?{Marker: str, NextMarker: str?, MaxItems: int, IsTruncated: bool, Quantity: int, Items: [DistributionSummary]?}}

@endpoint GET /2020-05-31/distributionsByCachePolicyId/{CachePolicyId}
@required {CachePolicyId: str}
@optional {Marker: str, MaxItems: str}
@returns(200) {DistributionIdList: DistributionIdList?{Marker: str, NextMarker: str?, MaxItems: int, IsTruncated: bool, Quantity: int, Items: [str]?}}

@endpoint GET /2020-05-31/distributionsByKeyGroupId/{KeyGroupId}
@required {KeyGroupId: str}
@optional {Marker: str, MaxItems: str}
@returns(200) {DistributionIdList: DistributionIdList?{Marker: str, NextMarker: str?, MaxItems: int, IsTruncated: bool, Quantity: int, Items: [str]?}}

@endpoint GET /2020-05-31/distributionsByOriginRequestPolicyId/{OriginRequestPolicyId}
@required {OriginRequestPolicyId: str}
@optional {Marker: str, MaxItems: str}
@returns(200) {DistributionIdList: DistributionIdList?{Marker: str, NextMarker: str?, MaxItems: int, IsTruncated: bool, Quantity: int, Items: [str]?}}

@endpoint POST /2020-05-31/distributionsByRealtimeLogConfig/
@optional {Marker: str, MaxItems: str, RealtimeLogConfigName: str, RealtimeLogConfigArn: str}
@returns(200) {DistributionList: DistributionList?{Marker: str, NextMarker: str?, MaxItems: int, IsTruncated: bool, Quantity: int, Items: [DistributionSummary]?}}

@endpoint GET /2020-05-31/distributionsByResponseHeadersPolicyId/{ResponseHeadersPolicyId}
@required {ResponseHeadersPolicyId: str}
@optional {Marker: str, MaxItems: str}
@returns(200) {DistributionIdList: DistributionIdList?{Marker: str, NextMarker: str?, MaxItems: int, IsTruncated: bool, Quantity: int, Items: [str]?}}

@endpoint GET /2020-05-31/distributionsByWebACLId/{WebACLId}
@required {WebACLId: str}
@optional {Marker: str, MaxItems: str}
@returns(200) {DistributionList: DistributionList?{Marker: str, NextMarker: str?, MaxItems: int, IsTruncated: bool, Quantity: int, Items: [DistributionSummary]?}}

@endpoint GET /2020-05-31/field-level-encryption
@optional {Marker: str, MaxItems: str}
@returns(200) {FieldLevelEncryptionList: FieldLevelEncryptionList?{NextMarker: str?, MaxItems: int, Quantity: int, Items: [FieldLevelEncryptionSummary]?}}

@endpoint GET /2020-05-31/field-level-encryption-profile
@optional {Marker: str, MaxItems: str}
@returns(200) {FieldLevelEncryptionProfileList: FieldLevelEncryptionProfileList?{NextMarker: str?, MaxItems: int, Quantity: int, Items: [FieldLevelEncryptionProfileSummary]?}}

@endpoint GET /2020-05-31/function
@optional {Marker: str, MaxItems: str, Stage: str}
@returns(200) {FunctionList: FunctionList?{NextMarker: str?, MaxItems: int, Quantity: int, Items: [FunctionSummary]?}}

@endpoint GET /2020-05-31/distribution/{DistributionId}/invalidation
@required {DistributionId: str}
@optional {Marker: str, MaxItems: str}
@returns(200) {InvalidationList: InvalidationList?{Marker: str, NextMarker: str?, MaxItems: int, IsTruncated: bool, Quantity: int, Items: [InvalidationSummary]?}}

@endpoint GET /2020-05-31/key-group
@optional {Marker: str, MaxItems: str}
@returns(200) {KeyGroupList: KeyGroupList?{NextMarker: str?, MaxItems: int, Quantity: int, Items: [KeyGroupSummary]?}}

@endpoint GET /2020-05-31/key-value-store
@optional {Marker: str, MaxItems: str, Status: str}
@returns(200) {KeyValueStoreList: KeyValueStoreList?{NextMarker: str?, MaxItems: int, Quantity: int, Items: [KeyValueStore]?}}

@endpoint GET /2020-05-31/origin-access-control
@optional {Marker: str, MaxItems: str}
@returns(200) {OriginAccessControlList: OriginAccessControlList?{Marker: str, NextMarker: str?, MaxItems: int, IsTruncated: bool, Quantity: int, Items: [OriginAccessControlSummary]?}}

@endpoint GET /2020-05-31/origin-request-policy
@optional {Type: str, Marker: str, MaxItems: str}
@returns(200) {OriginRequestPolicyList: OriginRequestPolicyList?{NextMarker: str?, MaxItems: int, Quantity: int, Items: [OriginRequestPolicySummary]?}}

@endpoint GET /2020-05-31/public-key
@optional {Marker: str, MaxItems: str}
@returns(200) {PublicKeyList: PublicKeyList?{NextMarker: str?, MaxItems: int, Quantity: int, Items: [PublicKeySummary]?}}

@endpoint GET /2020-05-31/realtime-log-config
@optional {MaxItems: str, Marker: str}
@returns(200) {RealtimeLogConfigs: RealtimeLogConfigs?{MaxItems: int, Items: [RealtimeLogConfig]?, IsTruncated: bool, Marker: str, NextMarker: str?}}

@endpoint GET /2020-05-31/response-headers-policy
@optional {Type: str, Marker: str, MaxItems: str}
@returns(200) {ResponseHeadersPolicyList: ResponseHeadersPolicyList?{NextMarker: str?, MaxItems: int, Quantity: int, Items: [ResponseHeadersPolicySummary]?}}

@endpoint GET /2020-05-31/streaming-distribution
@optional {Marker: str, MaxItems: str}
@returns(200) {StreamingDistributionList: StreamingDistributionList?{Marker: str, NextMarker: str?, MaxItems: int, IsTruncated: bool, Quantity: int, Items: [StreamingDistributionSummary]?}}

@endpoint GET /2020-05-31/tagging
@required {Resource: str}
@returns(200) {Tags: Tags{Items: [Tag]?}}

@endpoint POST /2020-05-31/function/{Name}/publish
@required {Name: str, If-Match: str}
@returns(200) {FunctionSummary: FunctionSummary?{Name: str, Status: str?, FunctionConfig: FunctionConfig{Comment: str, Runtime: str, KeyValueStoreAssociations: KeyValueStoreAssociations?{Quantity: int, Items: [KeyValueStoreAssociation]?}}, FunctionMetadata: FunctionMetadata{FunctionARN: str, Stage: str?, CreatedTime: str(timestamp)?, LastModifiedTime: str(timestamp)}}}

@endpoint POST /2020-05-31/tagging?Operation=Tag
@required {Resource: str, Tags: Tags}

@endpoint POST /2020-05-31/function/{Name}/test
@required {Name: str, If-Match: str, EventObject: bytes}
@optional {Stage: str}
@returns(200) {TestResult: TestResult?{FunctionSummary: FunctionSummary?{Name: str, Status: str?, FunctionConfig: FunctionConfig{Comment: str, Runtime: str, KeyValueStoreAssociations: KeyValueStoreAssociations?}, FunctionMetadata: FunctionMetadata{FunctionARN: str, Stage: str?, CreatedTime: str(timestamp)?, LastModifiedTime: str(timestamp)}}, ComputeUtilization: str?, FunctionExecutionLogs: [str]?, FunctionErrorMessage: str?, FunctionOutput: str?}}

@endpoint POST /2020-05-31/tagging?Operation=Untag
@required {Resource: str, TagKeys: TagKeys}

@endpoint PUT /2020-05-31/cache-policy/{Id}
@required {Id: str, CachePolicyConfig: CachePolicyConfig}
@optional {If-Match: str}
@returns(200) {CachePolicy: CachePolicy?{Id: str, LastModifiedTime: str(timestamp), CachePolicyConfig: CachePolicyConfig{Comment: str?, Name: str, DefaultTTL: int(i64)?, MaxTTL: int(i64)?, MinTTL: int(i64), ParametersInCacheKeyAndForwardedToOrigin: ParametersInCacheKeyAndForwardedToOrigin?{EnableAcceptEncodingGzip: bool, EnableAcceptEncodingBrotli: bool?, HeadersConfig: CachePolicyHeadersConfig, CookiesConfig: CachePolicyCookiesConfig, QueryStringsConfig: CachePolicyQueryStringsConfig}}}, ETag: str?}

@endpoint PUT /2020-05-31/origin-access-identity/cloudfront/{Id}/config
@required {Id: str, CloudFrontOriginAccessIdentityConfig: CloudFrontOriginAccessIdentityConfig}
@optional {If-Match: str}
@returns(200) {CloudFrontOriginAccessIdentity: CloudFrontOriginAccessIdentity?{Id: str, S3CanonicalUserId: str, CloudFrontOriginAccessIdentityConfig: CloudFrontOriginAccessIdentityConfig?{CallerReference: str, Comment: str}}, ETag: str?}

@endpoint PUT /2020-05-31/continuous-deployment-policy/{Id}
@required {Id: str, ContinuousDeploymentPolicyConfig: ContinuousDeploymentPolicyConfig}
@optional {If-Match: str}
@returns(200) {ContinuousDeploymentPolicy: ContinuousDeploymentPolicy?{Id: str, LastModifiedTime: str(timestamp), ContinuousDeploymentPolicyConfig: ContinuousDeploymentPolicyConfig{StagingDistributionDnsNames: StagingDistributionDnsNames{Quantity: int, Items: [str]?}, Enabled: bool, TrafficConfig: TrafficConfig?{SingleWeightConfig: ContinuousDeploymentSingleWeightConfig?, SingleHeaderConfig: ContinuousDeploymentSingleHeaderConfig?, Type: str}}}, ETag: str?}

@endpoint PUT /2020-05-31/distribution/{Id}/config
@required {Id: str, DistributionConfig: DistributionConfig}
@optional {If-Match: str}
@returns(200) {Distribution: Distribution?{Id: str, ARN: str, Status: str, LastModifiedTime: str(timestamp), InProgressInvalidationBatches: int, DomainName: str, ActiveTrustedSigners: ActiveTrustedSigners?{Enabled: bool, Quantity: int, Items: [Signer]?}, ActiveTrustedKeyGroups: ActiveTrustedKeyGroups?{Enabled: bool, Quantity: int, Items: [KGKeyPairIds]?}, DistributionConfig: DistributionConfig{CallerReference: str, Aliases: Aliases?{Quantity: int, Items: [str]?}, DefaultRootObject: str?, Origins: Origins{Quantity: int, Items: [Origin]}, OriginGroups: OriginGroups?{Quantity: int, Items: [OriginGroup]?}, DefaultCacheBehavior: DefaultCacheBehavior{TargetOriginId: str, TrustedSigners: TrustedSigners?, TrustedKeyGroups: TrustedKeyGroups?, ViewerProtocolPolicy: str, AllowedMethods: AllowedMethods?, SmoothStreaming: bool?, Compress: bool?, LambdaFunctionAssociations: LambdaFunctionAssociations?, FunctionAssociations: FunctionAssociations?, FieldLevelEncryptionId: str?, RealtimeLogConfigArn: str?, CachePolicyId: str?, OriginRequestPolicyId: str?, ResponseHeadersPolicyId: str?, ForwardedValues: ForwardedValues?, MinTTL: int(i64)?, DefaultTTL: int(i64)?, MaxTTL: int(i64)?}, CacheBehaviors: CacheBehaviors?{Quantity: int, Items: [CacheBehavior]?}, CustomErrorResponses: CustomErrorResponses?{Quantity: int, Items: [CustomErrorResponse]?}, Comment: str, Logging: LoggingConfig?{Enabled: bool, IncludeCookies: bool, Bucket: str, Prefix: str}, PriceClass: str?, Enabled: bool, ViewerCertificate: ViewerCertificate?{CloudFrontDefaultCertificate: bool?, IAMCertificateId: str?, ACMCertificateArn: str?, SSLSupportMethod: str?, MinimumProtocolVersion: str?, Certificate: str?, CertificateSource: str?}, Restrictions: Restrictions?{GeoRestriction: GeoRestriction}, WebACLId: str?, HttpVersion: str?, IsIPV6Enabled: bool?, ContinuousDeploymentPolicyId: str?, Staging: bool?}, AliasICPRecordals: [AliasICPRecordal]?}, ETag: str?}

@endpoint PUT /2020-05-31/distribution/{Id}/promote-staging-config
@required {Id: str}
@optional {StagingDistributionId: str, If-Match: str}
@returns(200) {Distribution: Distribution?{Id: str, ARN: str, Status: str, LastModifiedTime: str(timestamp), InProgressInvalidationBatches: int, DomainName: str, ActiveTrustedSigners: ActiveTrustedSigners?{Enabled: bool, Quantity: int, Items: [Signer]?}, ActiveTrustedKeyGroups: ActiveTrustedKeyGroups?{Enabled: bool, Quantity: int, Items: [KGKeyPairIds]?}, DistributionConfig: DistributionConfig{CallerReference: str, Aliases: Aliases?{Quantity: int, Items: [str]?}, DefaultRootObject: str?, Origins: Origins{Quantity: int, Items: [Origin]}, OriginGroups: OriginGroups?{Quantity: int, Items: [OriginGroup]?}, DefaultCacheBehavior: DefaultCacheBehavior{TargetOriginId: str, TrustedSigners: TrustedSigners?, TrustedKeyGroups: TrustedKeyGroups?, ViewerProtocolPolicy: str, AllowedMethods: AllowedMethods?, SmoothStreaming: bool?, Compress: bool?, LambdaFunctionAssociations: LambdaFunctionAssociations?, FunctionAssociations: FunctionAssociations?, FieldLevelEncryptionId: str?, RealtimeLogConfigArn: str?, CachePolicyId: str?, OriginRequestPolicyId: str?, ResponseHeadersPolicyId: str?, ForwardedValues: ForwardedValues?, MinTTL: int(i64)?, DefaultTTL: int(i64)?, MaxTTL: int(i64)?}, CacheBehaviors: CacheBehaviors?{Quantity: int, Items: [CacheBehavior]?}, CustomErrorResponses: CustomErrorResponses?{Quantity: int, Items: [CustomErrorResponse]?}, Comment: str, Logging: LoggingConfig?{Enabled: bool, IncludeCookies: bool, Bucket: str, Prefix: str}, PriceClass: str?, Enabled: bool, ViewerCertificate: ViewerCertificate?{CloudFrontDefaultCertificate: bool?, IAMCertificateId: str?, ACMCertificateArn: str?, SSLSupportMethod: str?, MinimumProtocolVersion: str?, Certificate: str?, CertificateSource: str?}, Restrictions: Restrictions?{GeoRestriction: GeoRestriction}, WebACLId: str?, HttpVersion: str?, IsIPV6Enabled: bool?, ContinuousDeploymentPolicyId: str?, Staging: bool?}, AliasICPRecordals: [AliasICPRecordal]?}, ETag: str?}

@endpoint PUT /2020-05-31/field-level-encryption/{Id}/config
@required {Id: str, FieldLevelEncryptionConfig: FieldLevelEncryptionConfig}
@optional {If-Match: str}
@returns(200) {FieldLevelEncryption: FieldLevelEncryption?{Id: str, LastModifiedTime: str(timestamp), FieldLevelEncryptionConfig: FieldLevelEncryptionConfig{CallerReference: str, Comment: str?, QueryArgProfileConfig: QueryArgProfileConfig?{ForwardWhenQueryArgProfileIsUnknown: bool, QueryArgProfiles: QueryArgProfiles?}, ContentTypeProfileConfig: ContentTypeProfileConfig?{ForwardWhenContentTypeIsUnknown: bool, ContentTypeProfiles: ContentTypeProfiles?}}}, ETag: str?}

@endpoint PUT /2020-05-31/field-level-encryption-profile/{Id}/config
@required {Id: str, FieldLevelEncryptionProfileConfig: FieldLevelEncryptionProfileConfig}
@optional {If-Match: str}
@returns(200) {FieldLevelEncryptionProfile: FieldLevelEncryptionProfile?{Id: str, LastModifiedTime: str(timestamp), FieldLevelEncryptionProfileConfig: FieldLevelEncryptionProfileConfig{Name: str, CallerReference: str, Comment: str?, EncryptionEntities: EncryptionEntities{Quantity: int, Items: [EncryptionEntity]?}}}, ETag: str?}

@endpoint PUT /2020-05-31/function/{Name}
@required {Name: str, If-Match: str, FunctionConfig: FunctionConfig, FunctionCode: bytes}
@returns(200) {FunctionSummary: FunctionSummary?{Name: str, Status: str?, FunctionConfig: FunctionConfig{Comment: str, Runtime: str, KeyValueStoreAssociations: KeyValueStoreAssociations?{Quantity: int, Items: [KeyValueStoreAssociation]?}}, FunctionMetadata: FunctionMetadata{FunctionARN: str, Stage: str?, CreatedTime: str(timestamp)?, LastModifiedTime: str(timestamp)}}, ETag: str?}

@endpoint PUT /2020-05-31/key-group/{Id}
@required {Id: str, KeyGroupConfig: KeyGroupConfig}
@optional {If-Match: str}
@returns(200) {KeyGroup: KeyGroup?{Id: str, LastModifiedTime: str(timestamp), KeyGroupConfig: KeyGroupConfig{Name: str, Items: [str], Comment: str?}}, ETag: str?}

@endpoint PUT /2020-05-31/key-value-store/{Name}
@required {Name: str, If-Match: str, Comment: str}
@returns(200) {KeyValueStore: KeyValueStore?{Name: str, Id: str, Comment: str, ARN: str, Status: str?, LastModifiedTime: str(timestamp)}, ETag: str?}

@endpoint PUT /2020-05-31/origin-access-control/{Id}/config
@required {Id: str, OriginAccessControlConfig: OriginAccessControlConfig}
@optional {If-Match: str}
@returns(200) {OriginAccessControl: OriginAccessControl?{Id: str, OriginAccessControlConfig: OriginAccessControlConfig?{Name: str, Description: str?, SigningProtocol: str, SigningBehavior: str, OriginAccessControlOriginType: str}}, ETag: str?}

@endpoint PUT /2020-05-31/origin-request-policy/{Id}
@required {Id: str, OriginRequestPolicyConfig: OriginRequestPolicyConfig}
@optional {If-Match: str}
@returns(200) {OriginRequestPolicy: OriginRequestPolicy?{Id: str, LastModifiedTime: str(timestamp), OriginRequestPolicyConfig: OriginRequestPolicyConfig{Comment: str?, Name: str, HeadersConfig: OriginRequestPolicyHeadersConfig{HeaderBehavior: str, Headers: Headers?}, CookiesConfig: OriginRequestPolicyCookiesConfig{CookieBehavior: str, Cookies: CookieNames?}, QueryStringsConfig: OriginRequestPolicyQueryStringsConfig{QueryStringBehavior: str, QueryStrings: QueryStringNames?}}}, ETag: str?}

@endpoint PUT /2020-05-31/public-key/{Id}/config
@required {Id: str, PublicKeyConfig: PublicKeyConfig}
@optional {If-Match: str}
@returns(200) {PublicKey: PublicKey?{Id: str, CreatedTime: str(timestamp), PublicKeyConfig: PublicKeyConfig{CallerReference: str, Name: str, EncodedKey: str, Comment: str?}}, ETag: str?}

@endpoint PUT /2020-05-31/realtime-log-config/
@optional {EndPoints: [EndPoint], Fields: [str], Name: str, ARN: str, SamplingRate: int(i64)}
@returns(200) {RealtimeLogConfig: RealtimeLogConfig?{ARN: str, Name: str, SamplingRate: int(i64), EndPoints: [EndPoint], Fields: [str]}}

@endpoint PUT /2020-05-31/response-headers-policy/{Id}
@required {Id: str, ResponseHeadersPolicyConfig: ResponseHeadersPolicyConfig}
@optional {If-Match: str}
@returns(200) {ResponseHeadersPolicy: ResponseHeadersPolicy?{Id: str, LastModifiedTime: str(timestamp), ResponseHeadersPolicyConfig: ResponseHeadersPolicyConfig{Comment: str?, Name: str, CorsConfig: ResponseHeadersPolicyCorsConfig?{AccessControlAllowOrigins: ResponseHeadersPolicyAccessControlAllowOrigins, AccessControlAllowHeaders: ResponseHeadersPolicyAccessControlAllowHeaders, AccessControlAllowMethods: ResponseHeadersPolicyAccessControlAllowMethods, AccessControlAllowCredentials: bool, AccessControlExposeHeaders: ResponseHeadersPolicyAccessControlExposeHeaders?, AccessControlMaxAgeSec: int?, OriginOverride: bool}, SecurityHeadersConfig: ResponseHeadersPolicySecurityHeadersConfig?{XSSProtection: ResponseHeadersPolicyXSSProtection?, FrameOptions: ResponseHeadersPolicyFrameOptions?, ReferrerPolicy: ResponseHeadersPolicyReferrerPolicy?, ContentSecurityPolicy: ResponseHeadersPolicyContentSecurityPolicy?, ContentTypeOptions: ResponseHeadersPolicyContentTypeOptions?, StrictTransportSecurity: ResponseHeadersPolicyStrictTransportSecurity?}, ServerTimingHeadersConfig: ResponseHeadersPolicyServerTimingHeadersConfig?{Enabled: bool, SamplingRate: num(f64)?}, CustomHeadersConfig: ResponseHeadersPolicyCustomHeadersConfig?{Quantity: int, Items: [ResponseHeadersPolicyCustomHeader]?}, RemoveHeadersConfig: ResponseHeadersPolicyRemoveHeadersConfig?{Quantity: int, Items: [ResponseHeadersPolicyRemoveHeader]?}}}, ETag: str?}

@endpoint PUT /2020-05-31/streaming-distribution/{Id}/config
@required {Id: str, StreamingDistributionConfig: StreamingDistributionConfig}
@optional {If-Match: str}
@returns(200) {StreamingDistribution: StreamingDistribution?{Id: str, ARN: str, Status: str, LastModifiedTime: str(timestamp)?, DomainName: str, ActiveTrustedSigners: ActiveTrustedSigners{Enabled: bool, Quantity: int, Items: [Signer]?}, StreamingDistributionConfig: StreamingDistributionConfig{CallerReference: str, S3Origin: S3Origin{DomainName: str, OriginAccessIdentity: str}, Aliases: Aliases?{Quantity: int, Items: [str]?}, Comment: str, Logging: StreamingLoggingConfig?{Enabled: bool, Bucket: str, Prefix: str}, TrustedSigners: TrustedSigners{Enabled: bool, Quantity: int, Items: [str]?}, PriceClass: str?, Enabled: bool}}, ETag: str?}

@end
