docs: @SneakyThrows
      public AmazonDynamoDB createAmazonDynamoDb(final AbstractDynamoDbProperties props) {
          if (props.isLocalInstance()) {
              LOGGER.debug("Creating DynamoDb standard client with endpoint [{}] and region [{}]",
                  props.getEndpoint(), props.getRegion());
              val endpoint = new AwsClientBuilder.EndpointConfiguration(
                  props.getEndpoint(), props.getRegion());
              return AmazonDynamoDBClientBuilder.standard()
                  .withEndpointConfiguration(endpoint)
                  .build();
          }
  
          val provider = ChainingAWSCredentialsProvider.getInstance(props.getCredentialAccessKey(),
              props.getCredentialSecretKey(), props.getCredentialsPropertiesFile());
  
          LOGGER.trace("Creating DynamoDb client configuration...");
          val cfg = AmazonClientConfigurationBuilder.buildClientConfiguration(props);
  
          LOGGER.debug("Creating DynamoDb client instance...");
          val clientBuilder = AmazonDynamoDBClientBuilder
              .standard()
              .withClientConfiguration(cfg)
              .withCredentials(provider);
  
          val region = StringUtils.defaultIfBlank(props.getRegionOverride(), props.getRegion());
  
          if (StringUtils.isNotBlank(props.getEndpoint())) {
              LOGGER.trace("Setting DynamoDb client endpoint [{}]", props.getEndpoint());
              clientBuilder.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(props.getEndpoint(), region));
          }
  
          if (StringUtils.isNotBlank(region)) {
              LOGGER.trace("Setting DynamoDb client region [{}]", props.getRegion());
              clientBuilder.withRegion(region);
          }
          return clientBuilder.build();
      }