public AwsRegion deserialize()

in statefun-flink/statefun-flink-io-bundle/src/main/java/org/apache/flink/statefun/flink/io/kinesis/binders/AwsRegionJsonDeserializer.java [36:59]


  public AwsRegion deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
      throws IOException {
    final ObjectNode awsRegionNode = jsonParser.readValueAs(ObjectNode.class);
    final String typeString = awsRegionNode.get("type").asText();

    switch (typeString) {
      case DEFAULT_TYPE:
        return AwsRegion.fromDefaultProviderChain();
      case SPECIFIED_ID_TYPE:
        return AwsRegion.ofId(awsRegionNode.get("id").asText());
      case CUSTOM_ENDPOINT_TYPE:
        return AwsRegion.ofCustomEndpoint(
            awsRegionNode.get("endpoint").asText(), awsRegionNode.get("id").asText());
      default:
        final List<String> validValues =
            Arrays.asList(DEFAULT_TYPE, SPECIFIED_ID_TYPE, CUSTOM_ENDPOINT_TYPE);
        throw new IllegalArgumentException(
            "Invalid AWS region type: "
                + typeString
                + "; valid values are ["
                + String.join(", ", validValues)
                + "]");
    }
  }