code: public void createTicketTables(final boolean deleteTables) {
          val metadata = this.ticketCatalog.findAll();
          metadata.forEach(Unchecked.consumer(r -> {
              val request = new CreateTableRequest()
                  .withAttributeDefinitions(new AttributeDefinition(ColumnNames.ID.getColumnName(), ScalarAttributeType.S))
                  .withKeySchema(new KeySchemaElement(ColumnNames.ID.getColumnName(), KeyType.HASH))
                  .withProvisionedThroughput(new ProvisionedThroughput(dynamoDbProperties.getReadCapacity(),
                      dynamoDbProperties.getWriteCapacity())).withTableName(r.getProperties().getStorageName());
              if (deleteTables) {
                  val delete = new DeleteTableRequest(r.getProperties().getStorageName());
                  LOGGER.debug("Sending delete request [{}] to remove table if necessary", delete);
                  TableUtils.deleteTableIfExists(amazonDynamoDBClient, delete);
              }
              LOGGER.debug("Sending delete request [{}] to create table", request);
              TableUtils.createTableIfNotExists(amazonDynamoDBClient, request);
              LOGGER.debug("Waiting until table [{}] becomes active...", request.getTableName());
              TableUtils.waitUntilActive(amazonDynamoDBClient, request.getTableName());
              val describeTableRequest = new DescribeTableRequest().withTableName(request.getTableName());
              LOGGER.debug("Sending request [{}] to obtain table description...", describeTableRequest);
              val tableDescription = amazonDynamoDBClient.describeTable(describeTableRequest).getTable();
              LOGGER.debug("Located newly created table with description: [{}]", tableDescription);
          }));
      }
docs: Create ticket tables.
  
  @param deleteTables the delete tables