code: def test_kinesis_firehose_sink(self):
      sink_properties = {
          "aws.region": "eu-west-1",
          "aws.credentials.provider.basic.accesskeyid": "aws_access_key_id",
          "aws.credentials.provider.basic.secretkey": "aws_secret_access_key",
      }
  
      ds = self.env.from_collection(
          [("ab", 1), ("bdc", 2), ("cfgs", 3), ("deeefg", 4)],
          type_info=Types.ROW([Types.STRING(), Types.INT()]),
      )
  
      kinesis_firehose_sink = (
          KinesisFirehoseSink.builder()
          .set_firehose_client_properties(sink_properties)
          .set_serialization_schema(SimpleStringSchema())
          .set_delivery_stream_name("stream-1")
          .set_fail_on_error(False)
          .set_max_batch_size(500)
          .set_max_in_flight_requests(50)
          .set_max_buffered_requests(10000)
          .set_max_batch_size_in_bytes(5 * 1024 * 1024)
          .set_max_time_in_buffer_ms(5000)
          .set_max_record_size_in_bytes(1 * 1024 * 1024)
          .build()
      )
  
      ds.sink_to(kinesis_firehose_sink).name("kinesis firehose sink")
      plan = eval(self.env.get_execution_plan())
  
      self.assertEqual(
          "kinesis firehose sink: Writer", plan["nodes"][1]["type"]
      )
      self.assertEqual(
          get_field_value(
              kinesis_firehose_sink.get_java_function(), "failOnError"
          ),
          False,
      )
      self.assertEqual(
          get_field_value(
              kinesis_firehose_sink.get_java_function(),
              "deliveryStreamName",
          ),
          "stream-1",
      )
  
file_path: flink/flink-python/pyflink/datastream/connectors/tests/test_kinesis.py
imports: from pyflink.common import SimpleStringSchema, Types
  from pyflink.datastream.connectors.kinesis import PartitionKeyGenerator, FlinkKinesisConsumer, KinesisStreamsSink, KinesisFirehoseSink
  from pyflink.testing.test_case_utils import PyFlinkUTTestCase
  from pyflink.util.java_utils import get_field_value
label_desc: Use image node_id 3 for calling the FlinkKinesisTest obj's underlying member method code with example usage: obj.test_kinesis_firehose_sink() without return types