makeOriginEvent function

CloudFrontOriginRequestEvent makeOriginEvent({
  1. CloudFrontHeaders? originCustomHeaders,
  2. CloudFrontHeaders? requestCustomHeaders,
  3. String? requestUri,
  4. String? requestHost,
})

Implementation

CloudFrontOriginRequestEvent makeOriginEvent({
  CloudFrontHeaders? originCustomHeaders,
  CloudFrontHeaders? requestCustomHeaders,
  String? requestUri,
  String? requestHost,
}) {
  final domainName = '${randomId()}-test.cloudfront.aws.com';
  return CloudFrontOriginRequestEvent(
    records: <CloudFrontRecords>[
      CloudFrontRecords(
        cf: CloudFront(
          config: CloudFrontConfig(
            distributionDomainName: domainName,
            distributionId: randomId(),
            eventType: 'origin-request',
            requestId: randomId(32),
          ),
          request: CloudFrontRequest(
            uri: requestUri ?? '/',
            method: 'GET',
            queryString: '',
            clientIp: '127.0.0.1',
            origin: <String, CloudFrontOrigin>{
              'custom': CloudFrontOrigin(
                customHeaders: originCustomHeaders ??
                    CloudFrontHeaders(
                      headers: {},
                    ),
                domainName: requestHost ?? domainName,
                keepAliveTimeout: 30,
                path: requestUri ?? '/',
                port: 80,
                protocol: 'https',
                readTimeout: 30,
                sslProtocols: <String>['TLS_1.2'],
              )
            },
            body: CloudFrontRequestBody(
              data: '',
              inputTruncated: false,
              action: CloudFrontBodyAction.readOnly,
              encoding: CloudFrontBodyEncoding.text,
            ),
            headers: CloudFrontHeaders(
              headers: <String, List<Map<String, String>>>{
                'Host': <Map<String, String>>[
                  <String, String>{'Host': requestHost ?? domainName},
                ],
                ...requestCustomHeaders?.headers ?? {},
              },
            ),
          ),
        ),
      )
    ],
  );
}