presto-kinesis/src/main/java/io/prestosql/plugin/kinesis/KinesisModule.java/KinesisModule/configure
class KinesisModule:    @Override
    public void configure(Binder binder)
    {
        // Note: handle resolver handled separately, along with several other classes.
        binder.bind(KinesisConnector.class).in(Scopes.SINGLETON);

        binder.bind(KinesisMetadata.class).in(Scopes.SINGLETON);
        binder.bind(KinesisSplitManager.class).in(Scopes.SINGLETON);
        binder.bind(KinesisRecordSetProvider.class).in(Scopes.SINGLETON);
        binder.bind(S3TableConfigClient.class).in(Scopes.SINGLETON);
        binder.bind(KinesisSessionProperties.class).in(Scopes.SINGLETON);

        configBinder(binder).bindConfig(KinesisConfig.class);

        jsonBinder(binder).addDeserializerBinding(Type.class).to(TypeDeserializer.class);
        jsonCodecBinder(binder).bindJsonCodec(KinesisStreamDescription.class);

        binder.install(new DecoderModule());

        for (KinesisInternalFieldDescription internalFieldDescription : KinesisInternalFieldDescription.values()) {
            bindInternalColumn(binder, internalFieldDescription);
        }
    }