// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 import 'package:built_value/serializer.dart'; import 'package:smithy/smithy.dart' hide Serializer; abstract class AWSHttpProtocol extends HttpProtocol { AWSHttpProtocol( this._coreSerializers, { required List> serializers, required Map builderFactories, required this.requestInterceptors, this.responseInterceptors = const [], }) : _userSerializers = serializers, _builderFactories = builderFactories; final Serializers _coreSerializers; final List> _userSerializers; final Map _builderFactories; @override final List requestInterceptors; @override final List responseInterceptors; @override late final Serializers serializers = () { final builder = _coreSerializers.toBuilder() ..addAll( _userSerializers.where((el) { return el.supportedProtocols.contains(protocolId); }), ); for (final entry in _builderFactories.entries) { builder.addBuilderFactory(entry.key, entry.value); } // Add a blob serializer for the content type of the input payload. builder.add(BlobSerializer(contentType)); return builder.build(); }(); }